In dieser kurzen Konfiguration werden wir den FTP-Dateiserver unter RHEL7 Linux mit vsftpd installieren. Wir bleiben bei der standardmäßigen vsftpd-Konfiguration, die es Benutzerkonten auf unserem bestehenden RHEL7-Linux-System ermöglicht, sich über FTP von einem entfernten Standort aus anzumelden, Dateien aufzulisten und zu übertragen. Beginnen wir mit der Installation:
Um den FTP-Server auf Redhat 7 Linux zu installieren, können wir entweder tftp-server
verwenden oder vsftpd
Dämon. In dieser Anleitung verwenden wir vsftpd
:
[root@rhel7 ~]# yum install vsftpd
Als nächstes können wir den vsftpd
starten Dienst, indem Sie einen service
verwenden Befehl:
[root@rhel7 ~]# service vsftpd start Redirecting to /bin/systemctl start vsftpd.service
Um den Start des FTP-Dienstes nach dem Systemneustart dauerhaft zu machen, verwenden Sie:
[root@rhel7 ~]# systemctl enable vsftpd ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
Überprüfen Sie, ob Port 21
ist offen. Machen Sie sich keine Sorgen, wenn IPv4 dieses Ports nicht als IPv6-Bindung geöffnet ist.
[root@rhel7 ~]# netstat -tanp | grep LISTEN
Wir müssen auch den Firewall-Port öffnen, andernfalls sehen wir beim Verbindungsversuch die folgende Fehlermeldung:
ftp: connect: No route to host ftp>
Um einen Port 21 auf Redhat 7 Linux zu öffnen, verwenden Sie die folgenden Linux-Befehle. Der Port bleibt auch nach dem Systemneustart für die Öffentlichkeit offen:
[root@rhel7 ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent success [root@rhel7 ~]# firewall-cmd --reload success
An diesem Punkt sollten wir in der Lage sein, eine Verbindung von einem entfernten Host herzustellen, bei dem die IP-Adresse unseres FTP-Dienstes 10.1.1.110
ist :
$ ftp 10.1.1.110 Connected to 10.1.1.110 (10.1.1.110). 220 (vsFTPd 3.0.2) Name (10.1.1.110:lrendek): rhel7 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Die nächste Konfiguration, die wir durchführen müssen, ist die Aktivierung des iptables-Moduls ip_conntrack_ftp
andernfalls erhalten wir nach erfolgreicher Anmeldung folgende Fehlermeldung Abfrage unseres FTP-Servers:
ftp> ls 227 Entering Passive Mode (10,1,1,110,166,190). ftp: connect: No route to host ftp>
Als Übergangslösung verwenden wir modprobe
zum Laden des ip_conntrack_ftp
Modul:
[root@rhel7 ~]# modprobe ip_conntrack_ftp
Auf dieser Seite finden Sie eine dauerhaftere Lösung zum Laden des Moduls ip_conntrack_ftp nach dem Neustart.
Die letzte Konfiguration, die wir durchführen müssen, besteht darin, den Selinux-FTP-Kontext für Benutzerverzeichnisse zu aktivieren, die sich derzeit auf dem System befinden. Andernfalls können wir keine Dateien lesen/schreiben oder zwischen FTP-Server und FTP-Client übertragen:
230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> put ftp-test.txt local: ftp-test.txt remote: ftp-test.txt 227 Entering Passive Mode (10,1,1,110,125,139). 553 Could not create file.
So aktivieren Sie den Kontext des Selinux-FTP-Home-Verzeichnisses, um Lese- und Schreibbefehle zuzulassen. Dafür verwenden wir setsebool
Befehl:
[root@rhel7 ~]# setsebool -P ftp_home_dir=1
Das Obige setzt den Kontext des Selinux-FTP-Home-Verzeichnisses dauerhaft -P
nach Neustart.
ftp> put ftp-test.txt local: ftp-test.txt remote: ftp-test.txt 227 Entering Passive Mode (10,1,1,110,174,219). 150 Ok to send data. 226 Transfer complete.
Jetzt haben Sie Ihren FTP-Server eingerichtet. Weitere Konfigurationsoptionen finden Sie in der Hauptkonfigurationsdatei des vsftpd-FTP-Servers /etc/vsftpd/vsftpd.conf
. Wenn Sie Änderungen an der Konfigurationsdatei vornehmen, stellen Sie sicher, dass diese angewendet werden, indem Sie den FTP-Dienst neu starten:
[root@rhel7 ~]# service vsftpd restart Redirecting to /bin/systemctl restart vsftpd.service