ssh恶意攻击防范

来源:互联网 发布:java微信weui开发实例 编辑:程序博客网 时间:2024/05/10 20:23

  • ssh恶意攻击防范
    • 修改ssh登录用户以及端口
    • 封锁ip
    • SSH禁止10分钟内登陆失败次数多的IP地址

ssh恶意攻击防范

今天遇到了一个问题,布好了cacti之后使用了syslog插件,然后发现自己的搜集的系统日志中包含了很多的
Failed password for root from 183.3.202.190 port 47805 ssh2,
这时因为自己的主机被别人远程使用ssh暴力破解密码,以前没有注意到过这种事情,但是发生了还是去了解了下防范的方法

1.修改ssh登录用户以及端口

这时最简单的方式,修改过程如下:
1.首先,禁用root 远程登录,改ssh端口
2.创建一个普通用户用作远程登录,然后通过su -转为root 用户
3.改到偏远的端口(从20 扫到 36301)
4重启ssh服务

$ vi /etc/ssh/sshd_configPermitRootLogin no #禁用root 登录Port 36301 #$ /etc/init.d/sshd restart

2.封锁ip

封锁所有ip

$ vi /etc/hosts.denysshd:all:deny #拒绝所有的ip访问主机ssh服务

设置允许ip

$ vi /etc/hosts.allowsshd:210.13.218.*:allowsshd:222.77.15.*:allow#以上写法表示允许210和222两个ip段连接sshd服务

重启xinetd服务

$ service xinetd restart

3. SSH禁止10分钟内登陆失败次数多的IP地址

首先感谢下作者的分享,原文地址.
创建sh脚本

$ vim /usr/local/cron/ssh_scan.sh

添加如下内容

#!/bin/bash# Script: /usr/local/cron/ssh_scan.sh# Author cnscn <http://www.redlinux.org># Date: 2012-05-11export LC_ALL=UTC#扫描10分钟内的登陆失败的IPSCANNER=$( tm=$(date -d '10 minutes ago' +"%h %d %H") && \             awk -v tm="$tm" ' $0 ~ tm &&  /Failed password/ && /ssh2/ { print $(NF-3) ; } ' /var/log/secure \           | sort \           | uniq -c \           | awk '{print $1"="$2;}' \        )for i in $SCANNERdo    #截取IP与数量     IP=`echo $i|awk -F= '{print $2}'`    NUM=`echo $i|awk -F= '{print $1}'`    #数量大于8次,则使用iptables禁止IP    if [ $NUM -gt 8 ]    then        iptables -vnL | grep DROP | grep $IP &>/dev/null        [ $? -eq 0 ] || /sbin/iptables -I INPUT -s $IP -j DROP        echo "`date` $IP($NUM)" >> /var/log/scanner.log    fidone#End of Script

设置文件可执行

chmod 777 /usr/local/cron/ssh_scan.sh

设置定时任务文件

$ vim /etc/cron.d/ssh-scan

设置定时任务内容

*/10 * * * * root /usr/local/crontab/ssh_scan.sh

重启定时任务

$ service crond restart
0 0
原创粉丝点击