unix系統安裝及應用
賬號安全控制
使用者賬號是計算機使用者的身份或標識,每一個訪問系統資源的人,必須憑藉其使用者賬號才能進入計算機。
基本安全措施
系統賬號清理
除了手動建立的各種賬號之外,還包括隨系統或程式安裝過程而生成的其他大量賬號。常見的非賬號使用者包括bin,daemon,adm,lp,,mail
,nobody,apache,mysql,dbus,ftp,gdm,haldaemon等。但是為了確保系統的安全,這些使用者登入shell通常是/sbin/nologin,表示禁止終端登入,應確保不被人為改動。
grep “/sbin/nologin$” /etc/passwd
各種非登入使用者中,還有相當一部分是很少用到的,如news,uucp,games,gopher。這些使用者視為冗餘賬號,直接刪除即可。
linux還有長期不實用的使用者賬號,若無法確定是否應該刪除,可以暫時將其鎖定。passwd,usermod命令都可以用來鎖定,解鎖賬號。
usermod -L tanhong 鎖定賬號
passwd -S tanhong 檢視賬號狀態
usermod -U tanhong 解鎖賬號
如果伺服器中的使用者賬號已經固定,不再進行更改,還可以採取鎖定賬號配置檔案的方法。使用chattr命令,分別結合“+i”,”-i”選項來鎖定,解鎖檔案,使用lsattr命令可以檢視檔案鎖定情況。
chattr +i /etc/passwd /etc/shadow 鎖定檔案
lsattr /etc/passwd /etc/shadow 檢視為鎖定的狀態
chattr +i /etc/passwd /etc/shadow 解鎖檔案
lsattr /etc/passwd /etc/shadow 檢視為解鎖的狀態
在賬號被鎖定的情況下,其內容將不允許變更,因此無法新增,刪除賬號,也不能更改使用者的密碼,登入sheel,宿主目錄等屬性資訊
密碼安全控制。
在不安全的網路環境中,為了降低密碼被猜出來或暴力破解風險,使用者應養成定期更改密碼的習慣,避免長期使用同一個密碼。某些特殊情況下,如要求批量的使用者初次登陸時必須自設密碼,根據安全規劃統一要求所有使用者更新密碼,可以由管理員執行強制策略,以便使用者在下次登入時必須更改密碼。
命令歷史,自動登出。
shell環境的命令歷史機制為使用者提供啦極大的便利,但另一方面也給使用者帶來了潛在的風險。只要獲得使用者的命令歷史檔案,該使用者的命令操作過程將會一覽無餘。
bash終端環境中,歷史命令的記錄條數由變數HISTSIZE控制,預設為1000條,通過修改/etc/profile檔案中的HISTSIZE變數可以影響系統中的所有使用者。
vim /etc/profile
HISTSIZE=200
除此之外,還可以修改使用者宿主目錄中的~/.bash_logout檔案,新增清空歷史命令的操作語句。
bash終端環境中,可以設定一個閒置超時時間,當超過指定的時間沒有任何輸入時自動登出終端,這樣可以有效避免當管理員不在時其他人員對伺服器的誤操作風險,閒置超時由變數TMOUT來控制,預設單位為秒
使用者切換與提權
linux伺服器並不建議使用者直接以root使用者進行登陸,一方面可以大大減少因誤操作而導致的破壞。su命令主要用來切換使用者,而sudo命令用來提升執行許可權
su命令–切換使用者
可以切換為指定的另一個使用者,從而具有該使用者的所有許可權。
su – root
選項”-“等同於“–login”或“-l”,表示切換使用者後進入目標使用者的登陸shell環境,若缺少此選項則僅切換身份,不切換身份,不切換使用者環境。
預設情況下,任何使用者都允許使用su命令,從而有機會反覆嘗試其他使用者的登陸密碼,帶來安全風險,為了加強su命令的使用控制,可以藉助pam_wheel認證模組,只允許極個別使用者使用su命令進行切換。將授權使用su命令的使用者新增到wheel組,修改/etc/pam,d/su認證配置以啟用pam_wheel認證
啟動pam_wheel認證以後,未加入組內的其他使用者將無法使用su命令,嘗試進行切換時將會按照“密碼不正確”來處理,從而將切換使用者udall許可權控制在最小範圍內
使用su命令切換使用者的操作將會記錄到安全日誌/var/log/secure檔案中,可以根據需要進行檢視。
dudo命令–提升執行許可權
通過su命令可以非常方便地切換為另一個使用者,前提是必須知道目標使用者的登陸密碼
在配置檔案/etc/sudoers中新增授權
sudo機制的配置檔案為/etc/sudoers,檔案的預設許可權為440,需要用專門的visuso工具進行編輯,但是儲存時必須執行“:w!”命令來強制操作,否則系統將提示為只讀檔案而拒絕儲存。
配置檔案/etc/sudores中,授權記錄的基本配置格式
user MACHINE=COMMANDS
授權配置主要包括使用者,主機,命令三個部分,即授權那些主機上執行哪些命令。
使用者(USER):授權的使用者,或採用“%”的形式
主機(MACHINE):使用此配置檔案的主機名稱,此部分是方便在多個主機間共用同一份sudoers檔案
命令(COMMANDS):允許授權的使用者通過sudo方式執行的特殊命令
典型sudo配置記錄中,每一行對應一個使用者或組的sudo授權配置。
當使用相同的授權使用者較多時,或者授權的命令較多時,可以採用集中定義的別名。每戶,主機,命令部分都可以定義為別名,分別通過關鍵字user_alias,Host_Alias,cmmd_Ailas來進行設定。
sudo配置記錄的命令部分允許使用配置符“*”,取反符號“!”,當某個目錄下的所有命令或取消其中個別命令時特別有用
若要授權使用者syrianer可以執行/sbin目錄下除ifconfig,route以外的其他所有命令程式,
通過sudo方式執行的操作並不記錄,若要啟用sudo日誌以備管理員檢視,應在/etc/sudoers檔案中增加“Defaults logfile”設定
通過sudo執行特權命令
對於已獲得授權的使用者,通過sudo方式執行特權命令時,只需要將正常的命令作為sudo命令的引數即可。由於特權命令程式位於/sbin,/usr/sbin等目錄下。普通使用者執行時應使用絕對路徑。
當前會話過程中,第一次通過sudo執行命令時,必須以使用者自己的祕密進行驗證。若要檢視使用者自己獲得哪些sudo授權,可以執行“sudo -l”命令,未授權的使用者將會得到“may not run sudo”的提示,已授權的使用者則可以看到自己的sudo配置
系統引導和登陸控制
調整BLOS引導設定
將第一優先裝置設為當前系統所在磁碟
禁止從其他裝置引導系統,對應的項設為“Disabled”
將BLOS的安全級別改為“setup”,並設定好管理密碼,防止未授權的修改
禁止ctrl+alt-del快捷鍵重啟
快捷鍵重啟功能為伺服器的本地維護提供了方便,但對於多終端登陸的linux伺服器,禁止此功能是比較安全的選擇。在rhel6中ctrl-alt+del快捷鍵的位置更改為/etc/init/control-alt-delete.conf,註釋掉裡面的資訊
限制更改GRUB引導引數
GRUB引導引數進入單使用者模式,以便對一些系統問題進行修復。安全系統的角度看,如果任何人都能夠修改GRUB引導引數,對伺服器本身顯然是一個威脅。可以為GRUN設定一個密碼,只有提供正確的祕密才被允許修改引導引數
為GRUB選單設定的祕密建議採用“grub-md5-crypt”命令生成,表現經過MD5演算法加密的字串,安全性更好。在grub.cof配置檔案中,使用“password–md5”配置項來指定MD5
修改完之後,重新開機進入GRUB選單時,直接按E無法修改引導引數,若要獲得編輯許可權,必須先按p鍵並輸入GRUB密碼。
為GRUB設定密碼時,“–md5–”部分可替換為明文的密碼字串。
終端及登入控制
預設開啟啦六個終端,允許執行任何使用者進行本地登入。
減少開發的tty終端個數
對於遠端維護的linux伺服器,六個tty終端實際上有點多餘。
修改/etc/init/start-ttys.conf和/etc/sysconfig/init。可以減少開放的tty終端數量。
禁止root使用者登入
login程式會讀取/etc/securetty檔案,以決定允許root使用者從那些終端登入系統。r若要禁用root使用者從tty5,tty6登陸,可以修改/etc/securetty檔案。
禁止普通使用者登入
伺服器在備份或者除錯過程中,可能不希望有新使用者登入系統,這時候,只需簡單的建立/etc/nologin檔案即可。login程式會檢查/etc/nologin檔案是否存在。
弱口令檢測-john the ripper
過於簡單的口令是伺服器面臨的最大風險,john the ripper是一款開源的祕密破解工具,能夠在已知密文的情況下快速分析出明文的祕密字串,支援DES,MD5等多種加密演算法,而且執行使用密碼字典進行暴力破解。
網路掃描——NMAP
NMAP是一個強大的掃描淚安全評測工具,NMAP被設計為檢測主機數量眾多的巨大網路,支援ping掃描,多埠檢測,os識別等多種技術,可以定期掃描內部網路,可以找出網路中不可控的應用服務,及時關閉不安全的服務,減少安全風險。
本文轉自 巨集強 51CTO部落格,原文連結:http://blog.51cto.com/tanhong/1899941
相關文章
- Windows系統安裝及啟用Windows
- UNIX系統中安裝SAP的步驟
- SCO UNIX學習寶典(系統安裝)(轉)
- 系統安全及應用
- 2、安裝及管理應用程式
- PIG安裝配置及案例應用
- 安裝及管理Linux應用程式Linux
- UNIX系統中Shell的一種新應用(轉)
- 在unix和類unix系統上安裝動網asp+mssql論壇(轉)SQL
- Ubuntu16.04雙系統安裝及解除安裝Ubuntu
- 應用虛擬機器VMware安裝archlabs系統虛擬機
- 我的六個系統安裝方法及其應用(轉)
- CentOS 6 安裝MAVEN及系統配置CentOSMaven
- NeurophStudio安裝及基礎應用
- Ubuntu下docker安裝及簡單應用UbuntuDocker
- win10系統怎麼解除安裝已安裝的軟體應用程式Win10
- win10系統下安裝Mail應用程式的方法Win10AI
- win10系統如何解除安裝Modern應用程式Win10
- Windows10系統怎麼更改APP應用安裝位置WindowsAPP
- win10怎麼將UWP應用安裝在非系統盤_win10將UWP應用安裝在非系統盤的步驟Win10
- 安裝Docker 及部署 Wordpress 部落格系統Docker
- Ubuntu系統-FFmpeg安裝及環境配置Ubuntu
- Oracle GoldenGate系統之----安裝及使用OracleGo
- win10系統安裝失敗提示“無法安裝應用”的解決方法Win10
- zabbix容器化安裝及監控docker應用Docker
- UBUNTU安裝、應用軟體安裝及最佳化手記(轉)Ubuntu
- win10怎麼安裝應用商店_win10系統重新裝回應用商店的方法Win10
- 安裝MySQL(UNIX)(轉)MySql
- Window10安裝linux子系統及子系統安裝1Panel皮膚Linux
- windows10系統怎麼解除安裝Skype for Business應用Windows
- Win10系統徹底解除安裝應用商店的方法Win10
- win10系統autodesk桌面應用程式可以解除安裝嗎Win10
- 我的六個作業系統安裝方法及其應用(轉)作業系統
- 一篇教程搞定Windows系統中的Docker應用安裝WindowsDocker
- 淺談怎樣在UNIX系統下安裝MySQL資料庫(轉)MySql資料庫
- MacBook Pro更換硬碟及系統安裝教程Mac硬碟
- 在Ubuntu系統安裝Anaconda及PythonUbuntuPython
- Ubuntu系統中找不到yum及安裝方法!Ubuntu