선릉역 1번 출구

iptables 본문

Computer/Network

iptables

choideu 2023. 7. 17. 09:53

1. chain

iptables -[A|I|F|D] [체인]

옵션
A(append) 제일 마지막에 룰 추가
I(insert) 체인의 첫 행에 룰 추가
D(delete) 룰 삭제 -d n: 특정 위치 룰 삭제
F(flush) 규칙 초기화
- iptables -F
chain
INPUT 서버로 들어오는 정책
FORWARD 서버에서 포워딩 시 기본 정책
OUTPUT 서버에서 나가는 정책

 

2. 제어 옵션(기본)

제어 옵션
-s 송신지 제어
-d 수신지 제어
-p 프로토콜 제어
--sport 송신지 포트 제어
--dport 수신지 포트 제어

ex) iptables -A INPUT -s 192.168.10.0 -p tcp -j DROP

 

3. 부가 옵션

부가 옵션
--icmp-type [메시지 타입] ICMP의 타입과 메세지 코드를 통해 메시지 식별
ex) --icmp -type echo-reply
--tcp-flags [검사할 플래그 리스트][설정 플래그 리스트] 플래그 값 확인
-m state --state [탐지할 상태] 확장 기능 중 tcp 상태 기능을 사용한다는 의미
ex) -m state --state NEW
NEW: 최초로 들어온 패킷의 상태
ESTABLISHED: 상태 추적 테이블에 연결정보를 가지고 있는 패킷의 상태
RELATED: 상태 추적 테이블에 연관된 연결정보를 가지고 있는 패킷의 상태
INVALID: 어떤 상태에도 해당되지 않는 패킷 상태

 

4. target

옵션
-j ACCEPT 해당 패킷을 허용
-j DROP 해당 패킷 차단 
-j REJECT 해당 패킷 차단 & ICMP 에러 메시지 응답
-j LOG 탐지 로그를 남김 /var/log/messages

 

예시 참고 사이트

https://5log.tistory.com/190

 

방화벽 ( Firewall ) _ iptables ( 패킷 필터링 )

- 관련 용어Firewall ( 방화벽 )IPS ( 칩입 차단 시스템 )IDS ( 침입 탐지 시스템 )각 서비스 Wall (EX: 웹 방화벽 ( WAF ), 스팸 차단 시스템 ) Client -- Firewall -- IPS/IDS -- WAF --> WEB Server - 방화벽 설정 툴의 종류

5log.tistory.com

 

5. 확장 모듈

connlimit 모듈: 동일한 IP 또는 IP 대역의 동시 연결 개수에 대한 제한

-m connlimit --connlimit-above 로 많이 사용함

ex) iptables -A INPUT -p tcp --syn -flags ALL SYN, FIN -m connlimit --connlimit-above 5 -j DROP

TCP 패킷의 모든 플래그를 검사해서 SYN, FIN 플래그만 설정되어 있는 패킷 중 동일 출발지 IP로 동시 연결 개수 5개 초과시 차단

 

limit 모듈: snort threshold와 유사한 룰로 매칭 제한

-m limit --limit 6/minute

 

recent 모듈: 목적지 아이피로 들어오는 패킷

-m recent --update --seconds [초] --hitcount [횟수]

 

connlimit
connlimit은 특정 IP 주소에서 특정 포트로 들어오는 연결 수를 제한하는 옵션입니다. 예를 들어, 특정 IP 주소에서 특정 포트로 들어오는 연결 수를 10개로 제한하려면 다음과 같이 명령을 입력합니다.
iptables -A INPUT -p tcp --dport 80 --connlimit 10 -j DROP
이 명령은 특정 IP 주소에서 특정 포트로 들어오는 연결 수가 10개를 초과하면 연결을 차단합니다.

limit
limit은 특정 시간 동안 특정 IP 주소에서 특정 포트로 들어오는 패킷 수를 제한하는 옵션입니다. 예를 들어, 특정 IP 주소에서 특정 포트로 들어오는 패킷 수를 초당 10개로 제한하려면 다음과 같이 명령을 입력합니다.
iptables -A INPUT -p tcp --dport 80 --limit rate 10/s -j DROP
이 명령은 특정 IP 주소에서 특정 포트로 들어오는 패킷 수가 초당 10개를 초과하면 연결을 차단합니다.

recent
recent는 특정 IP 주소에서 특정 포트로 들어오는 패킷을 기록하는 옵션입니다. 기록된 패킷 수가 특정 값을 초과하면 연결을 차단할 수 있습니다. 예를 들어, 특정 IP 주소에서 특정 포트로 들어오는 패킷 수가 10개를 초과하면 연결을 차단하려면 다음과 같이 명령을 입력합니다.
iptables -A INPUT -p tcp --dport 80 -j recent --set --name bad_guy
iptables -A INPUT -p tcp --dport 80 -m recent --update --seconds 60 --hitcount 10 --name bad_guy --rsource -j DROP
-> 목적지 아이피로 들어오는 패킷을 bad_guy라는 테이블에 추가하고 60초 동안 10번이상 들어오면 접근을 차단함
이 명령은 특정 IP 주소에서 특정 포트로 들어오는 패킷을 기록하고, 기록된 패킷 수가 10개를 초과하면 연결을 차단합니다.

'Computer > Network' 카테고리의 다른 글

Docker keycloak 구축하기  (0) 2023.10.18
GUI & CLI 설정 반영의 차이  (0) 2023.07.18
snort  (0) 2023.07.17
DRDoS 공격 유형  (0) 2023.07.13
DNS 보안  (0) 2023.06.27
Comments