默认情况下Nginx的根目录是html文件夹,也就是说其实他已经默认有一个站点了。


打开以下文件


/www/server/panel/vhost/nginx/0.default.conf

这个文件就是宝塔面板默认站点的nginx规则,这里我们把之前的规则删除,重新写入如下代码:


server {
  listen 80;
  listen 443;
  server_name _;
  ssl_certificate /www/server/panel/ssl/certificate.pem;
  ssl_certificate_key /www/server/panel/ssl/privateKey.pem;
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  return 444;
}

第2行是监听80端口,第3行是监听443端口,监听443端口的话需要安装ssl证书,证书路径请填写至第5、6行,但我们可以复用已存在网站的ssl证书,至于证书适用不适用无所谓。

最后一行return只要返回444响应就可以啦,如果不想直接返回444,还可以改成502、404等其他的错误响应。

在宝塔里新建一个站点修改默认配置也可以达到一样效果
6284732d940c4.jpg


Apache 需要修改 Apache 配置文件 httpd.conf 来实现,具体代码如下:

NameVirtualHost XXX.XXX.XXX.XXX
<virtualhost XXX.XXX.XXX.XXX:80>
ServerName  XXX.XXX.XXX.XXX
<Directory />
Order Allow,Deny
Deny from all
</Directory>
</virtualhost>
<virtualhost XXX.XXX.XXX.XXX:80>
ServerName  coldyun.cn
DocumentRoot  /www/wwwroot/coldyun.cn
</virtualhost>

其中XXX.XXX.XXX.XXX为你的IP地址,第一处 virtualhost 配置为拒绝IP的任何访问请求,返回403错误

第二处的 virtualhost 配置为允许通过coldyun.cn这个域名访问,网站主目录为/www/wwwroot/coldyun.cn

当然还可以新建一个虚拟主机配置,将来自IP的访问Rewrite到一个自定义的PHP页面,利用Apache的Rewrite和PHP实现400错误

文章至结束
本文作者:
文章标题:宝塔面板Nginx和Apache环境下禁止IP访问服务器80、443端口,防止恶意解析
本文地址:https://coldyun.cn/archives/10.html
版权说明:若无注明,本文皆Cold' Blog原创,转载请保留文章出处。