Ubuntu 우분투(Ubuntu) 방화벽(UFW) 설정
키큰난쟁이
34 0 0
들어가며
우분투(Ubuntu)의 기본적인 방화벽은 UFW입니다. 이는 iptables를 좀 더 쉽게 설정할 수 있도록 한 것인데 간단한 방화벽 구성에는 문제가 없지만 수준 높은 방화벽 구성에는 iptables룰을 직접 사용해야 합니다.
우분투(Ubuntu) 방화벽(UFW) 패키지 설치
UFW 패키지 설치
## 패키지가 없을 경우 설치
apt-get install ufw
우분투(Ubuntu) 방화벽(UFW) 활성화/비활성화
UFW 활성화
## UFW 활성화
ufw enable
UFW 비활성화
## UFW 활성화
ufw disable
우분투(Ubuntu) 방화벽(UFW) 기본
📌 UFW에 설정되어 있는 기본 룰은 아래와 같다.
-
들어오는 패킷에 대해서는 전부 거부(deny)
-
나가는 패킷에 대해서는 전부 허가(allow)
기본 룰 확인
ufw show raw
기본 정책 차단
ufw default deny
기본 정책 허용
ufw default allow
우분투(Ubuntu) 방화벽(UFW) 허용/차단
UFW 허용
ufw allow <port>/<optional: protocal>
↓SSH 포트 22번 허용(tcp/udp 22번 포트를 모두 허용)
ufw allow 22
↓tcp 22번 포트만을 허용 — SSH는 tcp 22번 포트만 허용하는게 정답
ufw allow 22/tcp
↓udp 22번 포트만을 허용
ufw allow 22/udp
UFW 거부
ufw deny <port>/<optional: protocol>
↓ssh 포트 22번 거부(tcp/udp 22번 포트를 모두 거부)
ufw deny 22
↓tcp 22번 포트만을 거부
ufw deny 22/tcp
↓udp 22번 포트만을 거부
ufw deny 22/udp
우분투(Ubuntu) 방화벽(UFW) 룰의 삭제
ufw deny 22/tcp 설정이 되어있다고 가정
ufw delete deny 22/tcp
우분투(Ubuntu) 방화벽(UFW) service 명을 이용한 설정
서비스명 보기
less /etc/services
서비스명으로 허용
allow <service name>
EX) SSH 서비스
ufw allow ssh
ufw deny ssh
우분투(Ubuntu) 방화벽(UFW) 로그 기록
UFW 로그 기록
ufw logging on
ufw logging off
우분투(Ubuntu) 방화벽(UFW) Advanced Syntax
📌문법을 확장하여 목적지 주소와 포트, 프로토콜등을 지정할 수 있다.
특정한 IP 주소 허가/거부
특정한 IP 주소 허용
ufw allow from <ip address>
↓192.168.0.100 주소 허용(IP 주소192.168.0.100 에서만 접속이 가능해진다.)
ufw allow from 192.168.0.100
↓네트워크 단위로 지정하여 같은 네트워크 상에 있는 컴퓨터들은 접속가능해진다.
ufw allow from 192.168.0.0/24
특정한 IP 주소와 일치하는 포트 허용
ufw allow from <ip address> to <protocol> port <port number>
↓192.168.0.100 주소와 tcp 프로토콜 22번 포트 허용
ufw allow from 192.168.0.100 to any port 22 proto tcp
위의 예제들에서 allow 대신 deny를 입력하면 거부가 된다.
우분투(Ubuntu) 방화벽(UFW) ping (icmp) 허용/거부
UFW 기본설정은 ping 요청을 허용하도록 되어있다.
vi /etc/ufw/before.rules
# ok icmp codes
-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
→ 위 코드들의 ACCEPT 부분을 모두 DROP으로 변경하거나 삭제하면 ping 요청을 거부하게 된다.
우분투(Ubuntu) 방화벽(UFW) ping (icmp) numbered rules
📌UFW 룰들에 숫자를 붙여서 볼 수 있다. 이를 이용해 룰에 수정이나 삭제, 추가를 할 수 있다.
ufw number 보기
ufw status numbered
ufw numbered 수정
ufw delete 1
ufw insert 1 allow from 192.168.0.100
우분투(Ubuntu) 방화벽(UFW) 추천 방화벽 정책
추천 방화벽
ufw enable
ufw allow from 192.168.0.3 to any port 22 proto tcp
ufw allow 123/udp
ufw allow 80/tcp
ufw allow 3306/tcp
ufw status