前言
大家好,這里是浩道linux,主要給大家分享linux、python、網(wǎng)絡(luò)通信相關(guān)的IT知識(shí)平臺(tái)。
今天浩道跟大家分享一些Linux服務(wù)器的安全小貼士,讓你維護(hù)linux服務(wù)器安全上有一些方向!
大家都認(rèn)為 Linux 默認(rèn)是安全的,我大體是認(rèn)可的 (這是個(gè)有爭(zhēng)議的話題)。Linux默認(rèn)確實(shí)有內(nèi)置的安全模型。你需要打開(kāi)它并且對(duì)其進(jìn)行定制,這樣才能得到更安全的系統(tǒng)。Linux更難管理,不過(guò)相應(yīng)也更靈活,有更多的配置選項(xiàng)。
對(duì)于系統(tǒng)管理員,讓產(chǎn)品的系統(tǒng)更安全,免于駭客和黑客的攻擊,一直是一項(xiàng)挑戰(zhàn)。這是我們關(guān)于“如何讓Linux系統(tǒng)更安全” 或者 “加固Linux系統(tǒng)“之類話題的第一篇文章。本文將介紹 25個(gè)有用的技巧和竅門(mén)?,幫助你讓Linux系統(tǒng)更加安全。希望下面的這些技巧和竅門(mén)可以幫助你加強(qiáng)你的系統(tǒng)的安全。
1. 物理系統(tǒng)的安全性
配置BIOS,禁用從CD/DVD、外部設(shè)備、軟驅(qū)啟動(dòng)。下一步,啟用BIOS密碼,同時(shí)啟用GRUB的密碼保護(hù),這樣可以限制對(duì)系統(tǒng)的物理訪問(wèn)。
2. 磁盤(pán)分區(qū)
使用不同的分區(qū)很重要,對(duì)于可能得災(zāi)難,這可以保證更高的數(shù)據(jù)安全性。通過(guò)劃分不同的分區(qū),數(shù)據(jù)可以進(jìn)行分組并隔離開(kāi)來(lái)。當(dāng)意外發(fā)生時(shí),只有出問(wèn)題的分區(qū)的數(shù)據(jù)才會(huì)被破壞,其他分區(qū)的數(shù)據(jù)可以保留下來(lái)。你最好有以下的分區(qū),并且第三方程序最好安裝在單獨(dú)的文件系統(tǒng)/opt下。
3. 最小包安裝,最少漏洞
你真的需要安裝所有的服務(wù)么?建議不要安裝無(wú)用的包,避免由這些包帶來(lái)的漏洞。這將最小化風(fēng)險(xiǎn),因?yàn)橐粋€(gè)服務(wù)的漏洞可能會(huì)危害到其他的服務(wù)。找到并去除或者停止不用的服務(wù),把系統(tǒng)漏洞減少到最小。使用‘chkconfig‘命令列出運(yùn)行級(jí)別3的運(yùn)行所有服務(wù)。
當(dāng)你發(fā)現(xiàn)一個(gè)不需要的服務(wù)在運(yùn)行時(shí),使用下面的命令停止這個(gè)服務(wù)。
使用RPM包管理器,例如YUM或者apt-get 工具來(lái)列出所有安裝的包,并且利用下的命令來(lái)卸載他們。
4. 檢查網(wǎng)絡(luò)監(jiān)聽(tīng)端口
在網(wǎng)絡(luò)命令 ‘netstat‘ 的幫助下,你將能夠看到所有開(kāi)啟的端口,以及相關(guān)的程序。使用我上面提到的 ‘chkconfig‘ 命令關(guān)閉系統(tǒng)中不想要的網(wǎng)絡(luò)服務(wù)。
5. 使用 SSH(Secure Shell)
Telnet 和 rlogin 協(xié)議只能用于純文本,不能使用加密的格式,這或?qū)?dǎo)致安全漏洞的產(chǎn)生。SSH 是一種在客戶端與服務(wù)器端通訊時(shí)使用加密技術(shù)的安全協(xié)議。
除非必要,永遠(yuǎn)都不要直接登錄 root 賬戶。使用 “sudo” 執(zhí)行命令。sudo 由?/etc/sudoers 文件制定,同時(shí)也可以使用 “visudo” 工具編輯,它將通過(guò) VI 編輯器打開(kāi)配置文件。
同時(shí),建議將默認(rèn)的 SSH 22 端口號(hào)改為其他更高的端口號(hào)。打開(kāi)主要的 SSH 配置文件并做如下修改,以限制用戶訪問(wèn)。
關(guān)閉 root 用戶登錄
特定用戶通過(guò)
使用第二版 SSH 協(xié)議
6. 保證系統(tǒng)是最新的
得一直保證系統(tǒng)包含了最新版本的補(bǔ)丁、安全修復(fù)和可用內(nèi)核。
7. 鎖定 Cron任務(wù)
Cron有它自己內(nèi)建的特性,這特性允許定義哪些人能哪些人不能跑任務(wù)。這是通過(guò)兩個(gè)文件/etc/cron.allow 和?/etc/cron.deny 控制的。要鎖定在用Cron的用戶時(shí)可以簡(jiǎn)單的將其名字寫(xiě)到corn.deny里,而要允許用戶跑cron時(shí)將其名字加到cron.allow即可。如果你要禁止所有用戶使用corn,那么可以將“ALL”作為一行加到cron.deny里。
8.? 禁止USB探測(cè)
很多情況下我們想去限制用戶使用USB,來(lái)保障系統(tǒng)安全和數(shù)據(jù)的泄露。建立一個(gè)文件‘/etc/modprobe.d/no-usb‘并且利用下面的命令來(lái)禁止探測(cè)USB存儲(chǔ)。
9.打開(kāi)SELinux?
SELinux(安全增強(qiáng)linux)是linux內(nèi)核提供的一個(gè)強(qiáng)制的訪問(wèn)控制安全機(jī)制。禁用SELinux意味著系統(tǒng)丟掉了安全機(jī)制。要去除SELinux之前仔細(xì)考慮下,如果你的系統(tǒng)需要發(fā)布到網(wǎng)絡(luò),并且要在公網(wǎng)訪問(wèn),你就要更加注意一下。
SELinux 提供了三個(gè)基本的操作模式,他們是:
強(qiáng)制執(zhí)行:這是默認(rèn)是模式,用來(lái)啟用和強(qiáng)制執(zhí)行SELinux安全措略。
許可模式:這種模式下SELinux不會(huì)強(qiáng)制執(zhí)行安全措略,只有警告和日志記錄。這種模式在SELinux相關(guān)問(wèn)題的故障排除時(shí)候非常有用。
關(guān)閉模式:SELinux被關(guān)閉。
你可以使用命令行‘system-config-selinux‘, ‘getenforce‘ or ‘sestatus‘來(lái)瀏覽當(dāng)前的SEliux的狀態(tài)。
如果是關(guān)閉模式,通過(guò)下面的命令開(kāi)啟SELinux
?你也可以通過(guò)配置文件‘/etc/selinux/config‘來(lái)進(jìn)行SELinux的開(kāi)關(guān)操作。
10. 移除KDE或GNOME桌面
沒(méi)必要在專用的LAMP服務(wù)器上運(yùn)行X Window桌面比如KDE和GNOME??梢砸频艋蜿P(guān)閉它們,以提高系統(tǒng)安全性和性能。打開(kāi)/etc/inittab然后將run level改成3就可以關(guān)閉這些桌面。如果你將它徹底的從系統(tǒng)中移走,可以用下面這個(gè)命令:
11. 關(guān)閉IPv6
如果不用IPv6協(xié)議,那就應(yīng)該關(guān)閉掉它,因?yàn)榇蟛糠值膽?yīng)用和策略都不會(huì)用到IPv6,而且當(dāng)前它不是服務(wù)器必需的??梢栽诰W(wǎng)絡(luò)配置文件中加入如下幾行來(lái)關(guān)掉它。
12. 限制用戶使用舊密碼
如果你不希望用戶繼續(xù)使用老密碼,這一條很有用。老的密碼文件位于?/etc/security/opasswd。你可以使用 PAM 模塊實(shí)現(xiàn)。
RHEL / CentOS / Fedora 中打開(kāi) ‘/etc/pam.d/system-auth‘ 文件。
Ubuntu/Debian/Linux Mint 中打開(kāi) ‘/etc/pam.d/common-password‘ 文件。
在 ‘a(chǎn)uth‘ 塊中添加下面一行。
在 ‘password‘ 塊添加下面一行,禁止用戶重新使用其過(guò)去最后用過(guò)的 5個(gè)密碼。
服務(wù)器只記錄最后的 5 個(gè)密碼。如果你試圖使用曾用的最后 5個(gè)老密碼中的任意一個(gè),你將看到如下的錯(cuò)誤提示。
13. 如何檢查用戶密碼過(guò)期?
在 Linux 中,用戶的密碼以加密的形式保存在 ‘/etc/shadow‘ 文件中。要檢查用戶的密碼是否過(guò)期,你需要使用 ‘chage‘ 命令。它將顯示密碼的最后修改日期及密碼期限的細(xì)節(jié)信息。這些細(xì)節(jié)就是系統(tǒng)決定用戶是否必須修改其密碼的依據(jù)。
要查看任一存在用戶的老化信息,如?過(guò)期日?和?時(shí)長(zhǎng),使用如下命令。
要修改任一用戶的密碼老化,使用如下命令。
-M?設(shè)置天數(shù)最大數(shù)字
-m?設(shè)定天數(shù)最小數(shù)字
-W?設(shè)定想要的天數(shù)
14. 手動(dòng)鎖定或解鎖用戶賬號(hào)
鎖定和解鎖功能是非常有用的,你可以鎖定一個(gè)賬號(hào)一周或一個(gè)月,而不是將這個(gè)賬號(hào)從系統(tǒng)中剔除。可以用下面這個(gè)命令鎖定一個(gè)特定用戶。
提示:這個(gè)被鎖定的用戶僅對(duì)root用戶仍然可見(jiàn)。這個(gè)鎖定是通過(guò)將加密過(guò)的密碼替換成(?。﹣?lái)實(shí)現(xiàn)的。如果有個(gè)想用這個(gè)賬號(hào)來(lái)進(jìn)入系統(tǒng),他會(huì)得到類似下面這個(gè)錯(cuò)誤的提示。
解鎖一個(gè)被鎖定的賬號(hào)時(shí),用下面這個(gè)命令。這命令會(huì)將被替換成(!)的密碼改回來(lái)。
15. 增強(qiáng)密碼
有相當(dāng)數(shù)量的用戶使用很弱智的密碼,他們的密碼都可以通過(guò)字典攻擊或者暴力攻擊攻破?!畃am_cracklib‘模塊存于在PAM 中,它可以強(qiáng)制用戶設(shè)置復(fù)雜的密碼。通過(guò)編輯器打開(kāi)下面的文件。
在文件中增加一行,使用認(rèn)證參數(shù)(lcredit,?ucredit,?dcredit? 或者?ocredit?對(duì)應(yīng)小寫(xiě)字母、大寫(xiě)字母,數(shù)字和其他字符)
16. 啟用Iptable(防火墻)
高度推薦啟用linux防火墻來(lái)禁止非法程序訪問(wèn)。使用iptable的規(guī)則來(lái)過(guò)濾入站、出站和轉(zhuǎn)發(fā)的包。我們可以針對(duì)來(lái)源和目的地址進(jìn)行特定udp/tcp端口的準(zhǔn)許和拒絕訪問(wèn)。
17. 禁止Ctrl+Alt+Delete重啟
在大多數(shù)的linux發(fā)行版中,按下‘CTRL-ALT-DELETE’將會(huì)讓你的系統(tǒng)重啟。只說(shuō)生產(chǎn)服務(wù)器上這是不是一個(gè)很好的做法,這可能導(dǎo)致誤操作。
這個(gè)配置是在‘?/etc/inittab‘文件,如果你打開(kāi)這個(gè)文件,你可以看到下面類似的段落。默認(rèn)的行已經(jīng)被注釋掉了。我們必須注釋掉他。這個(gè)特定按鍵會(huì)讓系統(tǒng)重啟。
18. 檢查空密碼帳號(hào)
任何空密碼的賬戶意味這可以讓W(xué)eb上任何無(wú)授權(quán)的用戶訪問(wèn),這是linux服務(wù)器的一個(gè)安全威脅。所以,確定所有的用戶擁有一個(gè)復(fù)雜的密碼并且不存在特權(quán)用戶??彰艽a帳號(hào)是安全風(fēng)險(xiǎn),可以被輕易的攻克??梢岳孟旅娴拿顏?lái)檢查是否有空密碼賬戶存在。
19. 登錄前顯示SSH提示
在ssh認(rèn)證時(shí)候,使用一個(gè)法律和安全警示是很好的建議。
20. 監(jiān)視用戶行為
如果你有很多的用戶,去收集每一個(gè)用戶的行為和和他們的進(jìn)程消耗的信息非常重要??梢噪S后和一些性能優(yōu)化和安全問(wèn)題處理時(shí)進(jìn)行用戶分析。但是如果監(jiān)視和搜集用戶行為信息呢 ?
有兩個(gè)很有用的工具‘psacct‘ 和 ‘a(chǎn)cct‘可以用來(lái)監(jiān)視系統(tǒng)中用戶的行為和進(jìn)程。這些工具在系統(tǒng)后臺(tái)執(zhí)行并且不斷記錄系統(tǒng)中每一個(gè)用戶的行為和各個(gè)服務(wù)比如Apache, MySQL, SSH, FTP, 等的資源消耗。
21. 定期查看日志
將日志移動(dòng)到專用的日志服務(wù)器里,這可避免入侵者輕易的改動(dòng)本地日志。下面是常見(jiàn)linux的默認(rèn)日志文件及其用處:
22. 重要文件備份
在生產(chǎn)環(huán)境里,為了災(zāi)難恢復(fù),有必要將重要文件備份并保存在安全的遠(yuǎn)程磁帶保險(xiǎn)庫(kù)、遠(yuǎn)程站點(diǎn)或異地硬盤(pán)。
23. NIC 綁定
有兩種類型的NIC綁定模式,需要在綁定接口用得到。
mode=0?– 循環(huán)賽模式
mode=1?– 激活和備份模式
NIC綁定可以幫助我們避免單點(diǎn)失敗。在NIC綁定中,我們把兩個(gè)或者更多的網(wǎng)卡綁定到一起,提供一個(gè)虛擬的接口,這個(gè)接口設(shè)置ip地址,并且和其他服務(wù)器會(huì)話。這樣在一個(gè)NIC卡down掉或者由于其他原因不能使用的時(shí)候,我們的網(wǎng)絡(luò)將能保持可用。
24. 保持 /boot 只讀
linux內(nèi)核和他的相關(guān)的文件都保存在/boot目下,默認(rèn)情況下是可以讀寫(xiě)的。把它設(shè)為了只讀可以減少一些由于非法修改重要boot文件而導(dǎo)致的風(fēng)險(xiǎn)。
在文件最后增加下面的行,并且保存
如果你今后需要升級(jí)內(nèi)核的話,你需要修回到讀寫(xiě)模式。
25.忽略ICMP和Broadcast請(qǐng)求
在/etc/sysctl.conf中添加下面幾行,屏蔽掉ping和broadcast請(qǐng)求。
運(yùn)行下面這一行加載修改或更新
如果你覺(jué)得了上述安全小貼士很好用,或還有什么其它需要補(bǔ)充進(jìn)去,歡迎評(píng)論區(qū)討論分享,服務(wù)器安全運(yùn)行,靠你我他。
評(píng)論
查看更多