最近这两个月有点忙,没管博客什么事,结果今天刚登陆上,就发现了一大堆的垃圾评论。
仔细观察,可以发现都是31.184.238.129这个IP发出的,我查了一下归属地,在俄罗斯圣彼得堡,运营商为pinspb.ru。我决定屏蔽31.184.238.0/24这个IP段。
首先,我根据提示,在httpd.conf中找到
<Directory "/var/www/html/">
.....................................................................
</Directory>
之后,在确保其中有
Order allow,deny
Allow from all
和AllowOverride 为All之后,在它们的后面(注意要在<Directory "/var/www/html/">.........</Directory>之间)加入下列语句:
Deny from 138.186.136.64 #阻止IP Deny from 31.184.238.0/24 #阻止IP段 完成之后应该是
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Deny from 138.186.136.64
Deny from 31.184.238.0/24
</Directory>
用# /etc/init.d/httpd restart重启apache后,从指定的IP就无法访问网站了。但是不知道为什么,这个原本应该显示403的时候竟然显示apache测试页面。我尝试修改了多个Directory的AllowOverride参数,发现都没有作用。最后选择将apache的默认页面(/var/www/error/noindex.html)给修改成了403页面。测试没有问题。
自己的403页面:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Forbidden - Fantasy Land</title>
</head>
<body>
<h1>403 - Forbidden</h1>
<p>You do not have the permission to view the website. Please contact the administrator.</p>
</body>
</html>
Comments NOTHING