如何把你的Linux系統(tǒng)變的更加安全
做為一個小白,以為自己懂了點Linux知識,會搭建Linux各種服務(wù)就覺得自己牛的不要要的。在我們團(tuán)隊里面,我將使用了一臺破電腦搭建Linux服務(wù)器,上面跑著Ftp服務(wù)存放著資源,ssh服務(wù)可以遠(yuǎn)程登錄,VPN業(yè)務(wù)可以訪問內(nèi)網(wǎng)的網(wǎng)絡(luò),Web服務(wù)存放著我們業(yè)務(wù)的各種腳本方便同事們隨意查看資料,以及正在搞的多媒體服務(wù)。我了個去,那天上班,發(fā)現(xiàn)各種服務(wù)沒了,然后登錄上破電腦一看,啥資料都沒了。
當(dāng)時一臉蒙蔽,不知發(fā)生了什么事情誰讓是小白呢。找了朋友看,你被黑了,……。我臉真黑,他說也別查其它的了,重新安裝系統(tǒng)和服務(wù),重新加固系統(tǒng)安全,不要以為Linux安裝好,就能在互聯(lián)網(wǎng)上面直接裸奔。我無語!
1. 安裝用到的服務(wù)
如果你在運行一臺服務(wù)器,選擇自己所需要的服務(wù),盡量不要安裝用不到的程序。盡管你可以在自己的服務(wù)器上安裝任意軟件。不過,別犯想當(dāng)然的毛病。Linux服務(wù)器會有人在該服務(wù)器上運行的任何未打補(bǔ)丁或易受攻擊的軟件組件的空子而被劫持。這樣你就悲劇了。
所以,盡量讓你的服務(wù)器更加精簡。只安裝你確實需要的那些程序。如果沒有或者不需要的程序包,那就卸載掉。程序包數(shù)量越少,代碼沒打上補(bǔ)丁的可能性就越小,遭受潛在的危險就越小。
2. 運行需要的服務(wù)程序
就是只運行需要的那些服務(wù)程序,許多發(fā)行版或程序包可能會開啟某些服務(wù),并在不同的端口上運行。這就會帶來安全風(fēng)險,打開終端,運行下列命令:netstat -npl。
輸出結(jié)果會顯示服務(wù)在哪些端口上運行。如果你發(fā)現(xiàn)有任何不應(yīng)該運行的服務(wù),那么立即停止。多密切關(guān)注已被啟用、系統(tǒng)啟動時運行的服務(wù),只要是在運行systemd的系統(tǒng)上運行下列命令,就可以來檢查這方面: systemctl list-unit-files --type=service | grep enabled 。如果是你發(fā)現(xiàn)有不需要的服務(wù),可以使用systemct1命令來禁用它:systemctl disable service_name。
3.禁止以根用戶遠(yuǎn)程登錄
關(guān)閉root用戶的直接訪問,而使用sudo或su來執(zhí)行管理員任務(wù)。關(guān)閉通過SSH直接訪問root,需要再次打開sshd_config,找到下面這行,#PermitRootLogin yes ,更改為PermitRootLogin no,重啟服務(wù)即可生效。我們總以為自己是菜鳥,沒事就用root來吧,但你上面跑著服務(wù),黑客并不管你是誰。
4.更改SSH默認(rèn)端口
在搭建好服務(wù)器后要做的第一件事情就是更改SSH的默認(rèn)端口,這個小小的改動可以能夠使你的服務(wù)器避免受到成千上萬的暴力攻擊。如果不更改默認(rèn)端口,就如同黑客們知道你家的門牌號,這樣他們只需要一把一把的試鑰匙就可能打開你家的門鎖。要更改默認(rèn)的SSH端口,先打開sshd_config文件:sudo vim /etc/ssh/sshd_config,找到下面這行:#Port 22,“#”號表示這行是注釋,首先刪除#號,然后把端口號改成目的端口。端口號不能超過65535,確保要指定的端口號沒有被系統(tǒng)或其它服務(wù)占用。比如我使用這個端口號:Port 16679,然后保存并關(guān)閉文件,systemctl restart sshd 重啟服務(wù)!ssh服務(wù)也可以配置白名單限制ip登錄,呃,暫時不知道怎么搞?!在破電腦被黑了之后,我說端口是23,我老大使勁惡心我。哎,我還郁悶了。
5.iptables
iptables我是看著頭暈,但被黑之后,我就老老實實的學(xué)習(xí)這玩意了。iptables可以根據(jù)流量的源地址、目的地址、傳輸協(xié)議、服務(wù)類型等信息進(jìn)行匹配,一旦匹配成功,iptables就會根據(jù)策略規(guī)則所預(yù)設(shè)的動作來處理這些流量。iptables策略規(guī)則的匹配順序是從上至下的,因此要把較為嚴(yán)格、優(yōu)先級較高的策略規(guī)則放到前面,以免發(fā)生錯誤??梢酝ㄟ^iptables入站規(guī)則將公開和非公開服務(wù)區(qū)分,指向用戶提供web接口。比如將INPUT規(guī)則鏈設(shè)置為只允許指定網(wǎng)段的主機(jī)訪問本機(jī)的22端口,拒絕來自其他所有主機(jī)的流量:iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT, iptables -A INPUT -p tcp --dport 22 -j REJECT,iptables -L;更比如向INPUT規(guī)則鏈中添加拒絕192.168.10.5主機(jī)訪問本機(jī)80端口(Web服務(wù))的策略規(guī)則:iptables -I INPUT -p tcp -s 192.168.10.5 --dport 80 -j REJECT,iptables -L。盡管現(xiàn)在還是一臉懵逼,但啟用了至少沒比強(qiáng),再專研下爭取可以將iptables使用的更合理化。
目前就做了這么多安全,還仍然在學(xué)習(xí)linux,推薦一本書叫《Linux就該這么學(xué)》適合小白,不要總以為學(xué)完Linux基礎(chǔ)課程就完了,這才是開始,路還長。吃虧是福,還有那些安全措施?大神們!?。?/span>