修改openssh-3.x/version.h
找到#define SSH_VERSION "OpenSSH_3.x"
修改后编译安装
修改SSH-2.0 (不建议)
proto-mismatch.sh
proto-version.sh
SSH
版本号:
修改apps/ssh/ssh2version.h
修改apps/ssh/ssh2includes.h
#define SSH2_VERSION_STRING "SSH Secure Shell " SSH2_VERSION \
" (non-commercial version)"
#define SSH2_PROTOCOL_VERSION_STRING SSH2_VERSION \
" SSH Secure Shell (non-commercial)"
apps/ssh/sshd2.c
apps/ssh/lib/sshproto/trcommon.h
apps/ssh/sshstdiofilter.c
exim4
配置文件:/etc/exim4/exim4.conf.template
找到#smtp_banner = $smtp_active_hostname ESMTP Exim $version_number $tod_full
去掉注释并修改
postfix
配置文件/etc /postfix/main.cf
修改 smtpd_banner=$myhostname ESMTP "Version not Available"
Proftd
配置文件:
Apache
ServerSignature Off
配置文件:/etc/apache2/apache2.conf 或/etc/apache2/httpd.conf
在nginx.conf 的 http { 里头加入 server_tokens 的参数
server_tokens off;
http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
彻底屏敝需要修改源码
src/core/nginx.h
找到
#define NGINX_VERSION "0.6.35"
#define NGINX_VER "nginx/" NGINX_VERSION
#define NGINX_VAR "NGINX"
echo 128 > /proc/sys/net/ipv4/ip_default_ttl
用以下命令修改Red Hat Linux的TTL基数为128(默认为64):
net.ipv4.ip_default_ttl = 128
#iptables -I INPUT -s ! xx.xx.xx.xx -p tcp --dport 22 -j DROP
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -I PREROUTING -p tcp --dport 3389 -j DNAT --to xx.xx.xx.xx
#iptables -t nat -I POSTROUTING -p tcp --dport 3389 -j MASQUERADE
第一条命令表示允许数据包转发;第二条命令表示转发TCP 3389到xx.xx.xx.xx;第三条命令表示使转发数据包实现“双向通路”,给数据包设置一个正确的返回通道。若想使转发永久生效,可以把以上命令 添加到/etc/rc.local文件中。
这样,当黑客扫描服务器所开端口的时候,就找不到22号端口,而是看到一个伪装的3389端口,从而不能正确判断出操作系统的类型。
针对netcraft
上面介绍的几种方法对netcraft来说,均不奏效。针对netcraft,可利用iptables进行系统伪装,使netcraft错误判断操作系 统:
#iptables -t nat -I PREROUTING -s 195.92.95.0/24
-p tcp --dport 80 -j DNAT --to xx.xx.xx.xx
#iptables -t nat -I POSTROUTING -s 195.92.95.0/24
-p tcp --dport 80 -j MASQUERADE
由于通过抓包发现,netcraft的服务器不止一台,所以需要对它所在网段进行转发欺骗处理。