본문 바로가기
CS & Reversing

[정보보안] Iptable 명령어 이해

by m_.9m 2022. 3. 5.

1. 개념

 

iptable은 리눅스에서 방화벽 정책을 수립할 수 있는 도구로 Netfilter Projecti라는 곳에서 C언어로 만들어진 패킷 필터링 서비스이다. 직접적인 패킷 필터링은 Netfilter라는 모듈에서 담당을 하며 iptable은 룰을 관리하는 역활을 합니다. 

 

  • iptable은 리눅스에서 특정 패킷을 분석해 패킷을 차단하거나 허용할 수 있습니다.
  • 패킷 필터링 정책을 수립하여 적용합니다.

체인이란 서버로 들어오기 전에 거치는 통로같은 곳으로 접근 제어를 설정하는 곳입니다.

- INPUT: 외부 > 내부

- OUTPUT: 내부 > 외부

- FORWARD: 모든 패킷, 라우터에 방화벽을 적용할 때 쓰인다.

 

2. 명령어 구조

 

iptables[ -t table] command [match] [target\jump]

[옵션]

 

A: 규칙 추가

N: 새 체인 생성

X: 체인 제거

P: 체인 기본정책 변경

L: 체인의 규칙상태 보기(방화벽 룰셋 적용 확인)

F: 체인 내 모든 규칙 제거(방화벽 초기화)

Z: 체인 내 모든 규칙 패킷과 바이트의 카운트를 0으로 초기화

D: 규칙 삭제

R: 새 규칙으로 대체

I: 체인 가장 처음에 규칙 추가

E: 체인 이름 변경

 

 

3. 예제 

 

 

1) iptables로 201.1.1.1로 접근하는 특정 IP 차단하시오.

iptables -A INPUT -d 201.1.1.1 -j DROP

iptables 규칙추가 / 들어오는 패킷 / -d / 주소 / -j 어떻게 처리할지 / 거부

 

-D/ -S

[!] --source -s address[/mask][...] source specification

[!] --destination -d address[/mask][...] destination specification

 

-J 옵션

ACEEPT/ REJECT(거부메세지)/ DROP(그냥 차단)

 


 

2) iptable에서 사용자 PC에서 DNS 서버로 연결되는 포트를 차단하시오.

iptables -A INPUT -p udp -m udp --dport 53 -j DROP

iptables 규칙추가 / 들어오는 패킷 / (udp로 들어오는) 특정 프로토콜 설정/ 특정 포트/ 거부

DNS는 udp/tcp 53 포트를 사용한다

일반 질의 응답, 네임 서버 질의은 UDP 53, 동기화 등 특정 설정에 TCP 53 사용.

 

3)  iptable에서 DNS를 사용하는 모든 서비스를 차단하시오.

iptables -A FORWORD -p udp -m udp --dport 53 -j DROP

 

 

*더 많은 예시가 담긴 글

https://itragdoll.tistory.com/1

 

[Linux] 리눅스 방화벽 Iptables 사용 예시

■ NULL 패킷 차단 ---> (Scanning) TCP NULL Scan NULL 패킷은 정찰(Scanning) 패킷으로 서버설정의 약한 곳(Port scan)을 찾기위한 방법으로 사용된다. # iptables -A INPUT -p tcp --tcp-flags ALL NON..

itragdoll.tistory.com