web-dev-qa-db-ja.com

ipsetがiptablesに適用されていません

SMTPサーバー(CentOS6)をプローブし続ける国を除外しようとしていますが、ipsetをiptablesで正しく動作させることができないようです。

その国のIPアドレスをipdeny.comからダウンロードし、リストをテキストファイルとしてインストールしました。もともと、私はすべてのブラックリストIPアドレスを大きな長いiptablesチェーンに入れていましたが、それはCPUに悪影響を与える可能性があります。したがって、ipsetを使用したいと思います。

そのIPアドレスファイルからの抜粋は次のとおりです。

185.40.4.31
80.82.65.237
2.60.0.0/14

だから今私はipsetセットでそのリストを使おうとしています。 'ipsetlist'を使用してipsetセットが設定されていることを確認します。

Name: blacklist
Type: hash:net
Header: family inet hashsize 2048 maxelem 65536
Size in memory: 108816
References: 1
Members:
....
185.40.4.31
185.40.152.0/22
...

このipsetを使用して、iptablesに追加します。

iptables -A INPUT -p tcp -m set --set blacklist src -j DROP

しかし、hping3を使用してセットをテストしようとすると、パッケージはまだ通過します。

hping3 --syn --destport 25 --count 3 -a 185.40.4.31 <server_ip>

長いiptablesチェーンを使用していたときは、期待どおりに機能していました。

Iptables -L -nの簡略化された出力は次のとおりです(6200以上のipdenyエントリのほとんどを編集しました)

Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       all  --  217.199.240.0/20     0.0.0.0/0
DROP       all  --  217.199.208.0/20     0.0.0.0/0
...
DROP       all  --  2.60.0.0/14          0.0.0.0/0
DROP       all  --  94.102.50.41         0.0.0.0/0
DROP       all  --  80.82.65.237         0.0.0.0/0
DROP       all  --  185.40.4.31          0.0.0.0/0
ACCEPT     all  --  192.168.2.0/24       0.0.0.0/0
ACCEPT     all  --  192.168.1.0/24       0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02 state NEW
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:27944 state NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21 state NEW
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 state NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443 state NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:25
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:587
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:993
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:995
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:143
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:27940
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:110
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8
LOG        all  --  0.0.0.0/0            0.0.0.0/0           LOG flags 0 level 4
DROP       all  --  0.0.0.0/0            0.0.0.0/0
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           match-set blacklist src

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
2
cardinalPilot

ルールをチェーンの最後に追加したため、ルールが有効になることはありません。その直前には、すべてのトラフィックをドロップするルールがあるため、ルールに到達することはありません。 iptablesでは、ルールは順番に一致します。これは他の多くのファイアウォールとは異なります。

この問題を解決するには、ルールをチェーンの前半に移動します。そして、本当にそれらのアドレスをブラックリストに載せたいのであれば、それはチェーンのできるだけ早い段階にあるべきです。最初のルール。

0
Michael Hampton