Apache 防域名恶意解析

通过大量的文章和许多的时间,依然未能解决。鉴于行业的特性,文章内容基本雷同,想在其中找到自己需要的细节,太难太难太难了。

配置流程

禁用IP访问,防止恶意解析

1、给指定网站程序设置域名

2、将以下内容加入 /etc/httpd/conf/httpd.conf的末尾或者在/etc/httpd/conf.d/目录下新建一个deny-ip.conf的文件将内容写入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost *:80>
ServerName 服务器IP地址
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>

<VirtualHost *:443>
ServerName 服务器IP地址
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt // 安装mode_ssl.so模块(启用SSL功能)后自动生成的文件
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key // 安装mode_ssl.so模块(启用SSL功能)后自动生成的文件
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>

3、重启 apache

1
systemctl restart httpd

Apache 防盗链

盗链的概念是指他人直接使用你图片的URL,这样,图片会在他的网站上展示,但是由你的服务器提供的,使用的是你的宽带,这会造成很多额外的成本。

1
2
3
4
5
6
7
# 防盗链
SetEnvIfNoCase Referer "^https://jianghouren.com" local_ref=1
SetEnvIfNoCase Referer "^https://v.jianghouren.com" local_ref=1
<FilesMatch "\.(gif|jpg|png|jpeg|webp|mp4|mp3)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>

注:

CDN 防盗链,如果从CDN提供图像,则设置可能会略有不同。


备注

参考资料

Linux 实践指南