일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- list
- PostgreSQL
- Linux
- DB
- judge
- CUDA
- Python
- git
- Converting
- LLM
- Container
- Flask
- Database
- enV
- format
- Package
- GitLab
- numpy
- evaluation
- file
- pandas
- pytorch
- TORCH
- Laravel
- KAKAO
- docker
- Mac
- Windows
- AI
- Paper
Archives
- Today
- Total
Daily Develope
[Linux] UFW 설정 및 사용법 본문
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
- 포트번호로 tcp 접근만 허용
ufw allow 80/tcp // 80 접근 허용
- 서비스명으로 tcp/udp 전체 차단
- 서비스명으로 명령하는 경우의 '서비스명'은 daemon으로 동작중인 서비스이어야한다. (즉, service --status-all 이나 systemctl 명령에서 조회 가능한 서비스)
ufw deny http
- 8080 ~ 8090 포트 tcp 접근 허용
ufw allow 8080:8090/tcp
- 192.168.1.2 ip에 대해서는 전체 포트 접근 허용
ufw allow from 192.168.1.2
- 192.168.1.2 ip에 대해서는 22 포트 접근 허용
ufw allow from 192.168.1.2 to any port 22
- 192.168.1.2 ip에 대해서는 22/tcp 포트 접근 허용
ufw allow from 192.168.1.2 to any port 22 proto tcp
- 192.168.1.1 ~ 192.168.1.254 Subnet ip 영역에 대해서는 22 포트 접근 허용
ufw allow from 192.168.1.0/24 to any port 22
- 공용 네트워크에 대해서는 80 포트 접근 허용 (공용 네트워크가 eth0이라는 가정)
ufw allow in on eth0 to any port 80
Reference
'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