首頁 > 常見問題 > 主體

怎麼防範伺服器被他人入侵

little bottle
發布: 2019-04-30 09:57:18
轉載
3186 人瀏覽過

加固伺服器並不難,但有許多例行作業需要進行時,很容易遺忘。所以在這裡和大家談談如何防範他人入侵伺服器同時也讓自己加深印象,希望你看完後能有所幫助。

如何查找漏洞

我碰到的情況比較簡單,我執行了以下命令:

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中文網其他相關文章!

來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!