우분투 방화벽 UFW 기본 설정과 포트 개방 점검 요령

우분투 서버 보안을 위한 UFW 방화벽의 역할

우분투 리눅스 서버를 인터넷에 연결하여 운영할 때 가장 먼저 챙겨야 하는 보안 설정은 바로 방화벽 관리입니다. 리눅스 커널 수준의 패킷 필터링 도구인 iptables는 설정과 문법이 다소 복잡하여 초보자가 실수하기 쉽습니다. 우분투는 이러한 복잡함을 덜어내고 누구나 직관적으로 방화벽을 다룰 수 있도록 UFW(Uncomplicated Firewall)라는 간편한 방화벽 도구를 기본 제공합니다.

이 글에서는 우분투 서버에서 UFW 방화벽을 활성화하는 방법부터, 필요한 서비스 포트만 안전하게 개방하고 현재 상태를 검증하는 절차까지 초보자가 반드시 알아야 할 핵심 내용을 단계별로 정리합니다.

사전 준비 사항

방화벽 설정을 변경하기 전에 아래 사항을 반드시 확인해야 합니다.

  • sudo 권한을 가진 일반 사용자 계정으로 접속한 상태여야 합니다.
  • 원격 SSH 접속이 끊기지 않도록, 방화벽 활성화 전에 반드시 SSH 포트가 예외 처리되어 있어야 합니다.

UFW 설치 여부 확인과 기본 상태 점검

최신 우분투 서버 버전에는 UFW가 기본적으로 설치되어 있습니다. 먼저 방화벽이 설치되어 있는지, 현재 작동 상태가 어떤지 터미널 명령어 입력으로 확인합니다.

sudo ufw status verbose

만약 방화벽이 비활성화 상태라면 Status: inactive로 출력됩니다. 만약 UFW가 설치되어 있지 않다면 패키지 관리자를 통해 간단히 설치할 수 있습니다.

sudo apt update && sudo apt install ufw

기본 정책 설정과 필수 포트 개방 요령

방화벽의 기본 원칙은 ‘모든 접근을 차단하고 필요한 통신만 허용’하는 것입니다. 먼저 기본 수신(Incoming) 트래픽은 거부하고, 발신(Outgoing) 트래픽은 허용하는 기본 정책을 설정합니다.

sudo ufw default deny incoming
sudo ufw default allow outgoing

기본 정책을 설정한 후에는 원격 접속을 유지하기 위해 SSH 포트를 가장 먼저 허용해야 합니다. 기본 포트인 22번을 허용하려면 아래 명령어를 입력합니다.

sudo ufw allow 22/tcp

만약 웹서버를 운영할 예정이라면 HTTP와 HTTPS 포트도 함께 개방해 줍니다.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

방화벽 활성화 및 상태 검증

규칙을 모두 등록했다면 UFW 방화벽을 활성화(enable)합니다.

sudo ufw enable

활성화 직후에는 반드시 연결이 끊기지 않는지 새 터미널 창을 열어 SSH 접속을 테스트해 보아야 합니다. 방화벽이 정상적으로 적용되었는지 상세 상태를 다시 확인합니다.

sudo ufw status numbered

이 명령어를 사용하면 각 규칙에 번호가 부여되어 출력되므로, 추후 불필요한 규칙을 삭제할 때 유용하게 활용할 수 있습니다.

잘못 등록된 규칙 삭제와 롤백 요령

방화벽 규칙을 설정하다가 실수를 했다면 등록된 규칙을 번호를 이용해 쉽게 삭제할 수 있습니다.

등록된 규칙의 번호를 확인한 후 아래 명령어를 실행합니다.

sudo ufw delete [규칙번호]

만약 방화벽 설정 전체를 초기 상태로 되돌리고 싶다면 아래 명령어로 모든 설정을 리셋할 수 있습니다.

sudo ufw reset

초보자가 자주 저지르는 실수

  • SSH 포트를 열지 않고 방화벽을 활성화하는 경우: 원격 서버와 연결이 즉시 끊어져 콘솔 접근이 불가능해질 수 있습니다. 반드시 방화벽 활성화 전에 allow ssh 또는 포트 허용을 선행하세요.
  • 규칙 순서를 고려하지 않는 경우: UFW는 위에서부터 순차적으로 규칙을 검사하므로, 허용과 차단 규칙의 우선순위를 정확히 파악해야 합니다.
  • 상태 확인을 생략하는 경우: 설정을 마친 뒤 ufw status 명령어로 실제 적용 여부를 검증하지 않으면 서버 점검 시 원인을 찾기 어렵습니다.

안전한 UFW 방화벽 운영 체크리스트

  • [ ] UFW 패키지 설치 여부와 버전 확인
  • [ ] 기본 수신 거부(deny), 발신 허용(allow) 정책 적용
  • [ ] SSH 접속 포트(기본 22번 또는 커스텀 포트) 허용 등록
  • [ ] 웹서버 및 데이터베이스 등 필요한 서비스 포트만 선별 개방
  • [ ] sudo ufw enable 실행 후 원격 세션 유지 테스트
  • [ ] sudo ufw status numbered 명령어로 최종 규칙 목록 검증

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다