作者:
Blood_Zero
·
2016/01/08 16:11
0x00 前言
在linux伺服器隨處可見的網路環境中,網路運維人員保障Linux安全就成了必要條件。當然現在有很多的硬體防火牆以及WAF,但是那不是小資企業可以hold住的,本文從軟體以及服務配置方面簡單總結Linux安全防護。
0x01 使用軟體級別安全防護
1、使用SELinux
SELinux是用來對Linux進行安全加固的,它可以讓你指定誰可以增加檔案,誰只可以刪除檔案,或者誰還可以移動檔案,從檔案的層次上來說,它相當於一個ACL;
配置檔案:/etc/selinux/config (centos7系統)
狀態:getenforce 與 setenforce命令可以修改
- disabled:關閉策略
- permissive:啟用SELinux但是即使違反了策略它也會讓你繼續操作;僅僅一個記錄功能
- enforcing:啟用SELinux,違反策略時阻止你的操作
檢視檔案標籤:ls -Z
在檔案所屬組的後面就是我們檔案的標籤,它表示SELinux對這個檔案的策略
修改策略:chcon與semanage
恢復檔案標籤:restorecon
常見場景分析:
當我們需要配置一個Web目錄時,如果Web目錄不是預設的目錄,訪問可能出現403
這個時候,我們需要將我們的Web目錄的標籤修改為httpd_sys_content_t
2、使用iptables
Iptables是一個應用框架,它允許使用者為自己系統建立一個強大的防火牆。它是用來設定、維護和檢查Linux核心中IP包過濾規則的。
配置檔案:/etc/sysconfig/iptables-config (centos7系統)
這裡貼出一個在部落格園的關於iptables的使用:
http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html
3、使用firewall
在centos7中,防火牆具備很強的軟體防護功能,在預設程度上:
預設開啟了dhcpv6客戶端以及ssh防火牆功能;
防火牆具備很多功能,同時他具備圖形介面與命令列介面兩種模式,對於基本的防火牆配置,個人推薦使用命令列模式,當我們需要配置一些負責的規則策略時,就可以使用我們的圖形介面:
4、使用入侵檢測系統
IDS:入侵檢測系統,在linux中有針對它的開源的入侵檢測系統:Snort;
0x02 安全配置服務
1、SSH訪問控制
儘可能的取消telnet登入,採用ssh進行登入;
ssh配置檔案:/etc/ssh/sshd_config
- 修改預設埠:Port 10512
- 不允許使用空密碼:PermitEmptyPasswords no
- 不允許root使用者登入:PermitRootLogin no
- 不允許輸入密碼登入:PasswordAuthentication no (可以很好的防止爆破,但是如果金鑰檔案洩漏則會出現安全問題,當然可以透過其他方式來進行防禦)
- 重新生成金鑰:KeyRegenerationInterval 1h (如果我們使用金鑰進行登陸,可以設定多少時間後金鑰重新生成)
- 金鑰加密方式:RSAAuthentication yes (是否使用RSA進行加密)
2、禁用不必要的服務及使用者
在我們的Linux系統中有很多使用者不需要的服務和應用,然而這些服務還是會執行,這樣會導致攻擊者利用這些服務的漏洞來進行攻擊,最好的辦法就是停止這些服務。
比如我們的Linux伺服器只是一臺Web伺服器,那麼就不需要ftp、smtp等服務我們就可以關閉;當然我們也可以讓服務不允許透過防火牆,這樣透過防火牆來保護我們的伺服器也可以。
任務 |
舊指令 |
新指令 |
使某服務自動啟動 |
chkconfig --level 3 httpd on |
systemctl enable httpd.service |
使某服務不自動啟動 |
chkconfig --level 3 httpd off |
systemctl disable httpd.service |
檢查服務狀態 |
service httpd status |
systemctl status httpd.service(服務詳細資訊) systemctl is-active httpd.service(僅顯示是否 Active) |
顯示所有已啟動的服務 |
chkconfig --list |
systemctl list-units --type=service |
啟動某服務 |
service httpd start |
systemctl start httpd.service |
停止某服務 |
service httpd stop |
systemctl stop httpd.service |
重啟某服務 |
service httpd restart |
systemctl restart httpd.service |
在linux系統中,系統執行所必須的服務
服務名稱 |
說明 |
acpid |
用於電源管理,對於筆記本和臺式電腦很重要 |
apmd |
高階電源能源管理服務,可用於監控電腦 |
kudzu |
檢測硬體是否變化的服務 |
crond |
為Linux下自動安排的程式提供執行服務 |
iptables/firewall |
Linux內建的防火牆 |
xinetd |
支援多種網路服務的核心守護程式 |
syslog |
記錄系統的日誌服務 |
network |
網路服務,要用網必須啟動這個服務 |
同時,一臺新的Linux作業系統中有很多我們用不到的角色使用者,我們同樣可以刪除這些使用者,或者將這些使用者設定為不能登入系統;
可被刪除的使用者:adm、lp、sync、shutdown、halt、operator、games
可被刪除的使用者組:adm、lp、games、dip等;
當然具體的需要還是要根據使用者的選擇,同時我們也可以修改使用者的bash檔案禁止使用者登入系統也是防護方式的一種。
#!bash
usermod -s /sbin/nologin username
3、使用全盤加密
加密的資料更難被竊取,在安裝Linux系統的時候我們可以對整個系統進行加密,採用這種方式,即使有人進入了我們的系統,也不能得到我們的資料;
4、Web應用配置
提供Web服務時,需要更新我們元件的補丁,防止利用已知漏洞來進行攻擊;
嚴格限制許可權,防止得到Web Shell以後直接得到系統許可權;
限制Web使用者只能訪問Web目錄,不能訪問其他目錄;
嚴格控制提供上傳點的檔案型別
等等
5、系統安全
使用su 與 sudo命令時:
- su:切換使用者
- sudo:提升許可權,所以sudo是su的特定一種形態
這裡是指定可以使用su命令的使用者
注意紅色圈起來的一行,就是啟用pam_shell
認證,這個時候沒有加入wheel的使用者就不能使用su命令了!
對於sudo的一些配置vim /etc/sudoers
在centos7中,如果你不想修改原來的配置檔案,你可以將這一行includedir /etc/sudoers.d
的註釋去掉,然後在/etc/sudoers.d/
目錄下寫我們的配置檔案
刪除提示資訊
在linux的4個檔案中存在提示系統的一些資訊:
- /etc/issue,/etc/issue.net:這兩個檔案記錄了作業系統的名稱及版本號,使用者透過本地終端就會顯示/etc/issue檔案中內容,透過ssh或telnet登入就會顯示/etc/issue.net的檔案內容;
- /etc/redhat-release:這個檔案也記錄了作業系統名稱和版本號;
- /etc/motd:這個檔案是系統的公告資訊,每次使用者登入後就會顯示在終端上;
未完待續~~~
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!