kjh00n의 기록저장소

iptables 확장 모듈 본문

시스템 보안 구축

iptables 확장 모듈

kjh00n 2024. 11. 12. 16:16

[-m] 확장모듈명(multiport, iprange, limit, state,string)

 

1. multiport (복수의 port 지정)

→ port번호 적기 전에 -m multiport 적고 --dport에 s를 붙여 --dports, --sport로 입력하면 된다.

 

iptables -t filter -A FORWARD -p tcp -m multiport --dports 21,50000:50005 -s 192.168.50.1 -d 20.20.20.1 -j ACCEPT

2. iprange (ip주소의 범위 지정)

→ -m iprange 적고 출발지는 --src-range로 목적지는 --dst-range로 설정해 주면 된다.

 

iptables -A FORWARD -p icmp -m iprange --src-range 10.10.10.1-10.10.10.20 -d 192.168.50.2 -j ACCEPT
iptables -A FORWARD -p icmp -m iprnage --dst-range 10.10.10.1-10.10.10.20 -s 192.168.50.2 -j ACCEPT

3. limit (시간을 지정하여 해당 시간 동안의 횟수를 조건으로 지정)

-m limit --limit-burst 10 --limit 5/m

 

→ 5/m은 분당 5회(minute, second, hour도 가능) 발생

→ 5/m은 12초에 1개의 log를 기록하는데 12초가 지나면 5개의 log 중에 1개는 사라지고 공간이 남는다.

또 12초 뒤에는 1개의 공간이 남는다. 그러면 log는 3개가 기록되어 있고 그 뒤에 log가 기록되면 4개가 기록되는 형식

→ burst는 뒤에 있는 5/m을 무시하고 10번은 제한 없이 실행한다.

→ LOG에 주로 사용

→ burst는 사용 안 해도 된다

 

iptables -I FORWARD 1 -p icmp -s 10.10.10.1 -d 8.8.8.8 -m limit --limit-burst 10 --limit 5/m -j LOG --log-prefix "client 8.8.8.8"

→ 10번은 제한 없이 LOG를 남기고 그 후로는 분당 5번만 LOG를 남기겠다.

4. state (통신의 상태에 따라 조건을 지정하고 싶은 경우에 사용)

-m state --state [상태]

 

→ 통신의 시작, 중간, 잘못된 데이터 등을 조건으로 허용, 차단한다.

client가 server에 syn을 보내는 것이 정상이지만 server가 client에게 syn를 보내는 것은 비정상이다.

 

state 상태

NEW : 통신의 시작 상태 (통신 시작 요청 데이터)

ESTABLISHED : 통신 중간 상태 (통신 시작 요청 데이터 이후의 데이터)

RELATED : 기존 연결 중에 새로운 연결을 시작 (거의 사용 X)

INVALID : 비정상적인 데이터 발생했을 때 사용한다.

 

client → server = NEW와 ESTABLISHED는 허용해야 한다.

 

server → client = ESTABLISHED만 허용해야 한다.

iptables -t filter -A FORWARD -p tcp --dport 21 -s 10.10.10.1 -d 20.20.20.1 -m state --state NEW,ESTABLISHED -j ACCEPT

→ client가 server에게 통신의 시작과 중간에 보낼 수 있다.

 

iptables -t filter -A FORWARD -p tcp --sport 21 -s 20.20.20.1 -d 10.10.10.1 -m state --state ESTABLISHED -j ACCEPT

→ server가 client에게 통신의 중간만 보낼 수 있다. 먼저 통신을 시작할 수 없다.

5.  string

7계층 protocol에서 발생하는 text 데이터 중 원하는 글자를 검색하여 조건으로 지정

 

-m string --algo bm(보이어 무어) --string "[검색할문자]"

 -m string --algo kmp(케네스 프랫 모리스)  --string "[검색할문자]"

iptables -I FORWARD 1 -p tcp --dport 21 -s 10.10.10.1 -d 20.20.20.1 -m string --algo kmp --string "hello" -j LOG --log-prefix "[ftp hello access]"

'시스템 보안 구축' 카테고리의 다른 글

실습  (0) 2024.12.13
실습  (0) 2024.11.14
네트워크 방화벽 구축  (0) 2024.11.12
방화벽 실습  (0) 2024.11.11
★tables, chain  (0) 2024.11.11