在实践中通常需要主动隐藏或篡改软件版本号,防止攻击者通过特定版本号的已知漏洞进行针对性攻击。下面演示如何修改nginx版本号,以及隐藏php版本号。
![]()
修改nginx版本号
方法一:修改源码
思路:软件版本号肯定记录在源码中,只要找到对应配置文件进行修改再安装即可。下面演示完整的操作过程。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| wget -c https://nginx.org/download/nginx-1.12.2.tar.gz wge -c https://zlib.net/zlib-1.2.11.tar.gz wget -c https://www.openssl.org/source/openssl-1.0.2n.tar.gz
tar -zxvf nginx-1.12.2.tar.gz tar -zxvf zlib-1.2.11.tar.gz tar -zxvf openssl-1.0.2n
grep -rn '1.12.2' nginx-1.12.2
vim nginx-1.12.2/src/core/nginx.h
|
上面的动作算完成了版本号修改,接下来开始手动源码安装nginx。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-openssl=/home/xxx/openssl-1.0.2n --without-http_gzip_module --with-zlib=/home/xxx/zlib-1.2.11
make && make install
/usr/local/nginx/sbin/nginx -v nginx version: nginx/tianmingxing
|
方法二:修改配置
- 找到nginx主配置文件
1
| vim /etc/nginx/nginx.conf
|
- 在
http
模块中增加一行 server_tokens off;
1 2 3 4 5 6 7 8 9 10
| http { ...
server_tokens off;
include /etc/nginx/mime.types; ... server {} }
|
- 重启服务
systemctl restart nginx
隐藏php版本号
可以很容易的通常修改配置文件实现,修改完重启php-fpm进程就应用了。
1 2 3 4 5 6 7 8 9
| php -i | grep "Loaded Configuration File"
Loaded Configuration File => /etc/php.ini
vim /etc/php.ini
expose_php = Off
|