← 전체 글로 돌아가기

웹 개발

VPS에 UFW 켤 때 SSH 잠기지 않는 순서

개인 VPS에 방화벽을 처음 설정할 때 순서를 틀리면 SSH가 끊긴다. 안전하게 UFW를 활성화하는 절차를 정리했다.

VPS에 처음 방화벽을 켜는 건 SSH로 연결된 채로 작업하는 것이라 순서를 틀리면 접속이 잠긴다. 호스팅 업체 콘솔에서 VM에 직접 붙을 수 있긴 하지만 번거로우니 처음부터 순서를 지키는 게 낫다.

SSH 포트를 먼저 허용한다

UFW를 켜기 전에 허용 규칙을 먼저 만들어야 한다.

sudo ufw allow 22/tcp    # SSH 기본 포트
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS

SSH를 다른 포트에서 쓰고 있다면 22 대신 그 포트를 허용해야 한다. 이 단계를 건너뛰고 ufw enable을 실행하면 SSH 연결이 즉시 끊긴다.

UFW 활성화와 상태 확인

sudo ufw enable
sudo ufw status verbose

Status: active가 뜨고 허용한 포트들이 목록에 보이면 정상이다. 이 시점에서 기존 세션을 닫기 전에 새 SSH 세션을 열어 접속이 되는지 먼저 확인한다. 새 세션이 연결되면 기존 세션을 닫아도 된다.

실행 중인 서비스 포트 파악

방화벽 규칙을 만들기 전에 어떤 포트가 열려 있는지 먼저 파악한다.

sudo ss -lntp

앱이 3000번 포트를 쓴다고 해서 반드시 외부에 열 필요는 없다. nginx를 앞에 두는 방식이라면 80/443만 열고 3000번은 loopback에서만 접근하면 된다. 불필요하게 포트를 열수록 공격 표면이 커진다.

방화벽 로그 확인

차단된 트래픽이 있는지 확인하려면:

sudo journalctl -k | grep -i ufw

설정이 의도대로 동작하는지 로그로 검증하는 습관을 들이면 나중에 접속 문제가 생겼을 때 방화벽이 원인인지 빠르게 확인할 수 있다. df -h로 디스크 공간도 확인해두는 게 좋다.