首頁  >  文章  >  怎麼防範伺服器被他人入侵

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

little bottle
little bottle轉載
2019-04-30 09:57:183184瀏覽

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

如何查找漏洞

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

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刪除

相關文章

看更多