홈서버… 어느 정도 수준의 보안이 현실적일까?

이런 저런 포트 다 열어두고 업데이트도 안해도 멀쩡한 사람도 있을꺼고 반대로 할 수 있는 한 보안 작업을 해둬도 뚫리는 사람도 있을꺼다. 나는 현실적으로 불특정 다수를 향한 공격은 당하지 않으리라 목표를 세웠다.


체크리스트

  • 공유기 UPNP 끄기 – 내부망에 감염된 컴퓨터가 외부 포트를 여는 것을 막도록 하기 위함. UPNP 있는게 편하긴 하지만 포트포워딩 해주면 어차피 똑같다.
  • SSH 포트는 외부에서 접근 불가, 네트워크 내부에서만 접근 가능. 외부에선 VPN으로 내부망에 들어와 접속. 적어도 22번 포트에 쏟아질듯 밀려오는 브루트 포스는 막아준다.
  • SSH 암호로 로그인 금지 – RSA키로만 가능. 혹시 모를 상황을 위해 ssh 점프 호스트를 만들어놨다. 점프 호스트는 자체 방화벽으로 22번 빼고 모든 포트 봉쇄, fail2ban을 빡빡하게 적용시키고 엄청 복잡한 비밀번호로 설정.
  • 모든 웹서비스는 리버스 프록시 뒤에 배치 – 모든 서비스에 ssl이 적용되며 밖으로 여는 포트의 숫자를 엄청 줄일 수 있다.
  • 우분투 커널 업데이트, 데비안 9으로 업데이트 – 커널 업데이트는 4개 중에 2개의 VM에서 문제가 생겨서 재설치를 할 수 밖에 없었다. ㅠㅠ 데비안 9은 잠깐 써본거지만 아주아주 맘에 든다.
  • 워드프레스 플러그인을 통한 로그인 시도 아이피 차단
  • 몇몇 VM에 있었던 FTP 전부 삭제 – 모든건 scp로 한다. FTP를 신뢰했던 적이 없다.
  • WD 마이클라우드 외부 접속 금지 – 미디어는 플렉스를 통해서만 스트리밍 한다. 외부에 파일 공유는 Seafile로 한다.

내가 지금 할 수 있는 것은 다 했다. Brute force 같이 무식한 공격이 들어올만 한건 워드프레스 로그인 정도다. 공격받을 루트를 줄이는데 힘썼고 또 어떤 루트가 뚫려도 적어도 하나의 보호막은 거쳐야 하도록 했다. 점프 호스트가 함락되면 모든게 끝이지만 애초에 운영체제에 ssh서버 하나만 돌아가는 중인 상태고 방화벽과 fail2ban을 갖췄으니 큰 걱정은 없다.

하지만 가장 위험한 적은 내부에 있으니… ESXi 무료 버전이라 VM 백업을 효과적으로 할 방법이 없다. ㅠㅠ  내가 조금만 더 알고 이걸 시작했으면 Proxmox를 썼을꺼다. 나중에 여유가 있으면 하이퍼바이저부터 바꿀 생각을 해야 할 듯.

앞으로

외부망으로 연결된 VM들은 네트워크 망을 분리해주고, UPS 구성을 해줘야 한다. Proxmox로 바꾸고 싶은데 VM 7개를 다시 깔아 설정할 엄두가 쉽게 안난다.