9 ]( }9 P9 v/ Y" L1 r* G6 w0 E# User privilege specification $ x* l o' y( A+ i8 z+ Hroot ALL=(ALL) ALL[/code:1:1c8b84d2b5] ) d, G+ s4 E( Q $ _2 b0 Z3 r* z2 x----------- / F* q* |, \, ?% W# `+ t( ~% w ! H7 ]3 l* t+ B0 h2 [, ^ 既然我经常需要远程登录到服务器观察email log文件/var/log/maillog的变化,因此我加了这一行到 /etc/sudoers,这样我不需要经常登录作为root来完成我的日常工作,改善了安全性。 7 h4 ^+ U# M% F$ ]
5 C# ?9 y8 h. o
[b:1c8b84d2b5]2. Sniffit[/b:1c8b84d2b5] - B% e6 q2 o, N, I% q9 |
sniffit 是一个有名的网络端口探测器,你可以配置它在后台运行以检测哪些Tcp/ip端口上用户的输入/输出信息。 % S4 f2 e& A _7 p* F# `! o3 {
最常用的功能是攻击者可以用它来检测你的23(telnet)和110(pop3)端口上的数据传送以轻松得到你的登录口令和mail帐号密码,sniffit基本上是被破坏者所利用的工具,但是既然想知道如何增强你的站点的安全性,首先你应该知晓闯入者们所使用的各种工具。 s/ |6 G ]0 S7 q# P
" {$ \; S! E) S+ @3 j# A& r% v sniffit 的主页在 http://reptile.rug.ac.be/~coder/sniffit/sniffit.html你能从那里下载最新的版本,安装是非常容易的,就在根目录运行#tar xvfz sniff*解开所有文件到对应目录。 0 Y0 @# ~4 \5 B / }1 a0 B" r5 Q$ I1 r% |, a. m 你能运行sniffit -i以交互式图形界面查看所有在指定网络接口上的输入/输出信息。 6 o) A( z! L. O1 T# ~ 2 R: y9 ~5 h! b: w如:为了得到所有用户通过某接口a.b.c.d接收邮件时所输入的pop3帐号和密码,你能运行 ; W7 l5 d ]7 u3 X X) K- Y#sniffit -p 110 -t a.b.c.d & % @& G6 g; T8 ?" _5 B#sniffit -p 110 -s a.b.c.d & & w+ P2 A K- h5 U8 M3 `记录文件放在目录/usr/doc/sniffit*下面: : y& G$ g' P) Y9 { log file根据访问者的IP地址,随机高端端口号和用来检测的网络接口IP地址和检测端口来命名。它利用了tcp/ip协议天生的虚弱性,因为普通的telnet和pop3所传的用户名和密码信息都是明文,不带任何方式的加密。 因此对telnet/ftp.你可以用ssh/scp来替代. sniffit检测到的ssh/scp信息基本上是一堆乱码,因此你不需要担心ssh所传送的用户名和口令信息会被第三方所窃取。 " N, t2 t' j; _/ c9 u/ C3 P 6 v9 Z) Z' o& U, k9 J3 G8 \* |" p 4 l+ g( Q* @" U6 p[b:1c8b84d2b5]3. ttysnoop(s)[/b:1c8b84d2b5] 9 U: m3 r! j& u S% D ttysnoop是一个重定向对一个终端号的所有输入/输出到另一个终端的程序。目前我所知道的它的所在网站为http://uscan.cjb.net,但是始终连不上去,从其它途径我得到了ttysnoop-0.12c-5 ,地址是http://rpmfind.net/linux/RPM/contrib/libc6/i386/ttysnoop-0.12c-5.i386.html这个版本好象还不能支持shadow password,安装后你需要手动创建目录/var/spool/ttysnoop测试这个程序是有趣的,下面是相关指令: 4 o/ X" c' L i6 f3 d( l1 o8 ? S ~, E9 u6 z7 }/ E+ Z, i! @ 首先改/etc/inetd.conf中的in.telnetd默认调用login登录程序为/sbin/ttysnoops,象下面这样: ! S2 Q' [; K8 \; ]' C
[code:1:1c8b84d2b5][root@jephe /etc]# more inetd.conf | grep in.telnetd ; l! [& `/ U5 Q8 L' z5 i
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -L /sbin/ttysnoops[/code:1:1c8b84d2b5] 5 b a1 k8 w' M% r& g% Y
更改后一定要运行killall -HUP inetd使之生效,确保不要使用阴影口令,用#pwunconv禁止阴影口令。 " H6 F# b6 t, R G- N& F/ r再编辑文件/etc/snooptab默认配置就可以了。 ! G: [* X" I1 w2 ~! a7 L
[code:1:1c8b84d2b5][root@jephe /etc]# more snooptab * ~+ E$ y6 X" V, U u2 l; N" `ttyS1 /dev/tty7 login /bin/login 3 Z! F& q6 T% ^+ o/ O; D9 ~5 w7 U
ttyS2 /dev/tty8 login /bin/login 2 a' H( c! q1 w7 ]1 I
* socket login /bin/login[/code:1:1c8b84d2b5] N7 E$ P5 ?; d------ $ [! a% _( W; [2 ]1 H 最后,如果在某个终端上有人登录进来(你可以用w命令查看它在哪个终端),如登录终端设备为ttyp0,则你可以登录进服务器打入#/bin/ttysnoop ttyp0(提示输入root口令,再次,上面提到的这个版本不支持阴影口令)以监视用户的登录窗口。 . z j" [3 t' [: g 7 ?; N, b) e& f, R1 ?, x5 W8 D[b:1c8b84d2b5]4. nmap[/b:1c8b84d2b5] 0 `, U/ ^( e0 U, q0 U, _+ X nmap 是用来对一个比较大的网络进行端口扫描的工具,它能检测该服务器有哪些tcp/ip端口目前正处于打开状态。你可以运行它来确保已经禁止掉不该打开的不安全的端口号。 * P" s1 ]$ O9 B3 ^! }. {( i
nmap的主页在http://www.insecure.org/nmap/index.html ; H& G# l$ J+ d
?7 x1 [# I! u4 X& ^5 R
下面给出一个简单的例子: ( h5 h; j9 K8 Y. [, f# }
[code:1:1c8b84d2b5][root@sh-proxy /etc]# /usr/local/bin/nmap public.sta.net.cn j# D+ \. V5 I1 Y7 h4 t4 D# ?* W
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/) 1 g& @0 \% I. q% Z9 O7 Z% R. o
Interesting ports on public.sta.net.cn (202.96.199.97): ( I, `" S F9 Q+ w0 F8 F
Port State Protocol Service ) s' L" G9 U& G' E1 H
21 open tcp ftp 4 S; S4 z' H* M23 open tcp telnet . T( N; \5 w, i* P
25 open tcp smtp 9 f* g1 e/ V& Z* E
109 open tcp pop-2 3 c" ~7 g- a! L
110 open tcp pop-3 4 N& D4 h7 u3 C* k
143 open tcp imap2 4 M# s& N% s% `) l( S$ y* ~
513 open tcp login & o; o( m A J9 y
514 open tcp shell 8 y$ M2 O9 ]; A5 S$ r: G
7000 open tcp afs3-fileserver , T: h5 E1 x% \
2 O2 a3 I6 K1 B' [; I9 p2 Z0 @: b, S
Nmap run completed -- 1 IP address (1 host up) scanned in 15 seconds[/code:1:1c8b84d2b5] 7 V4 ?% D+ N$ [
' z! [* ?; V0 a. A! E% _
- g: k7 L! F. L1 M 3 `/ ?' \6 H: y, Q[b:1c8b84d2b5]第二部分[/b:1c8b84d2b5] - @% f0 q5 J9 I+ Q7 o. E6 o, h: J: J s( n+ n
[b:1c8b84d2b5]一 John the ripper[/b:1c8b84d2b5] J& P2 Z& g0 G
7 A, T% K J8 @( v" I7 S
在Linux中,密码以hash格式被存储,你不能反向从该hash数据表中分析出密码,但可以以一组单词hash后和它进行比较,如相同则就猜测出密码。故起一个很难被猜测的密码是非常关键的。一般地你决不能用字典存在的某个单词作为密码,那是相当容易被猜测出来的。另外也不能用一些常见的有规则性的字母数字排列来作为密码,以123abc等。 4 W0 o% F( G* ?
! g, V; H; k7 F. |- G2 D$ f
John the ripper是一个高效的易于使用的密码猜测程序,其主页在http://www.openwall.com/john/ & W. `: \1 z% P* Q下载tar.gz格式的for UNIX的程序,然后用tar xvfz john*.tar.gz解开到任一目录下。进入src目录,打入 make linux-x86-any-elf (我用redhat 6.1)后会在run目录下生成几个执行文件,包括主程序john。现在要Crack密码就运行./john /etc/passwd即可。 1 a& Z7 n# K. _6 Q! S X! d* B