web安全——系統(Linux)

簡介

最小(少)原則,是安全的重要原則。最小的權限,最小的用戶,最少的服務,最少的進程,是最安全的。vim

系統安全包括:文件系統保護、用戶管理安全、進程的保護以及日誌的管理。安全

場景

  1. 確保服務最少,每一個都是有用,並且權限最小化。
  2. 確保用戶最少,每一個都是有用,並且權限最小化。
  3. 確保文件權限最小。
  4. 及時更新補丁,解決漏洞。
  5. 規範好人爲的因素。每每這個纔是最大的隱患。

解決方案

最少服務

服務越少,漏洞越少,越不容易被攻擊,越安全。服務器自己越封閉越安全。bash

最小安裝。

毫不安裝多餘的軟件,須要什麼安裝什麼。在安裝系統的時候就使用最小安裝。不要圖形界面,不要其餘服務。服務器

取消沒必要要的服務

即便作了最小安裝,仍是有不少可能用不到的服務,建議也是關閉,除非真的有用。app

# 查看哪些服務在運行
/sbin/chkconfig --list |grep 3:on
# 沒有使用的服務均可以考慮刪除。
chkconfig ip6tables off # ipv6
chkconfig auditd off #用戶空間監控程序
chkconfig autofs off #光盤軟盤硬盤等自動加載服務
...

禁止外來ping操做

[root@tp /]# vi /etc/rc.d/rc.local
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

限制控制檯的登陸

特別是關機和重啓的命令,太危險了。運維

rm -rf /etc/security/console.apps/
[root@tp /]# vi /etc/securetty
...
#咱們註釋掉
tty1
# tty2
# tty3
# tty4
# tty5
# tty6
#只留下tty1,這時,root僅可在tty1終端登陸

刪除歷史記錄

防止帳號被攻破後丟失更多的信息。ssh

[root@tp /]# vim ~/.bash_logout
# 在裏面添加命令
rm -rf  ~/.bash_history

最小用戶

使用的用戶權限越小越安全。特別是有些軟件的漏洞能夠直接獲取帳號執行權限。一旦使用root啓動,就至關於服務器的root直接被破解。
!千萬不要用root啓動軟件。工具

自動註銷

當咱們登陸到Linux服務器上操做完之後,應該退出當前用戶,不然可能會出現安全問題,特別是root用戶,一旦被盜用極可能形成不可挽回的損失測試

[root@tp /]# vim /etc/profile
# 在裏面添加
export TMOUT=300

設置口令複雜度

(受權完修改密碼會有影響嗎???這個須要測試)
按期修改密碼日誌

# 一個是在/etc/login.defs文件,裏面幾個選項
PASS_MAX_DAYS 90 #密碼最長過時天數
PASS_MIN_DAYS 80 #密碼最小過時天數
PASS_MIN_LEN 10 #密碼最小長度
PASS_WARN_AGE 7 #密碼過時警告天數

清理沒有用的帳號

在想是否是註釋掉,仍是直接刪除

# 須要刪除的用戶包括:
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel operator
userdel games
userdel ftp
userdel rpc
userdel rpcuser
userdel gopher
userdel nscd
# 須要刪除的組包括:
groupdel lp
groupdel news

使用sudo來使用root權限

[root@tp /]#  /etc/sudoers
# 在 root ALL=(ALL) ALL 下面添加一行
username  ALL=(ALL)   ALL
# 若是不想每次都輸入密碼能夠用這一行
username ALL=(ALL) NOPASSWD:ALL 
exit

最小文件權限

原則:原則上不給任何權限,只有須要的時候才添加權限。能不給寫和執行的權限,堅定不能給!!拒絕777的行爲。
賦權限的類型:

  1. 重要的系統目錄不能夠修改
  2. 產品代碼只能夠讀,不能夠執行,不能夠修改
  3. 須要上傳目錄,不然特別須要文件讀寫的目錄要單獨規劃好。
  4. 經過umask設置默認生成的文件和文件目錄的最小權限。

更新補丁

建議作法:重裝系統,update,而後測試業務是否正常。不建議寫成定時去更新,容易引起軟件的衝突,致使業務不可用。
若是是線上的業務,能夠經過集羣和配置管理的方式,把部分服務器更新。可是要作好計劃,不能盲目更新。

人爲的因素

人才是系統安全最大的隱患。

  1. 每一個人一個帳號。
  2. 每一個角色一個組(好比:運維,開發)。這個須要進一步思考和細化。
  3. 不容許使用root,若是有須要使用sudo。(能不能粒度到組啊?)
  4. 把平常的運維操做,作成命令或者別名,減小人爲操做。

驗證方法

  1. 文件是否被人篡改過 。Tripwire
  2. 密碼是否安全,是否容易被破解。John the Ripper。固然原則上經過防火牆來隔離更好,不容許其餘網段ssh。
  3. 系統安全。Lynis是針對Unix/Linux的安全檢查工具,能夠發現潛在的安全威脅。這個工具覆蓋可疑文件監測、漏洞、惡意程序掃描、配置錯誤等。
  4. 其餘的場景,根據能不能操做來驗證。
相關文章
相關標籤/搜索