fail2ban软件 +ssh密钥登录
fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH、SMTP、FTP密码,只要达到你预设的次数,fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员,是一款很实用、很强大的软件!
http://www.fail2ban.org/wiki/index.php/Main_Page
使用xftp工具上传到linux
tar xzf fail2ban-0.8.14.tar.gz
[root@yuguangyuan ~]# cd fail2ban-0.8.14
[root@yuguangyuan fail2ban-0.8.14]# python setup.py install
生成启动脚本。
[root@yuguangyuan fail2ban-0.8.14]# grep chkconfig ./* -r --color
./files/redhat-initd:# chkconfig: - 92 08
[root@yuguangyuan fail2ban-0.8.14]# cp files/redhat-initd /etc/init.d/fail2ban
[root@yuguangyuan fail2ban-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] 监狱
/etc/rc.d/init.d/fail2ban #启动脚本文件
设置条件:ssh远程登录5分钟内3次密码验证失败,禁止用户IP访问主机1小时,1小时该限制自动解除,用户可重新登录。
[root@yuguangyuan fail2ban]# vim jail.conf

保存后,重启服务
[root@yuguangyuan fail2ban]# /etc/init.d/fail2ban restart

在防火墙处,多一个chain。
使用131登陆130,故意登陆错误。看效果
[root@yuguangyuan ~]# ssh yy@192.168.1.130
ssh: connect to host 192.168.1.130 port 22: Connection refused
[root@yuguangyuan ~]# ssh yy@192.168.1.130 -p 222
yy@192.168.1.130's password:
Permission denied, please try again.
yy@192.168.1.130's password:
Permission denied, please try again.
yy@192.168.1.130's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[root@yuguangyuan ~]# ssh yy@192.168.1.130 -p 222
ssh: connect to host 192.168.1.130 port 222: Connection refused
在130看一下日志

