iptables 방화벽 설치법과 기본사용법(명령어, 옵션, 삭제)

iptables 는 리눅스의 방화벽 응용프로그램으로 각종 명령어를 추가함으로
프로토콜 상태 및 추적 그리고 필터링등의 정책을 수립하고 쉽게 접속을 제어할 수 있도록 한다.
우선 설치확인 및 설치법은 아래와 같다.
$ iptables -V
$ iptables v1.8.7 (nf_tables)
$ iptables v1.8.7 (nf_tables)
만일 설치된 상태라면 위와 같은 내용이 출력될 것이며 , 설치해야 한다면 아래명령어로 설치를 하자
1. iptables 설치법
$ sudo apt install iptables
$ sudo apt install iptables
2. iptables -L (정책확인)
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
설치후 정책을 확인해보면 처음엔 INPUT, FORWORD, OUTPUT 모든 정책이 초기상태로 출력이 된다.
이제부터 이곳에 필요한 서비에 맞게 필요한 것들을 추가하자
iptables 명령어
A 새로운 규칙을 추가합니다.
D 기존의 규칙을 삭제합니다.
R 새로운 규칙으로 대체합니다
P 기존의 규칙을 변경합니다.
F 모든 규칙을 삭제합니다.
A 새로운 규칙을 추가합니다.
D 기존의 규칙을 삭제합니다.
R 새로운 규칙으로 대체합니다
P 기존의 규칙을 변경합니다.
F 모든 규칙을 삭제합니다.
iptables 옵션
p 패킷의 포트 번호 혹은 프로토콜을 명시합니다.
j 패킷을 어떻게 처리할 지 명시합니다. (ACCEPT, DROP, LOG, REJECT)
m 확장 모듈을 활성화합니다. (ex) recent 모듈: 특정 시간 동안 특정 개수 이상의 패킷을 받았을 때를 처리할 수 있음
--dport 패킷의 도착 포트 번호를 명시합니다.
--sport 패킷의 발신 포트 번호를 명시합니다.
p 패킷의 포트 번호 혹은 프로토콜을 명시합니다.
j 패킷을 어떻게 처리할 지 명시합니다. (ACCEPT, DROP, LOG, REJECT)
m 확장 모듈을 활성화합니다. (ex) recent 모듈: 특정 시간 동안 특정 개수 이상의 패킷을 받았을 때를 처리할 수 있음
--dport 패킷의 도착 포트 번호를 명시합니다.
--sport 패킷의 발신 포트 번호를 명시합니다.
특정포트번호를 외부에서 접속시 차단정책을 부여하고 차단되는지 확인해보고 차단을 풀어보자 (참고로 80port 는 웹이다)
$ iptables -A INPUT -p tcp --dport 80 -j DROP 80 port (web)
$ iptables -D INPUT 1
$ iptables -D INPUT 1
-D 명령을 사용하여 INPUT 첫번째 정책인 외부 접속차단된 80 포트 차단을 삭제하는 명령이다.
특정 IP 차단 설정
$ iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
$ iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
특정 IP 차단 해제
$ iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
$ iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
특정 IP 및 특정포트 차단 설정
$ iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 21 -j DROP 21port (ftp)
$ iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 21 -j DROP 21port (ftp)
$ Iptables -S -v 정책저장
정책삭제
$ iptables -F INPUT - INPUT 체인의 모든 규칙 삭제
$ iptables -F OUTPUT - OUTPUT 체인의 모든 규칙 삭제
$ iptables -F FORWAD - FORWAD 체인의 모든 규칙 삭제
$ iptables -F INPUT - INPUT 체인의 모든 규칙 삭제
$ iptables -F OUTPUT - OUTPUT 체인의 모든 규칙 삭제
$ iptables -F FORWAD - FORWAD 체인의 모든 규칙 삭제
추가적인 정책은 위 명령어 및 옵션을 통하여 추가하고 삭제하면서 기능을 익혀나가도록 하자.
참고로 포트번호는 0 ~ 65535 까지 가능하다
hit: 10

Leave a comment