Πίνακας Περιεχομένων

Ασφάλεια - Fail2Ban

mail

fail2ban

Δοκιμές

Για την δοκιμή των παρακάτω φίλτρων χρησιμοποιούμε το fail2ban-regex

Για να ελέγξουμε το αρχείο /var/log/mail.log για εκφράσεις που ταυτίζονται με το φιλτρο /etc/fail2ban/filter.d/dovecot-pop3.conf εκτελούμε

fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/dovecot-pop3.conf

dovecot pop/imap

Στο αρχείο /etc/fail2ban/jail.local εισάγουμε

[dovecot-pop3]
enabled  = true
filter   = dovecot-pop3
action   = iptables[name=POP3, port=pop3, protocol=tcp]
logpath  = /var/log/mail.log
maxretry = 5
bantime  = 86400
#
[dovecot-imap]
enabled  = true
filter   = dovecot-imap
action   = iptables[name=IMAP, port=imap, protocol=tcp]
logpath  = /var/log/mail.log
maxretry = 5
bantime  = 86400

Δημιουργούμε στην συνέχεια τα αρχεία

/etc/fail2ban/filter.d/dovecot-pop3.conf

[Definition]
#
failregex = (?: pop3-login: Authentication failure).*rip=(?P<host>\S*),.*
          (?: pop3-login: Aborted login).*rip=(?P<host>\S*),.*
          (?: pop3-login: Disconnected).*rip=(?P<host>\S*),.*
ignoreregex =

και /etc/fail2ban/filter.d/dovecot-imap.conf

[Definition]
failregex = (?: imap-login: Authentication failure).*rip=(?P<host>\S*),.*
          (?: imap-login: Aborted login).*rip=(?P<host>\S*),.*
          (?: imap-login: Disconnected).*rip=(?P<host>\S*),.*
ignoreregex =

courier pop

Δημιουργούμε το αρχείο /etc/fail2ban/jail.local και επικολλούμε κομμάτια κώδικα από το αρχείο fail2ban.conf. Με π.χ filter=courierlogin λαμβάνει ρυθμίσεις από το αρχείο filter.d/courierlogin και έτσι μπορούμε να μην χρησιμοποιήσουμε δικό μας failregex, αλλά το προκαθορισμένο.

Οι παρακάτω ρυθμίσεις αποτρέπουν συνεχόμενες προσπάθειες σύνδεσης με τυχαία username και κωδικούς σε pop (courierpop3 filter) καθώς και σε smtp (Relay access denied) (postfix filter)

[courierpop3]
#
enabled  = true
port     = pop3
filter   = courierlogin
logpath  = /var/log/mail.log
maxretry = 10
bantime = 86400
#
[postfix]
#
enabled  = true
port     = smtp
filter   = postfix
logpath  = /var/log/mail.log
maxretry = 10
bantime = 86400

sasl

Τροποποιούμε το αρχείο /etc/fail2ban/filter.d/sasl.conf δηλώνοντας την παρακάτω regexpr

failregex = : warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed$
 : warning: [[]::ffff:(?P<host>\S*)[]]: SASL CRAM-MD5 authentication failed: authentication failure$
 : warning: [[]::ffff:(?P<host>\S*)[]]: SASL CRAM-MD5 authentication failed: authentication failure
 : warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed: authentication failure$

Ενεργοποιούμε το φίλτρο στο αρχείο /etc/fail2ban/jail.local

[sasl]
enabled  = true
port     = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter   = sasl
logpath  = /var/log/mail.log
maxretry = 10
bantime = 86400

Αντιμετώπιση Προβλημάτων

Σε περίπτωση που έχουμε ρυθμισμένους και άλλους κανόνες στα iptables π.χ limit_port_bandwidth πιθανόν να δούμε τα ακόλουθα στα logs του fail2ban

2012-02-01 19:52:32,229 fail2ban.jail   : INFO   Jail 'dovecot-imap' started
2012-02-01 19:52:32,296 fail2ban.actions.action: ERROR  iptables -N fail2ban-postfix
iptables -A fail2ban-postfix -j RETURN
iptables -I INPUT -p tcp -m multiport --dports smtp -j fail2ban-postfix returned 200
2012-02-01 19:52:32,299 fail2ban.actions.action: ERROR  iptables -N fail2ban-POP3
iptables -A fail2ban-POP3 -j RETURN
iptables -I INPUT -p tcp --dport pop3 -j fail2ban-POP3 returned 400
2012-02-01 20:13:47,712 fail2ban.jail   : INFO   Jail 'dovecot-imap' stopped

Θα πρέπει να βρούμε κανόνες που δεν συγκρούονται (FIXME limit-port bandwidth to work with fail2ban)

passwords

Μέσω perl μπορούμε να επιβάλλουμε δυνατά passwords. Π.χ. η παρακάτω regexpr επιβάλλει

  • 8 χαρακτήρες το λιγότερο
  • που να περιέχουν οπωσδήποτε αριθμούς, κεφαλαία ή πεζά γράμματα και σύμβολα
^.*(?=.{8,})(?=.*\d)(?=.*[a-zA-Z])(?=.*[\`\~\!\*\(\)@#$%^&\-\_\{\[\}\]\:\;\"\'\<\,\>\.\?\/\\+=]).*$

Η παρακάτω επιβάλλει

  • 8 χαρακτήρες το λιγότερο
  • που να περιέχουν οπωσδήποτε αριθμούς, κεφαλαία και πεζά γράμματα
^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$

Πηγές

el/linux/debian/server/security.txt · Τελευταία τροποποίηση: 2012/02/01 20:24 (εξωτερική τροποποίηση)
 
Εκτός εάν αναφέρεται διαφορετικά, το περιεχόμενο σε αυτο το wiki διέπεται από την ακόλουθη άδεια: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Hosted by WebAllDesign - Powered by LServerAdmin Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki WebAllDesign