默认分类

防止SSH爆破,及拉黑攻击IP配置

查看爆破登录次数及IP地址

# cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'

修改ssh登录端口

原因:开放外网访问的机器,使用默认的22端口进行ssh登录,频繁的遭遇爆破攻击,强度不大但为了防患于未然,决定修改访问端口
2022-12-19T02:02:12.png

修改ssh的配置文件,新增一行port,或者取消原来port的注释,修改端口

[root@master01 ~]# vim /etc/ssh/sshd_config

2022-12-19T02:02:46.png

防火墙放行对应端口号

firewall-cmd --zone=public --add-port=<port>/tcp --permanent

然后执行命令重启sshd服务

systemctl restart sshd

然后发现报错了……

[root@master01 ~]# systemctl restart sshd
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
[root@master01 ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since 三 2022-06-08 08:39:25 CST; 2s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 15128 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=255)
 Main PID: 15128 (code=exited, status=255)

6月 08 08:39:25 master01.localdomain systemd[1]: Failed to start OpenSSH server daemon.
6月 08 08:39:25 master01.localdomain systemd[1]: Unit sshd.service entered failed state.
6月 08 08:39:25 master01.localdomain systemd[1]: sshd.service failed.

经排查是selinux作祟

[root@master01 ~]# getenforce
Enforcing

修改selinux配置文件,

[root@master01 ~]# vim /etc/selinux/config
配置SELINUX=disable

然后重启系统,再次执行之前配置步骤,重启sshd服务即可

下一次登录服务器就需要使用新端口了

如果要求必须启用selinux,可以执行命令添加相应端口到SELinux

semanage port -a -t ssh_port_t -p tcp <port>

检查是否添加了相应端口

semanage port -l | grep ssh

自动拉黑爆破IP脚本

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