centos 禁止SSH暴力掃瞄

2021-10-07 11:41:28 字數 4461 閱讀 2513

今天檢視了一下系統的失敗登陸記錄 lastb 我擦,幾分鐘都沒有顯示完畢,不是吧,世界上總是有那麼多的閒得蛋疼的人呢?你怎麼不去死呢?

使用grep -o '[0-9]\\.[0-9]\\.[0-9]\\.[0-9]\' /var/log/secure.1 | sort | uniq -c

統計裡一下,哎,居然嘗試n次!看來世界需要清靜了!使用手工解決已經無法適應別人的暴力掃瞄了,我們也人工智慧一下哈哈,使用denyhosts軟體保護你的ssh吧

開始安裝 centos 5.5, denyhosts 2.5

cd /usr/local/src

wget

tar -zxvf denyhosts-2.5.tar.gz

cd denyhosts-2.5

python setup.py install

預設安裝到/usr/share/denyhosts/目錄

cd /usr/share/denyhosts/

cp denyhosts.cfg-dist denyhosts.cfg

vi denyhosts.cfg

根據自己需要進行相應的配置

配置檔案說明

secure_log = /var/log/secure

#ssh 日誌檔案,它是根據這個檔案來判斷的。

hosts_deny = /etc/hosts.deny

#控制使用者登陸的檔案

purge_deny = 5m

#過多久後清除已經禁止的

block_service = sshd

#禁止的服務名

deny_threshold_invalid = 1

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

deny_threshold_valid = 10

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

deny_threshold_root = 5

#允許root登陸失敗的次數

hostname_lookup=no

#是否做網域名稱反解

admin_email = [email protected]

#管理員郵件位址,它會給管理員發郵件

daemon_log = /var/log/denyhosts

#自己的日誌檔案

cp daemon-control-dist daemon-control

vi daemon-control

參考:denyhosts_bin = "/usr/bin/denyhosts.py"

denyhosts_lock = "/var/lock/subsys/denyhosts" //啟動的pid檔案

denyhosts_cfg = "/usr/share/denyhosts/denyhosts.cfg" //配置檔案

啟動chmod 700 daemon-control

./daemon-control start

設定自動啟動

設定自啟動:

vi /etc/rc.local

加入/usr/share/denyhosts/daemon-control start

我使用了

cd /etc/init.d

ln -s /usr/share/denyhosts/daemon-control denyhosts

chkconfig denyhosts --add

那麼可以使用chkconfig denyhosts on 來設定啟動啦。

denyhosts.cfg配置檔案說明:(從網上找的,參考下)

secure_log = /var/log/secure #sshd日誌檔案,它是根據這個檔案來判斷的,不同的作業系統,檔名

稍有不同。

hosts_deny = /etc/hosts.deny #控制使用者登陸的檔案,被禁止的ip會被寫進裡面

purge_deny = 5m #過多久後清除已經禁止的

# 'm' = minutes

# 'h' = hours

# 'd' = days

# 'w' = weeks

# 'y' = years

block_service = sshd #禁止的服務名,同樣也可以是ftp,smtp等等

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

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

deny_threshold_root = 5 #允許root登陸失敗的次數

deny_threshold_restricted = 1

work_dir = /usr/share/denyhosts/data

hostname_lookup=no #是否做網域名稱反解

lock_file = /var/lock/subsys/denyhosts

admin_email = #管理員郵件位址

daemon_log = /var/log/denyhosts #denyhosts的日誌檔案

daemon_purge = 1m #預設清除

啟動時出現了錯誤,可以使用下面方式解決

./daemon-control start

starting denyhosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg

can't read: /private/var/log/system.log

[errno 2] no such file or directory: '/private/var/log/system.log'

error deleting denyhosts lock file: /var/lock/subsys/denyhosts

[errno 2] no such file or directory: '/var/lock/subsys/denyhosts'

使用:

mkdir -p /private/var/log/

mkdir -p /var/lock/subsys/

./daemon-control start

starting denyhosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg

can't read: /private/var/log/system.log

[errno 2] no such file or directory: '/private/var/log/system.log'

error deleting denyhosts lock file: /var/lock/subsys/denyhosts

[errno 2] no such file or directory: '/var/lock/subsys/denyhosts'

使用:

touch /private/var/log/system.log

touch /var/lock/subsys/denyhosts

./daemon-control start

出現:starting denyhosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg

denyhosts could not obtain lock (pid: )

[errno 17] file exists: '/var/lock/subsys/denyhosts'

使用:rm -f /var/lock/subsys/denyhosts

./daemon-control start

starting denyhosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg

ok!啟動完成啦。

你可以使用

service denyhosts status來檢視執行狀態

denyhosts is running with pid = 25874 表示已經啟動起來了。

接下來就可以使用

cat /etc/hosts.deny來檢視記錄了 然後順便詛咒一下他mjj 哈哈。

centos 防ssh暴力破解

說明 本篇實現shell統計訪問失敗的ip和次數,從而根據這些再通過防火牆規則來限制這些ip再次暴破,指令碼如下 實現 1.編寫shell指令碼 cat root ssh failed.sh 內容如下 bin sh scanip grep failed var log secure awk sort...

Centos7 如何防止SSH暴力

3 ssh暴力破解檢視 4 驗證多次錯誤被禁止ssh 5 注意點 6 參考資料 ssh 為 secure shell 的縮寫,由 ietf 的網路小組 network working group 所制定 ssh 為建立在應用層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供...

Centos下防止ssh暴力破解指令碼

1.修改 ssh 預設埠 注 修改之前,記得先把對應埠在防火牆新增規則 1.1 修改ssh埠為 2968 這個埠建議使用 1024 以上的 sed i s port 22 port 2968 g etc ssh sshd config1.2 重啟ssh systemctl restart sshd1...