• SSH only for JumpProxy

    서버를 관리하다보면 SSH의 접근을 특정 호스트에서만 가능하도록 제한해야 할 경우도 생기고 ProxyJump 기능을 사용해야 할 때도 있다.
    ProxyJump 기능은 A호스트에 SSH 접속을 해서 그 터널을 통해 B호스트에 접속을 하는 것인데 당연하게도 A호스트에 접속 권한이 있어야 한다. A호스트에 대해서는 권한을 모두 제거하고 B호스트에 접속하기 위한 경유지로서만 사용 가능하게 하도록 설정하는 방법을 기록으로 남긴다.

    Read on →

  • return -1 / exit(-1)을 사용하지 마세요

    주로 POSIX OS 밑에서 프로그램을 작성할 때 에러가 나면 메인 함수에서는 return -1;, 다른 함수에서는 exit(-1);을 쓰는 경우를 굉장히 자주 목격할 수 있습니다. 단언하자면 이건 틀렸으며 사용하지 말아야 합니다. 전부 -11로 바꿔야 합니다.

    Read on →

  • Lotto 번호 생성기

    Read on →

  • 12시간제 대신 24시간제를 써야 하는 이유

    오전 10시 30분은 오전 11시 27분보다 이른 시각이다.
    오전 11시 27분은 오전 12시 18분보다 늦은 시각이다.

    Read on →

  • asyncio에서 multiprocessing 사용시 This event loop is already running 문제

    파이썬에서 asyncio를 사용하던 도중 multiprocessing.Process로 새 프로세스를 생성한 후 거기서 또 asyncio.run을 사용하면 RunetimeError: This event loop is already running이라는 에러가 뜰 때가 있다.
    그렇다고 get_running_eventloop을 사용해 보면, 돌고 있는 이벤트 루프가 없다고 뜨는 이상한 현상이 있다.

    Read on →

  • Nginx 디폴트 설정에 SSL 추가하기

    Nginx에 도메인을 여러 개 연결해 놓으면 사이트별로 설정파일을 만들기 마련이다. 각 도메인은 server_name kjwon15.net;과 같이 설정하게 되는데 설정하지 않은 도메인은 default 설정파일에 있는 server_name _;을 포함하는 서버 블록이 맡게 된다. 보통은 Welcome to nginx!를 보게 되지만 문제는 TLS 서버를 세팅했을 때다.

    Read on →

  • Steam 계정 보안의 문제점

    저번에도 한 번 그랬지만 오늘 또 스팀에서 이메일이 왔다. 로그인을 하려면 코드를 입력하라는 메일이다.
    이게 무슨 뜻이냐면 어딘가에 있는 누군가가 내 스팀 계정에 로그인을 시도해서 패스워드를 맞추는 데에 성공했고 이메일로 받은 코드만 입력하면 내 계정을 사용할 수 있는 상태라는 것이다. 2FA라고 불리는 이 기능 덕분에 난 내 계정을 살린 것 같지만 큰 문제점이 몇 개 있었다. 너무 막장이라서 블로그에 글을 적을 수밖에 없었다.

    Read on →

  • pyenv 등 사용시 gi 임포트 실패 고치기

    나는 pyenv를 사용해서 파이썬 글로벌 버전을 3.7.5로 사용하고 있다. 사실 버전은 중요하지 않은데 시스템에 설치 된 버전이 아니라면 ibus-setup 같은 명령을 사용할 때 gi라는 패키지를 찾을 수 없다는 ModuleNotFoundError: No module named 'gi' 에러가 뜬다. gi를 설치하면 되지 않느냐?라고 생각 할 수 있겠지만 gi는 기본 패키지이고 따로 어디서 설치를 해 올 수가 없다. 꼼수를 사용하면 기본 site-packages에서 복사를 하면 되겠지만 매우 번거롭다.

    Read on →

  • QT5 앱에서 ibus 한글 입력 고치기

    iBus를 사용하다보면 QT5 앱에서 한글 입력이 제대로 안 되는 경우가 대다수라고 하기도 좀 그렇고 그냥 100%다. 대표적으로 텔레그램 등이 있는데 가장 빠른 해결방법은 입력기를 fcitx 같은 걸로 바꾸는 거지만 입력기의 기능을 많이 활용하는 사람으로서는 입력기를 바꾸는 게 그렇게 쉬운 일은 아니다. 나는 임시로 QT 앱에서만 fcitx를 사용하도록 설정을 했었는데 이것도 좀 아니기 때문에 제대로 된 해결법을 나중에 고생하기 싫어 남겨 놓는다.

    Read on →

  • Postfix를 Mailgun에 연동하기

    Cron은 기본적으로 모든 stdout 출력을 사용자의 로컬 이메일로 전송하도록 되어 있다. MAILTO 설정을 이용해 외부 이메일로 받는 것을 적극 권장하는데 비해 이에 대한 세팅은 꽤나 복잡하다. FQDN이 없으면 거부하는 서버들도 많고, 특히 postfix 설정이 복잡한데 이걸 mailgun에 물려서 간단하게 쓰는 방법을 정리한다.
    (Mailgun 이외에 Sparkpost 등의 다른 서비스를 써도 되지만 SMTP 전송을 지원해야 한다.)

    Read on →