web-dev-qa-db-ja.com

Linuxでのiptablesルールの管理

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を探し回ることなく、ルールを簡単に管理できます。

16
Rushi

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

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

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

11

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

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

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

3
Andrei Savu

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
Adam Pierce

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

2
Vinko Vrsalovic

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

。/etc/sysconfig/pre_routing_rules

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

0
GodEater