130 lines
3.0 KiB
Markdown
130 lines
3.0 KiB
Markdown
|
### 기본사용법
|
||
|
```bash
|
||
|
# 활성화
|
||
|
sudo ufw enable
|
||
|
|
||
|
|
||
|
# 비활성화
|
||
|
sudo ufw disable
|
||
|
|
||
|
|
||
|
# 상태확인
|
||
|
sudo ufw status verbose
|
||
|
|
||
|
|
||
|
# 기본룰 확인
|
||
|
sudo ufw show raw
|
||
|
|
||
|
|
||
|
# 기본 정책 차단
|
||
|
sudo ufw default deny
|
||
|
|
||
|
|
||
|
# 기본 정책 허용
|
||
|
sudo ufw default allow
|
||
|
|
||
|
|
||
|
|
||
|
# ufw 허용 - ex) SSH 포트 22번 허용(tcp/udp 22번 포트를 모두 허용)
|
||
|
sudo ufw allow <port>/<optional: protocal>
|
||
|
sudo ufw allow 22
|
||
|
|
||
|
|
||
|
# tcp 22번 포트만을 허용 - SSH는 tcp 22번 포트만 허용하는게 정답
|
||
|
sudo ufw allow 22/tcp
|
||
|
|
||
|
|
||
|
# udp 22번 포트만 허용
|
||
|
sudo ufw allow 22/udp
|
||
|
|
||
|
|
||
|
|
||
|
# ufw 거부 - ex) SSH 포트 22번 거부(tcp/udp 22번 포트를 모두 거부)
|
||
|
sudo ufw deny <port>/<optional: protocol>
|
||
|
sudo ufw deny 22
|
||
|
|
||
|
|
||
|
# tcp 22번 포트만 거부
|
||
|
sudo ufw deny 22/tcp
|
||
|
|
||
|
|
||
|
# udp 22번 포트만 거부
|
||
|
sudo ufw deny 22/udp
|
||
|
|
||
|
|
||
|
|
||
|
# ufw 룰 삭제 - ex) ufw deny 22/tcp 설정이 되어있다고 가정
|
||
|
sudo ufw delete deny 22/tcp
|
||
|
|
||
|
|
||
|
|
||
|
# service 명을 이용한 설정 - /etc/services 에 지정되어 있는 서비스 명과 포트를 이용해 ufw 를 설정할 수 있다.
|
||
|
|
||
|
# 서비스명 보기
|
||
|
less /etc/services
|
||
|
|
||
|
|
||
|
# 서비스명으로 허용/거부 - ex) SSH 서비스
|
||
|
sudo ufw allow <service name>
|
||
|
sudo ufw allow ssh
|
||
|
sudo ufw deny ssh
|
||
|
|
||
|
|
||
|
# ufw 로그 기록
|
||
|
sudo ufw logging on
|
||
|
sudo ufw logging off
|
||
|
|
||
|
```
|
||
|
|
||
|
### Advanced Syntax
|
||
|
```bash
|
||
|
# 특정 IP 주소 허가/거부 - ex) 192.168.0.80 주소 허용
|
||
|
sudo ufw allow from 192.168.0.80
|
||
|
|
||
|
|
||
|
# 네트워크 단위로 지정하여 같은 네트워크 상에 있는 컴퓨터들은 접속가능해진다.
|
||
|
sudo ufw allow from 192.168.0.0/66
|
||
|
|
||
|
|
||
|
# 특정 IP 주소와 일치하는 포트 허용 - ex) 192.168.0.80 주소와 포트, 프로토콜 허용
|
||
|
sudo ufw allow from <ip address> to <protocol> port <port number>
|
||
|
sudo ufw allow from 192.168.0.80 to any port 22
|
||
|
|
||
|
|
||
|
|
||
|
# 특정 IP 주소와 프로토콜, 포트 허용/거부 - ex) 192.168.0.80 주소와 tcp 프로토콜 22번 포트 허용/거부
|
||
|
sudo ufw allow/deny from <ip address> to <protocol> port <port number> proto <protocol name>
|
||
|
sudo ufw allow from 192.168.0.80 to any port 22 proto tcp
|
||
|
sudo ufw deny from 192.168.0.80 to any port 22 proto tcp
|
||
|
|
||
|
|
||
|
|
||
|
# ping(icmp) 허용/거부 - ufw 기본설정은 ping 요청을 허용하도록 되어 있다.
|
||
|
sudo 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 요청을 거부하게 된다.
|
||
|
|
||
|
```
|
||
|
|
||
|
### ufw numbered rules
|
||
|
```bash
|
||
|
# ufw 룰들에 숫자를 붙여서 볼 수 있다. 이를 이용해 룰을 수정하거나 삭제 추가를 할 수 있다.
|
||
|
|
||
|
# ufw number 보기
|
||
|
sudo ufw status numbered
|
||
|
|
||
|
|
||
|
# ufw numbered 수정
|
||
|
sudo ufw delete 1
|
||
|
sudo ufw insert 1 allow from 192.168.0.80
|
||
|
|
||
|
```
|
||
|
|