방화벽은 서버의 어떤 포트가 외부로부터의 연결을 받아들일지를 결정합니다. 명시적으로 열지 않은 모든 것은 닫혀 있어야 하는데 — 이것이 **기본 거부(default-deny)**이며, 공격면을 실제로 운영하는 서비스만으로 줄여줍니다. UFW는 이를 간단하게 만들어 줍니다. 정확히 지켜야 할 한 가지는 순서입니다: 방화벽을 켜기 전에 SSH를 허용하세요. 그렇지 않으면 스스로 잠기게 됩니다.
1. UFW 설치 (보통 이미 설치되어 있음)
sudo apt update && sudo apt install -y ufw
2. 다른 무엇보다 먼저 — SSH부터 허용
이것이 잠김을 막는 단계입니다. enable 전에 하세요:
sudo ufw allow OpenSSH
# 커스텀 SSH 포트를 사용한다면:
# sudo ufw allow 22/tcp
3. 필요한 포트만 열기
sudo ufw allow 80/tcp # HTTP, 웹사이트를 서비스한다면
sudo ufw allow 443/tcp # HTTPS
# 필요할 때만 앱별 포트 추가, 예:
# sudo ufw allow 51820/udp # WireGuard VPN
4. 기본 정책 설정 및 활성화
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable # 확인을 요청함
5. 확인
sudo ufw status verbose
SSH와 선택한 포트들이 허용되고, 나머지는 모두 거부되어 있어야 합니다. 변경할 때마다 이를 확인하세요.
자주 하는 작업
sudo ufw allow 3000/tcp # 포트 열기
sudo ufw delete allow 3000/tcp # 다시 닫기
sudo ufw status numbered # 번호와 함께 규칙 목록
sudo ufw delete 2 # 2번 규칙 삭제
sudo ufw disable # 방화벽 끄기
솔직한 주의
ufw enable전에 SSH를 허용하세요. 사람들이 자기 서버에서 스스로 잠기게 되는 단 하나의 실수입니다. 그렇게 되더라도, 제공업체 콘솔이 다시 들여보내 줍니다 — EQVPS는 모든 VPS에 브라우저 콘솔을 제공합니다.- 방화벽은 하나의 계층입니다. 열린 포트를 제어할 뿐, 그 포트에서 일어나는 일까지 제어하지는 않습니다. SSH 키 인증과 fail2ban을 함께 사용하세요.
- NAT 요금제에서는 인바운드 포트가 다르게 동작합니다 — 서버 내 방화벽은 여전히 도움이 되지만, 임의의 인바운드를 받아들이는 것은 dedicated-IP 요금제뿐입니다.
다음 단계
방화벽과 키가 있으면 견고한 서버의 대부분이 완성됩니다. 새 VPS 보안 체크리스트로 마무리하세요. 웹 앱을 위해 443을 여시나요? HTTPS를 지원하는 nginx 리버스 프록시 설정 방법을 참고하세요.
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.