Linux 防SSH暴力攻擊

2021-10-13 02:00:16 字數 4295 閱讀 8457

在下這幾天發現我的vps 總是莫名遭受到 江蘇鎮江那邊的ip 登入請求攻擊 ,跟蹤了下路由,發現ip是從蒙古那邊出去的,然後意識到可能是有掃瞄埠的。。

現在的網際網路非常不安全,很多人沒事就拿一些掃瞄機掃瞄ssh埠,然後試圖連線ssh埠進行暴力破解(窮舉掃瞄),所以建議vps主機的空間,盡量設定複雜的ssh登入密碼,那麼有什麼更好的辦法來解決這個問題?,就可以使用denyhosts這款軟體了,它會分析/var/log/secure(redhat,fedora core)等日誌檔案,當發現同一ip在進行多次ssh密碼嘗試時就會記錄ip到/etc/hosts.deny檔案,從而達到自動遮蔽該ip的目的。

denyhosts是乙個指令碼,旨在由linux系統管理員執行以幫助阻止ssh伺服器攻擊(也稱為基於字典的攻擊和蠻力攻擊)。

如果你曾經檢視過ssh日誌(在redhat上是/ var / log / secure,在mandrake上是/var/log/auth.log,等等...),可能會警覺看到有多少黑客試圖訪問您的伺服器。希望他們都沒有成功(但是,話又說回來,你怎麼知道?)。自動阻止攻擊者繼續進入您的系統不是會更好嗎?

安裝指令碼 

denyhosts官方**為:

如果使用了 lnmp一件安裝包 布置的環境,該包自帶該軟體可以一鍵安裝,命令:wget && tar zxf lnmp1.5.tar.gz && cd lnmp1.5/tools/ && ./denyhosts.sh回車確認即可開始安裝配置,不需要下面的步驟進行安裝配置。(該tools目錄下也有denyhosts相似的工具fail2ban的一鍵安裝工具 ./fail2ban.sh 安裝即可)

# wget 

# tar zxvf denyhosts-2.6.tar.gz

# cd denyhosts-2.6

2、安裝、配置和啟動

安裝前建議執行:echo "" > /var/log/secure && service rsyslog restart 清空以前的日誌並重啟一下rsyslog

# python setup.py install

因為denyhosts是基於python的,所以要已安裝python,大部分linux發行版一般都有。預設是安裝到/usr/share/denyhosts/目錄的,進入相應的目錄修改配置檔案

# cd /usr/share/denyhosts/

# cp denyhosts.cfg-dist denyhosts.cfg

# cp daemon-control-dist daemon-control

預設的設定已經可以適合centos系統環境,你們可以使用vi命令檢視一下denyhosts.cfg和daemon-control,裡面有詳細的解釋

接著使用下面命令啟動denyhosts程式

# chown root daemon-control

# chmod 700 daemon-control

# ./daemon-control start

如果要使denyhosts每次重起後自動啟動還需做如下設定:

# ln -sf /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts

# chkconfig --add denyhosts

# chkconfig --level 2345 denyhosts on

或者執行下面的命令加入開機啟動,將會修改/etc/rc.local檔案:

# echo "/usr/share/denyhosts/daemon-control start" >> /etc/rc.local

denyhosts配置檔案/usr/share/denyhosts/denyhosts.cfg說明:

secure_log = /var/log/secure

#sshd日誌檔案,它是根據這個檔案來判斷的,不同的作業系統,檔名稍有不同。

hosts_deny = /etc/hosts.deny

#控制使用者登陸的檔案

purge_deny = 5m

daemon_purge = 5m

#過多久後清除已經禁止的ip,如5m(5分鐘)、5h(5小時)、5d(5天)、5w(5周)、1y(一年)

block_service  = sshd

#禁止的服務名,可以只限制不允許訪問ssh服務,也可以選擇all

deny_threshold_invalid = 5

#允許無效使用者失敗的次數

deny_threshold_valid = 10

#允許普通使用者登陸失敗的次數

deny_threshold_root = 5

#允許root登陸失敗的次數

hostname_lookup=no

#是否做網域名稱反解

daemon_log = /var/log/denyhosts

為防止自己的ip被遮蔽,可以:echo "你的ip" >>  /usr/share/denyhosts/allowed-hosts 將你的ip加入白名單,再重啟denyhosts:/etc/init.d/denyhosts ,如果已經被封,需要先按下面的命令刪除被封ip後再加白名單。

