加固伺服器並不難,但有許多例行作業需要進行時,很容易遺忘。所以在這裡和大家談談如何防範他人入侵伺服器同時也讓自己加深印象,希望你看完後能有所幫助。
如何查找漏洞
我碰到的情況比較簡單,我執行了以下命令:
cat /var/log/auth.log | grep Accepted
該命令返回了我的伺服器上的成功認證記錄,其中有一個IP 不是我的。所以,是 SSH 服務被入侵了。
別忘了還有一個指令 last
,這個指令回傳最近成功登入的使用者。
如何加固伺服器
購買伺服器後需要立刻進行的操作:
- #安裝ufw,簡單易用的防火牆軟體;
- 關閉除SSH、HTTP(s) 外的所有連接埠;
- 安裝設定fail2ban 工具。這個工具基於
/var/log/auth.log
識別惡意行為並封鎖 IP; - 修改 sshd 配置,只使用金鑰認證。
具體怎麼做?
如果發生了入侵,你需要知道如何調查和清潔。最好的方式是重新建立 VPS。我就是這麼做的。我在 hetzner 買了伺服器,它的控制台提供了重新建立(移除舊 VPS,新建一個)VPS 並保留原始 IP 的功能。所以我重新建立了一個 VPS。之後我在本機上使用ssh-keygen
工具(標準OpenSSH 套件的一部分)產生了SSH 金鑰:(下面的命令同時適用於Linux 和macOS)
ssh-keygen
該指令在~/.ssh
目錄中建立了一對金鑰。之後執行以下命令:
ssh-copy-id you_user@your_server_id
該命令會將新建立的公鑰上傳到伺服器。接下來,登入伺服器並修改 sshd 配置:
nano /etc/ssh/sshd_config
修改設定檔中的 PasswordAuthentication 配置:
PasswordAuthentication no
此配置停用了使用密碼登入(只能使用金鑰登入)。
安裝設定ufw 和fail2ban
伺服器上我用的系統是Ubuntu,所以透過以下指令可以安裝這兩個工具:
apt install ufw fail2ban
只開ssh 和http( s) 連接埠:
ufw allow ssh ufw allow 80 ufw allow 443
啟用ufw:
ufw enable
接下來設定fail2ban 工具:
# 备份默认配置 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local
在設定檔中尋找banaction =
,將其設為ufw
。然後重新載入 fail2ban 設定:
fail2ban-client reload
這樣簡單設定之後,來自相同 IP 的三次錯誤登入嘗試將封鎖該 IP 10 分鐘。我個人將封鎖期限調成了 7 天。以下指令可以查看 fail2ban 的狀態:
fail2ban-client status sshd
我的設定是這樣的:
Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 6 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 1 |- Total banned: 2 `- Banned IP list: 187.109.168.150
如你所見,有一個 IP 已經被防火牆封鎖了。我們也可以透過 ufw 的報告確認這一點:
ufw status Status: active To Action From -- ------ ---- Anywhere REJECT 187.109.168.150 80/tcp ALLOW Anywhere 22 ALLOW Anywhere 443 ALLOW Anywhere
想了解更多技術教程,請關注PHP中文網的其他內容。
以上是怎麼防範伺服器被他人入侵的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具