728x90
반응형

 

 

개요

  • Linux kernel에 내장된 netfilter 기능을 관리하기 위한 툴로 rule기반의 패킷 필터링 기능
  • 주요 기능으로 Filtering, Logging, NAT, Forwarding 등의 기능 제공

 

 

rule 구조

 # iptables [command] [chain] [rule option] [target]



예시
iptables -A INPUT -p TCP --dport 80 -j DROP

 

 

 

command

  • rule에 대한 생성, 수정, 삭제, 삽입 시 사용
명령어 설명
-N (--new-chain) 새로운 체인을 만듬
-L (--list) 설정된 규칙을 출력
-A (--append) 새로운 규칙을 추가(맨아래)
-I (--insert) 새로운 규칙을 삽입(맨 앞쪽)
-F (--flush) 체인의 모든 규칙을 삭제
-D (--delete) 규칙을 삭제
-X (--delete-chain) 비어있는 체인 삭제
-R (--replace) 새로운 규칙을 교체
-P (--policy) 기본 정책을 변경
-C (--check) 패킷을 테스트

 

 

chain

  • 패킷 이동 방향에 따른 설정
정책 설명
INPUT 외부에서 내부로 이동 시 정책 설정 
FORWARD 해당 서버의 경유가 필요한 경우 정책 설정 
OUTPUT 내부에서 외부로 이동 시 정책 설정

 

 

 

rule option

  • rule 정책 설정 시 사용
정책 설명
-s (--source) 출발지 주소 (address/mask)
-d (--destination) 목적지 주소
--sport 출발지 포트
--dport 목적지 포트
-p (--protocol) 프로토콜 (tcp, udp, icmp ... )
-i (--in-interface) 패킷이 들어오는 네트워크 인터페이스
-o (--out-interface) 패킷이 나가는 네트워크 인터페이스
-f (--fragment) 세분화된(fragment) 패킷
-j (--jump) 규칙에 맞는 패킷을 어떻게 처리할 것인가를 명시

 

 

target

  • 패킷에 대한 수신/차단 등의 정책 설정
정책 설명
ACCEPT 패킷을 수신
DROP 패킷을 차단 후 응답 없음
REJECT 패킷을 차단 후 응답 패킷 전송
LOG 패킷 기록만 수행(syslog)

 

 

 

iptables 예시

현재 iptables 정책 목록 확인

# iptables -L

 

현재 iptables  1 정책 제거

# iptables -D INPUT 1

 

현재 iptables 정책 초기화

# iptables -F

 

규칙 추가 저장 (*제일 중요)

# service iptables save

 

tcp 프로토콜 패킷 모두 허용
# iptables -A INPUT -p TCP -j ACCEPT
 

192.168.0.10 icmp 패킷 차단

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

 

80 포트를 향하는 tcp 패킷 차단

# iptables -A INPUT -p TCP --dport 80 -j DROP

 

22~30 포트의 tcp 패킷 차단

# iptables -A INPUT -p tcp --dport 22:30 -j DROP

 

imap 서비스를 192.168.0.0 대역 허용 새 정책 설정

# iptables -I INPUT -s 192.168.0.0/255.255.255.0 -p udp --dport 143 -j ACCEPT

# iptables -I INPUT -s 192.168.0.0/24 -p udp --dport 143 -j ACCEPT

 

포트 80 -> 8880으로 교체

# iptables -R INPUT 2 -p tcp --dport 8880 -j ACCEPT

 

ip-access_log 파일에 있는 모든 ip의 모든 접속 포트를 차단 (여러 IP에 대한 차단 시 유용)

# cat ip_access_log | awk '{print $1}' | sort | uniq | awk '{print "iptables -A INPUT -s "$1" -j DROP"}' | /bin/bash

 

 

728x90

'*Security > [ SO ] 보안 솔루션' 카테고리의 다른 글

[SO - 04] TCP Wrapper 실습  (0) 2022.01.10
[SO - 03] TCP Wrapper 개요  (0) 2022.01.06
[SO - 02] Router ACL 실습 (Cisco)  (0) 2021.12.29
[SO - 01] Router ACL 개요(Cisco)  (0) 2021.12.28

+ Recent posts