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 ...
随机推荐
- php 无限参数方法
在很多项目开发中经常会用到共用方法但是参数不固定,每个参数都创建一遍阅读性不好,后期维护也麻烦,PHP有获取传入参数的方法,记录参考一下.这里有两个方法 <?php 方法一: #不指定参数个数方 ...
- Vue 服务器端渲染(一)
什么是服务器端渲染(SSR)? Vue.js 是构建客户端应用程序的框架.默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM.然而,也可以将同一个组件渲染为服务器端的 HT ...
- R语言学习笔记(十五):获取文件和目录信息
file.info() 参数是表示文件名称的字符串向量,函数会给出每个文件的大小.创建时间.是否为目录等信息. > file.info("z.txt") size isdir ...
- 标记编码报错ValueError: bad input shape ()
<Python机器学习经典实例>2.9小节中,想自己动手实践汽车特征评估质量,所以需要对数据进行预处理,其中代码有把字符串标记编码为对应的数字,如下代码 input_data = ['vh ...
- java第二章 变量和运算符
Java 基础应用编程—— 变量和运算符 1.Java程序结构 数据类型:确定要存储在内存中的数据的类型. 变量:是存储数据的基本单元 2.变量的概念 变 ...
- 签名的html
<b><a href="http://www.feiyuanxing.com" style="color:red">未来星开发团队--狒 ...
- oracle 游标例子
CREATE OR REPLACE PROCEDURE PRC_WAP_ACTIVEUSERS(RETCODE OUT VARCHAR2) /***************************** ...
- 第九篇 Python数据类型之集合
集合 set 写在最前,必须要会的:1.长度len2.成员运算in和not in3.|合集4.&交集5.-差集6.^对称差集7.==8.父集:>,>= 9.子集:<,< ...
- ASP NET Core ---REST & HTTP GET
参照 草根专栏- ASP.NET Core + Ng6 实战:https://v.qq.com/x/page/h0764n405ll.html 一.REST (Representational Sta ...
- python 基础篇 13 迭代器与生成器
13. 前⽅⾼能-迭代器和⽣成器本节主要内容:1. 迭代器2. ⽣成器 ⼀. 迭代器我们之前⼀直在⽤可迭代对象进⾏迭代操作. 那么到底什么是可迭代对象. 本⼩节主要讨论可迭代对象. ⾸先我们先回顾⼀下 ...