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,如需转载请自行联系原作者
目录
相关文章
|
22天前
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
52 10
|
2月前
|
Oracle Java 关系型数据库
在 Debian 12 上安装 Java 21
在 Debian 12 上安装 Java 21
|
4月前
|
Kubernetes 应用服务中间件 nginx
debian11使用kubeadm安装k8s
debian11使用kubeadm安装k8s
|
4月前
|
安全 Ubuntu Shell
深入挖掘Debian系统中安装Docker
【8月更文挑战第21天】在Debian系统中安装Docker需按步骤操作:首先确保软件包更新,执行`sudo apt update`并安装必要软件包支持HTTPS;接着添加Docker官方GPG密钥以验证包的完整性和安全性;然后设置Docker稳定版仓库,通过`tee`命令配置仓库文件;再更新软件包索引;最后安装Docker Engine并通过运行测试容器确认安装成功。此指南适用于多数Debian版本,如遇问题请查阅官方文档。
297 0
|
4月前
|
存储 Linux 开发工具
在Debian 8上安装Git的方法
在Debian 8上安装Git的方法
39 0
|
4月前
|
SQL 关系型数据库 Linux
如何在 Debian 8 上安装和使用 PostgreSQL 9
如何在 Debian 8 上安装和使用 PostgreSQL 9
56 0
|
4月前
|
数据可视化 关系型数据库 MySQL
在Debian 7上安装和保护phpMyAdmin的方法
在Debian 7上安装和保护phpMyAdmin的方法
60 0
|
4月前
|
安全 Linux 网络安全
如何在Debian 9上安装和配置VNC
如何在Debian 9上安装和配置VNC
107 0
|
4月前
|
网络协议 算法 网络安全
如何在 Debian Wheezy 上使用 Postfix 安装和配置 DKIM
如何在 Debian Wheezy 上使用 Postfix 安装和配置 DKIM
59 0
|
4月前
|
Java 应用服务中间件 Apache
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
73 0