linux常见服务隐藏和伪装banner
2012-08-21 21:30:31 阿炯

--------------------------
TTL
用以下命令修改Red Hat Linux的TTL基数为128(默认为64):
echo 128 > /proc/sys/net/ipv4/ip_default_ttl
用以下命令修改Red Hat Linux的TTL基数为128(默认为64):
net.ipv4.ip_default_ttl = 128

--------------------------
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

配置文件:
伪装登入欢迎信息
修改 ServerIdent on "Serv-U FTP Server v5.0 for WinSock ready...\"
或ServerIdent off
telnet会显示:220 ::ffff:192.168.2.3 FTP server ready

伪装banner信息
DisplayLogin [msgfile]  DisplayConnect [msgfile]

--------------------------
Vsftpd
配置文件:vsftpd.conf
修改 ftpd_banner=welcome to this FTP server

--------------------------
Apache

配置文件:/etc/apache2/apache2.conf 或/etc/apache2/httpd.conf

找到 ServerSignature on 改为 ServerSignature off
找到ServerTokens Full 改为 ServerTokens prod

经过以上修改,可以隐藏一些 banner
但是用wget -S和curl -I还是可以看到apache字样

彻底伪装的话需要修改源文件
编辑ap_release.h文 件,修改"#define AP_SERVER_BASEPRODUCT\"Apache\""为"#define AP_SERVER_BASEPRODUCT\"Microsoft-IIS/5.0\"
编辑os/unix/os.h文 件修改"#define PLATFORM\"Unix\""为"#define PLATFORM\'Win32"

重新编译apache

--------------------------
PHP

配置文件php.ini
修改expose_php On ——> expose_php = Off

--------------------------
Nginx

在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.7.35"   
#define NGINX_VER          "nginx/" NGINX_VERSION
#define NGINX_VAR          "NGINX"

修改后编译

--------------------------
利用iptables保护登录端口

利用iptables来限制22端口的 SSH登录,让非授权的IP扫描不到TCP 22端口的存在:
#iptables -I INPUT -s ! xx.xx.xx.xx -p tcp --dport 22 -j DROP

利用iptables,将本机的TCP 3389端口转移到其它开有3389端口的计算机上,给Linux系统伪装出一个提供服务的TCP 3389端口。命令如下:
#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端口,从而不能正确判断出操作系统的类型。