如有ip被誤封,可以執行下面的命令解封:wget  && bash denyhosts_removeip.sh 要解封的ip

更多的說明請檢視自帶的readme文字檔案,好了以後維護vps就會省一些心了,但是各位vpser們注意了安全都是相對的哦,沒有絕對安全,將密碼設定的更strong,並請定期或不定期的檢查你的vps主機,而且要定時備份你的資料哦。

與denyhosts類似的軟體還有fail2ban功能上更多,還可以對ftp進行保護,自己可以搜尋看一下。

採用lnmp的 tools 工具包提供的fail2ban 的話, 可以進入到  /etc/init.d/fail2ban   列印 該指令碼資訊 ,檢視指令碼配置資訊。 

ssh伺服器(sshd)作為linux上非常重要的服務,安全性是很重要的,首先網上有很多專門的伺服器用來掃瞄ssh預設的22埠並使用弱口令之類的密碼字典進行暴力破解,雖然可以使用上面所說的 lnmp自帶的denyhosts、fail2ban之類的安裝指令碼,但是將預設ssh埠改掉能過濾掉大部分ssh暴力破解的訪問。該教程適合常見的centos/fedora/redhat、debian/ubuntu等常見的linux發行版。

ssh伺服器的配置檔案為:/etc/ssh/sshd_config

具體修改步驟如下:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

可以使用winscp、nano、vim之類的軟體編輯 /etc/ssh/sshd_config

查詢port 22,有可能 port 22 是注釋的(即前面有#號,有的話刪掉 # 號)。

在 port 22 下面新增一行 port 3322  其中3322為你更改ssh後的埠。

這裡建議先保留原來的22埠,待新的ssh埠測試正常工作後再刪掉原port 22 埠行。

修改完成後儲存。

重啟ssh伺服器命令:systemctl restart sshd

如果沒有systemctl的話可以執行:/etc/init.d/sshd restart/etc/init.d/ssh restart

如果沒有報錯的話就生效了,可以ss -ntlnetstat -ntl檢視一下埠。

iptables新增ssh新埠規則:

iptables -a input -p tcp --dport 3322 -j accept#3322替換為新的埠#

然後儲存iptables規則

firewalld新增ssh新埠規則:

firewall-cmd --permanent --zone=public --add-port=3322/tcp#3322替換為新的埠#

firewall-cmd --reload#過載firewalld#

阿里雲之類的安全組規則新增ssh新埠規則:

阿里雲之類的有安全組之類設定的雲伺服器一定要在安全組規則裡將新埠新增到「入方向」的允許規則。

新增上新的ssh埠後一定要通過putty、xshell之類的ssh軟體連線測試一下,測試可以正常連線然後再編輯 /etc/ssh/sshd_config 將port 22 這一行直接刪除或這一行前面加#注釋掉,然後再按前面的命令重啟sshd服務。

DenyHosts 阻止SSH暴力攻擊

當你的 linux 伺服器暴露在網際網路之中,該伺服器將會遭到網際網路上的掃瞄軟體進行掃瞄,並試圖猜測ssh登入口令。你會發現,每天會有多條ssh登入失敗紀錄。那些掃瞄工具將對你的伺服器構成威脅,你必須設定複雜登入口令,並將嘗試多次登入失敗的ip給阻止掉,讓其在一段時間內不能訪問該伺服器。用deny...

使用DenyHosts阻止SSH暴力攻擊

概述 現在的網際網路非常不安全,很多人沒事就拿一些掃瞄機掃瞄ssh埠,然後試圖連線ssh埠進 行暴力破解 窮舉掃瞄 所以建議vps主機的空間,盡量設定複雜的ssh登入 密碼,關於如何配置安全的ssh服務,請檢視 在 vps主機配置安全ssh服務這篇文章,那麼有什麼辦法設法阻止這些,就可以使用deny...

通過DenyHosts阻止SSH暴力攻擊教程

denyhosts是乙個linux系統下阻止暴力破解ssh密碼的軟體,它的原理與ddos deflate 類似,可以自動拒絕過多次數嘗試ssh登入的ip位址,防止網際網路上某些機器常年破解密碼的行為,也可以防止黑客對ssh密碼進行窮舉。眾所周知,暴露在網際網路上的計算機是非常危險的。並不要因為 小,...