回答:
ルールの例をいくつか示します。それらを/etc/iptables.rulesに保存します
# Generated by iptables-save v1.3.6 on Wed Oct 24 17:07:29 2007
*filter
:INPUT ACCEPT [89458:132056082]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [263904:15667452]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j DROP
COMMIT
# Completed on Wed Oct 24 17:07:29 2007
この行を/ etc / network / interfacesの最後に追加します
pre-up iptables-restore < /etc/iptables.rules
多くのiptablesルールを使用しているため、管理を容易にするために次のことを行います。
これがこれを行うための最良の方法であるかどうかはわかりませんが、私たちにとってはうまくいきました。
これは環境とプラットフォームに依存していることは事実ですが、プラットフォームに応じて、次の2つの良いアプローチを見てきました。
RHEL / CentOS:iptables起動スクリプトによって読み込まれる単一の/ etc / sysconfig / iptablesファイルにすべてのルールを保存します。
Debian / Ubuntu:/etc/iptables.d/ディレクトリの個別のサービス固有のファイルにすべてのルールを保存します。たとえば、/ etc / iptables.d / port_http、/ etc / iptables.d / port_dns、port_serviceは/ etc / servicesのサービス名にマップされます。
どちらの場合も、ファイルはChefやPuppetなどの構成ツールによって管理され、ブート時に実行されるiptablesの「マスター」起動スクリプトによって読み込まれます。
iptables-save
(およびiptables-restore
)に加えて、複雑なファイアウォールスキームは専用プログラムでより適切に処理されます。たとえば、shorewall
iptablesの構成には(「iptablesを簡単に」)使用しました。
firestarterやkmyfirewallなどのシンプルなツールも利用できます。
これは、使用するディストリビューションによって異なります。一部のディストリビューション、特にRed Hatディストリビューションに基づくディストリビューションでは、iptablesルールは自動的に保持されますが、独自の特別なディレクトリにあります。私はRHELに最も精通しており、iptablesルールは/ etc / sysconfig / iptablesにあります。iptablesルールの構文に慣れることは、最初は難しいかもしれませんが、慣れるととても簡単です。
netfilter Webサイトには、いくつかの紹介を含むiptablesに関する多くのドキュメントがあります。あなたが少し読んでいるなら、ここで多くの良い情報を見つけることができます:http://www.netfilter.org/documentation/
この質問は4934の dupであることに非常に近く、397に関連しています。
私は、設定ファイルを管理するために開発したWebインターフェースと組み合わせたファイアホールを使用します。
私はファイアホールが本当に好きです、それは単純な構文を提供し、次に直接iptablesを使用します。
もちろん、カスタムのinitスクリプトを使用します。forループを使用して、ポートのリストを反復処理したり、vpn-usersなどの他の構成ファイルを解析したりできます。
そして、iptables-restoreは確かにそれを保存する最も「標準的な」方法です。
追加したいもの:
iptablesの現在のバージョンは、呼び出しごとにカーネルにチェーンの完全なリストを返すように要求することに注意してください。次に、実行するように要求された1つの変更を行います。次に、リストを再度アップロードします。
これは遅いです(O(n ^ 2))、私たちには5秒必要ですが長すぎます;-)
iptables-restoreを使用すると、1回の操作ですべてが完了します。