apache httpd禁止某些IP恶意访问

最近个人网站总是被国外的几个IP恶意访问,每隔一秒访问一次首页,看着很不舒服,在网上搜索了一下,发现可以在apache httpd的配置文件中设置访问策略,禁止某个或某些IP的访问。

编辑httpd.conf文件:

vim /etc/httpd/conf/httpd.conf

将下面的配置信息追加到httpd.conf文件中。

1. 阻止IP或者IP段恶意访问

<Directory "/var/www/html/">
Order allow,deny
Allow from all
Deny from 192.168.56.1 #阻止一个IP
Deny from 192.168.56.0/24 #阻止一个IP段
</Directory>

2. 只允许某些IP或者IP段访问

<Directory "/var/www/html/">
Order deny,allow
Deny from all
Allow from example.com #允许某个域名
Allow from 10.0.0.1 #允许一个iP
Allow from 10.0.0.1 10.0.0.2 #允许多个iP
Allow from 10.1.0.0/255.255.0.0 #允许一个IP段,掩码对
Allow from 10.0.1 192.168 #允许一个IP段,后面不填写
Allow from 192.168.0.0/24 #允许一个IP段,网络号
</Directory>

3. 文件匹配来进行禁止

比如禁止所有针对图片的访问,可以设置为只允许自己站点的域名访问。

<FilesMatch .(?i:gif|jpe?g|png)$>
Order allow,deny
Deny from all
Allow from example.com #允许某个域名
</FilesMatch>

4. 重启httpd服务

systemctl restart httpd.service

生效之后,这些被禁止的IP访问网站,页面就会生成类似这样的提示:

Forbidden
You don't have permission to access /img/mysql_0.jpg on this server.

文章评论

0条评论