Linux CentOS 防止SSH暴力破解

一. 問題的發現

昨晚苦逼加班完後,今早上班繼續幹活時,SSH鏈接服務器發現異常的提示,仔細看了一下嚇一小跳,昨晚9點鐘到如今,一晚上之間被人嘗試鏈接200+,慌~~~web

1. 速度查一下log

[root@zwlbsweb ~]# cd /var/log [root@zwlbsweb log]# ll -h -------------------------省略部分信息------------------------------
-rw-------  1 root  root  4.9M Jul 17 10:10 secure -rw-------  1 root  root   38M Jun 24 03:29 secure-20190624
-rw-------  1 root  root   64M Jun 30 03:10 secure-20190630
-rw-------  1 root  root   46M Jul  7 03:37 secure-20190707
-rw-------  1 root  root   14M Jul 15 03:41 secure-20190715
-------------------------省略部分信息------------------------------

 發現secure日誌文件咋都這麼大?原來不止是昨晚被攻擊,以前就已經挨無數的暴擊了。vim

2. 打開日誌文件瞧瞧

發現被無數不一樣的IP地址和不一樣的用戶進行SSH嘗試鏈接。bash

隨便拿個IP地址,百度一下,全是國外的IP地址,太可惡了:服務器

二. 防範辦法

雖然個人密碼很複雜了,可是爲了以防萬一,仍是速度百度一下,斬草除根app

1. 修改 SSH 默認端口

  • 注:修改以前,記得請把對應端口在防火牆添加規則。

i. 修改SSH端口爲 2298(這個端口建議使用 1024 以上的)ssh

[root@zwlbsweb ~]# vim /etc/ssh/sshd_config ---------------配置以下---------------- Port 2298

ii. 重啓SSHtcp

[root@zwlbsweb ~]# systemctl restart sshd

iii. 查看端口是否更改this

[root@zwlbsweb ~]# netstat -ntlp | grep 2298 tcp 0   0 0.0.0.0:2298   0.0.0.0:*   LISTEN   15156/sshd tcp6 0   0 :::2298        :::*        LISTEN   15156/sshd

注:還有個步驟就是「禁止root登陸」,我這裏就不由止root登陸了,由於密碼太複雜記不住,切換root用戶不方便。spa

2. 防止 SSH 暴力破解腳本

注:同一個IP地址超過10次的嘗試,就加入/etc/hosts.deny。3d

#! /bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /sshPrevent/black.txt DEFINE="10"
for i in `cat  /sshPrevent/black.txt` do IP=`echo $i |awk -F= '{print $1}'` NUM=`echo $i|awk -F= '{print $2}'` if [ $NUM -gt $DEFINE ]; then grep $IP /etc/hosts.deny > /dev/null
          if [ $? -gt 0 ]; then echo "sshd:$IP" >> /etc/hosts.deny fi fi done

添加計劃任務:

[root@zwlbsweb ~]# crontab -e */5 * * * * /bin/bash /sshPrevent/ssh_pervent.sh # 每五分鐘檢查一次 # 重啓crontab [root@zwlbsweb ~]# systemctl restart crond

五分鐘後,查看是否成功:

[root@zwlbsweb ~]# cat /sshPrevent/black.txt 103.101.232.208=1
103.108.187.4=2
103.248.220.249=15
104.131.93.33=1
104.236.122.193=2
104.236.186.24=2
104.236.246.16=1
104.244.79.33=4
104.248.211.180=2 ...... -------------------------------我是分割線---------------------------------- [root@zwlbsweb ~]# cat /etc/hosts.deny # # hosts.deny This file contains access rules which are used to # deny connections to network services that either use # the tcp_wrappers library or that have been # started through a tcp_wrappers-enabled xinetd. # # The rules in this file can also be set up in # /etc/hosts.allow with a 'deny' option instead. # # See 'man 5 hosts_options' and 'man 5 hosts_access' # for information on rule syntax. # See 'man tcpd' for information on tcp_wrappers # sshd:103.248.220.249 sshd:104.248.88.106 sshd:106.12.18.37 sshd:106.51.230.186 sshd:106.75.17.91 sshd:112.21.188.183 sshd:112.221.179.133 ......

小小的防範措施就到此完成了!

三. 隔一段時間查看效果如何

半天已通過去了,咱們再次查看 secure 日誌文件。

SSh鏈接沒有提示了,日誌也恢復了正常狀態,感謝博友們,收工!

相關文章
相關標籤/搜索