Πέμπτη, 26 Ιανουαρίου 2017

Ασφαλιστε τον server με το Fail2Ban και πως να ενημερωνεστε για τις επιθεσεις

Έχοντας στήσει nextcloud ή οποιαδήποτε άλλη παρόμοια υπηρεσία, προχωράμε στο θέμα ασφάλειας για τον χρήστη του server αυτού.



Βήμα 1o



Εγκατάσταση του fail2ban για το Nextcloud



Η υπηρεσία fail2ban έχει ως σκοπό την αποτροπή των εξωτερικών επιθέσεων ddos, φυσικά με την φραγη της ip του επιτιθέμενου.



Εγκαθιστούμε σε σύστημα Ubuntu Linux  ως εξής:



 $ sudo apt-get update && apt install fail2ban -y




 Δημιουργία αρχείου ρυθμίσεων του fail2ban για το nextcloud



$ sudo nano /etc/fail2ban/filter.d/nextcloud.conf


 και προσθέστε αυτές τις γραμμές:



[Definition]
failregex={"reqId":".*","remoteAddr":".*","app":"core","message":"Login failed: '.*' \(Remote IP: ''\)","level":2,"time":".*"}
ignoreregex =
Επεξεργάζεστε το αρχείο /etc/fail2ban/jail.conf


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak
sudo nano /etc/fail2ban/jail.conf
και προσθέστε το παρακάτω κείμενο
[nextcloud]
enabled = true
port = 80,443
protocol = tcp
filter = nextcloud
maxretry = 3
bantime = 180
logpath = /var/nc_data/nextcloud.log

 Δίνουμε τις παρακάτω εντολές για επανεκκίνηση της υπηρεσίας του fail2ban και τον της ορθής λειτουργείας αυτης
$ sudo service fail2ban restart
$ sudo fail2ban-client status nextcloud



Δοκιμάζουμε να συνδεθούμε με λανθασμένο συνθηματικό για να τσεκάρουμε αν λειτουργεί η υπηρεσία, αφού το κάνουμε αυτό δίνουμε ξανά την ακόλουθη εντολή στον server


$ sudo fail2ban-client status nextcloud




Βλέπουμε ότι στις αποκλεισμένες(banned list) ip οτι έχει την δικιά μας εξωτερική ip που μας δινει ο πάροχος.


Μπορούμε να ξεμπλοκάρουμε(unbanned) μια ip ως εξής


$ sudo fail2ban-client set nextcloud unbanip <Banned IP>


Βήμα 2ο 

Ενεργοποίηση υπηρεσίας ενημέρωσης με email(postfix)

Αρχικά εγκαθιστούμε το postfix με τις εξής εντολες

$ sudo apt-get -y --no-install-recommends install postfix mailutils libsasl2-2 libsasl2-modules
κατα την εγκατάσταση μας εμφανίζεται το εξης πλαισιο



με τον κέρσορα κατεβαίνουμε και επιλέγουμε την επιλογή Satellite system


και έπειτα μας ζητάει να δώσουμε το email για το σύστημα μας π.χ "pithome.org"

και ακολούθως μας ζητάει τον SMTP relay host δηλαδή τον server που θα προωθεί τα email στο παρόν οδηγό θα χρησιμοποιήσω το gmail οπότε δινουμε smtp.gmail.com

Ανοίγουμε το αρχειο ρυθμίσεων του postfix mail.cf ως εξής:

$ sudo nano /etc/postfix/main.cf

και στο τέλος του αρχειου προσθέτουμε τις εξής γραμμές:

smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

σώζουμε το αρχείο και το κλείνουμε

Δημιουργούμε το αρχείο κωδικών για το gmail

$ sudo nano /etc/postfix/sasl/sasl_passwd

με το εξής περιεχόμενο που αφορά το όνομα χρήστη και κωδικό για το gmail καθώς επίσης τον smtp server:

smtp.gmail.com mymail:1234567

Δίνουμε την παρακάτω εντολή για την δημιουργία του πίνακα του postfix για το sasl_passwd αρχείο:

$ sudo postmap /etc/postfix/sasl/sasl_passwd

Δίνουμε τα απαραίτητα δικαιώματα σε φάκελο και αρχεία:

chown -R root:postfix /etc/postfix/sasl
chmod 750 /etc/postfix/sasl
chmod 640 /etc/postfix/sasl/sasl_passwd*

Ανοίγουμε ξανα το αρχείο /etc/postfix/main.cf
 
Με τα κοκκινα γράμματα είναι οι αλλαγές που κάνουμε στις default ρυθμίσεις.

myhostname = myserver
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = root@myhome.org, $myhostname, myserver.lan, localhost.lan
relayhost = smtp.gmail.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = all
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

όπως έχουμε το αρχείο ανοιχτό προσθέτουμε την εξής γραμμή:

sender_canonical_maps = hash:/etc/postfix/sender_canonical
κλείνουμε το αρχείο και το αποθηκεύουμε

Δημιουργούμε το εξής αρχειο:

$ sudo nano /etc/postfix/sender_canonical
και βάζουμε το εξής περιεχόμενο:

root mymail@gmail.com
www-data mymail@gmail.com
 Ο λόγος που το κάνουμε αυτο είναι για να δώσουμε προσβαση στον root και στον www-data χρήστη στο email μας.

Σώζουμε και κλείνουμε το αρχείο.

Στην συνέχεια ενημερώνουμε ξανά τον postfix:

$ sudo postmap /etc/postfix/sender_canonical
 

Κάνουμε επανεκκίνηση τον postfix:

$ sudo update-rc.d postfix defaults
$ sudo service postfix restart
Στην συνέχεια δοκιμάζουμε να στείλουμε δοκιμαστικά emails για να ελέγξουμε αν λειτουργεί ο postfix σωστά:

$ echo "This is a test." | mail -s "test message" mymail@gmail.com 
μετά από αυτήν την εντολή θα πρέπει να σας έρθει email με θέμα "This is a test." και περιεχόμενο "test message"

έλεγχουμε και το αρχείο καταγραφής για τυχόν σφάλματα.

$ cat /var/log/mail.log
 
Βήμα 3ο

Ρύθμιση του fail2ban για αποστολή ενημερωτικών emails μεσω postfix όταν θα αποκλείει τις ύποπτες διευθύνσεις ip.

Ανοίγουμε το jail.conf αρχείο:

$ sudo nano /etc/fail2ban/jail.conf
 Με κόκκινα γράμματα είναι οι αλλαγές που κάνουμε:
...
destemail = mymail@gmail.com
...
sender = root@myhome.org
...
mta = mail
...
# action = %(action_)s
action = %(action_mwl)s
...
Κάνουμε επανεκκίνηση την υπηρεσία fail2ban:

$ sudo service fail2ban restart
και είμαστε έτοιμοι!!