[〜#〜] apf [〜#〜] によって生成されるかなり複雑なiptables/ipchains構成があります。ポート80へのトラフィックはブロックされるはずですが、Apacheログは誰かがWebページを調査できたことを示しています。
[Sun Feb 03 13:08:45 2013] [error] [client 50.57.125.169] File does not exist: /var/www/w00tw00t.at.blackhats.romanian.anti-sec:)
[Sun Feb 03 13:08:45 2013] [error] [client 50.57.125.169] File does not exist: /var/www/phpMyAdmin
[Sun Feb 03 13:08:45 2013] [error] [client 50.57.125.169] File does not exist: /var/www/phpmyadmin
50.57.125.169
からのパケットがブロックされなかった理由をデバッグするためにiptablesでソースIPをシミュレートする方法はありますか? -C | --check
オプションは、IPに明示的に一致するルールが存在するかどうかのみを報告するようですが、私がしたいのは(pseudocode)
myserver% iptables --test --source_ip=50.57.125.169 --dest_port=80
Rule #17 matches (ALLOW) // i.e. this would be the rule that matches
これを行う方法はありますか?
[編集] 1つの部分的な解決策は、iptablesでTRACE
デバッグを有効にし( https://serverfault.com/a/126078/67472 )、hping3
(ソースIPを偽装できるTrentに感謝します。ただし、テストが別のサーバーから実行された場合、結果は表示されません。同じサーバーから実行された場合、ループバックインターフェイスを経由します。
Hpingを使用してトラフィックのソースIPアドレスをシミュレートし、トラフィックがまだ通過しているかどうかを確認できますか?おそらくあなたが探しているものではないかもしれませんが、あなたは次のようなことをすることができます
hping3 --syn --destport 80 --count 3 -a test.ip.address webserver.ip.address
scapy
を使用して、IPアドレスを偽装することができます。
私はあなたが尋ねた質問に直接対処していないことを知っていますが、APFをかなり長い間使用していたので、別のアプローチを使用した場合に備えて、IPをブロックする方法についてアドバイスできます。
例:ホスト1.2.3.4のポート80をブロックするには、次の行を追加します/etc/apf/deny_hosts.rules
tcp:in:d=80:s=1.2.3.4
これに加えて、ソースIPをスプーフィングする煩わしさを経験する代わりに、自分の制御下にあるクライアントコンピューターのIPアドレスをブロックして、そこから接続してみてはどうでしょう。