Linux服務器十大安全注意事項
Linux服務器如何才能保證它的安全呢?下文介紹了linux服務器的十個安全注意事項,希望大家能夠掌握。
①首先要保證自己的服務器的絕對安全,root密碼我一般設置為28位以上,而且某些重要的服務器必須只有幾個人知道root密碼,這個根據公司權限來設置,如果有公司的系統管理員離職,root密碼一定要更改;玩linux久了的人都應該知道,更改root密碼不會影響linux的crontab計劃任務,而windows2003就不一樣了,如果隨意更改administrator密碼,會直接影響其計劃任務運行。
②我的Nagios外網監控服務器,剛開始測試時取的密碼是redhat,放進公網一天就被人改了,郁悶死了;后來環境部署成熟以后發現仍然有不少外網ip在掃描和試探,看來不用點工具不行啊;呵呵,DenyHosts是用Python2.3寫的一個程序,它會分析/var/log/secure等日志文件,當發現同一IP在進行多次SSH密碼嘗試時就會記錄IP到/etc/hosts.deny文件,從而達到自動屏蔽該IP的目的。
DenyHosts官方網站為:http://denyhosts.sourceforge.net
一、檢查安裝條件
1、首先判斷系統安裝的sshd是否支持tcp_wrappers(默認都支持)
- #ldd/usr/sbin/sshdlibwrap.so.0=>/usr/lib/libwrap.so.0(0x0046e000)
2、判斷默認安裝的Python版本
- #python-VPython2.3.4
二、已安裝Python2.3以上版本的情況
1、安裝DenyHosts
- #cd/usr/local/src#wgethttp://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz#tarzxfDenyHosts-2.6.tar.gz#cdDenyHosts-2.6#pythonsetup.pyinstall
程序腳本自動安裝到/usr/share/denyhosts
庫文件自動安裝到/usr/lib/python2.3/site-packages/DenyHosts
denyhosts.py自動安裝到/usr/bin
2、設置啟動腳本
- #cd/usr/share/denyhosts/#cpdaemon-control-distdaemon-control#chownrootdaemon-control#chmod700daemon-control#grep-v"^#"denyhosts.cfg-dist>denyhosts.cfg#videnyhosts.cfg
根據自己需要進行相應的修改
----------------denyhosts.cfg------------------------SECURE_LOG=/var/log/secure#RedHat/FedoraCore分析該日志文件#其它版本linux根據denyhosts.cfg-dist內提示選擇。PURGE_DENY=30m#過多久后清除DENY_THRESHOLD_INVALID=1#允許無效用戶(/etc/passwd未列出)登錄失敗的次數DENY_THRESHOLD_VALID=5#允許有效(普通)用戶登錄失敗的次數DENY_THRESHOLD_ROOT=3#允許root登錄失敗的次數HOSTNAME_LOOKUP=NO#是否做域名反解----------------denyhosts.cfg------------------------
如果需要DenyHosts隨系統重啟而自動啟動,還需做如下設置:
#vi/etc/rc.local
加入下面這條命令
- /usr/share/denyhosts/daemon-controlstart
3、啟動
- #/usr/share/denyhosts/daemon-controlstart
如果要使DenyHosts每次重起后自動啟動還需做如下設置:
- #cd/etc/init.d#ln-s/usr/share/denyhosts/daemon-controldenyhosts#chkconfig--adddenyhosts#chkconfig--level345denyhostson
然后就可以啟動了:
servicedenyhostsstart
DenyHosts配置文件:
vi/etc/denyhosts.cfg
SECURE_LOG=/var/log/secure#ssh日志文件,它是根據這個文件來判斷的。
HOSTS_DENY=/etc/hosts.deny#控制用戶登陸的文件
PURGE_DENY=5m#過多久后清除已經禁止的
BLOCK_SERVICE=sshd#禁止的服務名
DENY_THRESHOLD_INVALID=1#允許無效用戶失敗的次數
DENY_THRESHOLD_VALID=10#允許普通用戶登陸失敗的次數
DENY_THRESHOLD_ROOT=5#允許root登陸失敗的次數
HOSTNAME_LOOKUP=NO#是否做域名反解
DAEMON_LOG=/var/log/denyhosts#自己的日志文件
ADMIN_EMAIL=yuhongchun027@163.com#管理員郵件地址,它會給管理員發郵件
③服務器上除root外,Linux用戶越少越好;如果非要添加授權用戶,請給他的登陸shell為nologin;終止未授權用戶,定期檢查系統有無多余的用戶都是很必要的工作。
④分析系統的日志文件,尋找入侵者曾經試圖入侵系統的蛛絲馬跡。last命令是另外一個可以用來查找非授權用戶登錄事件的工具
- lyycheepts/254.107.130.61.diMonMay2214:14stillloggedinlyycheepts/251.107.130.61.diThuMay1818:36-18:42(00:05)lyycheepts/261.130.107.51TueMay1614:21-14:39(00:18)rootpts/261.130.107.58SatMay1315:40-15:43(00:02)lyycheepts/2210.32.178.253FriMay1200:53-01:16(00:23)rootpts/258.107.130.61.diWedMay1015:33-15:35(00:01)rootpts/261.130.107.58TueMay914:58-15:07(00:08)rootpts/259.78.34.62SunMay707:40-07:45(00:05)lyycheepts/259.78.34.62SatMay623:50-00:27(00:37)lyycheepts/2222.64.24.144SatMay610:56-10:56(00:00)rootpts/2192.168.0.111SatMay600:01-00:02(00:01)lyycheepts/2222.64.22.144ThuMay412:41-12:43(00:0rootpts/259.78.34.62TueMay206:59-07:00(00:00)
以下是一臺機器上的演示圖:
last命令輸入的信息來自/var/log/wtmp。這個文件詳細地記錄著每個系統用戶的訪問活動。但是有經驗的入侵者往往會刪掉/var/log/wtmp以清除自己非法行為的證據,但是這種清除行為還是會露出蛛絲馬跡:在日志文件里留下一個沒有退出操作與之對應的登錄操作(因為在你刪除wtmp的時候,你的登錄記錄就沒有了,但是你待會兒登出,系統還是會把你記下來),不過再高明一點就用at或者cron等自己登出之后再刪文件。(但是這種方法也還是可以查,總之linux沒有一種操作是最強的,強到沒有紕漏。就像古龍的小說一樣,沒有一個人是天下第一。這樣看起來才有勁)
⑤另外,可以用命令greperror/var/log/messages檢查自己的服務器是否存在著硬件損壞的情況。
⑥嘗試使用Chkrootkit應用程序對rootkit的蹤跡和特進行查找,從它的報告中分析你的服務器否已經感染木馬。
⑦嘗試使用AIDE來檢查文件系統的完整性。
⑧推薦使用Snort自動檢測入侵,它集成了同類軟件中最先進行技術,并且是開放源碼的。
⑨以自己的郵件服務器舉例說明,由于這是一個獨立的服務器,所以前端并沒放置硬件防火墻及Web防火墻,所以一定要開啟iptables來防護,其/root/firewall.sh內容如下:
- #/bin/bashiptables-Fiptables-F-tnatiptables-Xiptables-PINPUTDROPiptables-POUTPUTACCEPTiptables-PFORWARDACCEP#loadconnection-trackingmodulesmodeprobeip_conntrackmodprobeiptable_natmodprobeip_conntrack_ftpmodprobeip_nat_ftpiptables-AINPUT-ilo-jACCEPTiptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPTiptables-AINPUT-ptcp-mmultiport--dport80,443,25,465,110,995,143,993,587,465,22-jACCEPT
在另一臺機器上用掃描之王nmap進行掃描
- [root@mailpostfix]#nmap-P0-sS211.143.6.XStartingNmap4.11(http://www.insecure.org/nmap/)at2009-03-2916:21CSTInterestingportson211.143.6.X:Notshown:1668closedportsPORTSTATESERVICE22/tcpopenssh25/tcpopensmtp80/tcpopenhttp110/tcpopenpop3111/tcpopenrpcbind143/tcpopenimap443/tcpopenhttps465/tcpopensmtps587/tcpopensubmission993/tcpopenimaps995/tcpopenpop3s1014/tcpopenunknown
lsof-i:1014,發現又是rpc.statd,這東東,每次用的端口都不一樣啊;它不能正確處理SIGPID信號,遠程攻擊者可利用這個漏洞關閉進程,進行拒絕服務攻擊;發現rpc.statd是由服務nfslock開啟,關閉它即可
- servicenfslockstopchkconfignfslockoff
⑩停掉一些系統不必要的服務,強化內核;多關注下服務器的內核漏洞,現在linux很多攻擊都是針對內核的,保證內核版本為2.6.9以上(不含2.6.9)。
總結:
希望本文介紹的Linux服務器十大安全注意事項的內容能夠對讀者有所幫助,更多有關linux系統的知識還有待于讀者去探索和學習。
【編輯推薦】