Inhaltsverzeichnis

FTP-Dienst

Aktiver Modus:

Der Client meldet sich auf Port 21 an und der FTP-Server baut aktiv eine Verbindung 
zum Client über Port 20 auf.

Ports:

20/tcp 		-> ftp-data
21/tcp		-> ftp-Steuerport

PasvMode:

Der Client meldet sich beim FTP-Server über Port 21 an und teilt mit, über welchen Port, 
aus dem dynamischen Bereich, die Verbindung weiterführen wird. 
	  
Ports:
21/ctp		-> ftp-Steuerport
dyn. Port 	-> 1023				->  Client baut die Verbindung auf, d. h. auf dem FTP-Server 
									über Port 49000 auf, der Port muss dann offen sein

VSFTPD (Very Secure FTP Daemon)

Benötigte Pakete bei Centos7 installieren:

 yum install vsftpd -y

vsftpd hat nur ein Konfigurationsfile:

/etc/fsftpd.conf (/etc/vsftpd/vsftpd.conf)

Parameter der /etc/fsftpd.conf:

listen=YES
listen_ipv6=yes 					-> dann hört er nur auf IPv6
write_enable=YES 					-> Schreiben erlauben
anonymous_enable=YES
anon_root=/var/spool/ftp			-> muss schreibgeschützt sein, Scheibrechte dürfen nur auf ein Unterverzeichnis eingerichtet werden
anon_upload_enable=YES	
anon_mkdir_write_enable=YES
local_enable=YES
chroot_local_user=YES
xferlog_enable=YES
ftpd_banner=<Begrüssungstext>
rsa_cert_file/etc/ssl/private/vsftpd.pem
pasv_min_port=7000
pasv_max_port=7009  
pam_service_name=vsftpd

Die Firewall für FTP anpassen:

firewall-cmd --permanent --zone=lan-1 --add-service=ftp
firewall-cmd --reload

FTP Upload-Bereich für anonymous erstellen:

mkdir -p /var/spool/ftp/upload
chown -R ftp:ftp /var/spool/ftp

Schreibrechte für den Root-FTP-Ordner entziehen:

chmod 555 /var/spool/ftp

FTP-Upload Ordner beschreibbar machen:

chmod 775 /var/spool/ftp/upload

FTP Daemon Dienst starten:

systemctl enable vsftpd
systemctl start vsftpd

FTP Daemon Status abfragen:

systemctl status vsftpd

Statusausgabe:

● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mo 2021-01-11 09:08:09 CET; 8s ago
  Process: 2881 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 2882 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─2882 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Jan 11 09:08:09 centos-srv.fritz.box systemd[1]: Starting Vsftpd ftp daemon...
Jan 11 09:08:09 centos-srv.fritz.box systemd[1]: Started Vsftpd ftp daemon.

Zum Testen auf einen Debian 10.x Client einen FTP-Client installieren:

apt install ftp

Und Verbindung aufbauen → User muss auf den Zielsystem existieren:

ftp centos-srv.fritz.box