sshd服务防止暴力破解

1、密码足够复杂:

密码的长度要大于8位最好大于14位。密码的复杂度是密码要尽可能有数字、大小写字母和特殊符号混合组成。

2、修改默认端口号

3、不使用root用户名登录

是否可以禁止root身份登录?不行,因为有些程序需要使用root身份登录并运行。

另外判断一个用户是不是超级管理员,看的是用户的ID是否为0。

[root@kaixincainiao~]# useradd test

改:test:x:500:500::/home/mk:/bin/bash

为:test:x:0:0::/home/mk:/bin/bash

[root@~]# vim /etc/passwd

改:root:x:0:0:root:/root:/bin/bash

为:root:x:0:0:root:/sbin/nologin

另外,改下面内容后,mk用户也是登录不上的。只判断UID是否为0,不查看用户名的:

[root@kaixincainiao Packages]# vim/etc/ssh/sshd_config

改:

#PermitRootLogin yes

为:

PermitRootLogin no

[root@kaixincainiao ~]# service sshd restart

测试:

[root@kaixincainiao Packages]# sshmk@192.168.1.63

test@192.168.1.63's password:

Permission denied,please try again.

一般情况这个就可以解决了暴力破解的问题了。

情况2:暴力破解问题比较严重。 需要把暴力破解的用的IP地址直接禁掉

[root@kaixincainiao log]#lastb

mkssh:nottykaixincainiao.cnTue Mar3 20:43 - 20:43(00:00)

roottty1Tue Dec 18 09:45 -09:45(00:00)

[root@kaixincainiao log]#ll -h /var/log/btmp

-rw-------. 1 rootutmp 76M Mar3 20:43 /var/log/btmp

案列:

最近公网网站一直被别人暴力破解sshd服务密码。虽然没有成功,但会导致系统负载很高,原因是在暴力破解的时候,系统会不断地认证用户,从而增加了系统资源额外开销,导致访问公司网站速度很慢。

fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送e-mail通知系统管理员,很好、很实用、很强大!

简单来说其功能就是防止暴力破解。工作的原理是通过分析一定时间内的相关服务日志,将满足动作的相关IP利用iptables加入到dorp列表一定时间。

下载软件包:

官方地址:

http://www.fail2ban.org/wiki/index.php/Downloads

安装:

解压查看readme文件

[root@kaixincainiao ~]# tar-zxvf fail2ban-0.8.14.tar.gz

[root@kaixincainiao fail2ban-0.8.14]# vimREADME.md#查看以下内容

需要安装python开发环境,并且版本要大于2.4

查看当前系统中python的版本:

[root@kaixincainiaofail2ban-0.8.14]# python -V

Python 2.6.6

安装:

[root@kaixincainiao ~]# cdfail2ban-0.8.14

[root@kaixincainiaofail2ban-0.8.14]#python setup.py install

生成服务启动脚本:

[root@kaixincainiaofail2ban-0.8.14]# pwd

/root/fail2ban-0.8.14

[root@kaixincainiaofail2ban-0.8.14]# cp files/redhat-initd /etc/init.d/fail2ban

[root@kaixincainiaofail2ban-0.8.14]#chkconfig --add fail2ban#开机自动启动

相关主要文件说明:

/etc/fail2ban/action.d#动作文件夹,内含默认文件。iptables以及mail等动作配置

/etc/fail2ban/fail2ban.conf

#定义了fai2ban日志级别、日志位置及sock文件位置

/etc/fail2ban/filter.d

#条件文件夹,内含默认文件。过滤日志关键内容设置

/etc/fail2ban/jail.conf

#主要配置文件,模块化。主要设置启用ban动作的服务及动作阀值

# jail[dʒeɪl]监狱

1、应用实例

设置条件:ssh远程登录5分钟内3次密码验证失败,禁止用户IP访问主机1小时,1小时该限制自动解除,此IP可以重新登录。

[root@kaixincainiaofail2ban]# ls action.d/iptables.conf

action.d/iptables.conf

[root@kaixincainiaofail2ban]# ls filter.d/sshd.conf

filter.d/sshd.conf

[root@kaixincainiaofail2ban]# ls jail.conf

jail.conf

vim jail.conf

[DEFAULT]

#全局设置

ignoreip = 127.0.0.1/8

#忽略的IP列表,不受设置限制

bantime= 600#屏蔽时间,单位:秒

findtime= 500#这个时间段内超过规定次数会被ban掉

maxretry =

3

#最大尝试次数

backend =auto

[ssh-iptables]

#单个服务检查设置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置。

enabled= false#是否激活此项(true/false)修改成true

filter= sshd#过滤规则filter的名字,对应filter.d目录下的sshd.conf

action= iptables[name=SSH, port=ssh, protocol=tcp]#动作的相关参数,对应action.d/iptables.conf文件

sendmail-whois[name=SSH,dest=you@example.com, sender=fail2ban@example.com,sendername="Fail2Ban"]#触发报警的收件人

logpath= /var/log/secure #检测的系统的登陆日志文件。这里要写sshd服务日志文件。 默认为logpath= /var/log/sshd.log

#5分钟内3次密码验证失败,禁止用户IP访问主机1小时。配置如下

bantime= 3600#禁止用户IP访问主机1小时

findtime= 300#在5分钟内内出现规定次数就开始工作

#在5分钟内内出现规定次数就开始工作

maxretry = 3#3次密码验证失败

启动服务:

[root@kaixincainiaofail2ban-0.8.14]#service fail2ban start

Startingfail2ban:[确定]

测试:

[root@kaixincainiaofail2ban-0.8.14]# > /var/log/secure

[root@kaixincainiaofail2ban-0.8.14]# /etc/init.d/fail2ban restart

Stopping fail2ban:[OK]

Startingfail2ban:[OK]

[root@kaixincainiaofail2ban-0.8.14]# iptables -L -n

测试:故意输入错误密码3次,再进行登录时,会拒绝登录

[root@kaixincainiao ~]#ssh 192.168.1.63

root@192.168.1.63'spassword:

Permission denied,please try again.

root@192.168.1.63'spassword:

Permission denied,please try again.

root@192.168.1.63'spassword:

Permission denied(publickey,password).

[root@kaixincainiao ~]#ssh 192.168.1.63

ssh: connect to host192.168.1.63 port 22: Connection refused

[root@kaixincainiao ~]#

[root@kaixincainiao fail2ban]# fail2ban-client status#配置好之后我们检测下fail2ban是否工作。

Status

|- Number of jail:1

`- Jail list:ssh-iptables

#具体看某一项的状态也可以看,如果显示被ban的ip和数目就表示成功了,如果都是0,说明没有成功。[root@kaixincainiao fail2ban]# fail2ban-client status ssh-iptables

Status for the jail:ssh-iptables

|- filter

||- File list:/var/log/secure

||- Currently failed:0

|`- Total failed:3

`- action

|- Currently banned:1

|`-IP list:192.168.1.64

`- Total banned:1

查看fail2ban的日志能够看到相关的信息

[root@kaixincainiaofail2ban]# tail /var/log/fail2ban.log

2015-03-0319:43:59,233 fail2ban.actions[12132]: WARNING [ssh-iptables] Ban 192.168.1.64

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容