fail2ban安装及使用(debian)

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
我的博客已迁移到xdoujiang.com请去那边和我交流
一、基础环境
1、fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作
(一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH、SMTP、FTP密码,只要达到你预设的次数,
fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员,是一款很实用、很强大的软件!
 
2、版本
cat  /etc/debian_version 
7.4
 
3、ip
10.131.172.202
 
二、安装fail2ban
1、apt或dpkg安装
apt-get -y  install  fail2ban
dpkg -i fail2ban_0.8.6-3wheezy3_all.deb
 
PS:下载地址
http: //ftp .cn.debian.org /debian/pool/main/f/fail2ban/fail2ban_0 .8.6-3wheezy3_all.deb
 
2、查看配置
ll  /etc/fail2ban/
drwxr-xr-x 2 root root 4096 Jun 19 14:15 action.d
-rw-r--r-- 1 root root  853 Nov 29  2011 fail2ban.conf
drwxr-xr-x 2 root root 4096 Jun 19 15:43 filter.d
-rw-r--r-- 1 root root 7347 Jun 19 15:51 jail.conf
 
3、修改配置支持 ssh 和apache
cat  /etc/fail2ban/jail . local (PS:这个配置文件一定是以. local 结尾的)
[DEFAULT]
ignoreip = 127.0.0.1 /8  172.31.0.0 /24  10.0.0.0 /8  192.168.0.0 /24
bantime = 86400
maxretry = 10
findtime = 600
[ ssh -iptables]
enabled =  true
port = 55000
filter = sshd
logpath =  /var/log/auth .log
maxretry = 5
[apache]
enabled  =  true
port     = 80,443
filter   = apache-auth
logpath  =  /var/log/apache */*error.log
maxretry = 6
[apache-noscript]
enabled  =  true
port     = 80,443
filter   = apache-noscript
logpath  =  /var/log/apache */*error.log
maxretry = 6
[apache-overflows]
enabled  =  true
port     = 80,443
filter   = apache-overflows
logpath  =  /var/log/apache */*error.log
maxretry = 2
[apache-nohome]
enabled  =  true
port     = 80,443
filter   = apache-nohome
logpath  =  /var/log/apache */*error.log
maxretry = 2
PS:我这里 ssh 端口是55000 apache是80
netstat  -tupnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID /Program  name
tcp        0      0 0.0.0.0:55000           0.0.0.0:*               LISTEN      29921 /sshd      
tcp        0      0 127.0.0.1:9898          0.0.0.0:*               LISTEN      30949 /barad_agent
tcp6       0      0 :::80                   :::*                    LISTEN      3964 /apache2    
tcp6       0      0 :::55000                :::*                    LISTEN      29921 /sshd  
 
4、重启服务
/etc/init .d /fail2ban  restart
[ ok ] Restarting authentication failure monitor: fail2ban.
 
5、查看日志
2015-06-19 22:06:37,139 fail2ban.server : INFO   Changed logging target to  /var/log/fail2ban .log  for  Fail2ban v0.8.6
2015-06-19 22:06:37,140 fail2ban.jail   : INFO   Creating new jail  'apache'
2015-06-19 22:06:37,140 fail2ban.jail   : INFO   Jail  'apache'  uses Gamin
2015-06-19 22:06:37,149 fail2ban.filter : INFO   Added logfile =  /var/log/apache2/svn_error .log
2015-06-19 22:06:37,150 fail2ban.filter : INFO   Set maxRetry = 6
2015-06-19 22:06:37,151 fail2ban.filter : INFO   Set findtime = 600
2015-06-19 22:06:37,151 fail2ban.actions: INFO   Set banTime = 86400
2015-06-19 22:06:37,154 fail2ban.jail   : INFO   Creating new jail  'apache-noscript'
2015-06-19 22:06:37,154 fail2ban.jail   : INFO   Jail  'apache-noscript'  uses Gamin
2015-06-19 22:06:37,155 fail2ban.filter : INFO   Added logfile =  /var/log/apache2/svn_error .log
2015-06-19 22:06:37,155 fail2ban.filter : INFO   Set maxRetry = 6
2015-06-19 22:06:37,156 fail2ban.filter : INFO   Set findtime = 600
2015-06-19 22:06:37,157 fail2ban.actions: INFO   Set banTime = 86400
2015-06-19 22:06:37,161 fail2ban.jail   : INFO   Creating new jail  'apache-overflows'
2015-06-19 22:06:37,161 fail2ban.jail   : INFO   Jail  'apache-overflows'  uses Gamin
2015-06-19 22:06:37,161 fail2ban.filter : INFO   Added logfile =  /var/log/apache2/svn_error .log
2015-06-19 22:06:37,162 fail2ban.filter : INFO   Set maxRetry = 2
2015-06-19 22:06:37,163 fail2ban.filter : INFO   Set findtime = 600
2015-06-19 22:06:37,163 fail2ban.actions: INFO   Set banTime = 86400
2015-06-19 22:06:37,166 fail2ban.jail   : INFO   Creating new jail  'ssh-iptables'
2015-06-19 22:06:37,167 fail2ban.jail   : INFO   Jail  'ssh-iptables'  uses Gamin
2015-06-19 22:06:37,167 fail2ban.filter : INFO   Added logfile =  /var/log/auth .log
2015-06-19 22:06:37,167 fail2ban.filter : INFO   Set maxRetry = 5
2015-06-19 22:06:37,169 fail2ban.filter : INFO   Set findtime = 600
2015-06-19 22:06:37,169 fail2ban.actions: INFO   Set banTime = 86400
2015-06-19 22:06:37,188 fail2ban.jail   : INFO   Creating new jail  'apache-nohome'
2015-06-19 22:06:37,188 fail2ban.jail   : INFO   Jail  'apache-nohome'  uses Gamin
2015-06-19 22:06:37,189 fail2ban.filter : INFO   Added logfile =  /var/log/apache2/svn_error .log
2015-06-19 22:06:37,189 fail2ban.filter : INFO   Set maxRetry = 2
2015-06-19 22:06:37,190 fail2ban.filter : INFO   Set findtime = 600
2015-06-19 22:06:37,191 fail2ban.actions: INFO   Set banTime = 86400
2015-06-19 22:06:37,194 fail2ban.jail   : INFO   Jail  'apache'  started
2015-06-19 22:06:37,196 fail2ban.jail   : INFO   Jail  'apache-noscript'  started
2015-06-19 22:06:37,197 fail2ban.jail   : INFO   Jail  'apache-overflows'  started
2015-06-19 22:06:37,198 fail2ban.jail   : INFO   Jail  'ssh-iptables'  started
2015-06-19 22:06:37,200 fail2ban.jail   : INFO   Jail  'apache-nohome'  started
 
6、查看iptables已经生效了
iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt  source                destination         
fail2ban-apache-nohome  tcp  --  0.0.0.0 /0             0.0.0.0 /0             multiport dports 80,443
fail2ban- ssh -iptables  tcp  --  0.0.0.0 /0             0.0.0.0 /0             multiport dports 55000
fail2ban-apache-overflows  tcp  --  0.0.0.0 /0             0.0.0.0 /0             multiport dports 80,443
fail2ban-apache-noscript  tcp  --  0.0.0.0 /0             0.0.0.0 /0             multiport dports 80,443
fail2ban-apache  tcp  --  0.0.0.0 /0             0.0.0.0 /0             multiport dports 80,443
Chain FORWARD (policy ACCEPT)
target     prot opt  source                destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt  source                destination         
Chain fail2ban-apache (1 references)
target     prot opt  source                destination         
RETURN     all  --  0.0.0.0 /0             0.0.0.0 /0           
Chain fail2ban-apache-nohome (1 references)
target     prot opt  source                destination         
RETURN     all  --  0.0.0.0 /0             0.0.0.0 /0           
Chain fail2ban-apache-noscript (1 references)
target     prot opt  source                destination         
RETURN     all  --  0.0.0.0 /0             0.0.0.0 /0           
Chain fail2ban-apache-overflows (1 references)
target     prot opt  source                destination         
RETURN     all  --  0.0.0.0 /0             0.0.0.0 /0           
Chain fail2ban- ssh -iptables (1 references)
target     prot opt  source                destination         
RETURN     all  --  0.0.0.0 /0             0.0.0.0 /0           
 
7、使用fail2ban-client命令查看状态
fail2ban-client status
Status
|- Number of jail:    5
- Jail list:        apache, apache-overflows, apache-nohome, apache-noscript,  ssh -iptables
 
8、更细致的查看某个项
fail2ban-client status  ssh -iptables
Status  for  the jail:  ssh -iptables
|- filter
|  |- File list:     /var/log/auth .log 
|  |- Currently failed:    0
|  `- Total failed:    0
`- action
    |- Currently banned:    0
    |  `- IP list:    
    `- Total banned:    0
    
9、将服务加入到开机启动
update-rc.d fail2ban defaults
update-rc.d: using dependency based boot sequencing
 
10、查看下日志轮询信息
cat  /etc/logrotate .d /fail2ban 
/var/log/fail2ban .log {
    
     weekly
     rotate 4
     compress
     delaycompress
     missingok
     postrotate
     fail2ban-client  set  logtarget  /var/log/fail2ban .log > /dev/null
     endscript
     # If fail2ban runs as non-root it still needs to have write access
     # to logfiles.
     # create 640 fail2ban adm
     create 640 root adm
}
 
三、参考文章
http: //xmodulo .com /how-to-protect-ssh-server-from-brute-force-attacks-using-fail2ban .html
https: //linux .cn /article-5068-qqmail .html









本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1652970,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
217 78
|
3月前
|
安全 应用服务中间件 Linux
Debian操作系统如何安装Nginx并开启HTTP2
本指南介绍了在Linux系统中通过源码编译安装Nginx的完整流程。首先更新软件包列表并安装必要的编译依赖,接着下载指定版本的Nginx源码包(如1.24.0),检查文件完整性后解压。随后通过配置脚本指定安装路径与模块(如HTTP SSL模块),执行编译和安装命令。最后创建软链接以便全局调用,并提供启动、停止及重载Nginx的命令,同时提醒注意安全组设置以确保正常访问。
|
6月前
|
Ubuntu 安全 调度
在Ubuntu下安装Debian包:dpkg与apt命令的深度解构。
安装Debian包的知识,就像掌握了海上的航行技术,虽然起初会让人感到陌生甚至困惑,但只要你积累熟练,就能在Ubuntu的世界里畅游无阻。就像每一位成功的航海家,掌握好这些工具,去探索属于你的Ubuntu新世界吧!
199 21
|
5月前
|
Ubuntu Linux
Ubuntu中dpkg和apt命令:debian包安装详解
希望这让你对于Ubuntu中的dpkg和apt命令有了更为清晰的理解。下次你面对软件包安装的问题,就可以轻松应对,优雅地在你的Linux系统中游刃有余了。
453 10
|
6月前
|
安全 网络安全 数据库
Debian12系统如何安装宝塔面板?
宝塔面板是一款便捷的服务器管理工具,界面直观易用,适合各技术水平用户。它支持网站部署、数据库管理,并提供安全防护功能。安装步骤简单:注册账号、连接服务器、运行脚本即可。确保系统满足最低要求(内存≥1GB,硬盘≥10GB),安装后通过浏览器登录管理。根据需求安装套件,完成网站配置。注意放行防火墙端口以保证正常访问。
363 0
|
10月前
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
517 10
|
11月前
|
Oracle Java 关系型数据库
在 Debian 12 上安装 Java 21
在 Debian 12 上安装 Java 21
|
安全 Ubuntu Shell
深入挖掘Debian系统中安装Docker
【8月更文挑战第21天】在Debian系统中安装Docker需按步骤操作:首先确保软件包更新,执行`sudo apt update`并安装必要软件包支持HTTPS;接着添加Docker官方GPG密钥以验证包的完整性和安全性;然后设置Docker稳定版仓库,通过`tee`命令配置仓库文件;再更新软件包索引;最后安装Docker Engine并通过运行测试容器确认安装成功。此指南适用于多数Debian版本,如遇问题请查阅官方文档。
796 0
|
存储 Linux 开发工具
在Debian 8上安装Git的方法
在Debian 8上安装Git的方法
178 0
|
SQL 关系型数据库 Linux
如何在 Debian 8 上安装和使用 PostgreSQL 9
如何在 Debian 8 上安装和使用 PostgreSQL 9
154 0