[摘 要] Linux系統使用越來越廣泛,關系Linux的安全越來越受到人們的重視,本文結合筆者在Linux系統安全管理方面的一些經驗體會,從賬戶、密碼策略、文件權限,日志管理、遠程訪問等5個方面,對linux系統安全談談自己的體會,供大家參考。
[關鍵詞] LINUX 賬號 密碼 日志
一、引言
隨著Internet/Intranet網絡的日益普及,Linux作為一個現代的操作系統,正在各個方面得到廣泛的應用。Linux在服務器、嵌入式等方面已經取得不俗的成績,在桌面系統方面,也逐漸受到歡迎。于是Linux的安全問題也逐漸受到人們的重視。
Linux是一個開放式系統,可以在網絡上找到許多現成的程序和工具,這既方便了用戶,也方便了黑客,因為他們也能很容易地找到程序和工具來潛入 Linux系統,或者盜取Linux系統上的重要信息。因此,詳細分析Linux系統的安全機制,找出它可能存在的安全隱患,給出相應的安全策略和保護措施是十分必要的。針對Linux的基本安全防護,筆者這里稍做介紹。
二、Linux系統的安全策略
1.Linux系統的用戶賬號策略
管理員的工作中,相當重要的一環就是管理賬號。在管理 Linux 主機的賬號時,一個最重要的方面就是確保每一個UID僅僅使用一次。
另外就是設置有限的登陸次數來預防無休止的登陸攻擊,通過編輯/etc/pam.d/system-auth,添加下面兩句可以設置賬戶最多連續登陸5次,超過5次賬戶將被鎖定,只有管理員才能幫助解鎖。
auth required pam_tally.so deny=5
account required pam_tally.so
2.密碼策略要求
(1)口令時效和口令長度的設置。口令時效和口令長度是一種系統機制,用于強制口令在特定的時間長度后失效。對用戶來說,這可能帶來了一些麻煩,但是它確保了口令會定期進行更改,是一項很好的安全措施。默認情況下,絕大多數的Linux版本并沒有打開口令時效,不過要想打開卻非常簡單。通過編輯/etc/login.defs,你可以指定幾個參數,來設置口令實效和口令長度的默認設定:
PASS_MAX_DAYS99999
PASS_MIN_DAYS 0
PASS_MIN_LEN5
PASS_WARN_AGE7
當設置口令時效的天數為99999時,實際上相當于關閉了口令時效。一般設定為90天或者更短時間來更改一次。PASS_MIN_DAYS參數則設定了在本次密碼修改后,下次允許更改密碼之前所需的最少天數。PASS_MIN_LEN是指密碼設置的最小長度,一般定義為8位以上。PASS_WARN_AGE的設定則指明了在口令失效前多少天開始通知用戶更改密碼(一般在用戶剛剛登陸系統時就會收到警告通知)。
(2)控制密碼使用頻率。控制適度的密碼重用頻率,也可以為密碼的安全策略提供良好的保護,可以通過編輯/etc/pam.d/system-auth設定密碼重用。一般設置重用密碼前更換密碼的最小次數為4次。
password required pam_unix.so remember=3 use_authtok md5 shadow 或者 password sufficient pam_unix.so remember=3 use_authtok md5 shadow。
3.Linux的基本文件權限要求
Linux中每一個文件都具有特定的屬性,主要包括文件類型和文件權限兩個方面。可以分為5種不同的類型:普通文件、目錄文件、鏈接文件、設備文件和管道文件。所謂的文件權限,是指對文件的訪問權限,包括對文件的讀、寫、刪除、執行。Linux 是一個多用戶操作系統,它允許多個用戶同時登錄和工作。因此正確的文件權限設定是非常重要的。與系統安全關系較為密切的幾個文件目錄權限設置要求如下表:
4.Linux日志文件管理
日志對于系統安全來說,非常重要,它記錄了系統每天發生的各種各樣的事情,你可以通過它來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕跡。因此,保護系統日志安全,不被內部用戶或外部入侵者修改或刪除顯得尤為重要。
在Linux系統中,有三個主要的日志子系統:
連接時間日志——由多個程序執行,把紀錄寫入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。
進程統計——由系統內核執行。當一個進程終止時,為每個進程往進程統計文件(pacct或acct)中寫一個紀錄。進程統計的目的是為系統中的基本服務提供命令使用統計。
錯誤日志——由syslogd(8)執行。各種系統守護進程、用戶程序和內核通過syslog(3)向文件/var/log/messages報告值得注意的事件。另外有許多UNIX程序創建日志。像HTTP和FTP這樣提供網絡服務的服務器也保持詳細的日志。
Linux的日志文件很多,但是/var/log/wtmp,/var/log/messages,/var/log/faillog(權限設置為600) ,/var/log/secure (如果是Debian,/var/log/auth.log將代替它)最好是存在的。
如果服務器支持很多的用戶的話,這些日志文件的大小會很快地增加,在服務器硬盤不是非常充足的情況下,必須采取措施限制日志文件的大小,定期做好日志備份和清除是非常重要的。
5.Linux的遠程登錄:使用OPENSSH代替FTP和Telnet
我們通常使用的網絡傳輸程序FTP和Telnet等在本質上都是不安全的,因為它們在網絡上用明文傳送口令和數據,黑客利用嗅探器非常容易截 獲這些口令和數據。SSH的英文全稱是Secure SHell。通過使用SSH,用戶可以把所有傳輸的數據進行加密,這樣即使網絡中的黑客能夠劫持用戶所傳輸的數據,如果不能解密的話,也不能對數據傳輸構成真正的威脅。另外,傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP提供一個安全的“傳輸通道”。在不安全的網路通信環境中,它提供了很強的驗證機制與非常安全的通信環境。SSH(Secure Shell)最初由芬蘭的一家公司開發,但由于受版權和加密算法的限制,很多人轉而使用免費的替代軟件OpenSSH。命令行使用OPENSSH比較麻煩。這里介紹gFTP和OPENSSH整合在一齊,提供一個圖形化加密傳輸方案。gFTP和Windows下的 CuteFTP一樣使用非常簡單,而且幾乎所有的Linux發行版本都帶有gFTP,不需要安裝就可以使用。Windows下支持SSH的客戶端軟件不少,推薦使用Putty和Filezilla。
目前很多公司企業對信息安全問題日益重視,完善的信息安全控制架構,先進的管理和技術的結合,才能真正滿足公司企業的需要。
參考文獻:
[1]王一川 Linux黑客大曝光:Linux安全機密與解決方案[M].清華大學出版社,2002~10~1
[2]汪 輝等:Linux安全最大化(第二版)[M].電子工業出版社, 2002~1~1
[3]前導工作室 Linux安全:入侵防范、檢測、恢復[M].機械工業出版社,2002~1~1