Linux服務器安全對於保護用戶數據、知識產權非常重要,同時還能減少你面對黑客的時間。在工作中,通常由系統管理員對Linux的安全負責,在這篇文章中,介紹了20條對Linux系統進行強化的建議。本文所有的建議都基於CentOS、RHEL系統或者Ubuntu/Debian的發行版本。
#1、加密數據通信方式。
所有通過網絡傳輸的數據都是可以被監聽的,因此只要有可能就要使用密碼、證書等方式加密你的通訊數據。
1、使用 scp、ssh、rsync或者sftp來進行文件傳輸。也可以使用特殊的sshfs或者fuse工具來掛載遠程文件系統或者你的工作目錄。
2、
GnuPG 提供功能豐富的證書管理功能,允許你簽名數據並進行傳輸。
3、
Fugu 是一個圖形化的SFTP文件傳輸工具。SFTP類似於FTP,但是與FTP不同,整個會話是加密的,也就是說不會用明文形式發送密碼。另外一個選項是
FileZilla,一個跨平台的客戶端段,也支持FTP、FTPS 和 SFTP。
4、
OpenVPN 是一個輕量級、低成本的SSL VPN。
5、
Lighttpd SSL(Secure Server Layer)Https 的安裝和配置。
6、
Apache SSL(Secure Server Layer)Https(mod_ssl)的安裝和配置。
#1.1、避免使用FTP、Telnet和Rlogin/Rsh服務
在大多數的網絡配置下,用戶名、密碼,FTP / telnet /rsh 命令和傳輸的文件能夠被同網段的任何人使用包嗅探軟件監聽。這個問題的通常解決方法是使用
OpenSSH、
SFTP 或者
FTPS。
下面的命令可以幫助你刪除服務器中沒必要的服務。
# yum erase inetd xinetd ypserv tfpt-server telnet-server rsh-server
#2、最小化軟件安裝原則。
你確實需要服務器上安裝的所有服務嗎?避免安裝不必要的服務就是避免漏斗。使用 RPM 包管理工具,例如 yum 或者 apt-get 、dpkg 來檢查系統上安裝的軟件包,同時刪除不必要的包。
1 # yum list installed 2 # yum list packageName 3 # yum remove packageName 4 5 或者 6 7 # dpkg --list 8 # dpkg --info packageName 9 # apt-get remove packageName
#3、每個系統或實例上只運行一種服務。
將不同的服務運行在單獨的服務器或虛擬化實例中。例如:如果黑客攻破Apache進入到系統中,他就可以訪問部署在這台服務器上的Mysql、E-Mail等其他服務,盡量不要這么做。
#4、保持Linux內核和軟件的更新。
維護系統的一項重要工作就是及時的安裝系統補丁。Linux提供了很多必要的工具和方法來保證系統的更新,所有安全方面的更新都應該盡快執行,與第2條一樣,我們可以使用 yum、apt-get等工具來進行安全更新。
1 # yum update 2 3 或者 4 5 # apt-get update && apt-get upgrade
你可以在系統中配置
更新提示郵件(Red hat、CentOS、Fedora),或者另外一個辦法就是通過一個cron定時任務安裝所有的安全更新。
#5、使用Linux安全擴展。
Linux提供了多種安全補丁,可以用來保護錯誤配置或者一些妥協的方案。盡可能使用
SELinux和其他Linux安全擴展來加強網絡和程序的限制。例如,SELinux提供了Linux內核的安全策略。
#5.1、SELinux
SELinux提供了一套靈活的訪問控制機制(MAC:Mandatory Access Control),標注的MAC下一個應用程序或者進程具有相關權限的用戶下運行。使用MAC的內核保護能夠使系統免於遭受系統的惡意攻擊。更相信的信息可以查看官方的
SELinux說明配置文檔。
參考資料: