私はしばらくの間、iptablesについてXNUMXつのことを考えていました。これらのチュートリアルを探している人のほとんどは初心者であり、次に、多くの人がすでにかなり単純で精巧なものを探しています。
この例はWebサーバー用です、ただし、ルールを簡単に追加して、ニーズに合わせることができます。
IPの「x」の変更が表示されたら
#!/bin/bash
#iptablesテーブルをクリーンアップします-F iptables -X#NATiptablesをクリーンアップします-tnat -F iptables -t nat -X#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 --state ESTABLISHED、RELATED -j ACCEPT#ループデバイス。 iptables -A INPUT -i lo -j ACCEPT#http、https、インターフェイスを指定しません。#すべてのiptablesに対応させたいためです。-AINPUT-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を実行します。iptables-AINPUT -p icmp -s192.168。 xx / 24-i $イントラネット-jACCEPT #mysql with postgres is port 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT #sendmailbueeehメールを送信する場合#iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT#アンチスプーフィング09年07月2014日#SERVER_IP = "190.xxx"#サーバーIP-サーバーの実際のwan 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 "#WANiptablesを介したサーバーの同じIPを持つパケット-AINPUT -i $ extranet -s $ SERVER_IP -j $ ACTION# iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION#WANのLAN範囲を含むパケット。特定のネットワークがある場合に備えて、このように配置します。#これは冗長であり、内部に次のルールがあります。ループ "for" iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION ##すべてのSPOOFネットワークはWANfor ipinで許可されていません$ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION done
いつものように私はあなたのコメントを待っています、このブログでお楽しみに、ありがとう