Σελίδα 1 από 1

Lighttpd σε RaspberryPi με χρήση fail2ban

ΔημοσίευσηΔημοσιεύτηκε: 07 Μάιος 2019, 21:57
από xXx
Lighttpd σε RaspberryPi με χρήση fail2ban:
Δεν γνωρίζω από πόσο παλιά δεν λειτουργεί η υπηρεσία fail2ban σε debian διανομές
με την χρήση lighttpd ως εξυπηρετητή, αλλά σίγουρα δεν λειτουργεί σε διανομές βασισμένες
σε debian stretch. Στην περίπτωση αυτού του οδηγού, μιλάμε για Raspbian stretch lite.
Το πρόβλημα:
Παρότι η προστασία ssh λειτουργεί χωρίς καμμία σχεδόν παρέμβαση στις ρυθμίσεις fail2ban,
αυτό δεν ισχύει για την περίπτωση lighttpd με προστατευόμενες σελίδες - διευθύνσεις.
Όσες δηλαδή αποτυχημένες προσπάθεις κι αν κάνει ένας επιτιθέμενος στις σελίδες μας,
δεν εντοπίζεται από την υπηρεσία fail2ban ώστε να του στερηθεί η πρόσβαση από το τείχος
προστασίας (iptables). Η υπηρεσία fail2ban φαίνεται να τρέχει, και να μας προστατεύει,
αναφέροντας πως δεν εντόπισε καμμία αποτυχημένη προσπάθεια εισόδου στις προστατευόμενες
με κωδικό σελίδες μας. Αυτό όμως δεν ισχύει καθόλου, και είναι τρομερά σοβαρό!
Αποτέλεσμα:
Ένας κακόβουλος χρήστης, μπορεί να κάνει άπειρες απόπειρες εισαγωγής, μέχρι που τελικά
να βρει τα ανόματα χρηστών - κωδικούς πρόσβασης που έχουμε ορίσει για τις σελίδες μας.
Γιατί συμβαίνει αυτό;
Γιατί τα πάντα είναι ρυθμισμένα λάθος, και οδηγούν σε λάθος σημεία. Πιθανότατα παλιότερα
να ίσχυαν οι τοποθεσίες που αναφέρονται, αλλά αυτό δεν ισχύει πλέον.
Η λύση:
Εγκαταστήστε τα απαραίτητα προγράμματα, αν δεν το έχετε κάνει ήδη:
Κώδικας: Επιλογή όλων
sudo apt-get install fail2ban php7.0-fpm lighttpd

Ρυθμίστε την php7.0-fpm τον lighttpd και τις προστατευόμενες σελίδες σας κατά βούλησιν.
Στο παράδειγμα που ακολουθεί, χρησιμοποιώ 2345 θύρα για την υπηρεσία ssh, και 6789 για
τον lighttpd. Οπότε, για να έχετε προστασία από επιθέσεις, ρυθμίστε τα παρακάτω ως εξής:
Κώδικας: Επιλογή όλων
sudo nano /etc/fail2ban/jail.local

Και προσθέστε τα παρακάτω περιεχόμενα:
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 86400
findtime = 600
maxretry = 3
backend = auto

[sshd]
enabled = true
port = 2345
logpath = %(sshd_log)s
backend = %(sshd_backend)s


[lighttpd-auth]
enabled = true
port = 6789,https
logpath = %(lighttpd_error_log)s

Αμέσως μετά ρυθμίστε τις λανθασμένες οδηγίες στα αρχεία:
Κώδικας: Επιλογή όλων
sudo nano /etc/fail2ban/paths-common.conf

Αλλάξτε την γραμμή που αναφέρεται στον lighttpd ως εξής:
lighttpd_error_log = /var/log/lighttpd/access.log

Και ρυθμίστε και το παρακάτω αρχείο:
Κώδικας: Επιλογή όλων
sudo nano /etc/fail2ban/filter.d/lighttpd-auth.conf

Κάντε κόμεντ (#) την υπάρχουσα failregex γραμμή, και βάλτε από κάτω μία νέα, ως εξής:
failregex = ^<HOST> .* "(GET|POST|HEAD) [^"]+" 401

Κάντε ρηστάρτ lighttpd php και fail2ban:
Κώδικας: Επιλογή όλων
sudo systemctl restart lighttpd
sudo systemctl restart php7.0-fpm
sudo systemctl restart fail2ban

Κάντε 3 αποτυχημένες προσπάθειες (έχοντας κι άλλον τρόπο να εισέλθετε στο σύστημα)
με ssh και στις προστευόμενες σελίδες σας, για να σιγουρευτείτε πως όλα λειτούργησαν.
Πάντα ελέγχετε ότι όλα λειτουργούν, πριν αφεθείτε στις προεπιλεγμένες ρυθμίσεις/αναφορές.
Ελπίζω να φανεί χρήσιμος ο οδηγός σε κάποιους Έλληνες εκεί έξω.

Re: Lighttpd σε RaspberryPi με χρήση fail2ban

ΔημοσίευσηΔημοσιεύτηκε: 19 Μάιος 2019, 16:56
από Learner
Άσχετη ερώτηση, αλλά μιας και το είδα εδώ,
γιατί php7.0-fpm ;
να υποθέσω HTTP/2 ;

Ξέρεις, ο περισσότερος κόσμος εκεί έξω έχω την εντύπωση ότι δεν χρησιμοποιεί lighttpd , εξού και οι default ρυθμίσεις είναι διαφορετικές.

Όπως και να χει, χρήσιμος ο οδηγός.

Re: Lighttpd σε RaspberryPi με χρήση fail2ban

ΔημοσίευσηΔημοσιεύτηκε: 20 Μάιος 2019, 14:03
από xXx
ο περισσότερος κόσμος εκεί έξω έχω την εντύπωση ότι δεν χρησιμοποιεί lighttpd

Ναι, είναι αλήθεια, γι'αυτό γράφτηκε ο "οδηγός" (είναι δύσκολο να βρει κάποιος πληροφορίες γι'αυτό το σενάριο).
Δεν περιμένεις πολλά από ένα RaspberryPi, οπότε είναι πολύ πιθανό να προτιμήσεις lighttpd για τα απλά script σου.
γιατί php7.0-fpm;

Έδωσα αυτό το παράδειγμα, γιατί αν κάποιος την χρησιμοποιεί (έχει δηλαδή γίνει stretch μέσω πολλαπλών update),
τότε θα χρειαστεί να κάνει restart και την php-fpm για να λειτουργήσουν όσα ανέφερα.
Αν δεν κάνω λάθος, η fpm δεν υπάρχει πλέον στα αποθετήρια.

Όπως και να'χει, το σενάριο αναφέρεται κυρίως στο πως να "τσακώνει" ο fail2ban τους κακόβουλους, κάτι το οποίο δεν
κάνει εξ'ορισμού, και δυστυχώς αν δεν το προσέξει κανείς, νομίζει πως όλα είναι μια χαρά.