linux 防止ssh暴力破解的方法

2021-08-11 18:20:57 字數 3042 閱讀 8442

上兩個星期發生了一件事情,讓我感覺到安全是多麼的重要,因為租了一天學生機linux作為伺服器,沒想到用了沒兩個月就出現問題了。給外國黑客ssh暴力破解,然後安裝挖礦病毒,導致cpu滿了,遠端都鏈結不上,只能重灌系統。

檢視/var/log/secure 檔案可以看到很多認證失敗的failure的ip登入資訊。所以想到根據secure檔案檢視失敗的ip如果超過五次,那麼就把此ip寫入/etc/hosts.deny檔案,禁止此ip登入。我用了第一種方法,設定了定時任務,每分鐘執行一次。執行之後,檢視secure檔案就沒有那麼多失敗的資訊日誌輸出了。

方法一,

收集 /var/log/secure 裡面的資訊,若是某個ip 鏈結次數超過一定次數 ,則把此ip記錄到/etc/hosts.deny裡面。

通過crontab來執行,每分鐘執行一次。

*/1 * * * * /bin/bash /root/denyhosts/denyhosts.sh

#!/bin/bash

#denyhosts shell script

cat /var/log/secure|awk '/failed/'|sort|uniq -c|awk '' >/root/denyhosts/denyhosts.txt

define="5"

for i in `cat /root/denyhosts/denyhosts.txt`

do ip=`echo

$i|awk -f= ''`

num=`echo

$i|awk -f= ''`

if [ $num

-gt$define ]

then

ipexists=`grep $ip /etc/hosts.deny |grep -v grep |wc -l`

if [ $ipexists

-lt1 ]

then

echo

"sshd:$ip" >> /etc/hosts.deny

fifidone

方法二,

denyhosts官方**為:

擴充套件知識:

一. crontab 介紹

crontab命令的功能是在一定的時間間隔排程一些命令的執行。

二.檢視/etc/crontab檔案

vim /etc/crontab

三.檔案/etc/crontab中每行任務的描述格式如下:

minute hour day month dayofweek command

minute - 從0到59的整數 

hour - 從0到23的整數

day - 從1到31的整數 (必須是指定月份的有效日期)

month - 從1到12的整數 (或如jan或feb簡寫的月份)

dayofweek - 從0到7的整數,0或7用來描述週日 (或用sun或mon簡寫來表示)

command - 需要執行的命令(可用as ls /proc >> /tmp/proc或 執行自定義指令碼的命令)

root表示以root使用者身份來執行

run-parts表示後面跟著的是乙個資料夾,要執行的是該資料夾下的所有指令碼

對於以上各語句,星號(*)表示所有可用的值。例如*在指代month時表示每月執行(需要符合其他限制條件)該命令。

整數間的連字型大小(-)表示整數列,例如1-4意思是整數1,2,3,4

指定數值由逗號分開。如:3,4,6,8表示這四個指定整數。

符號「/」指定步進設定。「/」表示步進值。如0-59/2定義每兩分鐘執行一次。步進值也可用星號表示。如*/3用來執行每三個月份執行指定任務。

以「#」開頭的為注釋行,不會被執行。

如果乙個cron任務需要定期而不是按小時,天,周,月來執行,則需要新增/etc/cron.d目錄。這個目錄下的所有檔案和檔案/etc/crontab語法相同,檢視樣例:

30 3 * * mon cat /proc/meminfo >> /tmp/meminfo

10 4 1 * * /root/scrīpts/backup.sh

除了root使用者之外的使用者可以執行crontab配置計畫任務。所有使用者定義的crontab儲存在目錄/var/spool/cron下,任務會以建立者的身份被執行。要以特定使用者建立乙個crontab,先以該使用者登入,執行命令crontab -e,系統會啟動在visual或者editor中指定的的編輯軟體編輯crontab。檔案內容與/etc/crontab格式相同。示例如下:

0 3 * * * /home/dbbackup/db1backup.sh backup

0 4 * * * /home/dbbackup/db2backup.sh backup

表示每天3點執行/home/dbbackup/db1backup.sh backup,4點執行/home/dbbackup/db2backup.sh backup,如果是每五分鐘執行一次可改為:

*/5 * * * * /home/dbbackup/db2backup.sh backup

當更改的crontab需要儲存時,檔案會儲存在成如下檔案/var/spool/cron/username。檔名會根據使用者名稱而不同。

四.crontab服務的啟動關閉

sbin/service crond start //啟動服務

/sbin/service crond stop //關閉服務

/sbin/service crond restart //重啟服務

/sbin/service crond reload //重新載入配置

要把cron設為在開機的時候自動啟動,在 /etc/rc.d/rc.local 指令碼中加入 /sbin/service crond start 即可

還有就是我重新設定一下密碼但是忘記重啟,輸入五遍後把自己的ip給鎖了,解決的辦法就是把/var/log/secure 檔案清空, vi /var/log/secure 然後進入命令模式,:.,$d 清空,然後儲存檔案,再處理/etc/hosts.deny 檔案,把需要解除ip的行刪除。

防止SSH暴力破解

我的伺服器每天都會有無數的ssh失敗嘗試記錄,有些無聊的人一直不停的掃瞄,這些人真夠無聊的,沒事吃飽了撐著,老找些軟體在那裡窮舉掃瞄,所以大家第一要記的設定乙個好的夠複雜的密碼。怎麼樣防,如果要一條一條將這些ip阻止顯然治標不治本,還好有denyhosts軟體來代替我們手搞定他。denyhosts是...

denyhost防止SSH暴力破解

參考 denyhost 官網 以下是安裝記錄 以centos 6.5,denyhosts 2.6 為例 預設是安裝到 usr share denyhosts目錄的。2.配置 cd usr share denyhosts cp denyhosts.cfg dist denyhosts.cfg vi d...

Linux CentOS 防止SSH暴力破解

昨晚苦逼加班完後,今早上班繼續幹活時,ssh連線伺服器發現異常的提示,仔細看了一下嚇一小跳,昨晚9點鐘到現在,一夜之間被人嘗試連線200 慌 root zwlbsweb cd var log root zwlbsweb log ll h 省略部分資訊 rw 1 root root 4.9m jul ...