본문 바로가기
Linux/Ubuntu Install

Ubuntu 방화벽(UFW) 설정하기

by 드로니뚜벅이 2022. 7. 14.

방화벽(UFW, Uncomplicated FireWall)은 데비안 계열 및 다양한 리눅스 환경에서 작동되고 GPL이 적용되며 파이썬으로 개발되었습니다.

UFW는 Ubuntu 18.04 이후 버전에서 사용할 수 있습니다. 리눅스에서 가장 많이 사용하는 방화벽으로 iptables을 사용하는데 다소 복잡한 명령어 파라미터 및 사용법을  더 사용하기 쉽게 단순화하여 제공하는 소프트웨어입니다.

사용하기 쉬운 CLI를 사용하고, 프로그램 구성에 iptables를 사용하여 netfilter 방화벽을 관리하는 프로그램입니다.

 

방화벽(UFW) 상태 조회하기

$ sudo ufw status verbose
Status: inactive

※ Ubuntu에서 방화벽은 기본적으로 비활성화되어 있습니다.

 

방화벽(UFW) 활성화하기

$ sudo ufw enable

방화벽(UFW) 비활성화하기

$ sudo ufw disable

ufw default rules 조회하기

$ sudo ufw show raw

/etc/ufw/user.rules 파일을 조회하여 확인할 수도 있습니다.

 

ufw default rules 허용 / 차단

$ sudo ufw default allow   // ufw default rules 허용
$ sudo ufw default deny    // ufw default rules 차단

 

ufw rule 허용/차단

$ sudo ufw allow 8080/tcp     // TCP 8080 포트 사용
$ sudo ufw deny 8080/tcp      // TCP 8080 포트 차단
$ sudo ufw allow 22/udp       // UDP 22 포트 허용
$ sudo ufw deny 22/udp        // UDP 22 포트 차단
$ sudo ufw allow 53           // TCP/UDP 53 포트 허용
$ sudo ufw deny 53            // TCP/UDP 53 포트 차단

 

ufw rule 삭제

$ sudo ufw delete deny 8080/tcp  // TCP 8080 포트 차단 rule 삭제
$ sudo ufw delete deny 22/udp    // UDP 22 포트 차단 rule 삭제
$ sudo ufw delete deny 53        // TCP/UDP 53 포트 차단 rule 삭제

 

서비스명으로 ufw rule 허용/차단

$ cat /etc/services
tcpmux		1/tcp				# TCP port service multiplexer
echo		7/tcp
echo		7/udp
discard		9/tcp		sink null
discard		9/udp		sink null
systat		11/tcp		users
...
$ sudo ufw allow ssh  // SSH 서비스 허용
$ sudo ufw deny ssh   // SSH 서비스 차단

 

IP 주소로 ufw rule 허용/차단

// IP 주소 허용
$ sudo ufw allow from 192.168.6.30

// IP 주소 차단
$ sudo ufw deny from 192.168.6.30

// IP 주소 subnet(netmask) 허용
$ sudo ufw allow from 192.168.6.0/24

// IP 주소 subnet(netmask) 차단
$ sudo ufw deny from 192.168.6.0/24

// IP 주소와 포트 허용
$ sudo ufw allow from 192.168.6.30 to any port 22

// IP 주소와 포트 차단
$ sudo ufw deny from 192.168.6.30 to any port 22

// IP 주소, 포트, 프로토콜 허용
$ sudo ufw allow from 192.168.6.30 to any port 22 proto tcp
// IP 주소, 포트, 프로토콜 차단
$ sudo ufw deny from 192.168.6.30 to any port 22 proto tcp

 

ping(icmp) 허용/차단

Ubuntu는 기본적으로 ping 요청을 허용합니다.

$ sudo vi /etc/ufw/before.rules
...
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -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
...
$

ping 요청을 차단하려면 "ACCEPT"를 "DROP"으로 변경하거나 삭제합니다.

$ sudo vi /etc/ufw/before.rules
...
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
...
$

 

참고사이트