문서의 이전 판입니다!


ufw (Uncomplicated Firewall)

Ubuntu/Debian 계열에서 iptables/nftables 기반 호스트 방화벽 규칙을 간단하게 관리하는 CLI.

  • 기본 정책, 포트 허용/차단, numbered rule 관리, 애플리케이션 프로파일 적용을 간단한 명령으로 처리한다.
  • 원격 서버에서 ssh 규칙을 먼저 허용하지 않고 enable 하면 접속이 끊길 수 있다.
sudo ufw <command> [options] [ARGS...]
  • ufw COMMAND [OPTIONS…] ARGS
  • ufw allow RULE: 허용 규칙 추가
  • ufw deny RULE: 차단 규칙 추가
  • ufw delete RULE_OR_NUM: 규칙 삭제
  • ufw insert NUM RULE: 특정 순서에 규칙 삽입
  • ufw status verbose: 현재 정책과 기본 동작 확인
  • ufw show ARG: 내부 보고서 출력
  • enable, disable: 방화벽 활성화/비활성화
  • default allow|deny|reject: 기본 정책 설정
  • allow, deny, reject: 포트, 서비스, 출발지, 프로토콜 기준 규칙 추가
  • delete: 규칙 표현식 또는 numbered rule 번호로 삭제
  • insert: numbered rule 앞에 새 규칙 삽입
  • reload: 현재 규칙 재적용
  • reset: 전체 규칙 초기화. 운영 중인 서버에서는 주의
  • status, status numbered, status verbose: 상태 조회
  • logging on|off|low|medium|high|full: 로그 레벨 설정
  • app list, app info: 애플리케이션 프로파일 조회
원격 서버에서는 먼저 sudo ufw allow ssh 또는 sudo ufw allow 22/tcp 를 적용한 뒤 sudo ufw enable 을 실행한다.
# 활성화 / 비활성화
sudo ufw enable
sudo ufw disable
 
# 상태 확인
sudo ufw status
sudo ufw status verbose
sudo ufw status numbered
 
# 기본 정책
sudo ufw default deny
sudo ufw default allow
 
# 포트 / 서비스 허용
sudo ufw allow 22
sudo ufw allow 22 comment 'ssh'
sudo ufw allow 22/tcp
sudo ufw allow 22/udp
sudo ufw allow ssh
 
# 출발지 제한 허용
sudo ufw allow from 192.168.0.100
sudo ufw allow from 192.168.0.0/24
sudo ufw allow from 192.168.0.100 to any port 22
sudo ufw allow from 192.168.0.100 to any port 22 proto tcp
 
# 차단
sudo ufw deny 22
sudo ufw deny 22/tcp
sudo ufw deny 22/udp
sudo ufw deny ssh
 
# 삭제
sudo ufw delete deny 22
sudo ufw delete deny 22/tcp
sudo ufw delete deny 22/udp
sudo ufw delete deny ssh
 
# numbered rule 관리
sudo ufw delete 1
sudo ufw insert 1 allow from 192.168.0.100
 
# 로그
sudo ufw logging on
sudo ufw logging off
 
# 내부 규칙 확인
sudo ufw show raw
  • /etc/ufw/before.rules: IPv4 pre-rule 조정 파일
  • /etc/ufw/after.rules: IPv4 post-rule 조정 파일
  • /etc/ufw/user.rules: 사용자 규칙
  • /etc/ufw/applications.d/: 애플리케이션 프로파일
  • /etc/services: 서비스명과 포트 매핑 확인

ping 허용 여부는 before.rules 의 ICMP 관련 ACCEPT 규칙으로 제어한다.

/etc/ufw/before.rules
<code text>
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
</code>
  • sudo ufw status verbose 로 기본 정책과 logging 상태를 먼저 확인한다.
  • sudo ufw status numbered 로 규칙 번호를 확인한 뒤 delete NUM 또는 insert NUM … 로 순서를 조정한다.
  • ssh 접속이 필요한 서버에서 규칙 적용 전 allow ssh 를 먼저 추가한다.
  • 서비스명 조회 예제가 필요하면 less /etc/services 로 로컬 매핑을 확인한다.
sudo apt install ufw

ufw --help

  • codex:: 2026-06-20 Reorganized ufw into the standard CLI reference structure and preserved firewall rule examples.
  • linux/debian/cli/ufw.1781964677.txt.gz
  • 마지막으로 수정됨: 2026/06/20 14:11
  • 저자 127.0.0.1