이 간단한 스크립트를 사용하여 iptables로 자신 만의 방화벽을 만듭니다.

나는 잠시 동안 iptables에 대해 두 가지를 생각하고있었습니다.이 튜토리얼을 찾는 대부분의 사람들은 초보자이고 둘째로, 많은 사람들이 이미 상당히 간단하고 이미 정교해진 것을 찾고 있습니다.

이 예는 웹 서버용입니다.하지만 쉽게 더 많은 규칙을 추가하고 필요에 맞게 조정할 수 있습니다.

IP에 대한 "x"변경이 표시되면


#!/bin/bash

# iptables 테이블을 정리합니다. -F iptables -X # NAT iptables를 정리합니다. -t nat -F iptables -t nat -X # PPPoE, PPP 및 ATM과 같은 항목을위한 mangle 테이블 iptables -t mangle -F iptables -t mangle -X # 정책 나는 이것이 초보자에게 가장 좋은 방법이라고 생각하고 # 여전히 나쁘지 않습니다. # 나가는 연결이기 때문에 출력을 모두 설명하겠습니다. 입력은 모든 것을 버리고 서버는 전달하지 않아야합니다. iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP # 인트라넷 LAN 인트라넷 = eth0 #Extranet wan extranet = eth1 # 상태 유지. 이미 연결된 (설정된) 모든 것은 다음과 같이 남습니다. iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT # 루프 장치. iptables -A INPUT -i lo -j ACCEPT # http, https, 인터페이스를 지정하지 않습니다. # 모든 iptables에 적용되기를 원하기 때문입니다. -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp-dport 443 -j ACCEPT # ssh는 내부적으로 만이 범위의 ip의 iptables에서 -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPT # 모니터링 (예 : zabbix가있는 경우) 또는 다른 snmp 서비스 iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 10050 -j ACCEPT # icmp, ping well it 's up to you iptables -A INPUT -p icmp -s 192.168.xx xx / 24-i $ intranet -j ACCEPT #mysql with postgres is port 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT #sendmail bueeeh if you want to send some mail #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx"# ​​서버 IP-서버의 실제 IP LAN_RANGE = "192.168.xx / 21 "# 네트워크 또는 VLAN의 LAN 범위 # 엑스트라 넷에 들어가면 안되는 IP,순전히 WAN 인터페이스가있는 경우 # 논리를 사용하는 것입니다. 해당 인터페이스를 통해 # LAN 유형 트래픽을 입력해서는 안됩니다. SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0 .16 / XNUMX "# 기본 동작-규칙이 일치 할 때 수행됨 ACTION ="DROP "# wan iptables를 통해 내 서버의 동일한 IP를 가진 패킷 -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION # wan에 대한 LAN 범위가있는 패킷, # 특정 네트워크가있는 경우에 이렇게 넣었지만 다음 # 규칙 내부에 중복됩니다. the loop "for"iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION ## 모든 SPOOF 네트워크는 ip에서 wan에 의해 허용되지 않습니다. $ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION done

항상 그렇듯이 귀하의 의견을 기다리고 있습니다.이 블로그를 계속 지켜봐주십시오. 감사합니다.