So installieren, konfigurieren und sichern Sie den FTP -Server in CentOS 7 - [umfassender Handbuch]

So installieren, konfigurieren und sichern Sie den FTP -Server in CentOS 7 - [umfassender Handbuch]

Ftp (Dateiübertragungsprotokoll) ist ein herkömmliches und weit verbreitetes Standard -Tool zum Übertragen von Dateien zwischen einem Server und Clients über ein Netzwerk, insbesondere wenn keine Authentifizierung erforderlich ist (es ermöglicht den anonymen Benutzern, eine Verbindung zu einem Server herzustellen). Wir müssen verstehen, dass FTP standardmäßig unsicher ist, da es Benutzeranmeldeinformationen und Daten ohne Verschlüsselung überträgt.

In diesem Handbuch werden die Schritte zum Installieren, Konfigurieren und sichern und sichern Sie einen FTP -Server (Vsftpd steht für "Sehr sicherer FTP -Daemon") In Centos/Rhel 7 Und Fedora Verteilungen.

Beachten Sie, dass alle Befehle in diesem Handbuch ausgeführt werden als Wurzel, Falls Sie den Server nicht mit dem bedienen Wurzel Konto, verwenden Sie den Befehl sudo, um Root -Privilegien zu erhalten.

Schritt 1: FTP -Server installieren

1. Installation vsftpd Der Server ist einfach. Führen Sie einfach den folgenden Befehl im Terminal aus.

# yum install vsftpd 

2. Nach Abschluss der Installation wird der Dienst zunächst deaktiviert, sodass wir ihn vorerst manuell starten müssen und ihn ermöglichen, auch automatisch vom nächsten Systemstiefel zu starten:

# Systemctl Start VSFTPD # SystemCTL aktivieren VSFTPD 

3. Als nächstes müssen wir den Anschluss öffnen, um den Zugriff auf FTP -Dienste von externen Systemen zu ermöglichen 21, Wo die FTP -Daemons wie folgt zuhören:

# Firewall-cmd --zone = public --permanent --add-port = 21/tcp # Firewall-cmd --zone = public --permanent --add-service = ftp # firewall-cmd-Reload 

Schritt 2: FTP -Server konfigurieren

4. Jetzt werden wir übergehen, um einige Konfigurationen auszuführen, um unseren FTP -Server einzurichten und zu sichern. Beginnen wir mit einer Sicherung der ursprünglichen Konfigurationsdatei /etc/vsftpd/vsftpd.Conf:

# CP/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.Conf.orig 

Öffnen Sie anschließend die obige Konfigurationsdatei und setzen Sie die folgenden Optionen mit diesen entsprechenden Werten fest:

anonymous_enable = no # Deaktivieren Sie Anonymous Login local_enable = yes # erlauben lokale Logins write_enable = yes # Aktivieren Sie FTP -Befehle, mit denen das Dateisystem local_umask = 022 # Wert von UMask für die Dateierstellung für lokale Benutzer Dirmessage_Enable = Ja # Aktivieren von Botschaften aktivieren können, wenn Benutzer zuerst eingeben. Ein neues Verzeichnis xferlog_enable = yes # Eine Protokolldatei wird detaillierte Uploads und Downloads Connect_From_Port_20 = Ja # Verwenden Sie Port 20 (FTP-DATA) auf dem Servermaschine für Portstil-Verbindungen XFERLOG_STD_FORMAT = yes # # Standard-Log-Datei Format Hören = Nein # # # # VSFTPD verhindern, dass VSFTPD im Standalone -Modus ausführt # Schalten Sie TCP -Wrapper ein 

5. Konfigurieren Sie nun FTP, um Benutzern den FTP -Zugriff basierend auf der Benutzerlistendatei zuzulassen/verweigern /etc/vsftpd.Benutzerliste.

Standardmäßig sind Benutzer in aufgeführte Benutzer Benutzerlist_file =/etc/vsftpd.Benutzerliste werden an den Anmeldungszugriff mit verweigert UserList_deny Option eingestellt auf JA, Wenn userlist_enable = yes.

