當前位置:
首頁 > 最新 > 伺服器、VPS等安全防護教程

伺服器、VPS等安全防護教程

Introduction

在從搬瓦工(Bandwagon)購買VPS之後,自信的在vps里使用了debian搭建ss等等。

過了一個多月,就收到搬瓦工郵件,說

We have detected a large number of outgoing SMTP connections originating from this server. This usually means that the server is sending out spam.

我們檢測到你的伺服器上有大量SMTP連接,換句話說,你的伺服器在發送垃圾郵件。

就是說vps被黑了。被人用來濫發郵件。

經過一番努力之後,終於在兩三個月里,被黑了三次。達到了他們的容忍上限(每個用戶的每個vps有三次機會,超過三次就會被停止使用),發tickt也不給面子,就是不讓用了。只能新買服務。。

於是新買了個vps,這裡記錄下使用vps需要注意的安全問題。

1.認識問題嚴重性

先在你機器(包括你平時用的linux的機器)上跑幾個命令看看吧。

1.1查看嘗試暴力破解機器密碼的人

害怕嗎?

1.2查看暴力猜用戶名的人

在我實驗室的機器上,看到的結果如下:

感受到寒意了嗎?

2應對策略

2.1 SSH相關

2.1.1 不使用默認的22埠

ssh登陸默認的埠是22,而搬瓦工一般都默認是一個比較大的隨機埠,不要為了方便,改回22。

修改文件,將其中的改為隨意的埠比如,port的取值範圍是 0 – 65535(即2的16次方),0到1024是眾所周知的埠(知名埠,常用於系統服務等,例如http服務的埠號是80)。

2.1.2 不要使用簡單密碼

搬瓦工默認生成的root密碼是隨機的,但是不要改成你自己的密碼,你可以將密碼記在手機上,但是一定不要改成你自己的有規律的密碼。

2.1.3 禁止使用密碼登陸,使用RSA私鑰登陸

這條是最重要最有效的。

跟之前寫的debian ssh 連接android 通過termux里登陸部分是一樣的。rsa的原理也不再贅述,wiki上的條目描述的很清楚。

先通過生成你的客戶端的密鑰,包括一個私鑰和公鑰,用把公鑰拷貝到伺服器上,注意,生成私鑰的時候,文件名是可以自定義的,且可以再加一層密碼,所以建議文件名取自己能識別出哪台機器的名字。然後在伺服器上,你的用戶目錄下,新建文件夾,並將該文件夾的許可權設為700,,並新建一個,這是默認允許的key存儲的文件。如果已經存在,則只需要將上傳的文件內容追加進去即可:,如果不存在則新建並改許可權為400即可。

然後編輯ssh的配置文件:

2.1.4 禁止root用戶登錄

你可以新建一個用戶來管理,而非直接使用root用戶,防止密碼被破解。

還是修改

2.2 使用Fail2ban

此部分原來用的是denyhosts,但是它幾乎不更新了,現在用Fail2ban

github地址

一般軟體源里都已經收錄了它。

2.2.1 配置文件

默認配置文件一般在。現在你已經準備好了通過配置 fail2ban 來加強你的SSH伺服器。你需要編輯其配置文件 /etc/fail2ban/jail.conf。 在配置文件的「[DEFAULT]」區,你可以在此定義所有受監控的服務的默認參數,另外在特定服務的配置部分,你可以為每個服務(例如SSH,Apache等)設置特定的配置來覆蓋默認的參數配置。

在針對服務的監獄區(在[DEFAULT]區後面的地方),你需要定義一個[ssh-iptables]區,這裡用來定義SSH相關的監獄配置。真正的禁止IP地址的操作是通過iptables完成的。

(其實默認配置即可)

根據上述配置,fail2ban會自動禁止在最近10分鐘內有超過3次訪問嘗試失敗的任意IP地址。一旦被禁,這個IP地址將會在24小時內一直被禁止訪問 SSH 服務。

2.2.2運行

一旦配置文件準備就緒,按照以下方式重啟fail2ban服務。

在 Debian, Ubuntu 或 CentOS/RHEL 6:

在 Fedora 或 CentOS/RHEL 7:

為了驗證fail2ban成功運行,使用參數"ping"來運行fail2ban-client 命令。 如果fail2ban服務正常運行,你可以看到「pong(嘭)」作為響應。

2.2.3 解鎖特定ip

檢驗fail2ban狀態(會顯示出當前活動的監獄列表):

為了檢驗一個特定監獄的狀態(例如ssh-iptables):

上面的命令會顯示出被禁止IP地址列表。

為了解鎖特定的IP地址:

注意,如果你停止了Fail2ban 服務,那麼所有的IP地址都會被解鎖。當你重啟 Fail2ban,它會從(或)中找到異常的IP地址列表,如果這些異常地址的發生時間仍然在禁止時間內,那麼Fail2ban會重新將這些IP地址禁止。

2.2.4 設置 Fail2ban 自動啟動

一旦你成功地測試了fail2ban之後,最後一個步驟就是在你的伺服器上讓其在開機時自動啟動。在基於Debian的發行版中,fail2ban已經默認讓自動啟動生效。在基於Red-Hat的發行版中,按照下面的方式讓自動啟動生效。

在 CentOS/RHEL 6中:

在 Fedora 或 CentOS/RHEL 7:

2.3 終極殺手鐧 iptables

iptables,一個運行在用戶空間的應用軟體,通過控制Linux內核netfilter模塊,來管理網路數據包的流動與轉送。在大部分的Linux系統上面,iptables是使用/usr/sbin/iptables來操作,文件則放置在手冊頁(Man page[2])底下,可以通過 man iptables 指令獲取。通常iptables都需要內核層級的模塊來配合運作,Xtables是主要在內核層級裡面iptables API運作功能的模塊。因相關動作上的需要,iptables的操作需要用到超級用戶的許可權。

開機啟動項的設置可以參考Reference里關於iptables的條目

總結

安全問題實在太重要,即使設置了以上防護,也有可能被攻克,重要的是提高安全意識。

等我遇到了新的問題,再更新文章。。

Reference

VPS 防止 SSH 暴力登錄嘗試攻擊

linux默認埠範圍是多少

10 分鐘伺服器安全設置,Ubuntu安全設置入門

Linux下的iptables詳解及配置

Linux上iptables防火牆的基本應用教程

iptables wiki

iptables archwiki

如何使用 fail2ban 防禦 SSH 伺服器的暴力破解攻擊

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Find 的精彩文章:

TAG:Find |