Πώς να αποκλείσετε την πρόσβαση SSH και FTP σε συγκεκριμένη IP και εύρος δικτύου στο Linux
Συνήθως όλοι χρησιμοποιούμε συχνά τις υπηρεσίες SSH και FTP για πρόσβαση στους απομακρυσμένους διακομιστές και στους εικονικούς ιδιωτικούς διακομιστές. Ως διαχειριστής Linux, πρέπει να γνωρίζετε πώς να αποκλείσετε την πρόσβαση SSH και FTP σε συγκεκριμένη περιοχή IP ή δικτύου στο Linux, προκειμένου να ενισχύσετε λίγο περισσότερο την ασφάλεια.
- 25 Συμβουλές ασφαλείας για διακομιστές Linux
- 5 χρήσιμες συμβουλές για την ασφάλεια και την προστασία του διακομιστή SSH
Αυτό το σεμινάριο θα σας δείξει πώς να αποκλείσετε την πρόσβαση SSH και FTP σε μια συγκεκριμένη διεύθυνση IP ή/και μια περιοχή δικτύου σε διακομιστή CentOS 6 και 7. Αυτός ο οδηγός δοκιμάστηκε σε εκδόσεις CentOS 6.x και 7.x, αλλά πιθανότατα θα λειτουργήσει σε άλλες διανομές Linux όπως το Debian, το Ubuntu και το SUSE/openSUSE κ.λπ.
Θα το κάνουμε με δύο τρόπους. Η πρώτη μέθοδος χρησιμοποιεί IPTables/firewallD και η δεύτερη μέθοδος χρησιμοποιεί περιτυλίγματα TCP με τη βοήθεια του hosts.allow και hosts.deny.
Ανατρέξτε στους παρακάτω οδηγούς για να μάθετε περισσότερα σχετικά με τα IPTables και το Firewalld.
- Βασικός οδηγός για IPTables (Τείχος προστασίας Linux) Συμβουλές/εντολές
- Πώς να ρυθμίσετε ένα τείχος προστασίας Iptables για να ενεργοποιήσετε την απομακρυσμένη πρόσβαση σε υπηρεσίες στο Linux
- Τρόπος ρύθμισης παραμέτρων FirewallD σε RHEL/CentOS 7 και Fedora 21
- Χρήσιμοι κανόνες FirewallD για τη διαμόρφωση και τη διαχείριση του τείχους προστασίας στο Linux
Τώρα γνωρίζετε τι είναι τα IPTables και το FirewallD και είναι τα βασικά.
Μέθοδος 1: Αποκλεισμός πρόσβασης SSH και FTP χρησιμοποιώντας IPTables/FirewallD
Ας δούμε τώρα πώς να αποκλείσουμε την πρόσβαση SSH και FTP σε μια συγκεκριμένη IP (για παράδειγμα 192.168.1.100) ή/και εύρος δικτύου (για παράδειγμα 192.168.1.0/24) χρησιμοποιώντας IPtables σε εκδόσεις RHEL/CentOS/Scientific Linux 6.x και FirewallD σε CentOS 7.x.
Αποκλεισμός ή απενεργοποίηση της πρόσβασης SSH
--------------------- On IPtables Firewall --------------------- # iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j REJECT # iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j REJECT
--------------------- On FirewallD --------------------- # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j REJECT # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j REJECT
Για να τεθούν σε ισχύ νέοι κανόνες, πρέπει να χρησιμοποιήσετε την ακόλουθη εντολή.
# service iptables save [On IPtables Firewall] # firewall-cmd --reload [On FirewallD]
Τώρα, δοκιμάστε να SSH τον διακομιστή από τον αποκλεισμένο κεντρικό υπολογιστή. Λάβετε υπόψη ότι εδώ 192.168.1.150 είναι ο αποκλεισμένος κεντρικός υπολογιστής.
# ssh 192.168.1.150
Θα πρέπει να δείτε το ακόλουθο μήνυμα.
ssh: connect to host 192.168.1.150 port 22: Connection refused
Ξεμπλοκάρετε ή ενεργοποιήστε την πρόσβαση SSH
Για να ξεμπλοκάρετε ή να ενεργοποιήσετε την πρόσβαση SSH, μεταβείτε στον απομακρυσμένο διακομιστή και εκτελέστε την ακόλουθη εντολή:
--------------------- On IPtables Firewall --------------------- # iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j ACCEPT # iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport ssh -j ACCEPT
--------------------- On FirewallD --------------------- # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j ACCEPT # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j ACCEPT
Αποθηκεύστε τις αλλαγές χρησιμοποιώντας τα ακόλουθα για πρόσβαση στον διακομιστή σας μέσω SSH.
# service iptables save [On IPtables Firewall] # firewall-cmd --reload [On FirewallD]
Αποκλεισμός ή απενεργοποίηση της πρόσβασης FTP
Συνήθως, οι προεπιλεγμένες θύρες για FTP είναι 20 και 21. Έτσι, για να αποκλείσετε όλη την κίνηση FTP χρησιμοποιώντας IPTables εκτελέστε την ακόλουθη εντολή:
--------------------- On IPtables Firewall --------------------- # iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j REJECT # iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT
--------------------- On FirewallD --------------------- # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j REJECT # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT
Για να τεθούν σε ισχύ νέοι κανόνες, πρέπει να χρησιμοποιήσετε την ακόλουθη εντολή.
# service iptables save [On IPtables Firewall] # firewall-cmd --reload [On FirewallD]
Τώρα, δοκιμάστε να αποκτήσετε πρόσβαση στον διακομιστή από τον αποκλεισμένο κεντρικό υπολογιστή (192.168.1.100), με την εντολή:
# ftp 192.168.1.150
Θα λάβετε ένα μήνυμα σφάλματος όπως παρακάτω.
ftp: connect: Connection refused
Ξεμπλοκάρετε ή ενεργοποιήστε την πρόσβαση FTP
Για να ξεμπλοκάρετε και να ενεργοποιήσετε ξανά την πρόσβαση FTP, εκτελέστε:
--------------------- On IPtables Firewall --------------------- # iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT # iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT
--------------------- On FirewallD --------------------- # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT
Αποθηκεύστε τις αλλαγές με την εντολή:
# service iptables save [On IPtables Firewall] # firewall-cmd --reload [On FirewallD]
Τώρα, δοκιμάστε να αποκτήσετε πρόσβαση στον διακομιστή μέσω FTP:
# ftp 192.168.1.150
Εισαγάγετε το όνομα χρήστη και τον κωδικό πρόσβασής σας στο ftp.
Connected to 192.168.1.150. 220 Welcome to TecMint FTP service. Name (192.168.1.150:sk): tecmint 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Μέθοδος 2: Αποκλεισμός πρόσβασης SSH και FTP χρησιμοποιώντας περιτυλίγματα TCP
Αν δεν θέλετε να μπλέξετε με IPTables ή FirewallD, τότε τα TCP wrappers είναι ο καλύτερος τρόπος για να αποκλείσετε την πρόσβαση SSH και FTP σε ένα συγκεκριμένο IP ή/και ένα εύρος δικτύου.
Το OpenSSH και το FTP έχουν μεταγλωττιστεί με υποστήριξη περιτυλίγματος TCP, πράγμα που σημαίνει ότι μπορείτε να καθορίσετε ποιοι κεντρικοί υπολογιστές επιτρέπεται να συνδέονται χωρίς να αγγίζουν το τείχος προστασίας σας στα ακόλουθα δύο σημαντικά αρχεία και είναι:
- /etc/hosts.allow
- /etc/hosts.deny
Όπως υποδηλώνει το όνομα, το πρώτο αρχείο περιέχει καταχωρήσεις επιτρεπόμενων κεντρικών υπολογιστών και το δεύτερο περιέχει διευθύνσεις αποκλεισμένων κεντρικών υπολογιστών.
Για παράδειγμα, ας αποκλείσουμε την πρόσβαση SSH και FTP σε κεντρικό υπολογιστή που έχει διεύθυνση IP 192.168.1.100 και εύρος δικτύου 192.168.1.0. Αυτή η μέθοδος είναι ίδια για τις σειρές CentOS 6.x και 7.x. Και, φυσικά, θα λειτουργήσει σε άλλες διανομές όπως Debian, Ubuntu, SUSE, openSUSE κ.λπ.
Ανοίξτε το αρχείο /etc/hosts.deny
και προσθέστε τις ακόλουθες Διευθύνσεις IP ή εύρος δικτύου που θέλετε να αποκλείσετε όπως φαίνεται παρακάτω.
##### To block SSH Access ##### sshd: 192.168.1.100 sshd: 192.168.1.0/255.255.255.0 ##### To block FTP Access ##### vsftpd: 192.168.1.100 vsftpd: 192.168.1.0/255.255.255.0
Αποθηκεύστε και βγείτε από το αρχείο.
Τώρα, επανεκκινήστε την υπηρεσία sshd και vsftpd για να τεθούν σε ισχύ οι νέες αλλαγές.
--------------- For SSH Service --------------- # service sshd restart [On SysVinit] # systemctl restart sshd [On SystemD]
--------------- For FTP Service --------------- # service vsftpd restart [On SysVinit] # systemctl restart vsftpd [On SystemD]
Τώρα, δοκιμάστε να κάνετε SSH στον διακομιστή ή από έναν αποκλεισμένο κεντρικό υπολογιστή.
# ssh 192.168.1.150
Θα δείτε την ακόλουθη έξοδο:
ssh_exchange_identification: read: Connection reset by peer
Τώρα, δοκιμάστε να κάνετε FTP στον διακομιστή ή από έναν αποκλεισμένο κεντρικό υπολογιστή.
# ftp 192.168.1.150
Θα δείτε την ακόλουθη έξοδο:
Connected to 192.168.1.150. 421 Service not available.
Για να ξεμπλοκάρετε ή να ενεργοποιήσετε ξανά τις υπηρεσίες SSH και FTP, επεξεργαστείτε το αρχείο hosts.deny και σχολιάστε όλες τις γραμμές και, τέλος, επανεκκινήστε τις υπηρεσίες vsftpd και sshd.
συμπέρασμα
Αυτα για τωρα. Συνοψίζοντας, σήμερα μάθαμε πώς να αποκλείουμε μια συγκεκριμένη διεύθυνση IP και εύρος δικτύου χρησιμοποιώντας IPTables, FirewallD και περιτυλίγματα TCP. Αυτές οι μέθοδοι είναι αρκετά εύκολες και απλές.
Ακόμη και ένας αρχάριος διαχειριστής Linux μπορεί να το κάνει αυτό σε λίγα λεπτά. Εάν γνωρίζετε κάποιους άλλους τρόπους για να αποκλείσετε την πρόσβαση SSH και FTP, μη διστάσετε να τους μοιραστείτε στην ενότητα σχολίων. Και μην ξεχάσετε να μοιραστείτε τα άρθρα μας σε όλα τα κοινωνικά σας δίκτυα.