방화벽(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
...
$
참고사이트
'Linux > Ubuntu Install' 카테고리의 다른 글
Ubuntu ROS Noetic 설치 (0) | 2022.08.09 |
---|---|
Ubuntu 루트(root) 비밀번호(password) 설정하기 (0) | 2022.08.09 |
윈도우 원격 데스크톱으로 우분투에 접속하기 (0) | 2022.04.22 |
우분투(Ubuntu) 설치 USB 만들기 (0) | 2022.04.22 |
Ubuntu(우분투) 22.04 LTS 릴리즈 - 설치(업그레이드)하기 (0) | 2022.04.22 |