본문 바로가기
IT/리눅스

리눅스 iptables 알아보기

by IT 과학정복 2024. 1. 31.
반응형

리눅스에서는 기본적으로 방화벽 역할을 하는 iptables라는 도구를 제공해 줍니다.

네트워크 상에서 들어오고 나가는 트래픽을 제어하여 시스템을 보호하는 역할을 합니다. 

패킷 필터링 방화벽 규칙을 설정하거나 NAT(네트워크 주소 변환)를 구현하는 데 사용됩니다.

 

iptables에는 여러 개의 체인이 있는데, 각 체인은 특정한 트래픽 유형을 담당합니다.

반응형

 

예를 들어, INPUT 체인은 시스템으로 들어오는 트래픽을 제어하고,

OUTPUT 체인은 시스템에서 나가는 트래픽을 제어합니다.

 

 

iptables 규칙을 알아보겠습니다.


iptables  [옵션]   [체인]   [조건]   [동작]


  • [옵션] : 규칙을 추가(-A), 삭제(-D), 변경(-I), 순서 변경(-R), 체인 활성화(-E), 체인 비활성화(-D) 등의 작업을 지정합니다.
  • [체인] : 규칙을 적용할 체인을 지정합니다.
  • [조건] : 트래픽을 허용하거나 차단할 조건을 지정합니다.
  • [동작] : 허용(ACCEPT), 차단(DROP), 거절(REJECT) 등의 작업을 지정합니다.

iptables 규칙의 조건은 다음과 같은 정보를 지정할 수 있습니다.

  • 인터페이스 : 트래픽이 이동하는 네트워크 인터페이스를 지정합니다.
  • 소스 IP 주소 : 트래픽의 출발지 IP 주소를 지정합니다.
  • 대상 IP 주소 : 트래픽의 도착지 IP 주소를 지정합니다.
  • 포트 : 트래픽의 포트를 지정합니다.
  • 프로토콜 : 트래픽의 프로토콜을 지정합니다.

iptables 규칙의 조건 정보

 

이 규칙은 '테이블'에 저장되며, 각 테이블은 특정 유형의 패킷 처리를 위한 것입니다. 

iptables에는 기본적으로 filter, nat, mangle, raw, security의 5가지 테이블이 있습니다.

1. Filter : 기본 테이블로, 패킷을 수락하거나 거부하는 일반적인 규칙을 포함합니다.
2. NAT : 네트워크 주소 변환(NAT) 규칙을 포함합니다. 이는 주로 IP 주소를 변환하는 데 사용됩니다.
3. Mangle : 패킷의 서비스 옵션을 변경하는 규칙을 포함합니다.
4. Raw : 패킷을 추적하기 전에 조작해야 하는 규칙을 포함합니다.
5. Security : SELinux 보안 컨텍스트에 관련된 규칙을 포함합니다.

 

iptables의 각 테이블은 '체인'이라는 여러 시퀀스로 구성됩니다. 

체인은 패킷이 시스템을 통과하는 경로를 정의합니다. 

기본적으로, iptables는 INPUT, FORWARD, OUTPUT의 세 가지 기본 체인을 가지고 있습니다.

 

  • INPUT : 시스템으로 들어오는 패킷을 처리합니다.
  • FORWARD : 시스템을 통과하는 패킷을 처리합니다.
  • OUTPUT : 시스템에서 나가는 패킷을 처리합니다.

iptables의 규칙은 패킷의 소스 IP, 목적지 IP, 포트, 프로토콜 등과 같은 

여러 속성에 따라 패킷을 처리하는 방식을 정의합니다. 

 

규칙은 일치하는 경우에만 적용되며, 패킷이 여러 규칙과 일치하는 경우 

첫 번째로 일치하는 규칙이 적용됩니다.

 

 

 

iptables 사용법 

 

1. 정책 명령어

  • 규칙 추가 : iptables -A  [체인]  [조건]  [동작]
  • 규칙 삭제 : iptables -D [체인]  [규칙 번호]
  • 규칙 변경 : iptables -I  [체인]  [규칙 번호]  [조건]  [동작]
  • 규칙 순서 변경 : iptables -R [체인]  [규칙 번호]  [새로운 규칙 번호]
  • 체인 활성화 : iptables -E  [체인]
  • 체인 비활성화 : iptables -D  [체인]

2. 관리 명령어

  • 규칙 목록 확인: iptables -L
  • 규칙 세부 정보 확인: iptables -L [체인]
  • 규칙을 파일로 저장: iptables-save
  • 파일에서 규칙을 불러오기: iptables-restore

 

iptables 규칙 적용 예시

  • 모든 트래픽을 허용합니다.

iptables -A INPUT -j ACCEPT

 

 

  • 특정 IP 주소에서 들어오는 트래픽을 허용합니다.

iptables -A INPUT -s 192.168.1.1 -j ACCEPT

 

 

  • 특정 포트로 들어오는 트래픽을 허용합니다.

iptables -A INPUT -p tcp --dport 8022 -j ACCEPT

 

  • 특정 프로토콜을 사용하는 트래픽을 허용합니다.

iptables -A INPUT -p icmp -j ACCEPT

 

 

오늘은 리눅스의 방화벽 역할을 하는 iptables에 대해 알아보았습니다.

iptables에 잘 설정할 수 있다면 리눅스를 더욱 안전하게 사용할 수 있으므로,

한 번쯤 서버단에서 실습을 해보는 것을 추천드립니다.

반응형

'IT > 리눅스' 카테고리의 다른 글

리눅스 부팅(시작과 종료과정)  (0) 2024.02.18
리눅스를 알아보기  (0) 2024.02.10
리눅스 쉘(shell)을 알아보자  (1) 2024.01.30
[squid] proxy 서버 쉽게 만들기  (0) 2024.01.21
let's encrypt 인증서 발급 및 적용  (0) 2024.01.21