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,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值