Fail2ban howto.

Har du noe lurt å dele med oss? NB. Dette er ikke et support forum.

Fail2ban howto.

Innleggav takvam » tir 31.07.2007 7:40

Har sett noen tråder hvor det er beskrevet hvordan en kan sikre sin SSHD. Det finnest mange måterr å gjøre dette på men erfaringene mine ved bruk av fail2ban er meget gode :)

Fail2ban fungerer på den måten at den sjekker log'er (som var/log/auth.log, var/log/apache2/error_log for å nevne noen) og ban'er ip'er som logger seg på med for mange passord-feil (typiske dictionary-attacks). Fail2ban oppdaterer brannmuren og drop'er ip'en. Fail2ban bruker
iptables, og oppdaterer/fjerner alt etter hvordan man har konfigurert Fail2ban.

Fail2ban finnes allerede til de fleste distro'er (http://www.fail2ban.org/wiki/index.php/Downloads)

Konfigureringen av Fail2ban er ganske simpel;
Last ned fail2ban-pakken til din favoritt distro

Debian-baserte distroer skal kunne kjøre
Kode: Merk alt
apt-get install fail2ban


Deretter kjører man:
Kode: Merk alt
sudo cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

og
Kode: Merk alt
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local


Grunnen til at vi lager *.local filer, er at en beholder sin egen konfig ved en evt. oppgradering.

fail2ban.local
Kode: Merk alt
# Fail2Ban configuration file
#
# Author: Cyril Jaquier
#
# $Revision: 412 $
#

[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.
# Values:  STDERR SYSLOG file  Default:  /var/log/fail2ban.log
#
logtarget = /var/log/fail2ban.log

# Option: socket
# Notes.: Set the socket file. This is used to communication with the
#         daemon.
# Values: FILE  Default:  /tmp/fail2ban.sock
#
socket = /tmp/fail2ban.sock

Det er somregel lite vi trenger å endre på. Om en ønsker å endre på noe, er kommentarene ganske selvforklarende ;)

Det neste vi trenger å gjøre er å sette opp jail.local.

jail.local
Kode: Merk alt
# 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
#
# Author: Yaroslav O. Halchenko <debian@onerussian.com>
#
# $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 192.168.1.120
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 = moccah@localhost

# Default action to take: ban only
#action = iptables[name=%(__name__)s, port=%(port)s]

# Following actions can be chosen as an alternatives to the above action.
# To activate, just copy/paste+uncomment chosen 2 (excluding comments) lines
# into jail.local

# Default action to take: ban & send an e-mail with whois report
# to the destemail.
# action = iptables[name=%(__name__)s, port=%(port)s]
#          mail-whois[name=%(__name__)s, dest=%(destemail)s]

# Default action to take: ban & send an e-mail with whois report
# and relevant log lines to the destemail.
action = iptables[name=%(__name__)s, port=%(port)s]
          mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]

# Next jails corresponds to the standard configuration in Fail2ban 0.6
# which was shipped in Debian. Please enable any defined here jail by including
#
# [SECTION_NAME]
# enabled = true
#
# in /etc/fail2ban/jail.local.
#

#
#
#

[ssh]

enabled = true
logfile = /var/log/auth.log
port = ssh
filter = sshd
timeregex = S{3}s{1,2}d{1,2} d{2}:d{2}:d{2}
timepattern = %%b %%d %%H:%%M:%%S


Slik ser min jail.local fil ut. Det en kan endre p堩 denne fila er:
Kode: Merk alt
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1 192.168.1.120  #ignorer lokal ip samt en klient jeg kjører på lokalnettet
bantime  = 6000                     # bantid på 10 min. Sett denne til -1 om en ønsker å ban'e ip'er permanent
maxretry = 3                        # Max ganger en bruker kan pr?eile f? blir ban'et


Endre
Kode: Merk alt
destemail = moccah@localhost # sender mail til min bruker

Til det som passer for din maskin :)

Instillingene for SSH skal se slik ut:
Kode: Merk alt
[ssh]
enabled = true                           
logfile = /var/log/auth.log           
port = ssh                                 
filter = sshd


Fail2ban skal nå være satt opp riktig. Kjør
Kode: Merk alt
sudo /etc/init.d/fail2ban restart

Og fail2ban skal være igang ;)

En kan sjekke i /var/log/fail2ban.log etter bannede ip'er

Kilder:
http://www.fail2ban.org/wiki/index.php/MANUAL_0_8
http://www.fail2ban.org/wiki/index.php/Main_Page
medlem i 200 måneder
 

Innleggav thomasmathiesen » tir 31.07.2007 15:39

Jeg bruker http://www.ossec.net/

Funker paa samme maate, men inkluderer ogsaa en tripwire greie, som sjekker om filer har forandret seg :)

/T

Brukerens avatar
medlem i 233 måneder
 


Returner til Tips og triks / Favoritter



Hvem er i Forumene

Registrerte brukere: Google [Bot]