Linux主机系统加固
生活随笔
收集整理的這篇文章主要介紹了
Linux主机系统加固
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
???? 賬號和口令
禁用或刪除無用賬號
減少系統無用賬號,降低安全風險。 操作步驟 查看無用賬戶: cat /etc/passwd |cut -f 1 -d :????? 使用命令
userdel <用戶名>????? 刪除不必要的賬號。
使用命令 passwd -l <用戶名> 鎖定不必要的賬號。 使用命令 passwd -u <用戶名> 解鎖必要的賬號。?檢查特殊賬號
檢查是否存在空口令和root權限的賬號。 操作步驟 查看空口令和root權限賬號,確認是否存在異常賬號: 使用命令 awk -F: '($2=="")' /etc/shadow 查看空口令賬號。 使用命令 awk -F: '($3==0)' /etc/passwd 查看UID為零的賬號。?? //root權限的賬戶 加固空口令賬號: 使用命令 passwd <用戶名> 為空口令賬號設定密碼。 確認UID為零的賬號只有root賬號。?禁用或刪除無用賬號
減少系統無用賬號,降低安全風險。操作步驟
cat /etc/shadow?? 查看有多少賬戶?
服務 關閉不必要的服務 關閉不必要的服務(如普通服務和xinetd服務),降低風險。 操作步驟 使用命令systemctl disable <服務名>設置服務在開機時不自動啟動。 chkconfig --list?? 查看啟動服務 說明: 對于部分老版本的Linux操作系統(如CentOS 6),可以使用命令chkconfig --level <init級別> <服務名> off設置服務在指定init級別下開機時不自動啟動。?SSH服務安全
對SSH服務進行安全加固,防止暴力破解成功。 操作步驟 使用命令 vim /etc/ssh/sshd_config 編輯配置文件。 不允許root賬號直接登錄系統。 設置 PermitRootLogin 的值為 no。 修改SSH使用的協議版本。 設置 Protocol 的版本為 2。 修改允許密碼錯誤次數(默認6次)。 設置 MaxAuthTries 的值為 3。 配置文件修改完成后,重啟sshd服務生效。?
文件系統 設置umask值 設置默認的umask值,增強安全性。 操作步驟 使用命令 vi /etc/profile 修改配置文件,添加行 umask 027, 即新創建的文件屬主擁有讀寫執行權限,同組用戶擁有讀和執行權限,其他用戶無權限。 設置登錄超時 設置系統登錄后,連接超時時間,增強安全性。 操作步驟 使用命令 vi /etc/profile 修改配置文件,將以 TMOUT= 開頭的行注釋,設置為TMOUT=180,即超時時間為三分鐘。 日志 ???? syslogd日志 啟用日志功能,并配置日志記錄。 操作步驟 Linux系統默認啟用以下類型日志: 系統日志(默認)/var/log/messages cron日志(默認)/var/log/cron 安全日志(默認)/var/log/secure 注意:部分系統可能使用syslog-ng日志,配置文件為:/etc/syslog-ng/syslog-ng.conf。 您可以根據需求配置詳細日志。 記錄所有用戶的登錄和操作日志 通過腳本代碼實現記錄所有用戶的登錄操作日志,防止出現安全事件后無據可查。 操作步驟 運行 [root@xxx /]# vim /etc/profile打開配置文件。 在配置文件中輸入以下內容: history USER=`whoami` USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]; then USER_IP=`hostname` fi if [ ! -d /var/log/history ]; then mkdir /var/log/history chmod 777 /var/log/history fi if [ ! -d /var/log/history/${LOGNAME} ]; then mkdir /var/log/history/${LOGNAME}chmod 300 /var/log/history/${LOGNAME} fi export HISTSIZE=4096 DT=`date +"%Y%m%d_%H:%M:%S"` export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT" chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null 運行 [root@xxx /]# source /etc/profile 加載配置生效。 注意: /var/log/history 是記錄日志的存放位置,可以自定義。 通過上述步驟,可以在 /var/log/history 目錄下以每個用戶為名新建一個文件夾,每次用戶退出后都會產生以用戶名、登錄IP、時間的日志文件,包含此用戶本次的所有操作(root用戶除外)。 同時,建議您使用OSS服務收集存儲日志。 安全審計 審計內容包括系統內重要的安全相關事件 實操: 結果將導致發生故障或入侵事件不便于分析故障或入侵行為,不能再需要時作為證據 service rsyslog ststus,service auditd status, cat /etc/audit/auditd.conf中是否配置 write_logs = yes log_file = /var/log/audit/audit.log log_format = RAW max_log_file = 8 num_logs = 5 max_log_file_action = ROTATE cat /etc/audit/audit.rules查看是否存在 -w /etc/passwd -p rwa -k passwd_changes -w /etc/shadow -p rwa -k shadow_changes -w /etc/sudoers -p rwa -k sudoers_changes -w /etc/rsyslog.conf -p rwa -k rsyslog_changes -w /etc/group -p rwa -k group_changes -w /var/log/message -p rwa -k message_changes -w /var/log/secure -p rwa -k secure_changes -w /var/log/maillog -p rwa -k maillog_changes -w /var/log/cron -p rwa -k cron_changes -w /var/log/spooler -p rwa -k spooler_changes -w /etc/audit/audit.rules -p rwa -k audit_changes -w /etc/audit/rules.d/audit.rules -p rwa -k audit_changes cat /etc/rsyslog.conf 查看是否存在 kern.warning;*.err;*.info;kern.debug;daemon.notice;mail.none;authpriv.none;cron.none /var/log/kern.log 時間 安全審計記錄未包含所有重要的審計記錄字段,未配置NTP校正系統時間 操作:date查看當前系統時間 意義:無法進行關聯分析,不能及時對部分較復雜的安全事件進行發現和報警 操作系統未安裝專門的審計進程保護軟件,無法對審計進程進行保護,避免受到未預期中斷,日志保留時間小于6個月 cat /etc/rsyslog.conf中查看是否存在 *.*@@remote-host:514 或詢問是否存在其他措施對審計日志進行保護 更新系統內核和安裝防病毒軟件 使用命令uname -sr查看 Centos7/RHEL7? 3.10.0-1062.1.2.el7 Cetnos6/RHEL6? 2.6.32-754.23.1.el6 詢問管理員是否有月度主機掃描報告 定期對操作系統進行漏洞掃描并修補發現的漏洞,未更新系統內核至 方最新安全版。 Linux系統安裝殺毒軟件clamav 在線演示 https://www.cnblogs.com/hftian/p/11711701.html Webshell 樣例 以下是一個php的樣例。從界面看,它的功能還是比較全的,可以對 務器的文件目錄進行讀寫操作。如果你是網站管理員的話,肯定不希 普通用戶獲得下面的權限。 Webshell如何被注入 常見的Webshell植入方式以下類型: 利用站點上傳漏洞,上傳Webshell。 系統前臺的上傳業務可被利用來上傳Webshell腳本,而被上傳的目錄 往對用戶開放可執行權限。在Web中有上傳圖像、資料文件的地方, 傳完后通常會向客戶端返回上傳文件的完整URL信息;該URL一般是常見的image、upload等目錄。 如果Web服務器對網站存取權限或者文件夾目錄權限控制不嚴,就可能被利用來實現Webshell攻擊。攻擊者可以利用上傳功能上傳一個腳本文件,然后通過URL訪問并執行這個腳本;然后攻擊者就可以上傳Webshell到網站的任意目錄中,從而拿到網站的管理員控制權限。黑客獲取管理員的后臺密碼,登錄到后臺系統,利用后臺的管理工具向配置文件寫入Webshell木馬;或者私自添加上傳類型,允許上傳類似ASP、PHP格式的腳本程序文件。利用數據庫備份與恢復功能獲取Webshell。例如,備份時把備份文件的后綴改成 .asp; 如果后臺有MySQL數據查詢功能,黑客可以執行select..in To outfile查詢輸出PHP文件,并把代碼插入到MySQL,從而生成Webshell的木馬。系統中其他站點被攻擊,或者服務器上還搭載了FTP服務器。FTP服務器被攻擊時被注入了Webshell的木馬,導致網站系統被感染。黑客直接攻擊Web服務器系統漏洞,實現入侵。Web服務器在系統層面也可能存在漏洞,如果黑客利用其漏洞攻擊服務器系統;在獲取其權限后,黑客就可以在Web服務器目錄里上傳Webshell文件。綜上,Webshell能夠入侵到系統,一般是由于以下原因: 通過Web站點漏洞上傳Webshell。Webshell能夠被注入,在很大程度是由于服務器或中間件的安全漏洞。例如,以下常見漏洞都可能被利用來注入Webshell:舊版本的IIS目錄解析漏洞、文件名解析漏洞、應用后臺暴露和弱口令、Fast-CGI解析漏洞、Apache文件解析漏洞、截斷上傳、后臺數據庫備份功能上傳、數據庫語句上傳漏洞等。 站點部署時混入了Webshell文件。大量的用戶在使用從網上下載的第三方開源代碼時,其代碼本身已經混入了Webshell的惡意腳本,造成二次入侵或多次入侵。所以在部署前期,如果不是新開發的代碼,都需要對代碼進行惡意文件掃描查殺,防止上線后被入侵。 如何防止系統被植入Webshell 配置必要的防火墻并開啟防火墻策略;防止暴露不必要的服務,為黑客提供利用條件。對服務器進行 安全加固。例如,關閉遠程桌面功能、定期更換密碼、禁止使用最高權限用戶運行程序、使用HTTPS加密協議。加強權限管理,對敏感目錄進行權限設置,限制上傳目錄的腳本執行權限,不允許配置執行權限等。 安裝Webshell檢測工具,發現檢測結果后,立即隔離查殺,并排查漏洞。排查程序存在的漏洞,并及時修補漏洞。您可以通過應急響應服務人工界入,協助排查漏洞及入侵原因,同時可以選用商業Web應用防火墻進行防御,降低被入侵機率。 網站被植入Webshell的解決方案 Webshell從字面上理解,”Web”指需要服務器開放Web服務,”shell”指取得對服務器的某種程度的操作權限。Webshell指匿名用戶(入侵者)通過網站端口,獲取網站服務器的一定操作權限。 Webshell通常是以ASP、PHP、JSP、ASA或者CGI等網頁文件形式存在的一種命令執行環境,也稱為網頁后門。黑客在入侵網站后,通常會將Webshell后門文件與網站服務器Web目錄下正常的網頁文件混在一起;然后使用瀏覽器來訪問這些后門,得到命令執行環境,以達到控制網站或者Web系統服務器的目的。 黑客如果想使用Webshell完成一些特殊的功能,就不可避免地用到一些特殊函數。通過對這些函數進行對照特征值檢查,就能夠定位Webshell,但是Webshell本身也會進行加密來躲避這種檢測。總結
以上是生活随笔為你收集整理的Linux主机系统加固的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows主机加固和评测
- 下一篇: 暴力破解(初级)以及弱口令工具的使用