作者:丁玮 NFS服務 網絡文件系統是構成Unix世界文件共享訪問的基礎。如果希望禁止用戶任意的共享目錄,可以增加NFS限制,比如鎖定/etc/eXPorts文件,並事先定義共享的目錄。如果不希望用戶共享,只限制用戶訪問,就需要修改NFS的啟動腳本。編輯/etc/init.d/nfs文件,找到守護進程一行並注釋掉。 /etc/init.d/nfs # daemon rpc.nfsd $RPCNFSDCOUNT 系統中的很多配置文件和命令是很敏感的,修改權限和增加只讀屬性可以在一定程度上避免安全問題。 chmod 700 /bin/rpm #NFS共享目錄配置文件 chmod 600 /etc/exports #主機訪問控制文件 chmod 600 /etc/hosts.* chmod R 751 /var/log chmod 644 /var/log/messages #系統日志配置文件 chmod 640 /etc/syslog.conf chmod 660 /var/log/wtmp chmod 640 /var/log/lastlog chmod 600 /etc/FTPusers #用戶口令文件 chmod 644 /etc/passwd chmod 600 /etc/shadow #校驗模塊配置文件目錄 chmod R 750 /etc/pam.d chmod 600 /etc/lilo.conf #終端配置文件 chmod 600 /etc/securetty chmod 400 /etc/shutdown.allow #系統訪問安全配置文件 chmod 700 /etc/security #網絡系統配置文件 chmod R 751 /etc/sysconfig #超級守護進程配置文件 chmod 600 /etc/xinetd.conf chmod 600 /etc/inetd.conf chmod R 750 /etc/rc.d/init.d/ chmod 750 /etc/rc.d/init.d/* #自動運行程序控制文件 chmod 600 /etc/crontab chmod 400 /etc/cron.* #SSH配置文件 chmod 750 /etc/ssh #內核控制配置文件 chmod 400 /etc/sysctl.confg chattr +i /etc/services chattr +i /etc/group chattr +i /etc/gshadow chattr +i /etc/hosts.* chattr +i /etc/xinetd.conf chattr +i /etc/exports chattr +i /bin/login chattr +a /var/log/message 關注日志 首先要使用日志服務器。將客戶機的日志信息保存副本是好主意,創建一台服務器專門存放日志文件,可以通過檢查日志來發現問題。修改/etc/sysconfig/syslog文件加入接受遠程日志記錄。 /etc/sysconfig/syslog SYSLOGD_OPTIONS="-m r 0" 還應該設定日志遠程保存。修改/etc/syslog.conf文件加入日志服務器的設置,syslog將保存副本在日志服務器上。 /etc/syslog.conf *.* @log_server_IP 可以使用彩色日志過濾器。彩色日志loco過濾器,目前版本是0.32。使用loco /var/log/messages more可以顯示出彩色的日志,明顯標記出root的位置和日志中異常的命令。這樣可以減少分析日志時人為遺漏。 還要進行日志的定期檢查。Red Hat Linux中提供了logwatch工具,定期自動檢查日志並發送郵件到管理員信箱。需要修改/etc/log.d/conf/ logwatch.conf文件,在MailTo = root參數後增加管理員的郵件地址。Logwatch會定期檢查日志,過濾有關使用root、sudo、telnet、ftp登錄等信息,協助管理員分析日常安全。 檢查本機具有suid和sgid的文件。具有suid和sgid的文件具有相當的危險性。簡單說就是普通用戶使用這些命令時可以具有超級用戶的權限,用戶就直接進入超級用戶環境。有很多命令是需要suid和sgid的。在系統安裝時就把這些命令找到,並作為標准以比較出現問題的機器就可以發現安全問題。除了suid和sgid外,如果發現有些文件不屬於任何用戶,也可能是安全出現漏洞。下面的命令可以將以上的文件列表保存到文件中,備份這些文件,以後用來方便比較。 find / -xdev -type f -perm +6000 2> /dev/null > /root/backup/audit/suid.log find / -xdev -nouser -o -nogroup > /dev/null > /root/backup/audit/nouser.log find / -xdev -type f -perm -2 > /dev/null > /root/backup/audit/other.log 使用SSH 當管理員遠程管理客戶機時,除了Webmin方便通過浏覽器管理外,命令行的使用更加快捷。而telnet是明文傳輸的,為了防止被嗅探器捕捉敏感信息,使用SSH是最好的選擇。SSH會在第一次連接時在通訊的兩台機器之間生成密鑰,隨後的通訊是通過加密方式傳輸的,嗅探器將無法有效地分析信息。如果是Linux直接使用SSH命令將可以連接到對方主機,如果是從Windows連接,則需要軟件的支持,推薦使用PuTTY,可以從http://www.chiark.greenend.org.uk/~sgtatham/putty/下載,目前的版本是0.52。SSH使用的是TCP端口22。注意不要使用任何r進程,比如rlogin、rcp等。 使用更安全的文件傳輸 除非需要FTP傳輸大量文件,不然可以使用SCP來代替。同SSH一樣,SCP是通過密鑰來創建加密通道的。在Windows上的WinSCP可以從http://winscp.vse.cz/下載,目前版本是2.0.0 (Build89)。但是如果需要傳輸大量的文件,SCP會導致處理器在處理加密上耗費過多的資源,可以使用proftp來代替。Red Hat Linux缺省使用的Wuftp服務,從http://www.proftpd.org/下載,目前的版本是1.2.4。 使用系統快照 系統快照是利用對系統文件編排數據庫來定期發現系統的變化。推薦使用tripwire,目前的版本是2.3.1-10。需要注意的是,tripwire的配置文件很全面,但是不一定適合你的系統,因此需要定制twpol.txt文件。定制的原則是首先安裝完整的系統,隨後安裝tripwire,使用缺省的配置文件制作系統快照。根據提示的錯誤信息,用#屏蔽掉多出來的配置信息,隨後重新生成數據庫。 rpm ivh tripwire-2.3.1-10.i386.rpm #修改twpol.txt文件,屏蔽掉系統中不存在的文件,隨後開始安裝 /etc/tripwire/twinstall.sh #安裝會要求輸入生成密鑰的密碼和更新數據庫的密碼 #注意復制密鑰的操作,不然會在初始化中提示文件不存在的錯誤 cp /etc/tripwire/$HOSTNAME-local.key /etc/tripwire/localhost-local.key #初始化tripwire,生成數據庫,其中會要求輸入密鑰的密碼 tripwire --init #通過系統快照判斷系統的變化,並且發送郵件到指定用戶 tripwire --check -M 使用基於主機的入侵檢測 IDS可以幫助管理員發現突破安全的企圖。在企業中基於主機的入侵防御比基於網絡的更重要,畢竟企業的網絡是在防火牆後。建議使用snare,目前在Red Hat Linux 7.2上支持的版本是0.9-1,可以到http://www.intersectalliance.com下載。其中snare-core是核心的守護進程。snare是圖形界面的顯示程序。安裝完畢後會產生名為audit的守護進程。snare關心的是以root操作或修改文件權限,以及訪問敏感數據的日志。因此可以通過配置文件來定義適合自己系統的入侵檢測日志系統。缺省的安裝已經提供了完整的配置,可以滿足一般的需求。 其它安全工具 使用Bastille工具 Bastille是一組安全設置腳本的集合,前面的很多設置可以使用Bastille來自動完成。首次安裝完Bastille後,BastilleBackEnd可以使用以前設置好的配置文件。配置/etc/Bastille/config文件就可以完成安全腳本的定制。Bastille的一般配置中沒包括防火牆等參數。如果需要,可以在安裝完後使用InteractiveBastille.pl交互安裝。Bastille將會啟動向導窗口,只要選擇是或者否就可以生成適合自己系統的配置文件。Bastille的配置方案略。 使用木馬檢查工具 chkrootkit就是通過校驗系統中重要的命令,來判斷是否被替換,因為是根據已出現的木馬與後門工具編寫的,要注意經常更新。 使用自動運行程序 使用crontab可以減少管理員的工作強度。比如加入定期的tripwire校驗、chkrootkit校驗,並發送結果到管理員的制定信箱。 提醒大家注意:至少應有一台日志服務器,並且使用不同類型的Linux版本或者操作系統;所有的桌面機需在防火牆內,並且禁止使用調制解調器連接互聯網;至少有一個入侵檢測系統,多個傳感器分布在網絡中;至少有2名系統管理員互為備份;不要使用root直接登錄;不要使用telnet遠程登陸;任何的系統更改需要文檔化;畢竟一分預防勝於十分的治療。 以上僅僅是簡單的說明了企業中Linux安全的基本設置。如果連基本設置都沒有達到,安全問題將會困擾系統管理員。還有很多更復雜的安全設置沒有介紹,比如限制網絡的交互、限制資源等。因為介紹的是防火牆內的桌面機,所以防火牆、郵件服務器、文件和Web服務器的安全設定也都沒加以描述,但是決不是說安全照這樣做了,就可以高枕無憂。這些只是入門,還遠遠不夠。很多具體使用情況和更深入的配置歡迎關心Linux安全的管理員交流。 (責任編輯 Sunny)