Linuxでのiptablesルールの管理


17

iptablesの設定には多くのルール(ルーティング、sshの禁止など)があります。また、禁止するIPのリストをhttp://blacklist.linuxadmin.orgから選択しましたが、今では非常に複雑になっています。

/etc/sysconfig/iptablesは本当に長いです。外部ファイルのルールを含めることでルールを管理する方法はありますか?

例えば:

#include "pre_routing_rules"
#include "ssh_bans"

これには、ファイル「pre_routing_rules」と「ssh_bans」に追加されたルールが含まれます。この方法で、を探し回ることなく簡単にルールを管理できますcat /etc/sysconfig/iptables

回答:


11

iptablesのipsetsを試してください。ipsetsは個別に構成されます。管理するのに十分なIPアドレスがある場合、これらも高速になります。

iptablesルールは、次のようにipsetを参照できます。

iptables -A FORWARD -m set --set blocklist src、dst -j DROP


私の最大の問題はIPアドレスに関するものなので、これを使用できます。

この機能を使用しています。私のブラックリスト/ホワイトリストIPは最大であるため、ipsetに入れることができます。私は、プレルーティングのものがメイン設定リストにとどまることができると思う

このフォーラムスレッドには、ipsetsを使用したスクリプトの例がいくつかあります:forums.gentoo.org/viewtopic-t-863121.html
mivk

3

1つの簡単な解決策は、セクションごとに複数のbashスクリプトを使用することです。

iptables-routing.sh
iptables-ssh-bans.sh
iptables-blacklist.sh

そして、このファイルをマスタースクリプトから実行します。


ええ、そうです。しかし、iptablesルールのリスト(例:cat / etc / sysconfig / iptables)を表示する必要がある場合、iptables-routing.sh iptables-blacklist.shを介して追加されたすべてのルールが表示されます

2

iptablesはファイルを直接読み取りません。これは、iptables-restoreと呼ばれるプログラムによって実行されます。これは通常、initスクリプトの1つから呼び出されます。

追加の入力ファイルをiptables-restore行に追加できます。この行がシステム上のどこにあるかを見つける必要がありますが、私のDebainボックスでは、/ etc / init.d / natにあります。

現在、行は次のようになっています。

/sbin/iptables-restore < /etc/network/iptables

おそらく次のように変更できます。

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore

2

FirestarterやShorewallなど、ip-top-of-iptablesの多くのファイアウォールスクリプト/ツールの1つを使用する傾向があり、目的ごとに分離された多くのファイルが付属し、特定のタイプの偽のパケットから保護する興味深いルールを追加し、通常は機能します上手。


これらはコマンドラインから使用できますか?私のサーバーは、リモート一つであり、私は実際にSSHの上にTODO Xを好むいけない

Shorewallは、iptablesルールを生成するフラットテキストファイルのセットです。コマンドラインから非常に使いやすく、優れたドキュメントと診断ツールを備えています。
ポール・ギア

0

私はあなたが参照しているファイルを所有していないため、どのディストリビューションを実行しているのかわかりませんが、通常はiptablesルールを含むファイルは単なるシェルスクリプトです-あなたは行を持っていることであなたがやりたいことができるはずですといった :

。/ etc / sysconfig / pre_routing_rules

または、参照するiptablesファイルの先頭にあるようなもの。


私は、FedoraやCentOSの実行しています
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.