实战 fail2ban 安装

1.安装fail2ban原因

本人的网站自从搭建好一段时间后被问候了无数次,阿里云安全团队真敬业,夜里都给我发异常通知短信,感谢!!!(给他做个广告

[[email protected] logs]# awk ‘{print $1}‘ access.log|sort|uniq -c|sort -rn|head -10

18559 121.42.0.38

16353 121.42.0.39

15351 222.186.34.249

15350 222.186.160.94

15341 222.186.21.35

13870 121.42.0.36

13172 121.42.0.17

12393 121.42.0.31

12302 121.42.0.37

11843 121.42.0.30

所以决定安装fail2ban 来限制访问。

1.1 软件介绍

fail2ban是一款实用软件,可以监视你的日志,然后匹配日志的信息(正则式匹配)执行相应的屏蔽动作。

1.2 安装环境

[[email protected] logs]# cat /etc/redhat-release

CentOS release 6.8 (Final)

[[email protected] logs]# uname -r

2.6.32-642.6.1.el6.x86_64

2.实战 fail2ban 搭建

#上传fail2ban-0.8.14.tar.gz到安装目录,解压安装

[[email protected] tools]# tar xf fail2ban-0.8.14.tar.gz

[[email protected] tools]# cd fail2ban-0.8.14

[[email protected] fail2ban-0.8.14]# ll

total 236

-rw-rw-r-- 1 root root 46255 Aug 20  2014 ChangeLog

drwxrwxr-x 2 root root  4096 Aug 20  2014 client

drwxrwxr-x 2 root root  4096 Aug 20  2014 common

drwxrwxr-x 4 root root  4096 Aug 20  2014 config

-rw-rw-r-- 1 root root 19296 Aug 20  2014 COPYING

-rw-rw-r-- 1 root root 13329 Aug 20  2014 DEVELOP

drwxrwxr-x 2 root root  4096 Aug 20  2014 doc

-rwxrwxr-x 1 root root 12699 Aug 20  2014 fail2ban-client

-rwxrwxr-x 1 root root 13570 Aug 20  2014 fail2ban-regex

-rwxrwxr-x 1 root root  4502 Aug 20  2014 fail2ban-server

-rwxrwxr-x 1 root root  8242 Aug 20  2014 fail2ban-testcases

-rwxrwxr-x 1 root root   397 Aug 20  2014 fail2ban-testcases-all

drwxrwxr-x 4 root root  4096 Aug 20  2014 files

-rw-rw-r-- 1 root root 18972 Aug 20  2014 FILTERS

-rwxrwxr-x 1 root root    69 Aug 20  2014 kill-server

drwxrwxr-x 2 root root  4096 Aug 20  2014 man

-rw-rw-r-- 1 root root  8268 Aug 20  2014 MANIFEST

-rw-rw-r-- 1 root root  3992 Aug 20  2014 README.md

-rw-rw-r-- 1 root root  4189 Aug 20  2014 README.Solaris

drwxrwxr-x 2 root root  4096 Aug 20  2014 server

-rw-rw-r-- 1 root root   291 Aug 20  2014 setup.cfg

-rwxrwxr-x 1 root root  3337 Aug 20  2014 setup.py

drwxrwxr-x 4 root root  4096 Aug 20  2014 testcases

-rw-rw-r-- 1 root root  1733 Aug 20  2014 THANKS

-rw-rw-r-- 1 root root  1827 Aug 20  2014 TODO

#安装fail2ban,注:没有安装python,需要先安装一下

[[email protected] fail2ban-0.8.14]#python setup.py install

#检查启动文件

[[email protected] fail2ban-0.8.14]# grep chkconfig ./* -R --color

./files/redhat-initd:# chkconfig: - 92 08

#把启动文件复制到 /etc/init.d下做开机自启动

[[email protected] fail2ban-0.8.14]# cp files/redhat-initd /etc/init.d/fail2ban

[[email protected] fail2ban-0.8.14]# chkconfig --add fail2ban

[[email protected] fail2ban-0.8.14]# chkconfig --list fail2ban

fail2ban        0:off   1:off   2:off   3:on    4:on    5:on    6:off

#修改配置文件,修改前备份配置文件

[[email protected] fail2ban-0.8.14]# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.ori

[[email protected] fail2ban-0.8.14]# ls /etc/fail2ban/

action.d  fail2ban.conf  fail2ban.d  filter.d  jail.conf  jail.conf.ori  jail.d

#定位到94行[ssh-iptables]修改参数

[[email protected] fail2ban-0.8.14]# vi /etc/fail2ban/jail.conf +94

#预防暴力破解

[ssh-iptables]

enabled  = true

filter   = sshd

action   = iptables[name=SSH, port=ssh, protocol=tcp]

           sendmail-whois[name=SSH, [email protected], [email protected], sendername="Fail2Ban"]

logpath  = /var/log/secure

maxretry = 3     #设定访问频率,单位"次"

bantime = 3600   #限制1小时内不能登录,单位"秒"

findtime = 300   #设定访问时间,十分钟(300s)内

#以上表示十分钟内,3次输错登录密码,关禁闭1小时。

[[email protected] fail2ban-0.8.14]# service fail2ban start

Starting fail2ban:                                         [  OK  ]

#查看fail2ban规则是否生效

[[email protected] fail2ban-0.8.14]# service fail2ban status

fail2ban-server (pid  6723) is running...

Status

|- Number of jail:      1

`- Jail list:           ssh-iptables

#限制用户频繁访问网站,禁止非法ip

[[email protected] fail2ban-0.8.14]# vi /etc/fail2ban/jail.conf

#按大写G定位到最后,添加如下代码

#nginx access control

[access-get-dos]

enables = true

port = http,https

filter = nginx-bansniffer

action = iptables[name=IT300,port=http,portocol=tcp]

sendmail-whois[name=IT300,[email protected],[email protected]] 

#访问日志路径

logpath = /application/nginx/logs/access.log 

#限制规则

findtime = 60   #设定访问时间,一分钟(60s)内

maxretry = 30   #设定访问频率,单位"次"

bantime = 3600  #限制1小时内不能登录,单位"秒"

#以上表示1分钟内,30次访问,关禁闭1小时

#创建规则文件

[[email protected] fail2ban-0.8.14]# vi /etc/fail2ban/filter.d/nginx-bansniffer.conf

[Definition]

failregex = <HOST> -.*- .*HTTP/1.* .* .*$

ignoreregex =

#重新启动fail2ban

[[email protected] fail2ban-0.8.14]# service fail2ban reload

#查看fail2ban生效的规则状态

[[email protected] fail2ban-0.8.14]# service fail2ban status

fail2ban-server (pid  7013) is running...

Status

|- Number of jail:      2

`- Jail list:           access-get-dos, ssh-iptables

#查看生效后访问情况,注:访问日志做了切割

[[email protected] logs]#awk ‘{print $1}‘ 20161101_access_www.log|sort|uniq -c|sort -rn|head -10

11 121.42.0.16

9 198.52.119.97

8 61.158.152.132

6 112.97.63.104

5 42.48.70.245

5 36.57.226.54

5 221.225.2.214

5 180.114.17.26

5 171.105.144.226

5 123.11.115.223

#uniq -c    表示合并相邻的重复记录,并统计重复数

#sort -n    表示按从小到大进行排序

#sort -r    表示逆序,即按照从大到小的顺序进行排序。

#head -10    表示取前10位

总结:自从fail2ban安装后每天不再接到阿里安全团队的问候短信了,设置成功。

时间: 2024-10-27 09:51:08

实战 fail2ban 安装的相关文章

一、cacti实战部署---安装

构建Cacti检测系统 需求描述: 在网关.网站服务器上安装net-snmp如软件包,配置SNMPD服务 在检测服务器上安装Cacti系统 通过Cacti的Web界面了解网站服务器的CPU.内存等使用情况. 1.正确配置网络参数.主机名.关闭iptables 安装yum环境(需要使用yum服务器,依赖包比较多,安装步骤请参阅yum安装文档) 安装net-snmp-utils软件包(被监测服务端) [[email protected] ~]# yum install net-snmp* -y   

redis3.0 集群实战1 -- 安装和配置

本文主要是在centos7上安装和配置redis集群实战 参考: http://hot66hot.iteye.com/blog/2050676 集群教程: http://redisdoc.com/topic/cluster-tutorial.html#id2 1 安装准备 1.1 下载redis3.0版本 到redis官网redis.io或者redis中文官网www.redis.cn上(http://www.redis.cn/download.html)去下载最新的版本,我下载的是redis3.

fail2ban安装(debian centos)

一.简介: fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作 (一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH.SMTP.FTP密码,只要达到你预设的次数, fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员,是一款很实用.很强大的软件! 二.Debian下安装fail2ban 1.当前版本 cat /etc/debian_version  6.0.10 2.查询下包并安装 apt-cache search f

04. SpringCloud实战项目-安装Docker

SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款Java面试刷题的开源系统,可以用零碎时间利用小程序查看常见面试题,夯实Java基础. PassJava 项目可以教会你如何搭建SpringBoot项目,Spring Cloud项目 采用流行的技术,如 SpringBoot.MyBatis.Redis. MySql. Mon

redis实战_01_yucong_redis安装

redis的安装下载地址 http://redis.io/download安装步骤:1 把下载好的redis-3.2.6-rc2.tar.gz放到linux /usr/local文件夹下2 进行解压tar -zxvf redis-3.2.6.tar.gz3 进入到redis-3.2.6目录下,进行编译make[即执行make指令]4 进入到src下进行安装make install[即执行make install指令]验证(查看src下的目录,有redis-server,redis-cli即可)5

ansible实战-nginx安装

背景:尽管yum和service模块安装和管理相应服务很方便,但实际生产中,一般需要使用源码安装 思路:先在一台机器上编译安装好nginx,打包,再用ansible分发下去 1. 创建相关目录和配置文件,整体树状图 mkdir /etc/ansible/nginx_install 1.1 vim /etc/ansible/nginx_install/install.yml #总安装文件 --- - hosts: agent.huangzp.com   remote_user: root   ga

(七)saltstack项目实战_安装nginx

创建nginx所需目录 [[email protected] ~]# cd /data/etc/salt/ [[email protected] salt]# mkdir -p nginx/files [[email protected] salt]# cd nginx/files/ [[email protected] files]# wget http://nginx.org/download/nginx-1.11.3.tar.gz [[email protected] salt]# tre

(八)saltstack项目实战_安装mysql

1.1安装mysql 2.2查看salt-master.salt-minion配置文件 [[email protected] ~]# grep -Ev '^#|^$' /etc/salt/master interface: 0.0.0.0 file_roots: base: - /data/etc/salt prod: - /data/etc/salt/prod log_file: /data/logs/salt/master [[email protected] ~]# grep -Ev '^

实战Apache安装配置

实验环境:RHEL7.0   server1.example.com  172.25.254.1 实验内容:   1.Apache安装                     2.Apache主配置文件                     3.更改默认访问目录                     4.更改默认端口                     5.访问目录权限设置                     6.基于用户的身份认证配置(加密网页)