從零開始

Nginx Apache 禁止 ip 直接访问 防止 VPS 主机 ip 被恶意解析

一般网站,都会绑定域名解析到 VPS 主机服务器真实 ip 上。服务器对外提供服务,如果也支持 ip 直接访问,会有危险。比如,恶意攻击者,可以将它自己的域名(未备案域名)也解析到此服务器 ip,然后去做些违反法律法规的事,封 VPS 服务器 ip 甚至罚款喝茶也会影响到你。

「Nginx Apache 禁止 ip 直接访问 防止 VPS 主机 ip 被恶意解析:https://ostarted.com/34」

如何防止 VPS 主机 ip 被恶意解析?

解决方法:禁止 ip 直接访问网站,可以别恶意解析 VPS 服务器 ip

Nginx Apache 禁止 ip 直接访问

nginx 默认配置文件 nginx.conf 文件找到 默认 80 server 配置段,添加一行 return 444; 或者 rewrite ^(.*) https://www.sample.com permanent; 即可。

「Nginx Apache 禁止 ip 直接访问 防止 VPS 主机 ip 被恶意解析:https://ostarted.com/34」
server
{
listen 80;
server_name _;
return 444;
}

444 No Response:Nginx 上 HTTP 服务器扩展。服务器不向客户端返回任何信息,并关闭连接(有助于阻止恶意软件)。

当然,不一定非得返回 444 状态码,403 也可以,500 应该也没问题。另外除了直接返回状态码,还可以直接转发到特定 url

server { 
listen 80;
server_name _;
rewrite ^(.*) https://www.sample.com permanent;
}

「Nginx Apache 禁止 ip 直接访问 防止 VPS 主机 ip 被恶意解析:https://ostarted.com/34」

Apache 禁止 ip 直接访问

没有环境实测,有需要参考一下。

CentOS 配置文件路径一般为:/etc/httpd/conf/httpd.conf ;Debian 或者 Ubuntu 系统,则配置文件路径为:/etc/apache2/sites-available/000-default.conf

Apache 2.2 版本代码

将 8.8.8.8 替换为 VPS 主机服务器真实 ip 即可。

「Nginx Apache 禁止 ip 直接访问 防止 VPS 主机 ip 被恶意解析:https://ostarted.com/34」
<VirtualHost *:80>
ServerName 8.8.8.8
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>

禁止通过 ip 访问 443 端口:

<VirtualHost *:443>
ServerName 8.8.8.8
Redirect 403 /
DocumentRoot /
</VirtualHost>

Apache 2.4 版本代码

<VirtualHost *:80>
ServerName 8.8.8.8
DocumentRoot /var/www
<Location />
Require all denied
</Location>
</VirtualHost>

禁止通过 ip 访问 443 端口:

<VirtualHost *:443>
ServerName 8.8.8.8
Redirect 403 /
DocumentRoot /
</VirtualHost>

另外 Ubuntu 系统种,如果 Apache 配置了多个虚拟主机,部署了多个域名网站,那么多个配置文件会按默认排序规则,排在最前面的网站配置最先读取和生效。

退出移动版