这里简单地介绍一下几个增强Linux网络安全的工具。
1. sudo
sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果你需要每天以root身份做一些日常工作,经常执行一些固定的几个只有root身份才能执行的命令,那么用sudo对你是非常适合的。
以RedHat 为例,下面介绍一下安装及设置过程:
首先,你能从sudo主页上下载for Redhat Linux的rpm package.
它在ftp://ftp.freshmeat.net/pub/rpms/sudo/
当前最新的稳定版本1.5.9p4。
执行#rpm -ivh sudo* 进行安装,然后用/usr/sbin/visudo编辑/etc/sudoers文件。如果系统提示你找不到/usr/bin/vi但实际上你在目录/bin下有vi程序,你需要ln -sf /bin/vi /usr/bin/vi为 vi 在/usr/bin下创建符号链接。(注:我在Redhat 6.1上遇到,Redhat 5.x上没有此问题)
另外,如果出现某些其它错误,你可能还需要#chmod 700 /var/run/sudo
下面是我的/etc/sudoers文件例子:
[root@sh-proxy /etc]# more sudoers
Host_Alias SERVER=sh-proxy
# User alias specification
User_Alias ADMIN=jephe,tome
# Cmnd alias specification
Cmnd_Alias SHUTDOWN=/etc/halt,/etc/shutdown,/etc/reboot
ADMIN SERVER=SHUTDOWN
jephe SERVER=/usr/bin/tail -f /var/log/maillog
jephe SERVER=/usr/bin/tail -f /var/log/messages
# User privilege specification
root ALL=(ALL) ALL
-----------
既然我经常需要远程登录到服务器观察email log文件/var/log/maillog的变化,因此我加了这一行到 /etc/sudoers,这样我不需要经常登录作为root来完成我的日常工作,改善了安全性。
补充说明我觉得这主要可以防止sniffit,后门程序当然sudo没有被后门的
2. Sniffit
sniffit 是一个有名的网络端口探测器,你可以配置它在后台运行以检测哪些Tcp/ip端口上用户的输入/输出信息。
最常用的功能是攻击者可以用它来检测你的23(telnet)和110(pop3)端口上的数据传送以轻松得到你的登录口令和mail帐号密码,sniffit基本上是被破坏者所利用的工具,但是既然想知道如何增强你的站点的安全性,首先你应该知晓闯入者们所使用的各种工具。
sniffit 的主页在 ~coder/sniffit/sniffit.html
你能从那里下载最新的版本,安装是非常容易的,就在根目录运行#tar xvfz sniff*
解开所有文件到对应目录。
你能运行sniffit -i以交互式图形界面查看所有在指定网络接口上的输入/输出信息。如:为了得到所有用户通过某接口a.b.c.d接收邮件时所输入的pop3帐号和密码,你能运行
#sniffit -p 110 -t a.b.c.d amp;
#sniffit -p 110 -s a.b.c.d amp;
记录文件放在目录/usr/doc/sniffit*下面:
log file根据访问者的IP地址,随机高端端口号和用来检测的网络接口IP地址和检测端口来命名。它利用了tcp/ip协议天生的虚弱性,因为普通的telnet和pop3所传的用户名和密码信息都是 明文,不带任何方式的加密。 因此对telnet/ftp.你可以用ssh/scp来替代. sniffit检测到的ssh/scp信息基本上是一堆乱码,因此你不需要担心ssh所传送的用户名和口令信息会被第三方所窃取。
补充如果是只抓口令的会我觉得hunt,linsniff.c好用一些另要注意一些反sniffit的程序如antisniffit