Centos下防止ssh暴力破解

首先修改ssh的连接端口,增加破解难度

vi /etc/ssh/sshd_config

找到Port 22这一行,发现已经被注释了,将注释解开,并添加一行Port 2333,保存退出,重启ssh

systemctl restart sshd.service

然后尝试用2333端口进行连接,如果连接不上,可以添加防火墙规则:

iptables -A INPUT -p tcp --dport 2333 -j ACCEPT
service iptables save

连接成功之后,再打开sshd_config

vi /etc/ssh/sshd_config

找到Port 22,删除该行,重启ssh

systemctl restart sshd.service

至此,ssh连接端口已改为2333。

方法一

收集 /var/log/secure 里面的信息,若是某个IP 链接次数超过一定次数 ,则把此ip记录到/etc/hosts.deny里面。
先把始终允许的IP填入 /etc/hosts.allow这很重要!比如:
sshd:19.16.18.1:allow
sshd:19.16.18.2:allow

vi /usr/local/bin/secure_ssh.sh

创建脚本

#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
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 1 ]; then
    grep $IP /etc/hosts.deny > /dev/null
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
    fi
  fi
done

通过crontab来执行,每个整点1分执行一次。

crontab -e
1 * * * *  sh /usr/local/bin/secure_ssh.sh

方法二

DenyHosts官方网站为:http://denyhosts.sourceforge.net

  1. 安装
tar -zxvf DenyHosts-2.6.tar.gz 
cd DenyHosts-2.6 
python setup.py install

默认是安装到/usr/share/denyhosts目录的。

  1. 配置
cd /usr/share/denyhosts/ 
cp denyhosts.cfg-dist denyhosts.cfg 
vi denyhosts.cfg 
PURGE_DENY = 50m #过多久后清除已阻止IP 
HOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.deny 
BLOCK_SERVICE = sshd #阻止服务名 
DENY_THRESHOLD_INVALID = 1 #允许无效用户登录失败的次数 
DENY_THRESHOLD_VALID = 10 #允许普通用户登录失败的次数 
DENY_THRESHOLD_ROOT = 5 #允许root登录失败的次数 
WORK_DIR = /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中 
DENY_THRESHOLD_RESTRICTED = 1 #设定 deny host 写入到该资料夹 
LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。 
HOSTNAME_LOOKUP=NO #是否做域名反解 
ADMIN_EMAIL = #设置管理员邮件地址 
DAEMON_LOG = /var/log/denyhosts #自己的日志文件 
DAEMON_PURGE = 10m #该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间。
  1. 设置启动脚本
cp daemon-control-dist daemon-control 
chown root daemon-control 
chmod 700 daemon-control
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts 
chkconfig --add denyhosts 
chkconfig denyhosts on
service denyhosts start 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 加密算法 对称加密算法 加密和解密使用同一个密钥 DES、3DES、AES、Blowfish、Twofish、ID...
    毛利卷卷发阅读 1,630评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,952评论 19 139
  • http://blog.csdn.net/pipisorry/article/details/52269785 什...
    950545c4cd64阅读 83,430评论 0 13
  • 一、用户帐号和环境……………………………………………………………. 2 二、系统访问认证和授权…………………………...
    大福技术阅读 6,011评论 0 5
  • 11.11 早上学习计算导论图灵机的工作原理(尤其是关于字符的状态描述,即为什么采用二进制来表示数据,而不是采用十...
    爱跑步的coder阅读 169评论 0 1