你好,我想通过 IP 黑名单来屏蔽我的服务器,并且如果可能的话,我还想阻止任何域名,并且只在 IP 地址之间来回发送 http 标头!
我希望完全阻止任何数据泄露到外部,但为具有有效 php 会话的用户提供服务除外!我下载了很多代码只是为了学习,我不知道发布这些代码的人从哪里得到它们,也不知道他们在里面放了什么样的后门,所以我想确保我不会因为使用任何不该使用的东西而因为许可和版权问题而惹上麻烦!
答案1
要阻止某些 IP 地址(或主机名)访问您的网站,您可以使用 Apache 的Allow
和Deny
指令,就像 sukru 所说的那样。但通常认为更安全的做法是完全地堵塞任何所选 IP 和您的服务器之间的通信(不仅仅是网站访问)——毕竟,如果您有足够的理由阻止他们访问您的网站,您可能也不想让他们访问您服务器上的其他内容。要强制执行这种访问,您必须使用 IPtables。网上有很多 IPtables 参考资料;我碰巧写过一这可能对你有用。相关命令如下
iptables -I INPUT --source xxx.xxx.xxx.xxx -j DROP
iptables -I OUTPUT --destination xxx.xxx.xxx.xxx -j DROP
xxx.xxx.xxx.xxx
您要阻止的 IP 地址在哪里?对每个这样的地址运行这两个命令。
答案2
您需要更新 httpd.conf(或 .htaccess,如果启用了足够的选项)
<Location /url>
Order allow,deny
Allow from all
Deny from host1
Deny from host2
Deny from *.domain
...etc
</Location>
来自文档:关联
允许、拒绝 首先,评估所有允许指令;至少必须有一个匹配,否则请求将被拒绝。接下来,评估所有拒绝指令。如果有任何匹配,则请求将被拒绝。最后,任何不匹配允许或拒绝指令的请求都将被默认拒绝。