看一下状态
[root@yuguangyuan fail2ban]# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: ssh-iptables
具体某一个的状态
[root@yuguangyuan 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.131
`- Total banned: 1
系统日志:
[root@ygy130 ~]# tail /var/log/fail2ban.log
2016-09-21 07:40:36,852 fail2ban.server [1300]: INFO Exiting Fail2ban
2016-09-21 07:41:04,330 fail2ban.server [1300]: INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.14
2016-09-21 07:41:04,332 fail2ban.jail [1300]: INFO Creating new jail 'ssh-iptables'
2016-09-21 07:41:04,332 fail2ban.jail [1300]: INFO Jail 'ssh-iptables' uses poller
2016-09-21 07:41:04,366 fail2ban.jail [1300]: INFO Initiated 'polling' backend
2016-09-21 07:41:04,387 fail2ban.filter [1300]: INFO Added logfile = /var/log/secure
2016-09-21 07:41:04,388 fail2ban.filter [1300]: INFO Set maxRetry = 3
2016-09-21 07:41:04,390 fail2ban.filter [1300]: INFO Set findtime = 300
2016-09-21 07:41:04,390 fail2ban.actions[1300]: INFO Set banTime = 3600
2016-09-21 07:41:04,811 fail2ban.jail [1300]: INFO Jail 'ssh-iptables' started
使用密钥认证方式:不用用户名和密码登陆。
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub "-p 222 ygy@192.168.1.131"
注意,这里不能使用超级用户登录,连超级用户的替代用户也不行,yy 是root的别名用户,不能使用yy登陆。
[root@ygy130 ~]# ssh ygy@192.168.1.131 -p 222
Last login: Fri Sep 23 06:53:16 2016 from 192.168.1.130
[ygy@yuguangyuan ~]$
遇到的问题:
我本想解除锁定,参考下面这个链接。
http://www.centoscn.com/image-text/config/2015/0516/5447.html
重启service fail2ban restart
发现了下面的错误。
[root@yuguangyuan ~]# ssh ygy@192.168.1.130 -p 222
ssh: connect to host 192.168.1.130 port 222: No route to host
解决办法:要修改防火墙:
[root@ygy130 ~]# iptables -I INPUT -p TCP -s 192.168.1.131 -j ACCEPT
[root@ygy130 ~]# /etc/init.d/iptables save
重启service fail2ban restart
解除锁定
[root@ygy130 ~]# > /var/log/secure
[root@ygy130 ~]# service fail2ban restart
这个可以生效,但是想解除某一个ip的限定呢?
解除某一个ip的锁定,vim /var/log/secure
删除掉对应IP的信息。然后重启fail2ban
解除锁定 :这里还有问题,fail2ban作用失效。是不是fail2ban软件本身还有问题?还是防火墙设置的原因?
fail2ban软件 +ssh密钥登录的更多相关文章
- SSH密钥登录让Linux VPS/服务器更安全
查看 /var/log 登录日志文件,突然发现服务器被人扫描端口在进行暴力攻击 平常登录服务器,都是使用用户密码登录,看来这样的做法并不安全,不得不关闭密码登录了. 总结了一个putty使用密钥自动登 ...
- centos6.7版本下配置ssh密钥登录
需要提前说明的是我使用的系统是centos6.7的版本. 1.我使用的是Putty登录 #ssh-keygen (生成公钥和私钥的命令) 回车之后会提示密钥要存放的目录,默认的目录是当前目录下的.ss ...
- CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数
密钥登录步骤(免密码登录)ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方 ...
- Debian9.5下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数
密钥登录步骤(免密码登录)ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方 ...
- SSH 密钥登录
一.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会 ...
- ssh密钥登录及远程执行命令
以192.168.1.104作为客户机 以192.168.1.103作为服务器 使用密钥登录 创建密钥对 在SSH客户机创建用户秘钥对 ssh-keygen -t rsa 之后全回车即可 将会在~/. ...
- ssh密钥登录
一.生成密钥对(两种方式)并配置 方式1:使用ssh-keygen(1)生成并配置 (1)生成密钥对 [root@iZwz9catu2mrq92b07d1d0Z ~]# ssh-keygen -t r ...
- SSH 密钥登录 SecureCRT
https://www.qcloud.com/doc/product/213/2036 1.3. 使用SecureCRT登录 1.3.1. 复制公钥 登录腾讯云控制台,点击[云服务器]-[SSH密钥] ...
- Centos7.5使用SSH密钥登录
12.1.查看操作系统版本 # cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 12.2.在服务器端创建密钥 # ssh-ke ...
随机推荐
- YII2.0 用GII创建视图文件后访问404
使用GII的CRUD Generator创建searchModelClass 和控制器类文件,视图文件后,访问控制器地址后出现404的情况. 创建过程如图所示 后来发现是控制器类 Controller ...
- Flask初学者:视图函数和类视图
当一个url请求进入后台时,一般有两种方式来进行处理:视图函数和类视图.视图函数直接使用一个函数来进行处理并返回数据给浏览器,类视图则是使用类来进行处理并返回的,所以当需要进行的处理比较简单,则可以考 ...
- Python学习手册之Python介绍、基本语法(二)
在上一篇文章中,我们介绍了Python的一些基本语法,现在我们继续介绍剩下的Python基本语法.查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/987193 ...
- THINKPHP网站漏洞怎么修复解决
THINKPHP漏洞修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了升级,以及补丁更新,这次更新主要是进行了一些漏洞修复,最严重的就是之前存在的SQL注入漏洞,以及远程代码执行查 ...
- Windows Server 2012下手动配置IIS的文件夹访问权限
当新建一个website的时候,一般情况下IIS对相应的物理文件夹的访问权限是不够的. 针对匿名认证(anonymous authentication)需要: 打开文件夹properties-> ...
- react项目中引入百度地图打包报错问题
一.我正常引入百度地图,调试时候是好使的,但是打包时候就报错 引入方法如下: 报错如图 正常调试是好使的,但是打包报这个错,解析不了这个BMap,那么怎么办呢? 然后我就转用了window办法,虽然因 ...
- windows 系统禁止使用 U 盘的方法
windows 系统禁止使用 U 盘的方法 最简单的办法: 注册表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentCntrolSet\Services\USBSTOR] 将名为 ...
- python脚本退出后 不应该为负值
Python sys.exit的退出代码 sys.exit(n)介绍 功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它 ...
- 30分钟 带你浅入requirejs源码
因为最近项目想现实一个单页功能,用的是react ,然后看了一下react route,挖槽 gzip后16k? 然后我简单写了一个纯单页(不支持多页的单页,所有入口都经过rewrite跑到index ...
- NoSQL简单学习(一)
只是简单的知道有这个东西,却从来没有去接触,今天看了几篇文章,记录一下,开始慢慢接触这一领域 简介: 8种Nosql数据库系统对比 http://blog.jobbole.com/1344/ 一网打尽 ...