$ c4 O7 `& A& Z4 ?+ o8 F1 e cUser_Alias ADMIN=jephe,tome & V0 j+ b. e% X% Z) N, R; w
S X; D, Q% i# Cmnd alias specification 7 S7 W9 O/ _8 S% X8 c* c
8 z: Z$ B. u4 z7 ]4 B
Cmnd_Alias SHUTDOWN=/etc/halt,/etc/shutdown,/etc/reboot ; Y) m) C) w; K8 Z V
1 o+ T3 [2 L3 o- f9 U% zADMIN SERVER=SHUTDOWN 8 y+ l5 U( J- W# G, `, d5 L
jephe SERVER=/usr/bin/tail -f /var/log/maillog - u2 Z$ n. I5 U% B
jephe SERVER=/usr/bin/tail -f /var/log/messages 5 m: @3 A) A- U2 n, g! o" P3 n5 E# Q: z" D# g( w, \
# User privilege specification * Y. ^- A2 n, Rroot ALL=(ALL) ALL[/code:1:1c8b84d2b5] 2 i- `4 I! ]6 k/ m! t- Y' G$ k% d' }( O
----------- P; _% o' h5 C; N3 c( x' S2 n2 b& v o6 y/ D+ B% Y
既然我经常需要远程登录到服务器观察email log文件/var/log/maillog的变化,因此我加了这一行到 /etc/sudoers,这样我不需要经常登录作为root来完成我的日常工作,改善了安全性。 * G+ F# ]# Y2 F/ k' Q5 b
* q. e1 q$ @: D" N2 P
[b:1c8b84d2b5]2. Sniffit[/b:1c8b84d2b5] 1 c) C+ w& b ?/ t% F
sniffit 是一个有名的网络端口探测器,你可以配置它在后台运行以检测哪些Tcp/ip端口上用户的输入/输出信息。 4 M! O7 z7 {" g# O 最常用的功能是攻击者可以用它来检测你的23(telnet)和110(pop3)端口上的数据传送以轻松得到你的登录口令和mail帐号密码,sniffit基本上是被破坏者所利用的工具,但是既然想知道如何增强你的站点的安全性,首先你应该知晓闯入者们所使用的各种工具。 5 l4 w. x* g- j! n$ m6 |0 a & N i2 G% \- }. ]( u/ F sniffit 的主页在 http://reptile.rug.ac.be/~coder/sniffit/sniffit.html你能从那里下载最新的版本,安装是非常容易的,就在根目录运行#tar xvfz sniff*解开所有文件到对应目录。 . j0 ]( t3 ] h/ n" I$ z2 D7 A 5 E" b o0 X+ a0 W 你能运行sniffit -i以交互式图形界面查看所有在指定网络接口上的输入/输出信息。 " s- ?6 J$ W& e5 u: j6 w % G3 _! ]3 }1 \# Q0 A' k4 }如:为了得到所有用户通过某接口a.b.c.d接收邮件时所输入的pop3帐号和密码,你能运行 ! N) ~7 }1 N. n+ f/ f8 ]#sniffit -p 110 -t a.b.c.d & : C g' N9 O1 R
#sniffit -p 110 -s a.b.c.d & P* k3 W2 B' P记录文件放在目录/usr/doc/sniffit*下面: ! k- A7 u" f T6 Q log file根据访问者的IP地址,随机高端端口号和用来检测的网络接口IP地址和检测端口来命名。它利用了tcp/ip协议天生的虚弱性,因为普通的telnet和pop3所传的用户名和密码信息都是明文,不带任何方式的加密。 因此对telnet/ftp.你可以用ssh/scp来替代. sniffit检测到的ssh/scp信息基本上是一堆乱码,因此你不需要担心ssh所传送的用户名和口令信息会被第三方所窃取。 2 c }1 I/ U( e' D1 R; @* m; G6 U+ [
9 b* `1 c" j$ o4 ~2 H
/ a4 `/ V5 {3 N$ t' J' `' M[b:1c8b84d2b5]3. ttysnoop(s)[/b:1c8b84d2b5] 1 z: |' k6 g+ H3 H# o' F( X K
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测试这个程序是有趣的,下面是相关指令: : x r3 k7 d3 Z2 Y7 J }& y' Z6 H0 N& I
首先改/etc/inetd.conf中的in.telnetd默认调用login登录程序为/sbin/ttysnoops,象下面这样: 4 }! l! U! P- Y5 o2 \% n' [) ~
[code:1:1c8b84d2b5][root@jephe /etc]# more inetd.conf | grep in.telnetd 3 u% f+ J K$ e& s6 E/ Y1 J
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -L /sbin/ttysnoops[/code:1:1c8b84d2b5] ( x1 J( Z. V% m$ L7 N* p 更改后一定要运行killall -HUP inetd使之生效,确保不要使用阴影口令,用#pwunconv禁止阴影口令。 5 F9 D2 K E y4 T再编辑文件/etc/snooptab默认配置就可以了。 4 [) J i8 ?+ {1 L6 ]! C* }
[code:1:1c8b84d2b5][root@jephe /etc]# more snooptab 9 o N1 l7 r; B4 B
ttyS1 /dev/tty7 login /bin/login ; f* ~( D j9 m: b$ PttyS2 /dev/tty8 login /bin/login : q8 S" D+ Y8 x8 B7 Y& {4 O* socket login /bin/login[/code:1:1c8b84d2b5] k/ ^6 i2 J r' |
------ - h ]. J' G; |: n# v& s9 ? 最后,如果在某个终端上有人登录进来(你可以用w命令查看它在哪个终端),如登录终端设备为ttyp0,则你可以登录进服务器打入#/bin/ttysnoop ttyp0(提示输入root口令,再次,上面提到的这个版本不支持阴影口令)以监视用户的登录窗口。 + w0 T- C9 H% T+ q1 P. y' {4 i# V; k( W6 x' U u, y. r1 ^
[b:1c8b84d2b5]4. nmap[/b:1c8b84d2b5] ) u! a/ z! `9 M9 L" g nmap 是用来对一个比较大的网络进行端口扫描的工具,它能检测该服务器有哪些tcp/ip端口目前正处于打开状态。你可以运行它来确保已经禁止掉不该打开的不安全的端口号。 ; \2 r, T8 m# n; n, o5 p. O nmap的主页在http://www.insecure.org/nmap/index.html ; q, e* Q' W8 L% A4 Q* c ^# K& d' W1 m$ D
下面给出一个简单的例子: & T0 B/ [0 c+ F[code:1:1c8b84d2b5][root@sh-proxy /etc]# /usr/local/bin/nmap public.sta.net.cn 8 w9 R3 m9 y0 Z& _- C3 {2 `1 v+ u Z* ] y6 B
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/) 0 g+ @( t' q' `7 I0 ]6 `Interesting ports on public.sta.net.cn (202.96.199.97): . l7 L @5 ]1 c+ l
Port State Protocol Service ' P+ K# W) N4 A
21 open tcp ftp * N% N! u* i9 M* K. X; v: a23 open tcp telnet 9 t/ W3 n8 z7 m) P0 A0 _+ \# C! S# E
25 open tcp smtp & |, d+ o* X9 `, u. o9 I. W
109 open tcp pop-2 $ f; r' |4 Z4 r+ ]% _
110 open tcp pop-3 ' Q# |9 i% Q, d' `. J# A& A D143 open tcp imap2 . K* o# ], H7 ^* ~9 i- {! O5 k* m) J513 open tcp login 0 s) r$ x1 R8 S) E) ~514 open tcp shell # B% `9 Z ?5 x/ U0 u1 ?
7000 open tcp afs3-fileserver ' B6 Z ~6 r. ^8 O& q! {' p1 O0 g6 `, R# |: L
Nmap run completed -- 1 IP address (1 host up) scanned in 15 seconds[/code:1:1c8b84d2b5] 7 N# n4 @2 r& L3 B# P: U & D1 f6 P. e) K$ N3 }3 b 6 B* ?9 j! t: s; r1 h, j+ a& |( G+ B& S# G* `
[b:1c8b84d2b5]第二部分[/b:1c8b84d2b5] : v, i/ x+ v# }1 P8 U2 S+ S' f3 `
6 v T4 |; r R
[b:1c8b84d2b5]一 John the ripper[/b:1c8b84d2b5] 3 ?5 ~7 b3 k0 v) F# l% s( U
, v& P1 J* q2 e2 e 在Linux中,密码以hash格式被存储,你不能反向从该hash数据表中分析出密码,但可以以一组单词hash后和它进行比较,如相同则就猜测出密码。故起一个很难被猜测的密码是非常关键的。一般地你决不能用字典存在的某个单词作为密码,那是相当容易被猜测出来的。另外也不能用一些常见的有规则性的字母数字排列来作为密码,以123abc等。 % H/ @8 X) r E
- {) g1 Z+ v* C4 `/ |* e) f
John the ripper是一个高效的易于使用的密码猜测程序,其主页在http://www.openwall.com/john/ " F6 r6 `1 j0 V1 W8 h+ B9 i下载tar.gz格式的for UNIX的程序,然后用tar xvfz john*.tar.gz解开到任一目录下。进入src目录,打入 make linux-x86-any-elf (我用redhat 6.1)后会在run目录下生成几个执行文件,包括主程序john。现在要Crack密码就运行./john /etc/passwd即可。 ! j) f/ R& \& D/ R. r+ B. ?