Πώς να αποκλείσετε την πρόσβαση SSH και FTP σε συγκεκριμένη IP και εύρος δικτύου στο Linux


Συνήθως όλοι χρησιμοποιούμε συχνά τις υπηρεσίες SSH και FTP για πρόσβαση στους απομακρυσμένους διακομιστές και στους εικονικούς ιδιωτικούς διακομιστές. Ως διαχειριστής Linux, πρέπει να γνωρίζετε πώς να αποκλείσετε την πρόσβαση SSH και FTP σε συγκεκριμένη περιοχή IP ή δικτύου στο Linux, προκειμένου να ενισχύσετε λίγο περισσότερο την ασφάλεια.

  1. 25 Συμβουλές ασφαλείας για διακομιστές Linux
  2. 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.

  1. Βασικός οδηγός για IPTables (Τείχος προστασίας Linux) Συμβουλές/εντολές
  2. Πώς να ρυθμίσετε ένα τείχος προστασίας Iptables για να ενεργοποιήσετε την απομακρυσμένη πρόσβαση σε υπηρεσίες στο Linux
  3. Τρόπος ρύθμισης παραμέτρων FirewallD σε RHEL/CentOS 7 και Fedora 21
  4. Χρήσιμοι κανόνες 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, πράγμα που σημαίνει ότι μπορείτε να καθορίσετε ποιοι κεντρικοί υπολογιστές επιτρέπεται να συνδέονται χωρίς να αγγίζουν το τείχος προστασίας σας στα ακόλουθα δύο σημαντικά αρχεία και είναι:

  1. /etc/hosts.allow
  2. /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, μη διστάσετε να τους μοιραστείτε στην ενότητα σχολίων. Και μην ξεχάσετε να μοιραστείτε τα άρθρα μας σε όλα τα κοινωνικά σας δίκτυα.