Linux作業系統加固及Web伺服器常見加固方法
1. 賬號和口令
1.1 禁用或刪除無用賬號
減少系統無用賬號,降低安全風險。
操作步驟
- 使用命令
userdel <使用者名稱>
刪除不必要的賬號。 - 使用命令
passwd -l <使用者名稱>
鎖定不必要的賬號。 - 使用命令
passwd -u <使用者名稱>
解鎖必要的賬號。
1.2 檢查特殊賬號
檢查是否存在空口令和root許可權的賬號。
操作步驟
- 檢視空口令和root許可權賬號,確認是否存在異常賬號:
- 使用命令
awk -F: '($2=="")' /etc/shadow
檢視空口令賬號。 - 使用命令
awk -F: '($3==0)' /etc/passwd
- 使用命令
- 加固空口令賬號:
- 使用命令
passwd <使用者名稱>
為空口令賬號設定密碼。 - 確認UID為零的賬號只有root賬號。
- 使用命令
1.3 新增口令策略
加強口令的複雜度等,降低被猜解的可能性。
操作步驟
- 使用命令
vi /etc/login.defs
修改配置檔案。PASS_MAX_DAYS 90 #新建使用者的密碼最長使用天數
PASS_MIN_DAYS 0 #新建使用者的密碼最短使用天數
PASS_WARN_AGE 7 #新建使用者的密碼到期提前提醒天數
- 使用chage命令修改使用者設定。
例如,chage -m 0 -M 30 -E 2000-01-01 -W 7 <使用者名稱>
- 設定連續輸錯三次密碼,賬號鎖定五分鐘。使用命令
vi /etc/pam.d/common-auth
修改配置檔案,在配置檔案中新增auth required pam_tally.so onerr=fail deny=3 unlock_time=300
。
1.4 限制使用者su
限制能su到root的使用者。
操作步驟
使用命令 vi /etc/pam.d/su
修改配置檔案,在配置檔案中新增行。例如,只允許test組使用者su到root,則新增 auth required pam_wheel.so group=test
1.4 禁止root使用者直接登入
限制root使用者直接登入。
操作步驟
- 建立普通許可權賬號並配置密碼,防止無法遠端登入;
- 使用命令
vi /etc/ssh/sshd_config
修改配置檔案將PermitRootLogin的值改成no,並儲存,然後使用service sshd restart
重啟服務。
2. 服務
2.1 關閉不必要的服務
關閉不必要的服務(如普通服務和xinetd服務),降低風險。
操作步驟
使用命令systemctl disable <服務名>
設定服務在開機時不自動啟動。
說明: 對於部分老版本的Linux作業系統(如CentOS 6),可以使用命令chkconfig --level <init級別> <服務名> off
設定服務在指定init級別下開機時不自動啟動。
2.2 SSH服務安全
對SSH服務進行安全加固,防止暴力破解成功。
操作步驟
使用命令 vim /etc/ssh/sshd_config
編輯配置檔案。
- 不允許root賬號直接登入系統。
設定 PermitRootLogin 的值為 no。 - 修改SSH使用的協議版本。
設定 Protocol 的版本為 2。 - 修改允許密碼錯誤次數(預設6次)。
設定 MaxAuthTries 的值為 3。
配置檔案修改完成後,重啟sshd服務生效。
3. 檔案系統
3.1 設定umask值
設定預設的umask值,增強安全性。
操作步驟
使用命令 vi /etc/profile
修改配置檔案,新增行 umask 027
, 即新建立的檔案屬主擁有讀寫執行許可權,同組使用者擁有讀和執行許可權,其他使用者無許可權。
3.2 設定登入超時
設定系統登入後,連線超時時間,增強安全性。
操作步驟
使用命令 vi /etc/profile
修改配置檔案,將以 TMOUT=
開頭的行註釋,設定為TMOUT=180
,即超時時間為三分鐘。
4. 日誌
4.1 syslogd日誌
啟用日誌功能,並配置日誌記錄。
操作步驟
Linux系統預設啟用以下型別日誌:
- 系統日誌(預設)/var/log/messages
- cron日誌(預設)/var/log/cron
- 安全日誌(預設)/var/log/secure
注意:部分系統可能使用syslog-ng日誌,配置檔案為:/etc/syslog-ng/syslog-ng.conf。
您可以根據需求配置詳細日誌。
4.2 記錄所有使用者的登入和操作日誌
通過指令碼程式碼實現記錄所有使用者的登入操作日誌,防止出現安全事件後無據可查。
操作步驟
- 執行
[[email protected] /]# 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
- 執行
[[email protected] /]# source /etc/profile
載入配置生效。
注意: /var/log/history 是記錄日誌的存放位置,可以自定義。
通過上述步驟,可以在 /var/log/history 目錄下以每個使用者為名新建一個資料夾,每次使用者退出後都會產生以使用者名稱、登入IP、時間的日誌檔案,包含此使用者本次的所有操作(root使用者除外)。
同時,建議您使用OSS服務收集儲存日誌。
相關推薦
Linux作業系統加固及Web伺服器常見加固方法
1. 賬號和口令 1.1 禁用或刪除無用賬號 減少系統無用賬號,降低安全風險。 操作步驟 使用命令 userdel <使用者名稱> 刪除不必要的賬號。 使用命令 passwd -l <使用者名稱> 鎖定不必要的賬號。 使用命令 passwd
Linux作業系統基礎及常用命令
Linux的基本原則:1、由目的單一的小程式組合,組合小程式完成複雜任務;2、一切皆檔案;3、儘量避免捕獲使用者介面;4、配置檔案儲存為純文字格式; GUI介面:Gnome:C語言;KDE:C++語言;XFace簡潔的,適合用在嵌入式平臺上的輕量級桌面系統;(圖形化介面)GLI介面:命令提示符(prompt
Linux系統中apache(web伺服器)配置
一.apache的相關知識 1.定義: Apache HTTP Server(簡稱Apache)是Apache軟體基金會的一個開放原始碼的網頁伺服器,可以在大多數計算機作業系統中執行,由於其多平臺和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可通過簡單的API擴充
教程:將 Amazon Linux 上的 Apache Web 伺服器配置為使用 SSL/TLS
因為原文即是中文,所以在此不做更多的解釋,只在本文中描述遇到的問題,具體解決方案請檢視原文。 這些過程適用於 Amazon Linux。如果您嘗試在其他分配的例項上設定 LAMP Web 伺服器,
Linux下四款Web伺服器壓力測試工具(http_load、webbench、ab、siege)介紹
一、http_load程式非常小,解壓後也不到100Khttp_load以並行複用的方式執行,用以測試web伺服器的吞吐量與負載。但是它不同於大多數壓力測試工具,它可以以一個單一的程序執行,一般不會把客戶機搞死。還可以測試HTTPS類的網站請求。下載地址:http://sof
Apache和Tomcat的區別及Web伺服器,容器和應用伺服器區別問題
清理書籤的時候發現了遺留的Apache和Tomcat的區別的問題。打算把剛開始學習Servlet的時候的問題一同解決了,剛開始學習J2EE的時候,先學習的是Servlet,執行需要Tomcat,當時我
什麼是Web?及web伺服器原理
什麼是Web? Web就是一種超文字資訊系統,Web的一個主要的概念就是超文字連線,它使得文字不再象一本書一樣是固定的線性的。而是可以從一個位置跳到另外的位置。你可以從中獲取更多的資訊。可以轉到別的主題上。想要了解某一個主題的內容只要在這個主題上點一下,就可以跳轉到包含這一主題的文件上。正是這種多連線性
linux搭建簡單的web伺服器
主要想法是:使用虛擬機器的Ubuntu系統搭建http伺服器,然後在window的瀏覽器上測試 1.先測試windows和虛擬機器上的ubuntu能否相互ping通 2.下載http.tar.gz並拷貝到linux系統的工作目錄下 &
Linux Touch命令的8種常見使用方法
Linux touch命令不僅可以用於在Linux上建立空檔案。 您可以使用它來更改現有檔案的時間戳,包括其訪問許可權和修改時間。 本文介紹了8種可以通過Linux終端使用touch命令的方案。 A FILE argument that does not exist is created empty,
linux 作業系統配置多個IP地址的方法
前提:系統已具有一個IP地址。 切換到root使用者。 切換目錄: cd /etc/sysconfig/network-scripts/ 使用cp命令複製一個ifcfg-eth0的檔案,新的檔名為ifcfg-eth0:0 ,然後用vi編輯此檔案。具體操作如圖所示:
獲取web伺服器路徑的方法 getResourceAsStream
1.先獲取 serlvetContext物件 2.呼叫getResourceAsStream 在方法裡 "\"表示當前web的根目錄 還要拼接上具體的檔案路徑 ServletContext context = getServletContext(); InputStream pa
Visual Studio提示“無法啟動IIS Express Web伺服器”的解決方法
有時,在使用Visual Studio執行ASP.NET專案時,會提示“無法啟動IIS Express Web伺服器”,無法執行,如圖: 這一般出現在重灌系統之後,或者專案是從別的電腦上覆制過來的
virtualbox中在客戶端linux作業系統中新增virtualbox guest addition具體方法
就是想在virtualbox中共享windows中的資料夾,發現virtualbox不是想vmware那麼easy,要在客戶端新增這個vbox guest addition(這個在vbox 安裝目錄下的一個iso映象裡)網上說的很多,我鼓搗了好久,下面慢慢分享,也給自己留個
Linux---死鎖及避免死鎖的方法
死鎖 什麼是死鎖 互斥鎖是保護臨界資源被執行緒間(或程序間)互斥的訪問臨界資源,當一個執行緒得到鎖不釋放時另一個執行緒申請時必須等待。當多個執行緒因為競爭資源而造成的一種僵局(互相等待),如果不施以援手,這些程序將永遠等待。 死鎖產生的原因 ① 系統
Linux系統Web應用安全加固
Linux系統由於其出色的效能和穩定性、開放原始碼的靈活性和可擴充套件性,以及較低廉的成本,而受到計算機工業界的廣泛關注和應用。其系統的安全性就必須要加強。如果我們已經把Web應用架構在一套基於Linux系統的環境中,應該怎麼進行哪些有效的安全配置,來減少安全風險呢?我們應該在什麼地方和如何進行操作
常見的Web伺服器、應用伺服器(Apache、tomcat、jetty、Nginx)簡介及優缺點總結
介紹各個伺服器前,有必要講一下Apache與Tomcat關係,伺服器間的優缺點也是相比於apache與tomcat而言。 Apache是web伺服器(靜態解析,如HTML),tomcat是java應用伺服器(動態解析,如JSP)Tomcat只是一個servlet(jsp也翻譯成servlet)容
Linux伺服器安全加固
對未經過安全認證的RPM包進行安全檢查 rpm -qp xxx.rpm --scripts 檢視rpm包中的指令碼資訊 對使用者的登入次數進行限制 有一些攻擊性的軟體是專門採用暴力破解密碼的形式反覆進行登入嘗試,對於這種情況,我們可以調整使用者登入次數
Web容器Web伺服器及常見的Web容器有哪些?
一、引言 首先來理解一下簡單的一個請求傳送到響應的過程。 首先,客戶端,通常是瀏覽器或者一些應用傳送請求到你的伺服器地址,比如訪問你的Url或者其他的東西。而我們的伺服器通常要分為兩個部分,一部分是伺服器硬體,有了硬體之後還有有硬體上對應執行的軟體。即伺服器軟體 其次,伺服器的硬體部分接
[轉]Web伺服器加固思路
1.許可權控制,低許可權,只讀 2.遮蔽IP,使用一些威脅情報更新自己的IP黑名單列表 3.封殺各種user-agent,防止惡意爬蟲,漏掃等 4.封殺特定的url,入bak,sh,sql等 5.強制網站使用域名訪問 6.url 引數過濾敏感字,如../,union等 7.關閉版本號顯示 8.自定義
Web伺服器的分類及常見的web伺服器
咬定青山不放鬆,立根原在破巖中 web伺服器的分類 管理靜態內容的 - 網頁內容一旦設計好,就不能在執行過程中改變 常見的 apache, nginx 80 管理動態內容的 - 可以根據使用者的不同,展示不同的網頁,或是內容來自於資料庫(互動