Ubuntu 26.04 강좌 / UFW로 관리·서비스 포트를 제한하기

UFW는 실제 관리 접속의 출발지와 서비스 포트를 확인한 뒤 필요한 연결만 허용하도록 구성합니다. 방화벽을 켜기 전 SSH 허용 규칙과 콘솔을 준비하고, 허용·거부 클라이언트에서 각각 새 연결로 검증해야 합니다.

리스너와 기존 규칙부터 확인하기

sudo ss -lntup
sudo ss -tn
sudo ufw status verbose
sudo ufw status numbered

서비스가 어떤 주소와 포트에서 대기하는지, 현재 SSH의 실제 peer 주소가 무엇인지 기록합니다. NAT나 VPN을 거치면 자신이 생각한 PC 주소와 서버가 보는 출발지가 다를 수 있습니다. UFW가 이미 활성화되어 있다면 기존 정책과 규칙을 보존하고 이번 변경만 추가합니다.

고정 IP 실습의 허용 Linux 클라이언트는 호스트 전용 주소 192.168.56.10입니다. Windows 호스트에서 직접 관리한다면 실제 출발지는 보통 192.168.56.1이므로 규칙의 .10을 그 값으로 바꿉니다. 서버에서 ss -tn의 peer와 클라이언트의 주소를 대조하고, NAT 어댑터 주소나 서버 목적지 .20을 출발지에 넣지 않습니다.

전용 빈 실습 VM의 시작 정책

아래 흐름은 기존 규칙이 없는 전용 VM에서 관리 클라이언트 192.168.56.10, SSH 22번을 확인한 예입니다. 자신의 실제 값으로 바꿔야 합니다. 다른 정책이 있는 시스템의 기본 송수신 정책을 이 예시로 덮지 않습니다.

sudo ufw --dry-run allow from 192.168.56.10 to any port 22 proto tcp
sudo ufw allow from 192.168.56.10 to any port 22 proto tcp
sudo ufw default deny incoming
sudo ufw default allow outgoing

dry-run은 적용 예정 규칙을 보여 줄 뿐 실제 접근 허용을 만들지 않습니다. 관리 허용 규칙을 먼저 추가하고 콘솔 로그인을 유지합니다. SSH 포트가 다른 경우 22번 규칙은 기존 접속을 보호하지 못합니다.

Ubuntu 방화벽 안내는 UFW의 기본 동작·출발지 제한·모의 실행을 설명합니다.

필요한 서비스만 허용하고 활성화하기

sudo ufw allow from 192.168.56.10 to any port 80 proto tcp
sudo ufw enable
sudo ufw status verbose

80번은 해당 실습 클라이언트의 HTTP 시험만 허용하는 예입니다. 서비스가 없으면 포트를 미리 열 필요가 없습니다. enable의 접속 중단 경고를 읽고, 다른 터미널에서 새 SSH 연결이 되는지 확인하기 전에는 기존 세션을 닫지 않습니다.

IPv6·클라우드·컨테이너 계층 구분하기

/etc/default/ufw의 IPv6 설정과 ss의 IPv6 리스너를 확인합니다. IPv4 클라이언트 한 대에서 차단됐다고 IPv6 경로까지 차단된 것은 아닙니다. 클라우드 보안 그룹·공유기·호스트 방화벽도 별도 계층입니다.

Docker 등 컨테이너 엔진은 공개 포트에 자체 규칙을 만들 수 있어 UFW만 보고 노출 범위를 판단할 수 없습니다. 컨테이너를 쓴다면 호스트 바인딩과 엔진의 공식 방화벽 연동을 함께 확인하고 외부에서 실제 포트 접근을 시험합니다.

허용·차단 시험과 개별 규칙 복원

허용한 클라이언트에서는 새 SSH·HTTP 연결을, 허용하지 않은 클라이언트에서는 같은 목적지의 거부를 확인합니다. 이미 열린 연결만 시험하면 상태 기반 방화벽 때문에 새 연결 정책을 검증하지 못할 수 있습니다. 서비스 중지와 방화벽 차단도 구분하세요.

sudo ufw delete allow from 192.168.56.10 to any port 80 proto tcp
sudo ufw status numbered

위 명령은 이번에 추가한 HTTP 예시 규칙만 지웁니다. 관리 접근이 필요한 동안 SSH 규칙은 유지합니다. 번호로 지울 때는 매번 새 목록을 확인해야 하며, 전체 reset이나 기존 정책 비활성화로 관련 없는 규칙을 없애지 않습니다. 원래 비활성인 전용 VM을 완전히 복원하려면 처음 기록한 정책과 변경 내역을 기준으로 별도 판단합니다.