Skip to content

minority opinions

Menu
  • Home
  • 꿀팁정리 & 자기계발
  • 기술 정보 & 테크 소식
  • 이슈 뉴스 정리
  • 주식 경제
  • Tags
Menu

리눅스 iptables 설정/옵션/예제 정리

Posted on 11월 24, 20217월 8, 2023 by Daniel J.

iptables


Linux 운영 체제에서 방화벽은 netfilter. 어떤 패킷이 들어오고 나갈 수 있는지 결정하는 커널 모듈입니다

iptables 는 netfilter 모듈을 사용하는 Linux OS 방화벽 입니다.

리눅스의 패킷 필터링(Packet Filtering) 도구로서 방화벽 구성이나 NAT(Network Address Translation)에 사용된다.

Action


  • -A : APPEND : 정책 추가
  • -I : INSERT : 정책 삽입
  • -D : DELETE : 정책 삭제
  • -R : REPLACE : 정책 교체
  • -F : FLUSH : 모든 정책 삭제
  • -P : POLICY : 기본 정책을 설정
  • -L : LIST : 정책 나열

Chain


  • INPUT
  • OUTPUT
  • FORWARD
  • PREROUTING
  • POSTROUTING

Match


  • -s : 출발지 매칭. 도메인, IP 주소, 넷마스크 값을 이용하여 표기(––source, ––src)
  • -d : 목적지 매칭. 도메인, IP 주소, 넷마스크 값을 이용하여 표기(––destination, ––dst)
  • -p : 프로토콜과 매칭. TCP, UDP, ICMP 와 같은 이름을 사용하고 대소문자는 구분하지 않음
  • -i : 입력 인터페이스와 매칭(––in-interface)
  • -o : 출력 인터페이스와 매칭(––out-interface)
  • -j : 매치되는 패킷을 어떻게 처리할지 지정 (–jump)

Target 

패킷 규칙이 일치할 때 취하는 동작 지정


  • ACCEPT : 패킷을 허용한다.
  • DROP : 패킷을 버린다(패킷이 전송된 적이 없던 것처럼)
  • REJECT : 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송한다.(icmp-port-unreachable)
  • LOG : 패킷을 syslog에 기록한다.
  • SNAT –to [주소] : 소스 IP를 [변환(NAT)|NAT]한다.
  • DNAT –to [주소] : 목적지 IP를 변환(NAT)한다.
  • RETURN : 호출 체인 내에서 패킷 처리를 계속한다.

iptables Example


  • 잦은 룰 설정, 변경등 관리적인 측면의 효율성을 위해 리눅스 스크립트 형태로 관리
  • /root/…/firewall  (chmod 755)
  • #은 주석
  • iptables-save -c >  /etc/sysconfig/iptables 현재 룰셋 저장
  • iptables-restore < /etc/sysconfig/iptables 룰셋 복구

CentOS, Ubuntu 등 버전업 되면서 OS 방화벽(iptables) 설정 구성을 다른 명령어를 써서 가능하나

개인적으로 스크립트로 처리하는게 가장 효율적이고 편함.

Linux iptables Script 일부

#!/bin/bash

# INPUT Rules
iptables -F
iptables -X

# INPUT Rules
iptables -P OUTPUT      ACCEPT
iptables -P FORWARD     ACCEPT
iptables -P INPUT       ACCEPT

# Local
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i eth0 -f -j LOG --log-prefix "ESTABLISHED"
iptables -A INPUT -p tcp -m tcp ! --tcp-flags SYN,ACK,FIN,RST SYN -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 사무실 특정 IP 대역 전체 허용
iptables -A INPUT -s x0.x81.x09.9/32 -j ACCEPT

# SSH 특정 IP만 오픈 허용                                                                                          
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 10.10x.10.x2/32 --dport 2022 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 10.10x.x.x/32 --dport 2022 -j ACCEPT

# HTTP 특정 IP만 오픈 허용
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 2x.1x.x5.1x/32 --dport 8008 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 2x.1x.x5.1x/32 --dport 8008 -j ACCEPT


# 특정 어플리케이션 9090 포트 any 오픈
iptables -A INPUT -m state --state NEW -m tcp -p TCP --dport 9090 -j ACCEPT

# grafana API 포트 허용
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 2x.1x.5x.1x/32 --dport 9000 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 2x.1x.5x.1x/32 --dport 8000 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 1.2x.x7.53/32 --dport 8086 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 2x.1x.5x.1x/32 --dport 3000 -j ACCEPT


# elasticsearch API 포트 허용
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 1.x.x.41/32 --dport 9200 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 13.204.x.x/32 --dport 8220 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 202.x.x.x/32 --dport 9200 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 202.x.x.x/32 --dport 8220 -j ACCEPT

# kibana 포트 허용
iptables -A INPUT -m state --state NEW -m tcp -p TCP -s 221.x.x.x/32 --dport 5601 -j ACCEPT

# ICMP                                                                                          
#iptables -A INPUT -p ICMP -j ACCEPT
iptables -A INPUT -p ICMP -s 10.100.101.37/32 -j ACCEPT

# DROP Rules                                                                                         
iptables -A INPUT -m state --state INVALID -j DROP                                              
iptables -A INPUT -p tcp --syn -j REJECT                                                        
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited  

# rule 저장
iptables-save -c >  /etc/sysconfig/iptables
#service iptables save

이 글 공유하기:

  • 페이스북에 공유하려면 클릭하세요. (새 창에서 열림) Facebook
  • 클릭하여 X에서 공유 (새 창에서 열림) X
  • 인쇄하기 (새 창에서 열림) 인쇄
  • 클릭하여 친구에게 이메일로 링크 보내기 (새 창에서 열림) 전자우편
  • Telegram에 공유하려면 클릭하세요. (새 창에서 열림) Telegram
  • WhatsApp에 공유하려면 클릭하세요. (새 창에서 열림) WhatsApp

이것이 좋아요:

좋아하기 가져오는 중...

관련

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Category

  • Article (66)
  • Uncategorized (178)
  • 게임 소식 (13)
  • 기술 정보 & 테크 소식 (260)
  • 꿀팁정리 & 자기계발 (317)
  • 블로그 (26)
  • 사건 사고 (64)
  • 역사 (35)
  • 영화 & 드라마 & 애니메이션 (27)
  • 이슈 뉴스 정리 (207)
  • 정치 인물 사회 (122)
  • 주식 경제 (119)

Recent Posts

  • 위고비(Wegovy) 효능과 가격(1펜) 정리

    위고비(Wegovy) 효능과 가격(1펜) 정리

    2월 16, 2025
  • 도메인 URL 주소 단축하는 사이트 모음

    도메인 URL 주소 단축하는 사이트 모음

    1월 30, 2025
  • 5년전 정혜수 MBC 기상캐스터가 해고당하면서 올린 글

    5년전 정혜수 MBC 기상캐스터가 해고당하면서 올린 글

    1월 28, 2025
  • MBC 기상캐스터 오요안나 자살과 집단 괴롭힘 가해자

    MBC 기상캐스터 오요안나 자살과 집단 괴롭힘 가해자

    1월 27, 2025
  • 홍장원 전 국정원 1차장 좌파이력 정리

    홍장원 전 국정원 1차장 좌파이력 정리

    1월 22, 2025

Popular Posts

©2025 minority opinions | Design: Newspaperly WordPress Theme
%d