二、保護你的系統最簡單有效的的方法是TCPwrapper. Linux系統 在跟蹤對你的機器的訪問記錄方面作了大量的工作。wrapper拒絕對你的系統的某些訪問的同時,系統在一些LOG文件中增加了一些信息內容。在/var/log目錄下,一般可以看到如下文件: boot.log cron cron
二、保護你的系統最簡單有效的的方法是TCPwrapper.Linux系統在跟蹤對你的機器的訪問記錄方面作了大量的工作。wrapper拒絕對你的系統的某些訪問的同時,系統在一些LOG文件中增加了一些信息內容。在/var/log目錄下,一般可以看到如下文件:
boot.log cron cron.1 cron.2 dmesg httpd lastlog lastlog.1 maillog maillog.1 maillog.2 messages messages.1 netconf.log netconf.log.1 netconf.log.2 secure secure.1 secure.2 secure.3 secure.4 spooler spooler.1 spooler.2 uucp wtmp wtmp.1 xferlog xferlog.1 xferlog.2
可以看到某些LOG文件有1,2等擴展名。這是由於系統運行cron.daily引起的。實際上,cron.daily是在/etc下面的子目錄,包含了很多系統自動運行的管理script文件。不需要你參與,這些script實現一些任務的自動化:如輪轉log文件使其不會變的過分大。作為管理員你應該熟悉如何通過修改這些script來定時運行程序。當然,現在有很多功能完善的文本模式或圖形模式的log文件分析器,自動發現危險的攻擊
跡象,然後象管理者發送信件。在http://www.freshmeat.net/ tucows等可以找到很多這樣的工具.從攻擊者的觀點而言,他們對你的你服務器上的安全文件最感興趣。若你關閉外部網絡對你的服務器 的訪問。你可能會遇到這樣的情況:
[root@linux /]#grep refused /var/log/secure* Sep 12 07:52:42 netgate in.rlogind[7138]: refused connect from 2??.?.5?.?42 Sep 12 07:52:52 netgate in.rshd[7139]: refused connect from 2??.?.5?.?42 Sep 12 07:52:55 netgate in.rexecd[7144]: refused connect from 2??.?.5?.?42 Sep 12 07:52:59 netgate imapd[7146]: refused connect from 2??.?.5?.42 Sep 12 07:52:59 netgate in.fingerd[7142]: refused connect from 2??.?.5?.?42 Sep 12 07:53:00 netgate ipop3d[7143]: refused connect from 2??.?.5?.?42 Sep 12 07:53:07 netgate in.ftpd[7147]: refused connect from 2??.?.5?.?42 Sep 12 07:53:10 netgate gn[7145]: refused connect from 2??.?.5?.?42 Sep 12 07:53:22 netgate in.telnetd[7149]: refused connect from 2??.?.5?.?42 Sep 12 07:56:34 netgate imapd[7150]: refused connect from 2??.?.5?.?42
正如你看到的那樣,攻擊者已經試圖連接服務器上的若干個端口。但是由於服務器關閉了inetd啟動的
所有服務,所以LOG系統記錄下了這些訪問拒絕。若在你的機器中沒有發現這樣的服務拒絕並不能說明你的機
器沒有被攻擊。maillog文件將保存那些通過服務器被轉發的email信息。xferlog保存ftp的log信息等等。
若你希望查看wtmp,你可以使用last命令
# last | more fishduck ttyp6 nexus Tue Sep 28 16:03 still logged in birdrat ttyp5 speedy Tue Sep 28 15:57 still logged in root tty1 Tue Sep 28 12:54 still logged in 將顯示誰什麼時候登陸進來,登陸了多長時間等信息。通過查看你可以發現非法登陸者信息。你也可以查看以前的wtmp文件如wtmp.1, 你可以用命令: # last -f /var/log/wtmp.1 | more 但是你還需要注意你的log文件的狀態信息,如果它特別小 或者大小為0 則說明可能有攻擊者進入系統,並且修改了這個文件。為了防止任何用戶修改某些文件,如對log文件只允許添加,而不允許刪除操作等等: 可以通過使用Linux Intrusion Detection System可以防止攻擊者修改LOG文件password 文件等。該工具可以在啟動lilo時來決定是否允許對某些特定文件的修改。該工具的詳細信息可以通過訪問 www.soaring-bird.com.cn/oss_proj/lids/index.html獲得。系統的所有進程的祖父進程被成稱為"init",其進程ID號是1。你可以通過下面的命令,看到init進程信息。 # ps ax | grep init 1 ? S 6:03 init 系統在啟動時的init進程將會啟動"inetd"進程,正如前面提到的該進程實現監聽網絡請求,監聽是通過網 絡端口號來實現的。例如你telnet到你的linux服務器上時,實際上你上請求inetd進程啟動進程in.telnetd進程在23端口來處理你的訪問請求實現通信。隨後,in.telnetd進程啟動一個詢問你的用戶名和密碼的進程, 然後你就登陸到機器了。inetd同時監聽很多端口來等待訪問請求,然後激活完成相關服務的程序。你可以通過查看文件/etc/services來看哪個服務使用哪個端口。從節省資源角度來說,利用一個進程而不是每 種服務對應一個進程是有意義的。當一個攻擊者第一次訪問你的站點時,他們往往使用成為端口掃描儀的工具,通過該工具攻擊者來查看你開放了那些系統服務。LInux上比較出名的一個端口掃描儀是nmap. 可以從http://www.insecure.org/nmap/index.html下載得到該軟件,最新的版本甚至有一個圖形化界面nmapfe。下面我們就運行nmap看可以得到什麼結果: 選項'-sS',指使用TCP SYN, 也就是半連接half-pen掃描, '-O',只同時探測被掃描系統的操作系統o。(利用OS指紋的技術,可以參見http://www.isbase.com/book/showQueryL.asp?libID=271)攻擊者知道了 對方使用的何種操作系統就可以有針對性的尋找該操作系統的常見漏洞
# nmap -sS -O localhost Starting nmap V. 2.3BETA5 by Fyodor ([email protected], www.insecure.org/nmap/) Interesting ports on localhost (127.0.0.1): Port State Protocol Service 21 open tcp ftp 23 open tcp telnet 25 open tcp smtp 53 open tcp domain 79 open tcp finger 80 open tcp http 98 open tcp linuxconf 111 open tcp sunrpc 113 open tcp auth 139 open tcp netbios-ssn 513 open tcp login 514 open tcp shell 515 open tcp printer TCP Sequence Prediction: Class=random positive increments Difficulty=4360068 (Good luck!) Remote operating system guess: Linux 2.1.122 - 2.2.12 Nmap run completed -- 1 IP address (1 host up) scanned in 2 seconds
這些打開的端口就是攻擊者入侵點。當你修改過inetd.conf文件以關閉某些服務,從新啟動inetd後,你 再用nmap掃描就可以發現被注釋掉的服務掃描不到了。
當然,管理員還可以使用一些其他的安全掃描工具如:satan或 Nessus等 來檢測自己的系統的安全可靠性,在攻擊者發現其以前更早的發現自己的系統的漏洞,並加以彌補。