Jedoch, userlist_deny = nr verändert die Einstellung, was bedeutet, dass nur Benutzer explizit aufgeführt sind Benutzerlist_file =/etc/vsftpd.Benutzerliste wird sich anmelden.

userlist_enable = yes # vsftpd lädt eine Liste von Benutzernamen aus dem Dateinamen von userlist_file userlist_file =/etc/vsftpd.Benutzerliste # speichert Benutzernamen. userlist_deny = nr 

Das ist noch nicht alles, wenn Benutzer sich beim FTP -Server anmelden, sie in ein chrootiertes Gefängnis platziert werden. Dies ist das lokale Root -Verzeichnis, das nur als Heimverzeichnis für die FTP -Sitzung fungiert.

Als nächst.

6. Fügen Sie nun diese beiden folgenden Optionen hinzu, um die FTP -Benutzer auf ihre Heimverzeichnisse zu beschränken.

CHROOT_LOCAL_USER = JA ZEIN ADGE_WRITEABLE_CHROOT = JA 

chroot_local_user = ja bedeutet, dass lokale Benutzer in einem Chroot -Gefängnis, ihrem Heimverzeichnis nach Anmeldung standardmäßig Einstellungen, platziert werden.

Und standardmäßig erlaubt VSFTPD das Chroot -Gefängnisverzeichnis nicht aus Sicherheitsgründen, die wir jedoch die Option verwenden können degly_writable_chroot = yes Um diese Einstellung zu überschreiben.

Speichern Sie die Datei und schließen Sie sie.

Sichern Sie den FTP -Server mit Selinux

7. Lassen Sie uns nun die festlegen Selinux Boolean unten, damit FTP Dateien im Heimverzeichnis eines Benutzers lesen kann. Beachten Sie, dass dies ursprünglich mit dem Befehl erledigt wurde:

# setsbool -p ftp_home_dir auf 

Allerdings die ftp_home_dir Die Richtlinie wurde standardmäßig deaktiviert, wie in diesem Fehlerbericht erläutert: https: // bugzilla.roter Hut.com/show_bug.CGI?ID = 1097775.

Jetzt werden wir verwenden Semanage Befehl zum Festlegen der Selinux -Regel, damit FTP das Heimverzeichnis des Benutzers lesen/schreiben kann.

# semanage boolean -m ftpd_full_access --on 

Zu diesem Zeitpunkt müssen wir VSFTPD neu starten, um alle Änderungen zu bewirken, die wir bisher vorgenommen haben:

# Systemctl Neustart VSFTPD 

Schritt 4: FTP -Server testen

8. Jetzt testen wir den FTP -Server, indem wir einen FTP -Benutzer mit dem Befehl userAdd erstellen.

# UserAdd -m -c "Ravi Saive, CEO" -S /Bin /Bash Ravi # Passwd Ravi 

Danach müssen wir den Benutzer hinzufügen Ravi zur Datei /etc/vsftpd.Benutzerliste Verwenden Sie den Befehl echo wie folgt:

# Echo "Ravi" | tee -a /etc /vsftpd.Benutzerliste # cat /etc /vsftpd.Benutzerliste 

9. Jetzt ist es Zeit zu testen, ob unsere obigen Einstellungen korrekt funktionieren. Beginnen wir mit dem Testen anonymer Anmeldungen. Wir können aus dem Screenshot unten sehen, dass anonyme Anmeldungen nicht zulässig sind:

# FTP 192.168.56.10 Verbunden mit 192.168.56.10 (192.168.56.10)). 220 Willkommen bei Tecmint.Com FTP -Service. Name (192.168.56.10: Wurzel): Anonyme 530 Erlaubnis abgelehnt. Fehler bei der Anmeldung. ftp> 
Testen Sie anonyme FTP -Login

10. Testen wir auch, ob ein Benutzer, der nicht in der Datei aufgeführt ist /etc/vsftpd.Benutzerliste Erteilt die Erlaubnis zur Anmeldung, was nicht der Fall ist wie im folgenden Screenshot:

# FTP 192.168.56.10 Verbunden mit 192.168.56.10 (192.168.56.10)). 220 Willkommen bei Tecmint.Com FTP -Service. Name (192.168.56.10: Wurzel): Aaronkilik 530 Erlaubnis abgelehnt. Fehler bei der Anmeldung. ftp> 
Die FTP -Benutzeranmeldung ist fehlgeschlagen

