unix系統安裝及應用

技術小牛人發表於2017-11-16

賬號安全控制

        使用者賬號是計算機使用者的身份或標識,每一個訪問系統資源的人,必須憑藉其使用者賬號才能進入計算機。

    基本安全措施

        系統賬號清理

            除了手動建立的各種賬號之外,還包括隨系統或程式安裝過程而生成的其他大量賬號。常見的非賬號使用者包括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


相關文章