实验要求:设置公司服务器远程访问条件,远程登录在五分钟之内如果出现三次密码验证失败,禁止用户ip访问主机,一小时后恢复访问。
实验环境:两台RHEL6.5虚拟机,他们的IP地址分别为192.168.1.62和192.168.1.63。
实验使用的工具是fail2ban。
实验过程:
首先在192.168.1.62上打开防火墙
[root@bogon jt]# service iptables start
然后安装fail2ban,这里有两种安装方法
方法一:通过yum进行安装
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
然后 yuminstall fail2ban
可以看到fail2ban.noarch0.9.3安装成功。
方法二:源码安装
首先去官网下载最新版fail2ban:http://www.fail2ban.org
下载完成后,从windows传到Linux里
把压缩包从桌面复制到/usr/local/src/
[root@bogon Desktop]# cp fail2ban-0.9.3.tar.gz /usr/local/src/
[root@bogon Desktop]# ls
fail2ban-0.9.3.tar.gz
[root@bogon Desktop]# cd /usr/local/src/
[root@bogon src]# ls
fail2ban-0.9.3.tar.gz
解压
[root@bogon src]# tar zxvf fail2ban-0.9.3.tar.gz
进入fail2ban-0.9.3
[root@bogon src]# cd fail2ban-0.9.3
看一下安装要求在README.md里
查看一下是否符合要求然后安装
[root@bogon fail2ban-0.9.3]# python
Python 2.6.6 (r266:84292, Sep 4 2013, 07:46:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@bogon fail2ban-0.9.3]# python setup.py install
将它的启动脚本复制到/etc/init.d/fail2ban
[root@bogon fail2ban-0.9.3]# cp files/redhat-initd /etc/init.d/fail2ban
设置开机启动
[root@bogon fail2ban-0.9.3]# chkconfig --add fail2ban
[root@bogon fail2ban-0.9.3]# chkconfig --list fail2ban
fail2ban 0:off 1:off 2:off 3:on 4:on 5:on 6:off
具体配置:
[root@bogon fail2ban-0.9.3]# ls /etc/fail2ban/
action.d fail2ban.d jail.conf paths-common.conf paths-fedora.conf paths-osx.conf
fail2ban.conf filter.d jail.d paths-debian.conf paths-freebsd.conf
[root@bogon fail2ban-0.9.3]# vim /etc/fail2ban/jail.conf
[DEFAULT]
bantime = 3600 禁止此用户IP访问主机1小时
findtime = 300 在5分钟内内出现规定次数就实施动作,默认时间单位:秒
maxretry = 3 密码验证失败次数最大值为3
filter = sshd
protocol = tcp 协议为TCP
action = iptables[name=SSH, port=ssh, protocol=tcp] 所采用的工作,按照名字可在action.d目录下找到
[sshd]
port = ssh
logpath = /var/log/secure 检测的系统的登陆日志文件,这里要写sshd服务日志文件的路径
最后保存设置
启动fail2ban服务
/etc/init.d/fail2ban start
我这里虽然启动成功了但是出现了好多warning;因为fail2ban里面还有还多其他功能没有用,也没有去定义和配置,所以警告了,不过没事,启动了
[root@bogon jt]# service fail2ban status
fail2ban-server (pid 5491) isrunning...
验证:
从192.168.1.63ssh到192.168.1.62
[root@localhost jt]# ssh root@192.168.1.62
The authenticity of host '192.168.1.62 (192.168.1.62)' can't be established.
RSA key fingerprint is 39:51:1b:f7:be:07:dd:e8:61:32:6f:bd:83:88:14:72.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.62' (RSA) to the list of known hosts.
root@192.168.1.62's password:
Permission denied, please try again.
root@192.168.1.62's password:
Permission denied, please try again.
root@192.168.1.62's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
三次失败后被拒绝。