UFW(우분투 방화벽)를 어떻게 설정하고 관리하나요?
💡 요약 정리
- UFW는 Ubuntu/Debian 계열에서 사용하는 간단한 방화벽(패킷 제어 프로그램)입니다.
- 서비스는 systemctl로 제어하고, 방화벽 활성/비활성은 ufw enable/disable로 설정합니다.
- 정책 확인은 ufw status numbered, ufw show raw를 사용합니다.
- 허용은 ufw allow, 차단은 ufw deny, 삭제는 번호 또는 규칙 형태로 수행합니다.
- 활성화 전 반드시 서비스 포트를 확인하고, 변경 전에는 /etc/ufw/user.rules 및 /etc/ufw/user6.rules를 백업하세요.
1. UFW란?
- 패킷을 제어하는 프로그램입니다.
- Uncomplicated Firewall의 약자로, Ubuntu와 Debian 계열의 리눅스 배포판에서 사용됩니다.
2. UFW 명령어
2.1 서비스
- 서비스 시작
systemctl start ufw
- 서비스 중지
systemctl stop ufw
- 서비스 상태확인
systemctl status ufw
- 서비스 활성화
ufw enable
- 서비스 비활성화
ufw disable
서비스 시작 및 활성화 전에 서비스 포트 가 등록되어 있는지 확인하세요. 등록되어 있지 않은 경우 차단될 수 있습니다.
- netstat 명령어를 통하여 서비스를 확인하시기 바랍니다.
2.2 정책 확인
- 현재 설정된 정책들을 번호와 함께 확인
ufw status numbered
- 모든 정책 확인
ufw show raw
2.3 정책 등록 및 차단
2.3.1 정책 등록
- 호스트 서버에 22번 포트 전부 허용
ufw allow 22/tcp
- 호스트 서버에 22~23번 포트 전부 허용
ufw allow 22:23/tcp
- 192.168.0.30이 22번 포트로 들어오는 패킷을 허용
ufw allow from 192.168.0.30 to any port 22
- 192.168.0.0/24 대역이 22번 포트로 들어오는 패킷을 허용
ufw allow from 192.168.0.0/24 to any port 22
방화벽 정책 등록 시, 서비스에 필요한 포트만 허용하는 것을 권고드립니다.
2.3.2 정책 차단
- 호스트 서버에 22번 포트 차단
ufw deny 22/tcp
- 호스트 서버에 22~23번 포트 전부 차단
ufw deny 22:23/tcp
- 192.168.0.30이 22번 포트로 들어오는 패킷을 차단
ufw deny from 192.168.0.30 to any port 22
- 192.168.0.0/24 대역이 22번 포트로 들어오는 패킷을 차단
ufw deny from 192.168.0.0/24 to any port 22
서비스되고 있는 포트를 차단하면 서비스가 중단됩니다. 반드시 확인 후 진행하세요.
- netstat 명령어로 서비스 포트 확인 가능합니다.
2.4 정책 삭제
- ufw status numbered에서 표시된 번호를 지정하여 삭제
ufw delete (번호)
- 22번 포트를 허용하는 정책을 삭제
ufw delete allow 22/tcp
2.5 백업 및 초기화
2.5.1 백업
- 사용자가 등록한 룰은 /etc/ufw/user.rules(IPv4), /etc/ufw/user6.rules(IPv6)에 저장됩니다. 해당 설정 파일을 백업합니다.
cp -a /etc/ufw/user.rules /etc/ufw/user.rules.bak
- 혹은 안에 있는 내용을 따로 저장합니다.
2.5.2 초기화
- 초기화 상태로 돌아가면서 UFW는 비활성화 상태가 됩니다.
ufw reset