Fail2ban.conf
[code][Definition]
Option: loglevel
Notes.: Set the log level output.
1 = ERROR
2 = WARN
3 = INFO
4 = DEBUG
Values: NUM Default: 3
loglevel = 3
Option: logtarget
Notes.: Set the log target. This could be a file, SYSLOG, STDERR or STDOUT.
Only one log target can be specified.
Values: STDOUT STDERR SYSLOG file Default: /var/log/fail2ban.log
logtarget = /var/log/fail2ban.log
Option: socket
Notes.: Set the socket file. This is used to communicate with the daemon. Do
not remove this file when Fail2ban runs. It will not be possible to
communicate with the server afterwards.
Values: FILE Default: /var/run/fail2ban/fail2ban.sock
socket = /var/run/fail2ban/fail2ban.sock
[/code]
jail.conf
[code]# Fail2Ban configuration file.
This file was composed for Debian systems from the original one
provided now under /usr/share/doc/fail2ban/examples/jail.conf
for additional examples.
To avoid merges during upgrades DO NOT MODIFY THIS FILE
and rather provide your changes in /etc/fail2ban/jail.local
$Revision: 281 $
The DEFAULT allows a global definition of the options. They can be override
in each jail afterwards.
[DEFAULT]
“ignoreip” can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1
bantime = 6000
maxretry = 3
“backend” specifies the backend used to get files modification. Available
options are “gamin”, “polling” and “auto”.
yoh: For some reason Debian shipped python-gamin didn’t work as expected
This issue left ToDo, so polling is default backend for now
backend = polling
Destination email address used solely for the interpolations in
jail.{conf,local} configuration files.
destemail = root@localhost
ACTIONS
Default banning action (e.g. iptables, iptables-new,
iptables-multiport, shorewall, etc) It is used to define
action_* variables. Can be overriden globally or per
section within jail.local file
banaction = iptables-multiport
email action. Since 0.8.1 upstream fail2ban uses sendmail
MTA for the mailing. Change mta configuration parameter to mail
if you want to revert to conventional ‘mail’.
mta = sendmail
Default protocol
protocol = tcp
Action shortcuts. To be used to define action parameter
The simplest action to take: ban only
action_ = %(banaction)s[name=%(name)s, port="%(port)s", protocol="%(protocol)s]
ban & send an e-mail with whois report to the destemail.
action_mw = %(banaction)s[name=%(name)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois[name=%(name)s, dest="%(destemail)s", protocol="%(protocol)s]
ban & send an e-mail with whois report and relevant log lines
to the destemail.
action_mwl = %(banaction)s[name=%(name)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois-lines[name=%(name)s, dest="%(destemail)s", logpath=%(logpath)s]
Choose default action. To change, just override value of ‘action’ with the
interpolation to the chosen action shortcut (e.g. action_mw, action_mwl, etc) in jail.local
globally (section [DEFAULT]) or per specific section
action = %(action_)s
JAILS
Next jails corresponds to the standard configuration in Fail2ban 0.6 which
was shipped in Debian. Enable any defined here jail by including
[SECTION_NAME]
enabled = true
in /etc/fail2ban/jail.local.
Optionally you may override any other parameter (e.g. banaction,
action, port, logpath, etc) in that section within jail.local
[ssh]
enabled = true
port = ssh,686
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Generic filter for pam. Has to be used with action which bans all ports
such as iptables-allports, shorewall
[pam-generic]
enabled = false
pam-generic filter can be customized to monitor specific subset of 'tty’s
filter = pam-generic
port actually must be irrelevant but lets leave it all for some possible uses
port = all
banaction = iptables-allports
port = anyport
logpath = /var/log/auth.log
maxretry = 6
[xinetd-fail]
enabled = false
filter = xinetd-fail
port = all
banaction = iptables-multiport-log
logpath = /var/log/daemon.log
maxretry = 2
[ssh-ddos]
enabled = false
port = ssh
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 6
HTTP servers
[apache]
enabled = false
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 6
default action is now multiport, so apache-multiport jail was left
for compatibility with previous (<0.7.6-2) releases
[apache-multiport]
enabled = false
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 6
[apache-noscript]
enabled = false
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 6
[apache-overflows]
enabled = false
port = http,https
filter = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2
FTP servers
[vsftpd]
enabled = false
port = ftp,ftp-data,ftps,ftps-data
filter = vsftpd
logpath = /var/log/vsftpd.log
or overwrite it in jails.local to be
logpath = /var/log/auth.log
if you want to rely on PAM failed login attempts
vsftpd’s failregex should match both of those formats
maxretry = 6
[proftpd]
enabled = false
port = ftp,ftp-data,ftps,ftps-data
filter = proftpd
logpath = /var/log/proftpd/proftpd.log
maxretry = 6
[wuftpd]
enabled = false
port = ftp,ftp-data,ftps,ftps-data
filter = wuftpd
logpath = /var/log/auth.log
maxretry = 6
Mail servers
[postfix]
enabled = false
port = smtp,ssmtp
filter = postfix
logpath = /var/log/mail.log
[couriersmtp]
enabled = false
port = smtp,ssmtp
filter = couriersmtp
logpath = /var/log/mail.log
Mail servers authenticators: might be used for smtp,ftp,imap servers, so
all relevant ports get banned
[courierauth]
enabled = false
port = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter = courierlogin
logpath = /var/log/mail.log
[sasl]
enabled = false
port = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter = sasl
You might consider monitoring /var/log/warn.log instead
logpath = /var/log/mail.log
DNS Servers
These jails block attacks against named (bind9). By default, logging is off
with bind9 installation. You will need something like this:
logging {
channel security_file {
file “/var/log/named/security.log” versions 3 size 30m;
severity dynamic;
print-time yes;
};
category security {
security_file;
};
};
in your named.conf to provide proper logging
!!! WARNING !!!
Since UDP is connectionless protocol, spoofing of IP and immitation
of illegal actions is way too simple. Thus enabling of this filter
might provide an easy way for implementing a DoS against a chosen
victim. See
Please DO NOT USE this jail unless you know what you are doing.
#[named-refused-udp]
#enabled = false
#port = domain,953
#protocol = udp
#filter = named-refused
#logpath = /var/log/named/security.log
[named-refused-tcp]
enabled = false
port = domain,953
protocol = tcp
filter = named-refused
logpath = /var/log/named/security.log
[/code]
erreur avec test
Jan 7 10:05:42 pcjimbo sshd[3058]: Invalid user test from xxx.xxx.xxx.xxx
Jan 7 10:05:46 pcjimbo sshd[3058]: pam_unix(sshd:auth): check pass; user unknown
Jan 7 10:05:46 pcjimbo sshd[3058]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=78.218.208.7
Jan 7 10:05:47 pcjimbo sshd[3058]: Failed password for invalid user test from xxx.xxx.xxx.xxx port 51840 ssh2
ca je le fait 2 fois est bam :
iptables -L
chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all -- xxx.xxx.xxx.xxx anywhere
RETURN all -- anywhere anywhere
2012-01-07 09:52:58,453 fail2ban.jail : INFO Creating new jail 'ssh'
2012-01-07 09:52:58,453 fail2ban.jail : INFO Jail 'ssh' uses poller
2012-01-07 09:52:58,562 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2012-01-07 09:52:58,562 fail2ban.filter : INFO Set maxRetry = 3
2012-01-07 09:52:58,563 fail2ban.filter : INFO Set findtime = 600
2012-01-07 09:52:58,563 fail2ban.actions: INFO Set banTime = 6000
2012-01-07 09:52:58,584 fail2ban.jail : INFO Jail 'ssh' started
2012-01-07 10:05:48,101 fail2ban.actions: WARNING [ssh] Ban xxx.xxx.xxx.xxx
un petit status ok :
fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: ssh
erreur avec jimbo
Jan 7 10:04:45 pcjimbo sshd[3049]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=xxx.xxx.xxx.xxx user=jimbo
Jan 7 10:04:46 pcjimbo sshd[3049]: Failed password for jimbo from xxx.xxx.xxx.xxx port 51839 ssh2
ca je le fait 50 fois il se passe rien il banni rien
mais peut être que la dans le filtre il ne prend pas en compte l’erreur de password mais seulement l’erreur de login :
[code]cat /etc/fail2ban/filter.d/sshd.conf
Fail2Ban configuration file
Author: Cyril Jaquier
$Revision: 728 $
[INCLUDES]
Read common prefixes. If any customizations available – read them from
common.local
before = common.conf
[Definition]
_daemon = sshd
Option: failregex
Notes.: regex to match the password failures messages in the logfile. The
host must be matched by a group named “host”. The tag “” can
be used for standard IP/hostname matching and is only an alias for
(?:::f{4,6}:)?(?P[\w-.^_]+)
Values: TEXT
failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from \s*$
^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from \s*$
^%(__prefix_line)sFailed (?:password|publickey) for .* from (?: port \d*)?(?: ssh\d*)?$
^%(__prefix_line)sROOT LOGIN REFUSED.* FROM \s*$
^%(__prefix_line)siI user .* from \s*$
^%(__prefix_line)sUser .+ from not allowed because not listed in AllowUsers$
^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=(?:\s+user=.)?\s$
^%(__prefix_line)srefused connect from \S+ ()\s*$
^%(__prefix_line)sAddress .* POSSIBLE BREAK-IN ATTEMPT!\s$
^%(__prefix_line)sUser .+ from not allowed because none of user’s groups are listed in AllowGroups\s*$
Option: ignoreregex
Notes.: regex to ignore. If this regex matches, the line is ignored.
Values: TEXT
ignoreregex =
[/code]
si ca vous saute aux yeux merci de me le dire suis devenu aveugle 