邪恶八进制信息安全团队技术讨论组's Archiver

EvilOctal 2005-5-10 17:01

[转载]常用的Linux网络安全工具简介(第一部分)

  文章作者:吴阿亭

简介:

尽管各种版本的Linux distribution 附带了很多开放源代码的自由软件,但是仍然
有大量的有用的工具没有被默认包括在它们的安装光盘内,特别是有一些可以增强
Linux网络安全的工具包,它们大多也是开放源的自由软件。


这里简单地介绍一下几个增强Linux网络安全的工具。


1. sudo

sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个
明显的用途是增强了站点的安全性,如果你需要每天以root身份做一些日常工作,经
常执行一些固定的几个只有root身份才能执行的命令,那么用sudo对你是非常适合的。

sudo的主页在:[url]http://www.courtesan.com/courtesan/products/sudo/[/url]

以Redhat 为例,下面介绍一下安装及设置过程:
首先,你能从sudo主页上下载for Redhat Linux的rpm package.
它在[url]ftp://ftp.freshmeat.net/pub/rpms/sudo/[/url]
当前最新的稳定版本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来完成我
的日常工作,改善了安全性。

2. Sniffit

sniffit 是一个有名的网络端口探测器,你可以配置它在后台运行以检测哪些Tcp/ip
端口上用户的输入/输出信息。
最常用的功能是攻击者可以用它来检测你的23(telnet)和110(pop3)端口上的数据传送
以轻松得到你的登录口令和mail帐号密码,sniffit基本上是被破坏者所利用的工具,
但是既然想知道如何增强你的站点的安全性,首先你应该知晓闯入者们所使用的各种工具。

sniffit 的主页在 [url]http://reptile.rug.ac.be/~coder/sniffit/sniffit.html[/url]

你能从那里下载最新的版本,安装是非常容易的,就在根目录运行#tar xvfz sniff*
解开所有文件到对应目录。

你能运行sniffit -i以交互式图形界面查看所有在指定网络接口上的输入/输出信息。

如:为了得到所有用户通过某接口a.b.c.d接收邮件时所输入的pop3帐号和密码,你能运行

#sniffit -p 110 -t a.b.c.d &
#sniffit -p 110 -s a.b.c.d &

记录文件放在目录/usr/doc/sniffit*下面:
log file根据访问者的IP地址,随机高端端口号和用来检测的网络接口IP地址和检测
端口来命名。它利用了tcp/ip协议天生的虚弱性,因为普通的telnet和pop3所传的
用户名和密码信息都是明文,不带任何方式的加密。 因此对telnet/ftp.你可以用
ssh/scp来替代. sniffit检测到的ssh/scp信息基本上是一堆乱码,因此你不需要
担心ssh所传送的用户名和口令信息会被第三方所窃取。


3. ttysnoop(s)
ttysnoop是一个重定向对一个终端号的所有输入/输出到另一个终端的程序。目前我
所知道的它的所在网站为
[url]http://uscan.cjb.net[/url],但是始终连不上去,从其它途径我得到了ttysnoop-0.12c-5 ,
地址是[url]http://rpmfind.net/linux/RPM/contrib/libc6/i386/ttysnoop-0.12c-5.i386.html[/url]
这个版本好象还不能支持shadow password,安装后你需要手动创建目录/var/spool/ttysnoop
测试这个程序是有趣的,下面是相关指令:

首先改/etc/inetd.conf中的in.telnetd默认调用login登录程序为/sbin/ttysnoops,
象下面这样:

[root@jephe /etc]# more inetd.conf | grep in.telnetd
telnet  stream  tcp    nowait  root   /usr/sbin/tcpd  in.telnetd  -L /sbin/ttysnoops

更改后一定要运行killall -HUP inetd使之生效
确保不要使用阴影口令,用#pwunconv禁止阴影口令。
再编辑文件/etc/snooptab
默认配置就可以了。

[root@jephe /etc]# more snooptab
ttyS1        /dev/tty7     login  /bin/login
ttyS2        /dev/tty8     login  /bin/login
*          socket       login  /bin/login
------

最后,如果在某个终端上有人登录进来(你可以用w命令查看它在哪个终端),
如登录终端设备为ttyp0,则你可以登录进服务器打入#/bin/ttysnoop ttyp0
(提示输入root口令,再次,上面提到的这个版本不支持阴影口令)以监视用户的登录窗口。

4. nmap

nmap 是用来对一个比较大的网络进行端口扫描的工具,它能检测该服务器有哪些
tcp/ip端口目前正处于打开状态。你可以运行它来确保已经禁止掉不该打开的不安全的
端口号。
nmap的主页在[url]http://www.insecure.org/nmap/index.html[/url]

下面给出一个简单的例子:

[root@sh-proxy /etc]# /usr/local/bin/nmap public.sta.net.cn

Starting nmap V. 2.12 by Fyodor ([email]fyodor@dhp.com[/email], [url]www.insecure.org/nmap/[/url])
Interesting ports on public.sta.net.cn (202.96.199.97):
Port   State     Protocol  Service
21    open      tcp      ftp
23    open      tcp      telnet
25    open      tcp      smtp
109    open      tcp      pop-2
110    open      tcp      pop-3
143    open      tcp      imap2
513    open      tcp      login
514    open      tcp      shell
7000   open      tcp      afs3-fileserver

Nmap run completed -- 1 IP address (1 host up) scanned in 15 seconds

==========

第一部分完(待续)

页: [1]
© 1999-2008 EvilOctal Security Team