Debian上设置Apache禁止ip和非法域名访问
当我们使用VPS建站的时候,理论上别人通过ip就可以访问我们的网站了,但这就会导致很多问题,比如他人的域名绑定到了自己的ip上。在debian/ubuntu下可以通过修改apache的配置文件,就可以禁止ip访问网站,和禁止别人的域名解析到自己的网站上。
网站没有开启ssl
以安装了Apache2的Debian9系统为例,在/etc/apache2/sites-enabled中有一个名称为000-default.conf的配置文件,在末尾加上如下两段。注意!配置文件中还有一个VirtualHost :80配置信息,请务必将改为你服务器的ip地址。
<VirtualHost *.*.*.*:80>
ServerName *.*.*.*
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>
其中...是你VPS的的IP地址,这样的话,所有通过ip地址访问的请求都会被拒绝。
<VirtualHost *.*.*.*:80>
DocumentRoot /var/www/html
ServerName name.com
</VirtualHost>
其中...是你VPS的的IP地址;/var/www/html是你的网站所在的目录,一般都是这个不会有改动;name.com是你网站的域名,只有通过这个才访问网站。
网站开启了ssl
以安装了Apache2的Debian9并且使用了Let's Encrypt实现ssl的系统为例,在/etc/apache2/sites-enabled中有一个名称为000-default.conf和一个名称为000-default-le-ssl.conf的配置文件,在分别在两个配置文件末尾加上如下两段。注意!在000-default.conf这个配置文件中还有一个VirtualHost :80配置信息,请务必将改为你服务器的ip地址。在000-default-le-ssl.conf这个配置文件中还有一个VirtualHost :443配置信息,请务必将改为你服务器的ip地址。两个配置文件的端口不一样!
以下是对于000-default.conf:
<VirtualHost *.*.*.*:80>
ServerName *.*.*.*
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>
其中...是你VPS的的IP地址,这样的话,所有通过ip地址访问的请求都会被拒绝。
<VirtualHost *.*.*.*:80>
DocumentRoot /var/www/html
ServerName name.com
</VirtualHost>
其中...是你VPS的的IP地址;/var/www/html是你的网站所在的目录,一般都是这个不会有改动;name.com是你网站的域名,只有通过这个才访问网站。
以下是对于000-default-le-ssl.conf:
<VirtualHost *.*.*.*:443>
ServerName *.*.*.*
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>
其中...是你VPS的的IP地址,这样的话,所有通过ip地址访问的请求都会被拒绝。
<VirtualHost *.*.*.*:443>
DocumentRoot /var/www/html
ServerName name.com
</VirtualHost>
其中...是你VPS的的IP地址;/var/www/html是你的网站所在的目录,一般都是这个不会有改动;name.com是你网站的域名,只有通过这个才访问网站。