Πώς να περιορίσετε τους χρήστες SFTP στους καταλόγους οικίας χρησιμοποιώντας το chroot Jail


Σε αυτό το σεμινάριο, θα συζητήσουμε πώς να περιορίσετε τους χρήστες SFTP στους οικιακούς τους καταλόγους ή σε συγκεκριμένους καταλόγους. Σημαίνει ότι ο χρήστης μπορεί να έχει πρόσβαση μόνο στον αντίστοιχο οικείο κατάλογο του/της, όχι σε ολόκληρο το σύστημα αρχείων.

Ο περιορισμός των οικιακών καταλόγων των χρηστών είναι ζωτικής σημασίας, ειδικά σε ένα κοινόχρηστο περιβάλλον διακομιστή, έτσι ώστε ένας μη εξουσιοδοτημένος χρήστης να μην κοιτάζει κρυφά στα αρχεία και τους φακέλους του άλλου χρήστη.

Σημαντικό: Λάβετε επίσης υπόψη ότι ο σκοπός αυτού του άρθρου είναι να παρέχει μόνο πρόσβαση SFTP και όχι συνδέσεις SSH, ακολουθώντας αυτό το άρθρο θα έχετε τα δικαιώματα για τη μεταφορά αρχείων, αλλά δεν επιτρέπεται η πραγματοποίηση απομακρυσμένης συνεδρίας SSH.

Προτεινόμενη ανάγνωση: Περιορισμός της πρόσβασης χρήστη SSH σε συγκεκριμένο κατάλογο χρησιμοποιώντας Chrooted Jail

Ο απλούστερος τρόπος για να το κάνετε αυτό, είναι να δημιουργήσετε ένα περιβάλλον chrooted jail για πρόσβαση SFTP. Αυτή η μέθοδος είναι ίδια για όλα τα λειτουργικά συστήματα Unix/Linux. Χρησιμοποιώντας περιβάλλον chroot, μπορούμε να περιορίσουμε τους χρήστες είτε στον αρχικό τους κατάλογο είτε σε έναν συγκεκριμένο κατάλογο.

Περιορίστε τους χρήστες στους αρχικούς καταλόγους

Σε αυτήν την ενότητα, θα δημιουργήσουμε μια νέα ομάδα που ονομάζεται sftpgroup και θα εκχωρήσουμε τη σωστή ιδιοκτησία και δικαιώματα σε λογαριασμούς χρηστών. Υπάρχουν δύο επιλογές για τον περιορισμό των χρηστών στο σπίτι ή σε συγκεκριμένους καταλόγους, θα δούμε και τους δύο τρόπους σε αυτό το άρθρο.

Δημιουργία ή τροποποίηση χρηστών και ομάδων

Ας περιορίσουμε τον υπάρχοντα χρήστη, για παράδειγμα tecmint, στον αρχικό του κατάλογο με το όνομα /home/tecmint. Για αυτό, πρέπει να δημιουργήσετε μια νέα ομάδα sftpgroup χρησιμοποιώντας την εντολή groupadd όπως φαίνεται:

groupadd sftpgroup

Στη συνέχεια, αντιστοιχίστε στον χρήστη ‘tecmint’ στην ομάδα sftpgroup.

usermod -G sftpgroup tecmint

Μπορείτε επίσης να δημιουργήσετε έναν νέο χρήστη χρησιμοποιώντας την εντολή useradd, για παράδειγμα senthil και να εκχωρήσετε τον χρήστη στην ομάδα sftpusers.

adduser senthil -g sftpgroup -s /sbin/nologin
passwd tecmint

Τροποποίηση αρχείου διαμόρφωσης SSH

Ανοίξτε και προσθέστε τις ακόλουθες γραμμές στο αρχείο διαμόρφωσης /etc/ssh/sshd_config.

Subsystem sftp internal-sftp
 
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Αποθηκεύστε και βγείτε από το αρχείο, επανεκκινήστε την υπηρεσία sshd για να ισχύσουν οι νέες αλλαγές.

systemctl restart sshd
OR
service sshd restart

Εάν κάνετε chroot πολλαπλούς χρήστες στον ίδιο κατάλογο, θα πρέπει να αλλάξετε τα δικαιώματα του αρχικού καταλόγου κάθε χρήστη, προκειμένου να αποτρέψετε όλους τους χρήστες να περιηγηθούν στους οικιακούς καταλόγους μεταξύ των χρηστών.

chmod 700 /home/tecmint

Επαληθεύστε τη σύνδεση χρηστών SSH και SFTP

