본문 바로가기
SW/IPTABLES

IPTABLE 정리

by bigju 2021. 10. 5.

IPTABLES??

 - 커널의 IP 패킷 필터링(Packet Filtering) 기능을 하는 Netfilter에 규칙을 설정하고 관리하는 도구
 - '체인(Chain)'이라고 불리는 방향성을 가진 '규칙(Rule)'을 연결한 테이블(table)이다.

체인의 종류(기본)

(체인은 규칙을 묶는 용도일뿐, 중요한 것은 규칙이다. 체인은 삭제 추가 변경 가능.)

 - INPUT       : 서버로 들어오는(INCOMING) 패킷에 대한 규칙을 관리한다.

 - OUTPUT    : 서버에서 외부로 나가는(OUTGOING) 패킷에 대한 규칙을 관리한다.

 - FORWARD : 다른 서버에게 패킷을 전달하는 규칙을 관리 한다.

 방화벽 설정 순서

1 각 체인의 기본 정책(policy) 설정

2 체인에 규칙 추가



타겟 

체인에 설정된 규칙에 부합하는 패킷이 어떻게 처리가 될 것인지를 결정한다.

  - ACCEPT (허용)

  - DROP   (차단)
옵션

  - A : 지정한 체인의 마지막 규칙을 추가 (Append)

  - D : 지정한 체인에서 규칙을 삭제 (Delete)

  - P : 지정한 체인의 정책을 변경 (Policy)

  - L [체인]: 규칙 리스트를 확인 (List)

  - N [체인]: 지정한 이름으로 사용자 정의 체인을 생성 (New)

  - X [체인]: 지정한 사용자 정의 체인을 삭제

  - I : 규칙 번호를 지정해 규칙을 삽입

  - F [체인] : 지정한 체인 내 규칙을 모두 제거

  - t [체인] : 테이블을 지정

  - v : 상세 내용을 표시

  - n : 숫자 값으로 표시

  - --line-numbers : 규칙 번호를 표시

규칙

  - s : 출발지 IP 주소

  - d : 목적지 IP 주소

  - --sport : 출발지 포트 번호

  - --dprot : 목적지 포트 번호

  - j : 사용할 대상

  - p : 프로토콜

  - i : 입력 인터페이스

  - o : 출력 인터페이스

  - -m state --state : 상태 패킷 상태(ESTABLISHED, NEW, RELATED, INVALID)

=============================================명령어

 # iptables -nL                       // 숫자로 표시 확인  anywhere --> 0.0.0.0/0 

# iptables -nL --line-numbers    // 각각의 규칙에 행번호를 보여주는 옵션. --line-numbers


# iptables -vnL --line-numbers    // 상세하게 출력 옵션 -v

# iptables -F                       //모든 정책 다 날리기

# iptables -A INPUT -p TCP --dport 22 -j ACCEPT     INPUT Chain의 22포트를 허용해준다.

# iptables -A [INPUT] -p [protocol] --[s|dport] [number] -j [target]

============================= 로그 기록

기본적으로 생성되는 커널 로그 파일은 /var/log/messages에 저장 
 iptables 체인을 통과한 패킷에 로그를 기록

# iptables -A [체인] [옵션] -j LOG

# iptables -I INPUT 1 -j LOG                                       // 전부다 로그를 찍겠다는 의미. ( 1번째출로 -I 옵션 Insert 삽입 )

# cat /var/log/messages

INPUT 체인을 통과하는 패킷의 목적지 포트가 8080번이면 로그를 기록한다.  -> 접두사 : "INPUT 8080 :"

# iptables -I INPUT 1 -p tcp --dport 8080 -j LOG --log-prefix "INPUT 8080 :"

댓글

메인으로가기


    

Big Ju

IT Engineer


항상 답을 위해 노력하는

엔지니어입니다.

 

 

    


 UP!