萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux系統安全配置詳細解析

Linux系統安全配置詳細解析

   1.為LILO增加開機口令

  在/etc/lilo.conf文件中增加選項,從而使LILO啟動時要求輸入口令,以加強系統的安全性。具體設置如下:

  boot=/dev/hdamap=/boot/mapinstall=/boot/boot.btime-out=60 #等待1分鐘promptdefault=linuxpassword=#口令設置image=/boot/vmlinuz-2.2.14-12label=linuxinitrd=/boot/initrd-2.2.14-12.img root=/dev/hda6 read-only

  此時需注意,由於在LILO中口令是以明碼方式存放的,所以還需要將 lilo.conf的文件屬性設置為只有root可以讀寫。

  # chmod 600 /etc/lilo.conf

  當然,還需要進行如下設置,使lilo.conf的修改生效。

  # /sbin/lilo -v

  2.設置口令最小長度和

  最短使用時間

  口令是系統中認證用戶的主要手段,系統安裝時默認的口令最小長度通常為5,但為保證口令不易被猜測攻擊,可增加口令的最小長度,至少等於8。為此,需修改文件/etc/login.defs中參數PASS_MIN_LEN。同時應限制口令使用時間,保證定期更換口令,建議修改參數PASS_MIN_DAYS。

  3.用戶超時注銷

  如果用戶離開時忘記注銷賬戶,則可能給系統安全帶來隱患。可修改/etc/profile文件,保證賬戶在一段時間沒有操作後,自動從系統注銷。

  編輯文件/etc/profile,在“HISTFILESIZE=”行的下一行增加如下一行:

  TMOUT=600

  則所有用戶將在10分鐘無操作後自動注銷。

  4.禁止訪問重要文件

  對於系統中的某些關鍵性文件如inetd.conf、services和lilo.conf等可修改其屬性,防止意外修改和被普通用戶查看。

  首先改變文件屬性為600:

  # chmod 600 /etc/inetd.conf

  保證文件的屬主為root,然後還可以將其設置為不能改變:

  # chattr +i /etc/inetd.conf

  這樣,對該文件的任何改變都將被禁止。

  只有root重新設置復位標志後才能進行修改:

  # chattr -i /etc/inetd.conf

  5.允許和禁止遠程訪問

  在Linux中可通過/etc/hosts.allow 和/etc/hosts.deny 這2個文件允許和禁止遠程主機對本地服務的訪問。通常的做法是:

  (1)編輯hosts.deny文件,加入下列行:

  # Deny access to everyone. ALL: ALL@ALL

  則所有服務對所有外部主機禁止,除非由hosts.allow文件指明允許。

  (2)編輯hosts.allow 文件,可加入下列行:

  #Just an example:   ftp: 202.84.17.11 xinhuanet.com

  則將允許IP地址為202.84.17.11和主機名為xinhuanet.com的機器作為Client訪問FTP服務。

  (3)設置完成後,可用tcpdchk檢查設置是否正確。

  6.限制Shell命令記錄大小

  默認情況下,bash shell會在文件$HOME/.bash_history中存放多達500條命令記錄(根據具體的系統不同,默認記錄條數不同)。系統中每個用戶的主目錄下都有一個這樣的文件。在此筆者強烈建議限制該文件的大小。

  您可以編輯/etc/profile文件,修改其中的選項如下:HISTFILESIZE=30或HISTSIZE=30。

  7.注銷時刪除命令記錄

  編輯/etc/skel/.bash_logout文件,增加如下行:

  rm -f $HOME/.bash_history

  這樣,系統中的所有用戶在注銷時都會刪除其命令記錄。

  如果只需要針對某個特定用戶,如root用戶進行設置,則可只在該用戶的主目錄下修改/$HOME/.bash_history 文件,增加相同的一行即可。

  8.禁止不必要的SUID程序

  SUID可以使普通用戶以root權限執行某個程序,因此應嚴格控制系統中的此類程序。

  找出root所屬的帶s位的程序:

  # find / -type f ( -perm -04000 -o -perm -02000 ) -print  less

  禁止其中不必要的程序:

  # chmod a-s program_name

  9.檢查開機時顯示的信息

  Linux系統啟動時,屏幕上會滾過一大串開機信息。如果開機時發現有問題,需要在系統啟動後進行檢查,可輸入下列命令:

  #dmesg >bootmessage

  該命令將把開機時顯示的信息重定向輸出到一個文件bootmessage中。

  10.磁盤空間的維護

  經常檢查磁盤空間對維護Linux的文件系統非常必要。而Linux中對磁盤空間維護使用最多的命令就是df和du了。

  十招:

  第1招:取消不必要的服務

  早期的Unix版本中,每一個不同的網絡服務都有一個服務程序在後台運行,後來的版本用統一的/etc/inetd服務器程序擔此重任。Inetd是Internetdaemon的縮寫,它同時監視多個網絡端口,一旦接收到外界傳來的連接信息,就執行相應的TCP或UDP網絡服務。

  由於受inetd的統一指揮,因此Linux中的大部分TCP或UDP服務都是在/etc/inetd.conf文件中設定。所以取消不必要服務的第一步就是檢查/etc/inetd.conf文件,在不要的服務前加上“#”號。

  一般來說,除了http、smtp、telnet和ftp之外,其他服務都應該取消,諸如簡單文件傳輸協議tftp、網絡郵件存儲及接收所用的imap/ipop傳輸協議、尋找和搜索資料用的gopher以及用於時間同步的daytime和time等。

  還有一些報告系統狀態的服務,如finger、efinger、systat和netstat等,雖然對系統查錯和尋找用戶非常有用,但也給黑客提供了方便之門。例如,黑客可以利用finger服務查找用戶的電話、使用目錄以及其他重要信息。因此,很多Linux系統將這些服務全部取消或部分取消,以增強系統的安全性。

  Inetd除了利用/etc/inetd.conf設置系統服務項之外,還利用/etc/services文件查找各項服務所使用的端口。因此,用戶必須仔細檢查該文件中各端口的設定,以免有安全上的漏洞。

  在Linux中有兩種不同的服務型態:一種是僅在有需要時才執行的服務,如finger服務;另一種是一直在執行的永不停頓的服務。這類服務在系統啟動時就開始執行,因此不能靠修改inetd來停止其服務,而只能從修改/etc/rc.d/rc[n].d/文件或用Runleveleditor去修改它。提供文件服務的NFS服務器和提供NNTP新聞服務的news都屬於這類服務,如果沒有必要,最好取消這些服務。

  第2招:限制系統的出入

  在進入Linux系統之前,所有用戶都需要登錄,也就是說,用戶需要輸入用戶賬號和密碼,只有它們通過系統驗證之後,用戶才能進入系統。

  與其他Unix操作系統一樣,Linux一般將密碼加密之後,存放在/etc/passwd文件中。Linux系統上的所有用戶都可以讀到/etc/passwd文件,雖然文件中保存的密碼已經經過加密,但仍然不太安全。因為一般的用戶可以利用現成的密碼破譯工具,以窮舉法猜測出密碼。比較安全的方法是設定影子文件/etc/shadow,只允許有特殊權限的用戶閱讀該文件。

  在Linux系統中,如果要采用影子文件,必須將所有的公用程序重新編譯,才能支持影子文件。這種方法比較麻煩,比較簡便的方法是采用插入式驗證模塊(PAM)。很多Linux系統都帶有Linux的工具程序PAM,它是一種身份驗證機制,可以用來動態地改變身份驗證的方法和要求,而不要求重新編譯其他公用程序。這是因為PAM采用封閉包的方式,將所有與身份驗證有關的邏輯全部隱藏在模塊內,因此它是采用影子檔案的最佳幫手。

  此外,PAM還有很多安全功能:它可以將傳統的DES加密方法改寫為其他功能更強的加密方法,以確保用戶密碼不會輕易地遭人破譯;它可以設定每個用戶使用電腦資源的上限;它甚至可以設定用戶的上機時間和地點。

  Linux系統管理人員只需花費幾小時去安裝和設定PAM,就能大大提高Linux系統的安全性,把很多攻擊阻擋在系統之外。

  第3招:保持最新的系統核心

  由於Linux流通渠道很多,而且經常有更新的程序和系統補丁出現,因此,為了加強系統安全,一定要經常更新系統內核。

  Kernel是Linux操作系統的核心,它常駐內存,用於加載操作系統的其他部分,並實現操作系統的基本功能。由於Kernel控制計算機和網絡的各種功能,因此,它的安全性對整個系統安全至關重要。

  早期的Kernel版本存在許多眾所周知的安全漏洞,而且也不太穩定,只有2.0.x以上的版本才比較穩定和安全,新版本的運行效率也有很大改觀。在設定Kernel的功能時,只選擇必要的功能,千萬不要所有功能照單全收,否則會使Kernel變得很大,既占用系統資源,也給黑客留下可乘之機。

  在Internet上常常有最新的安全修補程序,Linux系統管理員應該消息靈通,經常光顧安全新聞組,查閱新的修補程序。

  第4招:檢查登錄密碼

  設定登錄密碼是一項非常重要的安全措施,如果用戶的密碼設定不合適,就很容易被破譯,尤其是擁有超級用戶使用權限的用戶,如果沒有良好的密碼,將給系統造成很大的安全漏洞。

  在多用戶系統中,如果強迫每個用戶選擇不易猜出的密碼,將大大提高系統的安全性。但如果passwd程序無法強迫每個上機用戶使用恰當的密碼,要確保密碼的安全度,就只能依靠密碼破解程序了。

  實際上,密碼破解程序是黑客工具箱中的一種工具,它將常用的密碼或者是英文字典中所有可能用來作密碼的字都用程序加密成密碼字,然後將其與Linux系統的/etc/passwd密碼文件或/etc/shadow影子文件相比較,如果發現有吻合的密碼,就可以求得明碼了。

  在網絡上可以找到很多密碼破解程序,比較有名的程序是crack。用戶可以自己先執行密碼破解程序,找出容易被黑客破解的密碼,先行改正總比被黑客破解要有利。

  第5招:設定用戶賬號的安全等級

  除密碼之外,用戶賬號也有安全等

copyright © 萬盛學電腦網 all rights reserved