개요
- 패킷 필터링 기능을 가지고 있는 리눅스 커널에 내장된 툴
- Rule 기반의 패킷 필터링 기능 제공
- 상태 추적(Connection Tracking 또는 Stateful Inspection) 기능 제공
- 방화벽을 통과하는 모든 패킷에 대한 연결 상태를 트래킹하여 이 정보를 메모리에 기억하고 있다가 기존연결을 가장하여 접근할 경우, 메모리에 저장된 정보와 비교해 적합하면 통과하고, 아니면 거부하는 기능
- Stateful Inspection 방화벽은 이스라엘 체크포인트사에서 최초 개발한 방화벽 구조
- 위조된 패킷을 차단할 수 있어 보안상의 장점을 가지고, 연결된 상태의 패킷은 더 이상 패턴 매칭 검사를 수행하지 않으므로 성능상의 장점을 가짐
용어
- Table : iptables가 제공하는 기능을 의미
- Chain : 패킷이 이동하는 경로를 의미
- INPUT Chain : 방화벽을 최종 목적지로 하는 체인
- OUTPUT Chain : 방화벽을 최초 출발지로 하는 체인
- FORWARD Chain : 방화벽을 경유하는 채널 의미.
- rule : 패킷을 필터링하기 위한 룰
사용법
기본 구문
- 형식) iptables [테이블] [체인] [룰] [타켓]
Chain 설정
- 형식) iptables -[A | I | D]
A : Append 모드. 해당 체인 제일 마지막에 룰 추가
I : Insert 모드
D : delete 모드
Rule 설정
IP/ICMP/TCP/UDP 모두 호스트를 식별하기 위해서 IP를 이용함 | 1) -s IP 또는 IP대역 : 출발지 IP. 명시하지 않으면 any 2) -d IP 또는 IP대역 : 목적지 IP. 명시하지 않으면 any |
TCP/UDP의 경우 포트 번호를 통해 서비스를 식별함 | 1) --sport [포트 번호] --sport 1024: --> 1024 이상 --sport :65535 --sport 1:1023 2) --dport[포트 번호] |
ICMP의 경우 타입과 코드를 통해서 메시지를 식별함 | 1) --icmp-type [메시지타입] : 메시지 타입 명시 --icmp-type echo-request : ICMP Echo Request 메시지를 의미 |
TCP 패킷 행동 유형에 따른 필터링 룰 설정으로 다음의 모든 옵션은 TCP 프로토콜(-p tcp) 옵션이 먼저 선행되어야 함 | 1) --tcp-flags [검사할 플래그 리스트] [설정되어야할 플래그 리스트] --tcp-flags SYN,FIN SYN,FIN : SYN,FIN 플래그만 검사해서 SYN,FIN플래그가 설정된 패킷을 탐지함.(SYN,FIN만 검사하니까 SYN,FIN외에 다른 플래그 설정값 있어도 탐지됨) --tcp-flags ALL SYN,FIN : 모든 플래그(ALL) 검사해서 SYN,FIN만 설정된 패킷을 탐지.(ALL이 검사대상이니 SYN, FIN만 설정된 패킷만 탐지됨) |
2) -m state --state [탐지할 상태] -m state : 확장 기능 중 TCP 상태(state) 기능을 사용한다는 의미 --state [탐지할 상태] : 탐지할 상태에는 NEW, ESTABLISHED, RELATED, INVALID가 있음 |
Target 설정
- 형식) -j [정책] : 룰에 매치될 떄 적용할 정책을 지정
-j ACCEPT : 해당 패킷을 허용
-j DROP : 해당 패킷을 차단한 후 아무런 응답 메시지도 전송안함(보안상 DROP이 적절)
-j REJECT : 해당 패킷을 차단한 후 ICMP 에러메시지로 응답
-j LOG : 탐지로그를 남김(/var/log/messages)
'정보보안기사&CISSP관련 > 보안장비 운영' 카테고리의 다른 글
[Day 253] WAF(Web Application Firewall) (0) | 2021.04.19 |
---|---|
[Day 108] iptables (2) - 상태 추적, 확장 모듈(connlimit, limit) (0) | 2020.11.26 |
[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 |