본문 바로가기
운영체제/리눅스

리눅스) iptables 명령어 2 조회/등록/설정

by Cloud_Park 2020. 7. 10.

iptables는 운영체제 딴의 방화벽을 설정하는 도구이며 알아두면 좋을 것 같아 이렇게 포스팅해봅니다.

 

명령어를 실행하면 부팅하더라도 자동 적용되기 때문에 후속작업이 필요없습니다.

조회 

# iptables -L 

모든 목록을 조회 가능하지만 너무 복잡해보인다. 원하는 것들을 필터링 하기 위해 옵션을 더 해보자.

iptablse -t nat -L POSTROUTING  -vn

-t 옵션 : 타입(테이블)을 넣을 수 있다.  iptables에는 여러 타입이 있다.  raw,mangle,nat,filter 있고   각 마다 체인이 있다. 등록할때 확인하고 등록하도록 하자.

-vn 옵션:  도메인으로 보이는 것을  아이피로 보이게 해준다.

 

형식 :iptables [테이블] [액션] [체인] [매치] [-j 타겟]

테이블

액션 : 

-A : ADD : 정책 추가 

-D : DELETE : 정책 삭제

-R : REPLACE : 정책 교체

-F : FLUSH : 모든 정책 삭제

-P : POLICY : 기본 정책을 설정

-L : LIST : 정책 나열

 

 

매치 

-p : 프로토콜 이름이나 숫자  ex) tcp, udp, 이외 이름 또는 22,80,8080

-s :  출발지 (source)

-d : 목적지 (destination)

-i :  입력 인터페이스

-o : 출력 인터페이스

--sport : 출발지 포트

--dport : 목적지 포트 

--tcp-flags :  tcp 플래그

--syn   :    sym 플래그

-j  :   규칙 ( DROP, REJECT, ACCEPT,LOG, RETURN)

-t : 처리될 테이블 (defualte: filter)

-v : 자세한 주소 출력

--line-numbers : 줄번호 출력

-m : 특정모듈  사용 

--state : 연결상태

--string : 어플리케이션 계층 데이버 바이트 순서

--command :  주석

 

 

 

 

 

iptables 규직을 저장/ 복원

저장

iptables-save > table.bak

복구

iptables-restore < table.bak

 

 

 

예제

기본정책 ACCEPT로 설정 

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

 

기본정책 DROP로 설정

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

 

루프백 허용

iptables -A INPUT -i lo ACCECT

 

특정 IP허용

iptables -A  INPUT -s xxxx.xxx.xxx.xxx -j ACCEPT

 

특정 IP 차단

iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

 

 

사설 IP 차단

iptables -A INPUT -s 10.0.0.0/8 -j DROP

iptables -A INPUT -s 172.16.0.0/16 -j DROP

iptables -A INPUT -s 192.168.0.0/16 -j DROP

iptables -A INPUT -s 244.0.0.0/4 -j DROP

 

주요 서비스 허용 ( http,ftp,mysql)

iptables -A INPUT -p tcp --dport 20 -j ACCEPT

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

 

뒤에 따라오는 연결은 허용

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

SYN 패킷이 아닌 것만 허용

iptables -A INPUT -p tcp !  --syn -m state NEW -j DROP