Daily Develope

[Linux] UFW 설정 및 사용법 본문

OS/Linux

[Linux] UFW 설정 및 사용법

noggame 2024. 9. 25. 08:05

UFW (Uncomplicated FireWall)란?

ㅇ 역할 : 방화벽 설정
ㅇ 장점 : 다른 도구들에 비해 설정이 쉽다 (firewalld, iptables, nftables 등)
ㅇ 단점 : 유연성이 떨어진다 (복잡한 정책 구현에 제한)

ㅇ Default Rule

  • Inbound : Deny All
  • Outbound : Allow All

기본 설정

기본 정책 활성화 및 SSH 통신 유지

ufw default deny incoming    # inbound 패킷 전체 차단
ufw default allow outgoing   # outbound 패킷 전체 허용
ufw allow ssh                # ssh 접속 허용 (ssh 서비스 사용중이라면 서버와의 연결해제 방지 목적)
ufw allow 22/tcp             # ssh 접속 허용 (ssh 서비스 미동작이지만,  기본 ssh 접속포트가 22로 설정된 경우)
ufw enable                   # ufw default 정책으로 활성화

(IPv6 정책을 활성화 하려면 "/etc/default/ufw" 파일에 다음 설정 추가)

IBV6=yes

명령어

ㅇ UFW 활성화 / 비활성화

ufw enable        # 활성화
ufw disable        # 비활성화

ㅇ 정책 설정

ufw {allow/deny} from {source} to {destination} port {port} proto {tcp/udp}
  • from {source} 생략 가능, 생략하는 경우에는 Anywhere로 설정
  • to {destination} 생략 가능, 생략하는 경우에는 Anywhere로 설정
  • port {port] 생략 가능, 생략하는 경우에는 Anywhere로 설정
  • proto {tcp/udp} 생략 가능, 생략하는 경우에는 tcp와 udp 모두 포함

ㅇ 정책 삭제

  • 정책 목록 확인 후 정책 index 번호로 삭제
ufw status numbered
...
[ 1] ...
[ 2] ...

ufw delete 1
  • 명시적으로 삭제
ufw delete allow http    # http 방화벽 허용 정책 삭제
ufw delete deny 443        # 443 포트 방화벽 차단 정책 삭제

Log

ㅇ 경로 : /var/log/ufw.log
ㅇ 활성화

ufw logging on

ㅇ 로그 포맷

Feb  4 23:33:37 hostname kernel: [ 3529.289825] [UFW BLOCK] IN=eth0
OUT= MAC=00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd SRC=444.333.222.111 DST=111.222.333.444 
LEN=103 TOS=0x00 PREC=0x00 TTL=52 ID=0 DF PROTO=UDP SPT=53 DPT=36427 LEN=83
  • IN = 설정되어 있다면 incoming event를 의미
  • OUT = 설정되어 있다면 outgoing event를 의미
  • MAC = Destination MAC 주소
  • LEN = 패킷 크기
  • TOS = IPv4 헤더의 TOS 필드값
  • PREC = IPv4 헤더의 Precedence 필드값
  • SPT / DPT = Source / Destination 포트

예제) Allow / Deny

  1. 포트번호로 tcp 접근만 허용
ufw allow 80/tcp        // 80 접근 허용
  1. 서비스명으로 tcp/udp 전체 차단
  • 서비스명으로 명령하는 경우의 '서비스명'은 daemon으로 동작중인 서비스이어야한다. (즉, service --status-all 이나 systemctl 명령에서 조회 가능한 서비스)
ufw deny http
  1. 8080 ~ 8090 포트 tcp 접근 허용
ufw allow 8080:8090/tcp
  1. 192.168.1.2 ip에 대해서는 전체 포트 접근 허용
ufw allow from 192.168.1.2
  1. 192.168.1.2 ip에 대해서는 22 포트 접근 허용
ufw allow from 192.168.1.2 to any port 22
  1. 192.168.1.2 ip에 대해서는 22/tcp 포트 접근 허용
ufw allow from 192.168.1.2 to any port 22 proto tcp
  1. 192.168.1.1 ~ 192.168.1.254 Subnet ip 영역에 대해서는 22 포트 접근 허용
ufw allow from 192.168.1.0/24 to any port 22
  1. 공용 네트워크에 대해서는 80 포트 접근 허용 (공용 네트워크가 eth0이라는 가정)
ufw allow in on eth0 to any port 80

Reference

DigitalOcean

'OS > Linux' 카테고리의 다른 글

[Linux] CentOS repository 설정  (0) 2024.04.30
[Linux] Ubuntu DNS Nameserver 설정  (0) 2024.04.30
[Linux] openssl 수동 업데이트 / 설치  (0) 2024.04.30
[Linux] 패키지 저장소 정리  (0) 2023.09.05
[Linux] tar 압축 / 압축 해제  (0) 2023.03.15
Comments