Cracker入侵之前做的第一件事情就是刺探目标主机的信息,利用各种方法得到目标主机所提供服务的版本信息,从而判断其是否存有漏洞。可以对每个开放的端口进行相应的连接,通常这些服务程序会显示自己的"banner",这样就能直接获知版本号,如ftp、telnet、sendmail等系统服务。通过这些返回的banner,依靠经验或资料,判断系统版本及服务的漏洞信息,从而发动入侵。现在很多扫描器都具备了自动获取banner的功能,这样大大减轻了入侵者的工作量如nmap、portready等。将Linux伪装成Windows主机,有助于减小被入侵的风险。下面笔者罗列一些更改其中典型网络服务的Banner的方法。
Wu-ftp
用十六进制文本编辑器修改/usr/sbin/in.ftpd文件,找到如下几行:
/var/log/lastlog
Could not write %.100s: %.100s
Version wu-2.6.1-16
改成
Microsoft FTP Service (Version 5.0)
或者
Serv-U FTP Server v4.0 for WinSock ready...
Telnet banner
编辑文件/etc/issue.net,找到类似这行(不同版本的Linux内容不太一样):
Red Hat Linux release 8.0 (Psyche)
Kernel \r on an \m
改成
Microsoft Windows Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99206.1
由于issue.net重启后会自动恢复,为了保持这些伪造的信息,需要再编辑文件/etc/rc.local,在这些行前加“#”号,注释掉恢复的功能:
# echo "" > /etc/issue
# echo "$R" >> /etc/issue
# echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue
# cp -f /etc/issue /etc/issue.net
# echo >> /etc/issue
Apache
在安装Apache前,在源文件/src/include目录下找到httpd.h头文件。此文件定义了apache的版本信息,apache安装时需要调用它。编辑http.h文件,找到如下几行:
#define SERVER_BASEVENDOR "Apache Group"
#define SERVER_BASEPRODUCT "Apache"
#define SERVER_BASEREVISION "1.3.20"
可以根据自己的意愿改成其他信息,笔者改的是Microsoft-IIS/5.0。
SSH
编辑文件/etc/ssh/sshd_config,找到这行:
Banner /etc/issue.net
在此行前加#进行注释就可以不显示SSH的Banner。
Sendmail
在sendmail.mc文件中去掉$v、$z这两个宏,并包含下面的内容:
define(`confSMTP_LOGIN_MSG',$j Sendmail Secure/Rabid;$b)
然后生成sendmail.cf文件:
#m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
如果sendmail.mc中没有include(`/usr/share/sendmail-cf/m4/cf.m4')这一行就需要和Sendmail提供的预设的配置文件cf.m4一起使用来生成文件sendmail.cf:
#m4 /usr/share/sendmail-cf/m4/cf.m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
经过上述的几个步骤,Linux系统的基本安全性能就得到了很大的增强。要得到最大化的安全性能,当然还要根据实际需求配置Apache等等,由于篇幅所限,本文不再进行叙述。关于Linux的安全,当然还有太多需要介绍。您如果还有其他好的经验,也请发邮件给我们,与大家分享!