このスクリプトをブロックポートのポートスキャンに使用しています。 IPがポートスキャンIPにnmapまたは何らかのスキャナーツールを使用しようとしている場合、そのIPは86400秒間ブラックリストに移動されます。私が見つけたチュートリアル ここ(リンクは時々死ぬ)
#!/bin/sh
#
#
# Script is for stoping Portscan and smurf attack
### first flush all the iptables Rules
iptables -F
# Protecting portscans
# Attacking IP will be locked for 24 hours (3600 x 24 = 86400 Seconds)
iptables -A INPUT -m recent --name portscan --rcheck --seconds 86400 -j DROP
iptables -A FORWARD -m recent --name portscan --rcheck --seconds 86400 -j DROP
# Remove attacking IP after 24 hours
iptables -A INPUT -m recent --name portscan --remove
iptables -A FORWARD -m recent --name portscan --remove
# These rules add scanners to the portscan list, and log the attempt.
iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix "portscan:"
iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP
iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix "portscan:"
iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP
ブロッキングは機能しています。しかし、ブラックリストからIPのブロックを解除したい場合、それが格納されている場所を見つけることができません。これを試してみました:
iptables -L INPUT -v -n
それは私に結果を与えません。多分、そのIPをブロックするために手動のiptableコマンドを使用していないからでしょう。
Iptable-saveコマンドを使用すると、ファイルの内容は次のようになります。
# Generated by iptables-save v1.4.21 on Tue Aug 1 09:55:24 2017
*filter
:INPUT ACCEPT [2573:464414]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2561:450932]
-A INPUT -m recent --rcheck --seconds 86400 --name portscan --mask 255.255.255.255 --rsource -j DROP
-A INPUT -m recent --remove --name portscan --mask 255.255.255.255 --rsource
-A INPUT -p tcp -m tcp --dport 139 -m recent --set --name portscan --mask 255.255.255.255 --rsource -j LOG --log-prefix "portscan:"
-A INPUT -p tcp -m tcp --dport 139 -m recent --set --name portscan --mask 255.255.255.255 --rsource -j DROP
-A FORWARD -m recent --rcheck --seconds 86400 --name portscan --mask 255.255.255.255 --rsource -j DROP
-A FORWARD -m recent --remove --name portscan --mask 255.255.255.255 --rsource
-A FORWARD -p tcp -m tcp --dport 139 -m recent --set --name portscan --mask 255.255.255.255 --rsource -j LOG --log-prefix "portscan:"
-A FORWARD -p tcp -m tcp --dport 139 -m recent --set --name portscan --mask 255.255.255.255 --rsource -j DROP
COMMIT
# Completed on Tue Aug 1 09:55:24 2017
ブロックされたIPの兆候はありません。では、上記のスクリプトでブロックされたIPのブロックを解除するにはどうすればよいですか?
Iptablesの最近のモジュールで使用されるさまざまなテーブルは、/proc/net/xt_recent
に格納されています。例:
$ ls -l /proc/net/xt_recent
total 0
-rw-r--r-- 1 root root 0 Jul 31 17:31 BADGUY_EMAIL
-rw-r--r-- 1 root root 0 Jul 31 17:31 BADGUY_SSH
-rw-r--r-- 1 root root 0 Jul 31 17:31 HTTP_01
-rw-r--r-- 1 root root 0 Jul 31 17:31 HTTP_02
-rw-r--r-- 1 root root 0 Jul 31 17:31 HTTP_BAN
ここで、HTTP_BAN
テーブルを確認したとします。
src=151.80.153.116 ttl: 54 last_seen: 4328384635 oldest_pkt: 1 4328384635, ..., 4328384635
src=96.49.73.155 ttl: 123 last_seen: 5452194021 oldest_pkt: 3 5452194014, ..., 5452194014
src=107.172.148.195 ttl: 55 last_seen: 5129807106 oldest_pkt: 15 5129803346, ..., 5129803346
src=125.64.94.206 ttl: 50 last_seen: 4540016391 oldest_pkt: 11 4540008881, ..., 4540016391
src=173.180.45.3 ttl: 63 last_seen: 5037092972 oldest_pkt: 15 5037078444, ..., 5037078444
src=77.66.1.97 ttl: 46 last_seen: 4981357498 oldest_pkt: 17 4981346351, ..., 4981346351
src=78.73.133.234 ttl: 55 last_seen: 5009073697 oldest_pkt: 9 5009058041, ..., 5009058041
src=23.16.13.188 ttl: 125 last_seen: 4353548286 oldest_pkt: 1 4353548286, ..., 4353548286
src=131.247.152.158 ttl: 46 last_seen: 5187361776 oldest_pkt: 23 5187345808, ..., 5187345808
src=173.196.177.69 ttl: 51 last_seen: 4741647347 oldest_pkt: 21 4741643594, ..., 4741643594
src=122.114.223.46 ttl: 49 last_seen: 4914484055 oldest_pkt: 9 4914477305, ..., 4914477305
そして、現在リストにある2つのアドレスを許可することにしました。
$ echo -122.114.223.46 | Sudo tee /proc/net/xt_recent/HTTP_BAN
-122.114.223.46
$ echo -173.180.45.3 | Sudo tee /proc/net/xt_recent/HTTP_BAN
-173.180.45.3
そして、もう一度リストを確認してください:
src=151.80.153.116 ttl: 54 last_seen: 4328384635 oldest_pkt: 1 4328384635, ..., 4328384635
src=96.49.73.155 ttl: 123 last_seen: 5452194021 oldest_pkt: 3 5452194014, ..., 5452194014
src=107.172.148.195 ttl: 55 last_seen: 5129807106 oldest_pkt: 15 5129803346, ..., 5129803346
src=125.64.94.206 ttl: 50 last_seen: 4540016391 oldest_pkt: 11 4540008881, ..., 4540016391
src=77.66.1.97 ttl: 46 last_seen: 4981357498 oldest_pkt: 17 4981346351, ..., 4981346351
src=78.73.133.234 ttl: 55 last_seen: 5009073697 oldest_pkt: 9 5009058041, ..., 5009058041
src=23.16.13.188 ttl: 125 last_seen: 4353548286 oldest_pkt: 1 4353548286, ..., 4353548286
src=131.247.152.158 ttl: 46 last_seen: 5187361776 oldest_pkt: 23 5187345808, ..., 5187345808
src=173.196.177.69 ttl: 51 last_seen: 4741647347 oldest_pkt: 21 4741643594, ..., 4741643594
そして、これら2つのIPアドレスがなくなっていることを確認します。