使用Apache2或iptables, 如果IP地址没有反向DNS,或者根本没有parsing ,是否有拒绝访问者的方法?
我有一个针对具有有效反向DNS的特定人群的网站。 一些垃圾邮件发送者和黑客谁没有反向DNS来尝试垃圾邮件/破解我的网站。
他们被我的垃圾邮件拦截器拒绝/拒绝,但我仍然想阻止他们访问我的网站。
你可以很容易地在PHP或你最喜欢的语言(对于PHP http://php.net/manual/en/function.gethostbyaddr.php )。 也许,如果您通过检查其反向DNS状态来核准访问客户端,则可以以类似于正常用户名/密码login的方式“login”。
通常.htaccess文件或iptables可能是一个更好的解决scheme,但由于您有一个非常奇怪的请求,您可能需要脚本语言的灵活性。
由于DNS查询的缓慢,我不会在Apache级别上执行此操作。
相反,我会在窗帘后面做这个。 例如,将一些自写的shell / perl脚本放在Apache访问日志的尾部,执行dns查询,如果失败,只需将ip地址添加到(临时)禁止列表。 如果你不愿意为自己编写一些Perl,你可以用fail2ban来做到这一点。
无论如何,要小心! 即使一些合法的访问者可能没有可parsing的DNS名称。
有几个人指出,由于DNSparsing速度缓慢,这通常是一个坏主意。 但是如果你想这样做,你可以用mod_access来完成:
在您的声明(s)只需添加如下内容:
Order Deny,Allow Deny from all Allow from .com .gov .org .edu
你会想添加你的本地私有局域网,127.0.0.1等等…