목차 열기

티스토리 뷰

728x90
반응형

우분투에서 IPTables을 사용하자

ufw 해제 및 iptables-persistent 설치

먼저, ufw를 끈다. sudo ufw disable

IPTables는 재부팅시 설정이 초기화된다. 따라서 설정을 지속시켜주는 iptables-persistent를 설치할 것이다. 설치시 IPv4 규칙과 IPv6 규칙을 저장할건지 물어보는데, 초기화할 것이므로 그냥 Enter를 누른다.

sudo apt update 
sudo apt install iptables-persistent

앞으로 규칙 설정이 완료되면, IPTables의 규칙을 적용하는 명령어를 입력한다.

netfilter-persistent save
netfilter-persistent reload

IPTables 설정 초기화

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X

-F : 체인의 모든 규칙 초기화
-X : 기본 체인 외, 비어있는 체인 제거
-t : 테이블

기본 체인(Chain) 설정

먼저 모든 체인을 허용(ACCEPT)으로 바꾸어 본다.

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

-P : 기본 정책을 설정

앞으로 정책 설정 현황은 -S 옵션으로 확인한다.

iptables -S
iptables -t nat -S
iptables -t mangle -S

-t : 테이블
-S : 규칙 생성 (Status)

또한 방화벽 적용시 아까 설치한 iptables-persistent로 저장하고 리로드한다.

netfilter-persistent save
netfilter-persistent reload

규칙 생성

localhost ACCEPT

iptables -A INPUT -i lo -j ACCEPT

루프백 주소 사칭 DROP

iptables -A INPUT -s 127.0.0.0/255.0.0.0 -j DROP
iptables -A INPUT -d 127.0.0.0/255.0.0.0 -j DROP

양방향 통신 패킷 ACCEPT

이미 연결했거나 기존 연결 기반의 접속(ESTABLISHED와 RELATED)을 허용하는 규칙을 추가한다.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

HTTP 80 포트

iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT

HTTPS 443 포트

logaccept 사용시 로그를 남기고 허가, 내부망에서만 연결 가능하다.
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 443 -m state --state NEW -j logaccept

SSH ACCEPT

22번 포트일 경우
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
  • 가급적 22번 포트가 아닌, 다른 포트를 사용하도록 하자.
22222번 포트일 경우, logaccept 사용시 로그를 남기고 허가
내부망에서만 연결 가능하다.
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 22222 -m state --state NEW -j logaccept

log- 체인 생성

iptables -N logaccept 
iptables -N logdrop

iptables -A INPUT -j logdrop

iptables -A logaccept  -j LOG --log-prefix [Accept-log]     허가 패킷 기록
iptables -A logaccept  -j ACCEPT                            패킷 허가
iptables -A logdrop -j LOG --log-prefix [Drop-log]          드랍 패킷 기록
iptables -A logdrop -j DROP                                 패킷 드랍

기본 정책 수정

이제 기본 정책을 설정한다.

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

위에서 허용한 규칙만 허용되고, 나머지의 패킷은 DROP된다.

iptables -nL

설정한 내용을 검토한다.

iptables를 저장하고 리로드한다.

netfilter-persistent save
netfilter-persistent reload

추가적인 규칙 목록

iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT  TCP/SMTP
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT  TCP/DNS
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT  TCP/DNS
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT  TCP/WWW
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT  TCP/SSL-WWW
728x90
반응형
댓글
글 보관함
«   2024/05   »
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 31
Total
Today
Yesterday