Прекарах известно време в мислене за две неща относно iptables: повечето от тези, които търсят тези уроци, са начинаещи и второ, много вече търсят нещо доста просто и вече разработено.
Този пример е за уеб сървър, но можете лесно да добавите още правила и да го адаптирате към вашите нужди.
Когато видите промяна на "x" за вашите ip
#!/bin/bash
# Почистваме таблици на iptables -F iptables -X # Почистваме NAT iptables -t nat -F iptables -t nat -X # таблица mangle за неща като PPPoE, PPP и ATM iptables -t mangle -F iptables -t mangle -X # Политики Мисля, че това е най-добрият начин за начинаещи и # все още не е лошо, ще обясня изхода всички, защото те са изходящи връзки #, въвеждане отхвърляме всичко и никой сървър не трябва да препраща. iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Запазете състояние. Всичко, което вече е свързано (установено), е оставено по следния начин: iptables -A INPUT -m състояние -state УСТАНОВЕНО, СВЪРЗАНО -j ACCEPT # Loop device. 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 само вътрешно и от този диапазон на iptables на ip -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, пинг добре, зависи от вас iptables -A INPUT -p icmp -s 192.168. xx / 24 - i $ intranet -j ACCEPT #mysql с postgres е порт 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT #sendmail bueeeh, ако искате да изпратите някаква поща #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # IP на сървъра - реалният wan ip на вашия сървър LAN_RANGE = "192.168.xx / 21 "# LAN обхват на вашата мрежа или вашия vlan # 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 "# Пакети със същия ip на моя сървър чрез wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION # Пакети с LAN обхват за wan, сложих го така, ако имате # някаква конкретна мрежа, но това е излишно със следното # правило вътре цикъла "за" iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION ## Всички SPOOF мрежи не са разрешени от wan за ip в $ SPOOF_IPS прави iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION done
Както винаги очаквам вашите коментари, следете в този блог, благодаря