Linux防止SSH暴力破解

Linux防止SSH暴力破解

每次登錄系統(tǒng)(CentOS7),就會(huì)發(fā)現(xiàn)有N次登陸失敗的統(tǒng)計(jì)信息,如:


查看 日志文件可以看到文件中有很多認(rèn)證失敗的ip登錄信息,這就說明已經(jīng)被無數(shù)不同的IP地址和不同的用戶進(jìn)行SSH嘗試連接了。


/var/log/secure


密碼再復(fù)雜也頂不住這樣暴力掃描啊,為預(yù)防萬一,下面總結(jié)了幾種防范方法


1、禁止root登錄


修改sshd服務(wù)器端的配置文件


/etc/ssh/sshd_config


[root@vps ~]$ vi /etc/ssh/sshd_config

---------------配置如下----------------

PermitRootLogin no

重啟

[root@vps ~]$ service sshd restart


2、修改 SSH 默認(rèn)端口


修改SSH默認(rèn)端口號(hào),sshd服務(wù)器端的配置文件為


/etc/ssh_config


[root@vps ~]$ vi /etc/ssh/sshd_config

---------------配置如下----------------

Port 2280

重啟SSH

[root@vps ~]$ systemctl restart sshd

查看狀態(tài)

[root@vps ~]$ systemctl status sshd

查看端口是否更改

[root@vps ~]$ netstat -ntlp | grep 2280

tcp 0 0 0.0.0.0:2280 0.0.0.0:* LISTEN 8793/sshd

tcp6 0 0 :::2280 :::* LISTEN 8793/sshd

Linux防止SSH暴力破解

3、根據(jù)secure文件中失敗的ip次數(shù)做限制


當(dāng)同一個(gè)IP地址超過5次的嘗試,那么就加入


/etc/hosts.deny


#! /bin/bash

# 提取所有的IP到black.list文件中

cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list

# 設(shè)定次數(shù)

define="5"

for i in `cat /usr/local/bin/black.list`

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:deny" >> /etc/hosts.deny

fi

fi

done


添加計(jì)劃任務(wù)。


[root@vps ~]$ crontab -e

# 每3分鐘檢查一次

*/3 * * * * sh /usr/local/bin/secure_ssh.sh

重啟 crontab

[root@vps ~]$ systemctl restart crond