1、应用仅监听本地端口
确保你的服务监听的仅为本地连接,该项与你说采用的服务器软件无关
例如:Apache服务器应该确保/etc/apache2/ports.conf配置中,监听应为
1 | Listen 127.0.0.1:80 |
Nginx服务器/etc/nginx/nginx.conf配置文件中应该为:
1 | listen 127.0.0.1:80; |
2、禁止目录列表服务
Apache:
1 2 3 | <directory /var/www/> Options -Indexes </directory> |
Nginx:
1 2 3 | location / { autoindex off; } |
3、禁用详细签名和错误报告
这是为了确保您的服务器指纹很小,没有特定的标头或唯一的版本号来跟踪您。
(1)禁用服务器信息和服务器状态(仅适用于Apache)
在某些配置上,Apache默认显示/ server-info和/ server-status页面泄漏内部数据(例如,其他用户请求的URL)。 您可以通过从httpd.conf中删除mod_info或在配置文件中注释掉
(2)删除服务器签名
这样可以确保您的网络服务器的版本和OS服务器名称不会在服务器标题和默认错误网页(404、500等)内泄漏。
在Apache上,只需将以下指令添加为默认的httpd.conf文件(在Debian 8上,您可以直接编辑/etc/apache2/conf-enabled/security.conf):
1 2 | ServerSignature Off ServerTokens Prod |
在Nginx上,禁用nginx.conf中的server_tokens:
1 2 3 | http { server_tokens off; } |
(3)禁用应用程序错误报告
这取决于您使用的后端语言(PHP,NodeJS,Python等),如何禁用错误报告请自行搜索各种程序的文档。
大多数错误报告(堆栈跟踪,内存转储等)都可能泄漏您的IP地址或其他相关信息:全部禁用!
4、修复你的缺陷
保持服务器上的程序更新到最新版本,检查程序是否有SQL注入的问题。
禁用不需要的服务,遵守最小权限原则,并分隔Web应用程序的不同层。
5、禁用服务器发送邮件(请使用第三方的邮件服务,使用SMTP收发信)
某些Web应用程序正在发送验证电子邮件,这些电子邮件可能会将您的IP地址泄漏给收件人。
6、使用CDN且使用SSL连接
评论2