
私は中国から詐欺されているのに、なぜ私のサーバーへの要求をブロックできないのかわかりません。
//ホスト。拒否
ALL: item.taobao.com
ALL: 117.25.128.*
ただし、Webサーバーのエラーログを見ると、tail -f /var/log/apache2/error.log
要求は引き続き許可されます。
質問:/etc/hosts.deny設定が機能しないのはなぜですか?
答え1
/etc/hosts.deny
代わりにファイル名が指定されます。host.deny
すべてのサービスがTCPラッパーを使用するわけではありません。
sshd
たとえば、デフォルトではそうではありません。 Apacheも同様です。iptables
これを使用して、117.25.128/24のすべてのパケットをブロックできます。たとえば、次のようになります。iptables -I INPUT -s 117.25.128.0/24 -j DROP
より良い方法は次のとおりです。失敗2禁止ログファイル(Apacheのaccess.logおよび/またはerror.logなど)を監視し、サーバー攻撃を試みるIPアドレスを自動的にブロックします。
Debianfail2ban
パッケージの説明:
Fail2banはログファイル(例:/var/log/auth.log、/var/log/apache/access.log)を監視し、既存のファイアウォールルールを更新し、エラーの発生しやすいアドレスを一時的または永続的に禁止します。
Fail2banを使用すると、iptablesまたはports.denyルールを使用してIPを禁止したり、単に通知メールを送信したりするなど、さまざまなアクションを簡単に指定できます。
デフォルトでは、さまざまなサービス(sshd、apache、qmail、proftpd、saslなど)のフィルタ式が提供されていますが、設定を簡単に拡張して他のテキストファイルを監視できます。すべてのフィルタと動作は設定ファイルに提供されるため、Fail2banはさまざまなファイルやファイアウォールで使用できます。
答え2
元の質問について。私のDebianのApacheにはlibwrapが設定されていないので、ports.denyを参照しません。 [前の回答で述べたことがあります。現実は、tcpwrapperが90年代のセキュリティの典型ではないということです。特にブラックリストに関する場合はさらにそうです。デーモンとして実行するのではなく、(x)inetdで実行する必要があります。これは(かなり)遅くなります。
Apacheレベルでアクセスをブロック/許可でき、Apacheのtcpラッパー[またはiptables]は必要ありません。あなたはSSHについて言及していませんが、私はSSHサーバーを外部の世界に直接開いたことはありません。しかし、読んでください。
私たちは300以上のドメイン名を持つ仮想ホストを持っており、Taobao、Baidu、さらにはGoogle Spiderでも同様の問題を抱えています。 Baiduクモが非常に積極的で粘着性があることは注目に値します。
すでに知っているように、サーバーファームがあり、特定のIPをブロックしても、すぐに別のIPアドレスに再び表示されます。
IPアドレス/ネットワークブロックのリストを手動で維持することは実用的ではありません。
私たちにとって非常に効果的だったのは、modsecurityがユーザーエージェント文字列を永久にブロックするのに対し、mod_evasiveは悪意のあるIPを一時的にブロックすることです。
検索エンジンのスパイダーの速度を遅くすることに加えて、この設定はCMSパスワードを推測しようとするボットの試みを制限する利点があります。
modsecurity.confの関連部分
SecRule REQUEST_HEADERS:User-Agent "Yandex" phase:1,deny,nolog,id:'6972'
SecRule REQUEST_HEADERS:User-Agent "ichiro" phase:1,deny,nolog,id:'6973'
SecRule REQUEST_HEADERS:User-Agent "Baiduspider" phase:1,deny,nolog,id:'6974'
SecRule REQUEST_HEADERS:User-Agent "Baiduspider/.*" phase:1,deny,nolog,id:'6975'
SecRule REQUEST_HEADERS:User-Agent "Baiduspider-video" phase:1,deny,nolog,id:'6976'
SecRule REQUEST_HEADERS:User-Agent "Baiduspider-image" phase:1,deny,nolog,id:'6977'
SecRule REQUEST_HEADERS:User-Agent "sogou spider" phase:1,deny,nolog,id:'6978'
SecRule REQUEST_HEADERS:User-Agent "YoudaoBot" phase:1,deny,nolog,id:'6979'
SecRule REQUEST_HEADERS:User-Agent "bingbot(at)microsoft.com" phase:1,deny,nolog,id:'6980'
SecRule REQUEST_HEADERS:User-Agent "msnbot(at)microsoft.com" phase:1,deny,nolog,id:'6981'
SecRule REQUEST_HEADERS:User-Agent "BLEXBot/1.0" phase:1,deny,nolog,id:'6982'
SecRule REQUEST_HEADERS:User-Agent "Bot.*" phase:1,deny,nolog,id:'6984'
SecRule REQUEST_HEADERS:User-Agent "AhrefsBot.*" phase:1,deny,nolog,id:'6985'
そしてmod-evasive.conf
DOSHashTableSize 2048
DOSPageCount 10
DOSSiteCount 300
DOSPageInterval 2.0
DOSSiteInterval 1.0
DOSBlockingPeriod 600.0
DOSLogDir /var/log/apache2/evasive
DOSWhitelist 127.0.0.1
DOSWhitelist 1xx.xxx.xxx.xx
私も非常に現実的な可能性を忘れました。中国を相手にしない場合やホームサーバーを運営している場合は、中国全体をブロックしてください。これらから発生する攻撃とマルウェアのレベルにより、多くの専門家がこれらのタスクを実行することが正当化されました。
http://www.cyberciti.biz/faq/block-entier-country-using-iptables/
私もこのやや長い答えに脚注を追加するのを忘れました。人々はしばしば職場でこのような問題を解決するためにrobots.txtを使用することを提案します。要点は、robots.txtがリモートプログラムの提案にすぎないことです。もちろん、悪意のある行為者はこれを無視し、今日他のWebクローラーがそれを尊重するという保証もありません。テストでBaiduを例に挙げてみましょう。〜らしいそれらを無視してください。 (robots.txtは粗暴に尋ねるのと同じです。当たらないでください。)