11. Führen Sie nun eine endgültige Überprüfung durch, wenn ein Benutzer in der Datei aufgeführt ist /etc/vsftpd.Benutzerliste, wird tatsächlich nach dem Login in sein Heimverzeichnis platziert:

# FTP 192.168.56.10 Verbunden mit 192.168.56.10 (192.168.56.10)). 220 Willkommen bei Tecmint.Com FTP -Service. Name (192.168.56.10: root): ravi 331 Bitte geben Sie das Passwort an. Passwort: 230 erfolgreich anmelden. Remote -Systemtyp ist Unix. Verwenden des Binärmodus, um Dateien zu übertragen. ftp> ls 

FTP -Benutzeranmeldung erfolgreich [Warnung: Verwenden degly_writable_chroot = yes Hat bestimmte Sicherheitsauswirkungen, insbesondere wenn die Benutzer eine hochladende Berechtigung oder einen Shell -Zugriff erhalten haben.

Aktivieren Sie diese Option nur, wenn Sie genau wissen, was Sie tun. Es ist wichtig zu beachten.

Daher werden wir uns mit einer sichereren Möglichkeit befassen, im nächsten Abschnitt ein anderes nicht geschriebenes lokales Root-Verzeichnis festzulegen.

Schritt 5: Konfigurieren Sie verschiedene FTP -Benutzer -Home -Verzeichnisse

12. Öffnen Sie die VSFTPD -Konfigurationsdatei erneut und kommentieren Sie zunächst die unsichere Option unten:

#erlauben_writable_chroot = ja 

Erstellen Sie dann das alternative lokale Root -Verzeichnis für den Benutzer (Ravi, Ihre ist wahrscheinlich anders) und entfernen Sie Schreibberechtigungen an alle Benutzer in dieses Verzeichnis:

# mkdir/home/ravi/ftp # chown Niemand: Niemand/home/ravi/ftp # chmod a-w/home/ravi/ftp 

13. Erstellen Sie als Nächstes ein Verzeichnis unter der lokalen Stamme, in dem der Benutzer seine Dateien speichert:

# MKDIR/HOME/RAVI/FTP/FILDES # Chown Ravi: Ravi/Home/Ravi/FTP/Dateien # Chmod 0700/home/ravi/ftp/files/ 

Fügen Sie dann die folgenden Optionen in die VSFTPD -Konfigurationsdatei mit diesen Werten hinzu/ändern/ändern/

user_sub_token = $ user # fügt den Benutzernamen in das lokale Root -Verzeichnis local_root =/home/$ user/ftp # ein definiert ein lokales Root -Verzeichnis von Benutzern 

Speichern Sie die Datei und schließen Sie sie. Lassen Sie uns den Service erneut mit den neuen Einstellungen neu starten:

# Systemctl Neustart VSFTPD 

14. Führen Sie nun erneut einen endgültigen Test durch und sehen Sie, dass das lokale Root -Verzeichnis der Benutzer das FTP -Verzeichnis ist, das wir in seinem Heimverzeichnis erstellt haben.

# FTP 192.168.56.10 Verbunden mit 192.168.56.10 (192.168.56.10)). 220 Willkommen bei Tecmint.Com FTP -Service. Name (192.168.56.10: root): ravi 331 Bitte geben Sie das Passwort an. Passwort: 230 erfolgreich anmelden. Remote -Systemtyp ist Unix. Verwenden des Binärmodus, um Dateien zu übertragen. ftp> ls 
FTP User Home Directory Login erfolgreich

Das ist es! In diesem Artikel haben wir beschrieben, wie man einen FTP -Server in CentOS 7 installiert, konfigurieren und sichere.

Vorgeschlagene Lesen: Installieren Sie den ProfTPD -Server auf RHEL/Centos 7

Im nächsten Artikel zeigen wir Ihnen auch, wie Sie einen FTP -Server mithilfe von SSL/TLS -Verbindungen in CentOS 7 sichern können. Bis dahin bleiben Sie mit Tecmint verbunden.