상태 유형
- NEW : 최초로 들어온 패킷 상태. 상태추적 테이블에 정보 없고 TCP의 경우 SYN 패킷이 해당됨
- ESTABLISHED : 상태추적 테이블에 연결정보를 갖고 있는 상태. 연결된 이후 송수신 패킷은 전부 이 상태
- RELATED : 상태추척 테이블에 연관된 연결정보를 가지고 있는 패킷 상태. FTP 프로토콜이 해당. Active mode는 21/tcp로 제어채널 형성 후 20/tcp로 데이터채널 형성하는데 데이터채널로 송수신되는 패킷은 모두 RELATED 상태가 됨
- INVALID 상태 : 연결상태를 알 수 없거나 잘못된 헤더정보를 갖고 있어서 어떤 상태에서 해당 안되는 패킷
프로토콜별 상태 유형
TCP 프로토콜 상세
- SYN이 보이면 NEW 상태가 됨
- SYN+ACK가 보이면 ESTABLISHED 상태가 되고, 마지막 ACK 받기 전까지 상태유지
UDP 프로토콜 상세
- 비연결 프로토콜이라 연결상태정보 없음
- UDP패킷이 들어올때마다 TTL 유지되는 동안 ESTABLISHED 상태로 봄
상태 추적 Rule 설정 예시
위조된 TCP SYN 패킷을 차단하기 위한 룰 설정
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
--> inbound TCP 패킷의 상태가 NEW이면서(--state NEW) SYN 플래그가 설정되지 않은(! --syn) 비정상패킷을 차단( -j DROP)
FTP Active Mode 상태추적 기능 테스트
iptables -A INPUT -m state --state NEW -p tcp -dport 21 -j ACCEPT
--> INPUT 체인에 대해 TCP 21번 포트에 대한 연결 요청 허용
iptables -A OUTPUT -m state --state ESTABLISHED, RELATED, -j ACCEPT
--> OUTPUT 체인에 대해 ESTABLISHED, RELATED 상태의 패킷을 모두 허용
iptable 확장 모듈
connlimit 모듈
- 동일한 IP 또는 IP 대역의 동시 연결 개수에 대한 제한(디도스 공격 대응 목적)
iptables -A INPUT -p tcp --syn --dport 80 -m --connlimit-above 5 -j DROP
--> TCP 80 포트 요청에 대해 동일 출발지 IP로 동시 연결 개수가 5개 초과시(--connlimit-above 5) 이를 차단
limit 모듈
- snort threshold와 유사하게 룰에 매치되는 비율 제한
iptables -A INPUT -p tcp --tcp-flags ALL SYN, FIN -m --limit 6/minite -j LOG
--> TCP 패킷의 모든 플래그를 검사해서 SYN, FIN 플래그만 설정되어 있는 비정상패킷을 분당 최대 6개까지 로그에 남김
iptables -A INPUT -p tcp --tcp-flags ALL SYN, FIN -j DROP
--> TCP 패킷의 모든 플래그를 검사해서 SYN, FIN 플래그만 설정되어 있는 비정상패킷을 차단
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
--> TCP 패킷의 모든 플래그를 검사해서 플래그가 설정되지 않은 비정상패킷을 차단
'정보보안기사&CISSP관련 > 보안장비 운영' 카테고리의 다른 글
[Day 253] WAF(Web Application Firewall) (0) | 2021.04.19 |
---|---|
[Day 107] iptables (1) (0) | 2020.11.25 |
[Day 106] snort rule(5) - Flooding 계열 공격 탐지 (0) | 2020.11.24 |
[Day 105] snort rule(4) - 비정상 패킷 탐지 (0) | 2020.11.23 |
[Day 104] snort rule(3) - 공격 탐지 (0) | 2020.11.22 |