Centos下防止ssh暴力破解密码2种方法

方法一,

收集 /var/log/secure 里面的信息,若是某个IP 链接次数超过一定次数 ,则把此ip记录到/etc/hosts.deny里面。

通过crontab来执行,每天的1点1分执行一次。

1 * * * sh /root/bin/Denyhosts.sh

 
#!/bin/bash

#Denyhosts SHELL SCRIPT

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

DEFINE="10"

for i in `cat /root/bin/Denyhosts.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

方法二,

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

1. 安装

# tar -zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
# python setup.py install
默认是安装到/usr/share/denyhosts目录的。

2. 配置

# 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 用户的时间。

3. 设置启动脚本

# cp daemon-control-dist daemon-control
# chown root daemon-control
# chmod 700 daemon-control

完了之后执行daemon-contron start就可以了。

# ./daemon-control start

如果要使DenyHosts每次重起后自动启动还需做如下设置:

# ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
# chkconfig --add denyhosts
# chkconfig denyhosts on

然后就可以启动了:

# service denyhosts start
可以看看/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。

提高ssh安全性的方法

1. 修改sshd服务器的配置文件/etc/ssh/sshd_config,将部分参数参照如下修改,增强安全性。

系统缺省使用22号端口,将监听端口更改为其他数值(最好是1024以上的高端口,以免和其他常规服务端口冲突),这样可以增加入侵者探测系统是否运行了 sshd守护进程的难度。
Port 5555
对于在服务器上安装了多个网卡或配置多个IP地址的情况,设定sshd只在其中一个指定的接口地址监听,这样可以减少sshd的入口,降低入侵的可能性。
ListenAddress 192.168.0.1
如果允许用户使用root用户登录,那么黑客们可以针对root用户尝试暴力破解密码,给系统安全带来风险。
PermitRootLogin no
允许使用空密码系统就像不设防的堡垒,任何安全措施都是一句空话。
PermitEmptyPasswords no
只允许指定的某些用户通过ssh访问服务器,将ssh使用权限限定在最小的范围内。
AllowUsers sshuser1 sshuser2
同上面的AllowUsers类似,限定指定的用户组通过ssh访问服务器,二者对于限定访问服务器有相同的效果。
AllowGroups sshgroup
禁止使用版本1协议,因为其存在设计缺陷,很容易使密码被黑掉。
Protocol 2
关闭X11Forwarding,防止会话被劫持。
X11Forwarding no
sshd服务运行时每一个连接都要使用一大块可观的内存,这也是ssh存在拒绝服务攻击的原因。一台服务器除非存在许多管理员同时管理服务器,否则上面这 个连接数设置是够用了。
MaxStartups 5
注意:以上参数设置仅仅是一个示例,用户具体使用时应根据各自的环境做相应的更改。

2. 修改sshd服务器的配置文件/etc/ssh/sshd_config的读写权限,对所有非root用户设置只读权限,防止非授权用户修改sshd 服务的安全设置。

chmod 644 /etc/ssh/sshd_config

3. 设置TCP Wrappers。服务器默认接受所有的请求连接,这是非常危险的。使用TCP Wrappers可以阻止或允许应用服务仅对某些主机开放,给系统在增加一道安全屏障。这部分设置共涉计到两个文件:hosts.allow和 hosts.deny。
将那些明确允许的请求添加到/etc/hosts.allow中。如系统仅允许IP地址为192.168.0.15和10.0.0.11的主机使用 sshd服务,则添加如下内容:

sshd:192.168.0.15 10.0.0.11

将需要禁止使用的信息添加到/etc/hosts.deny中。如对除了在hosts.allow列表中明确允许使用sshd的用户外,所有其他用户都禁止使用sshd服务,则添加如下内容到hosts.deny文件中:
sshd:All
注意:系统对上述两个文件的判断顺序是先检查hosts.allow文件再查看hosts.deny文件,因此一个用户在hosts.allow允许使用网络资源,而同时在hosts.deny中禁止使用该网络资源,在这种情况下系统优先选择使用hosts.allow配置,允许用户使用该网络资源。

4. 尽量关闭一些系统不需要的启动服务。系统默认情况下启动了许多与网络相关的服务,因此相对应的开放了许多端口进行LISTENING(监听)。我们知道,开放的端口越多,系统从外部被入侵的可能也就越大,所以我们要尽量关闭一些不需要的启动服务,从而尽可能的关闭端口,提供系统的安全性。

时间: 2024-10-22 06:11:24

Centos下防止ssh暴力破解密码2种方法的相关文章

Centos下防止ssh暴力破解shell脚本

脚本 #! /bin/bash   cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt    #筛选出状态为Failed的ip和次数   cat /var/log/secure|awk '/Invalid user/{print $NF}'|sort|uniq -c|awk '{print $2"="$1;

如何利用fail2ban阻止ssh暴力破解密码

连接上互联网的linux主机不免有人探测你的ssh的密码 最近发现我的机器被来自各个国家的黑客不停测在暴力猜测密码,经不起这样的折腾! 后来发现了一款软件可以阻止这样的攻击,很奏效的! 下面是我的配置: 下载源码包安装 地址:http://www.fail2ban.org/wiki/index.php/Main_Page 上传到服务器上 安装 #tar xvfj fail2ban-0.8.4.tar.bz2 #cd fail2ban-0.8.4 #python setup.py install

CentOS下提高YUM镜像地址下载速度几种方法

通过以下两种方法可以完成镜像地址的修改, 1.安装yum-fastestmirror可以自动选择最快的镜像下载 2.更改下载镜像地址,选择国内的镜像地址下载 需要注意的是,以下如果安装了fastestmirror之后,由于插件使用的是动态选择的镜像地址,修改后的镜像地址可能会无效. 方法1  代码如下 复制代码 yum install yum-plugin-fastestmirror 方法2  代码如下 复制代码 cd /etc/yum.repos.d mv CentOS-Base.repo 

Centos下忘记mysql的root密码的解决方法总结

一:(停掉正在运行的mysql)  代码如下 复制代码 [root@NetDakVPS ~]# service mysqld stop 二:使用 "--skip-grant-tables"参数重新启动mysql  代码如下 复制代码 [root@NetDakVPS ~]# mysqld_safe --skip-grant-tables & [1] 23810 Starting mysqld daemon with databases from /var/lib/mysql 三:

解决ssh暴力破解服务器密码

自从开通了阿里云态势感知后,经常收到提醒,你的服务器被攻击,我从后台查看大多数攻击都是ssh暴力破解密码,于是我就考虑如何解决这一问题,一开始想到的是,修改端口,接着就是封ip地址.那下边就看看我是如何操作的, 一.修改ssh默认端口(我是修改成2222) 1.首先如果有防火墙脚本需要将2222端口添加进去,允许通过2222端口访问服务器. 2编辑ssh/sshd_config vim /etc/ssh/sshd_config 在#Port 22下边添加 Port 2222 退出保存 3.重启s

debian下安装denyhosts防止ssh暴力破解配置

denyhosts是一个非常好用的防SSH暴力破解的软件,感觉比fail2ban简单有效. debian下安装denyhosts非常简单.直接apt安装即可.(debian强大的地方就是什么鸟东西他都可以apt-get安装) 屏蔽的IP会记录在/etc/hosts.deny这个文件里面,可随时查看. 1.清除SSH登录记录,防止装完屏蔽自己. echo "" > /var/log/auth.log 2.安装denyhosts apt-get install denyhosts 2

黑客开始利用云计算暴力破解密码

本文讲的是黑客开始利用云计算暴力破解密码[IT168 云计算频道]使用云计算服务来替代在公司里设立维护大量服务器,显然对节省企业的成本有利.不过现在看来从云计算服务中受惠最大的恐怕是黑客等群体,黑客们开始利用亚马逊EC2等云计算服务来暴力破解并窃取用户信用卡密码.不过据安全专家David Campbell的计算,即便用户不使用安全专家建议的大小写字母混合式的密码组合,使用亚马逊提供的云计算服务进行密码暴力破解的黑客,出于成本过高的原因可能也将无法使用这种服务对具备12位长度的密码进行破解. 目前

CB下实现对端口读写的两种方法

在C++Builder中,不能够使用Turbo C中的outputb和inputb端口读写函数.但我们可以有另外两种办法实现这个功能.本文介绍怎样在C++Builder下实现端口读写,并给出两种方法的源代码. 在C++Builder下对端口的读写共有两种方法,一种为内嵌汇编语言,另一种为使用__emit__函数. 1 通过内嵌汇编语言实现端口的读写 在C++Builder中,汇编语句必须被包含在以关键字asm为起始的一对大括号中: asm {汇编语句1--} 利用内嵌汇编语言编制端口输出函数如下

如何使用denyhost来防止ssh暴力破解

关于ssh的登录,作为一个合格的linux运维人员大家都是熟悉不能在熟悉的了,我们都知道,计算机本身暴露在互联网上就是危险的,当然我们不要因为我们的业务少,用户量不多而有侥幸心理,掉以轻心:互联网的大多数攻击都是没有目的性的,黑客大神们通过大范围的IP端口扫描探测到可能存在的漏洞bug主机,然后通过自动扫描工具来进行破解,那么我们来怎么防止黑客的大神暴力破解,要么自己手动的写防止暴力破解的脚本+任务计划来实施,要么通过开源软件来完成,Denyhost正是这样的一款工具,Denyhosts是一个L