Iptables
: 리눅스 상에서 방화벽을 설정하는 도구로서 커널 2.4 이전 버전에서 사용되던 ipchains를 대신하는 방화벽 도구이다

 

iptables 설정을 위해서는 방화벽을 켜준다


Iptables 정책
: iptables 정책은 여러 구분으로 나눠지며 중요한 부분은 chain이다
chain은 패킷이 조작될 상태를 지정하며 ipchains에 내장된 기본 chain은 아래 내용과 같다

chain INPUT : 서버로 들어오는 기본 정책
chain FORWARD : 서버에서 forwarding 기본 정책( 목적지가 서버가 아닌 통과하는 chain이다 )
chain OUTPUT : 서버에서 나가는 기본 정책

iptables의 구조
iptables -A INPUT -s [발신지] --sport [발신지 포트] -d [목적지] --dport [목적지 포트] -j [정책]

iptables 설정 파일 

- 설정 파일 작업시 정책에 대한 순서를 편하게 설정할  수 있다는 장점이있다
/etc/sysconfig/iptables

파일로 들어가서 설정하기 위한 경로

iptables 기본 옵션

옵션 설명
-L 적용되어 있는 정책 목록을 출력한다
-A 새로운 정책을 추가한다( 제일 아래에 추가됨 )
-I 위치를 선책하여 정책을 삽입한다( 제일 앞에 추가됨 )
-R 위치를 선택하여 정책을 교환한다
-D 위치를 선택하여 정책을 제거한다
-N 새로운 체인을 만든다
-P 체인에 미리 정의되어 있는 정책을 수정한다
-Z 체인의 모든 규칙들의 패킷과 비이트 카운트를 0으로 만든다
-X 비어있는 체인을 제거한다

 

iptables 제어 옵션

옵션 설명
-s 패킷의 송신지를 제어한다
-d 패킷의 수신지를 제어한다
-j [옵션] 방화벽을 지난 후 패킷의 상태를 제어한다
[ 옵션 : ACCEPT, DROP, REJECT ]
-p 프로토콜을 제어한다
--sport 송진지 포트를 제어한다
--dport 수신지 포트를 제어한다

 

패킷 상세 내역에 따른 제어 옵션 명령어

명령어 설명
--tcp-flags tcp 플래그에 따라 패킷을 제어한다
-m state --state[ 상태 ] 패킷의 상태와 목적에 따라 제어한다

 

-m state --state[ 상태 ] 상태 옵션

상태 옵션 설명
-NEW 새로 접속을 시도하는 패킷
-ESTABLISHED 접속을 한 상태에 있는 패킷
-INVALID 유효하지 않은 패킷
-RELATED 접속에 연관성을 가지는 패킷

 

iptables 규칙 추가 예제

- 로컬로 들어오는 ICMP 요청에 대한 특정 호스트(192.168.0.10)의 패킷을 허용하지 않고자 할 때

 

#iptables -A INPUT -s 192.168.0.10 -p icmp -j DROP

 

iptables 규칙 제거 예제

- 위에서 만든 규칙을 제거할 때 

 

#iptables -D INPUT -s 192.168.0.10 -p icmp -j DROP

or

#iptables -D INPUT [라인 번호]

( "iptables -L --line-numbers" 명령어로 조회가능 )

 

#iptables -F INPUT

(모든 체인이 삭제된다)

 

iptables 정책 순서

- 모든 방화벽은 순차적 실행이기 때문에 등록 순서에 있어서 먼저 등록한 부분에 대해서 효력이 유효하기 때문에 등록시에는 순서가 매우 중요하다

- 모든 입출력 패킷에 대해 거부하는 설정이 먼저 등록되면 그 이후에 포트를 열어주는 설정을 하여도 효과가 없다

- 허용하는 정책을 먼저 정의한 다음 거부하는 정책을 설정해야 한다

'리눅스' 카테고리의 다른 글

Tcp Wrapper  (0) 2020.09.22
Zeroboard( 제로보드 )  (0) 2020.09.19
리눅스 APM  (0) 2020.09.18
리눅스 demon(데몬)  (0) 2020.09.18
리눅스 rpm과 yum  (0) 2020.09.18

+ Recent posts