글을 쓰기 앞서 이곳을 참조하여 공부했습니다. 

(틀린 내용이 있을 수 있으니 지적해주시면 바로 반영하겠습니다.)

 

Q. iptables 가 뭔가요?

 

보통 데스크탑에서 자주 사용하는 운영체제인 Windows에 방화벽🧱 이 있듯이 

Linux 에도 iptables 라는 방화벽 기능이 있습니다.  ( Linux Kernel v2.4 이전에는 ipchains로 사용되었습니다. )

 

Legacy : iptables

Cloud : Security Group

Container : Network Policy

 

Q. iptables 가 뭘하나요?

 

iptables 기능은 Kernel 상에서 netfilter 라는 패킷필터링 기능을 사용자 공간에서 사용할 수 있게 해줍니다.

기본적으로 Network Device 에 설정값으로 Kernel 이 패킷들을 필터링을 하지만 인위적으로 필터링할 패킷들을 설정하기 위해 사용할 수 있습니다.

 

Q. 패킷필터링은 뭔가요?

 

Kernel 이 수신하는 트래픽 (패킷) 의 헤더를 보고 그 전체 패킷의 방향을 결정하는 것을 말합니다.

일반적으로 패킷은 헤더데이터를 가지고 있습니다.

UDP Header

UDP 프로토콜의 헤더 입니다. ( 이외에도  TCP, IP , ARP, ... 등의 프로토콜 헤더가 있습니다. 여기 참조)

Destination Port 를 확인하여 패킷의 목적지로 확인되면 패킷을 허용(ACCEPT) 합니다.

 

Q. iptables 를 어떻게 사용하나요?

 

iptables 는 특정 패킷필터링을 하기 위해 정책을 설정해주어야 합니다. 

현재 Server 를 기점으로  

  INPUT  : Server 로 들어오는 트래픽 정책

  OUTPUT : Server로부터 나가는 트래픽 정책

  FORWARD : Server가 트래픽을 전달하는 트래픽 정책

 

 

마스커레이드 (Masquerade)
 - 내부 사설 IP의 PC들이 외부 인터넷이 연결 가능하도록 해주는 기능

 

NAT (Network Address Translation) : 네트워크 주소 변환 서비스
 - SNAT (Source NAT) : 내부 사설IP에서 외부로 나갈 때 공인IP로 변환 
 - DNAT (Destination NAT) : 외부에서 방화벽(외부IP)으로 요청되는 주소로 내부사설IP로 변환

 

 

일반적으로 INPUT 정책은 보안에 큰 영향을 주기 때문에 안전한 정책을 설정해주어야 하지만

OUTPUT 정책의 경우는 대부분 수신한 곳으로 응답을 해주는 역할이기 때문에 큰 영향이 없다.

 

정책 

 -  ACCEPT  (허용)

 -  DROP      (폐기)

 - REJECT   (거부)

Command
 규칙 추가
    iptables  -A  INPUT -s [발신지]  --sport [발신지 포트] -d [목적지]  --dport [목적지 포트]  -p [프로토콜] - j [정책] 
   
 규칙 제거
    iptables -D INPUT -s [발신지] --sport [발신지 포트] -d [목적지] --dport [목적지 포트]  -p [프로토콜]  - j [정책]

https://linuxstory1.tistory.com

정책에는 순서가 있으며 내림차순으로 우선 적용됩니다.

따라서, 정책 설정 시  순서에 유의하여 작성해야 합니다.

# 규칙 변경 후 저장
service iptables save    => /etc/sysconfig/iptables 에 저장됩니다.

iptables -L   # 현재 규칙 확인
iptables -F   # 현재 규칙 초기화

 

 

다양한 명령어 활용은 아래를 참조하세요.

trimstray's github
gabia's blog

 

 

 

 

 

 

'📡Network' 카테고리의 다른 글

Load Balancer  (0) 2022.12.11
IP Class , NAT  (0) 2022.08.14
IP  (0) 2022.08.14

+ Recent posts