Τώρα, ήρθε η ώρα να ελέγξετε τη σύνδεση από ένα τοπικό σύστημα. Προσπαθήστε να αποσυνδέσετε το απομακρυσμένο σύστημά σας από το τοπικό σας σύστημα.

ssh [email 

Εδώ,

  1. tecmint – όνομα χρήστη απομακρυσμένου συστήματος.
  2. 192.168.1.150 – Η διεύθυνση IP του απομακρυσμένου συστήματος.
Δείγμα εξόδου:
[email 's password: 
Could not chdir to home directory /home/tecmint: No such file or directory
This service allows sftp connections only.
Connection to 192.168.1.150 closed.

Στη συνέχεια, αποκτήστε πρόσβαση στο απομακρυσμένο σύστημα χρησιμοποιώντας SFTP.

sftp [email 
Δείγμα εξόδου:
[email 's password: 
Connected to 192.168.1.150.
sftp>

Ας ελέγξουμε τον τρέχοντα κατάλογο εργασίας:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Εδώ, το tecmint είναι ο αρχικός κατάλογος. Cd στον κατάλογο tecmint και δημιουργήστε τα αρχεία ή τους φακέλους της επιλογής σας.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

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

Στο προηγούμενο παράδειγμά μας, περιορίζουμε τους υπάρχοντες χρήστες στον αρχικό κατάλογο. Τώρα, θα δούμε πώς να περιορίσετε έναν νέο χρήστη σε έναν προσαρμοσμένο κατάλογο.

Δημιουργία ομάδας και νέων χρηστών

Δημιουργήστε μια νέα ομάδα sftpgroup.

groupadd sftpgroup

Στη συνέχεια, δημιουργήστε έναν κατάλογο για την ομάδα SFTP και εκχωρήστε δικαιώματα για τον χρήστη root.

mkdir -p /sftpusers/chroot
chown root:root /sftpusers/chroot/

Στη συνέχεια, δημιουργήστε νέους καταλόγους για κάθε χρήστη, στους οποίους θα έχει πλήρη πρόσβαση. Για παράδειγμα, θα δημιουργήσουμε τον χρήστη tecmint και είναι ο νέος οικιακός κατάλογος με τη σωστή άδεια ομάδας χρησιμοποιώντας τις ακόλουθες σειρές εντολών.

adduser tecmint -g sftpgroup -s /sbin/nologin
passwd tecmint
mkdir /sftpusers/chroot/tecmint
chown tecmint:sftpgroup /sftpusers/chroot/tecmint/
chmod 700 /sftpusers/chroot/tecmint/

Διαμόρφωση SSH για πρόσβαση SFTP

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

#Subsystem  	sftp	/usr/libexec/openssh/sftp-server
Subsystem sftp  internal-sftp
 
Match Group sftpgroup
   ChrootDirectory /sftpusers/chroot/
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Αποθηκεύστε και βγείτε από το αρχείο. Επανεκκινήστε την υπηρεσία sshd για να εφαρμόσετε τις αποθηκευμένες αλλαγές.

systemctl restart sshd
OR
service sshd restart

Αυτό είναι όλο, μπορείτε να ελέγξετε συνδέοντας τον απομακρυσμένο διακομιστή SSH και SFTP χρησιμοποιώντας το βήμα που παρέχεται παραπάνω στην ενότητα Επαλήθευση σύνδεσης SSH και SFTP.

Λάβετε υπόψη ότι αυτή η μέθοδος θα απενεργοποιήσει την πρόσβαση φλοιού, δηλαδή δεν μπορείτε να αποκτήσετε πρόσβαση στη συνεδρία φλοιού του απομακρυσμένου συστήματος χρησιμοποιώντας SSH. Μπορείτε να έχετε πρόσβαση στα απομακρυσμένα συστήματα μόνο μέσω SFTP και να κάνετε μεταφορά αρχείων από και προς τα τοπικά και απομακρυσμένα συστήματα.

συμπέρασμα

Τώρα ξέρετε πώς να περιορίσετε τους οικιακούς καταλόγους των χρηστών χρησιμοποιώντας ένα περιβάλλον Chroot στο Linux. Εάν το βρίσκετε χρήσιμο, μοιραστείτε αυτό το άρθρο στα κοινωνικά σας δίκτυα και ενημερώστε μας στην παρακάτω ενότητα σχολίων εάν υπάρχουν άλλες μέθοδοι περιορισμού των οικιακών καταλόγων των χρηστών.