Raspberrypi.vsftpd: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Root (Diskussion | Beiträge) |
|||
(19 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Zurück zur Hauptseite [[raspberrypi]] | Zurück zur Hauptseite [[raspberrypi]] | ||
* Grund-Konfiguration | |||
* Grund-Konfiguration | |||
* Ich betreibe den Raspberry PI als FTP Server | * Ich betreibe den Raspberry PI als FTP Server | ||
* Mit dem eigenen LAN - Interface ist Raspi am Internet angeschlosse | * Mit dem eigenen LAN - Interface ist Raspi am Internet angeschlosse | ||
Zeile 10: | Zeile 8: | ||
* Im Folgenden sind die Konfigurations-Dateien dokumentiert | * Im Folgenden sind die Konfigurations-Dateien dokumentiert | ||
== Vorbereitung == | |||
apt-get install vsftpd | |||
groupadd www | |||
=== vsftpd.conf === | === vsftpd.conf === | ||
Zeile 45: | Zeile 49: | ||
write_enable=YES | write_enable=YES | ||
anonymous_enable=NO | anonymous_enable=NO | ||
# | |||
# für den Raspi/Debian | |||
# | |||
secure_chroot_dir=/var/run/vsftpd/empty | secure_chroot_dir=/var/run/vsftpd/empty | ||
# | |||
# für OpenSuSE | |||
# | |||
secure_chroot_dir=/usr/share/empty | |||
pam_service_name=vsftpd | pam_service_name=vsftpd | ||
local_enable=YES | local_enable=YES | ||
Zeile 57: | Zeile 70: | ||
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key | rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key | ||
ssl_enable=NO | ssl_enable=NO | ||
== Benutzer anlegen == | |||
useradd --home /srv/ftp/<b><i>user</i></b> --groups ftp --gid www --shell /bin/bash <b><i>user</i></b> | |||
echo "<b><i>user</i></b>:<b><i>password</i></b>" | chpasswd | |||
== 2. LAN INterface mit einem USB 2.0 <-> LAN Adapter == | |||
* "Amazon B0174PBLNS" einfach einstecken wird erkannt: | |||
[ 5112.587570] usb 1-1.4: new high-speed USB device number 4 using dwc_otg | |||
[ 5112.730588] usb 1-1.4: New USB device found, idVendor=0b95, idProduct=772b | |||
[ 5112.730606] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 | |||
[ 5112.730617] usb 1-1.4: Product: AX88772C | |||
[ 5112.730627] usb 1-1.4: Manufacturer: ASIX Elec. Corp. | |||
[ 5112.730636] usb 1-1.4: SerialNumber: 00008E | |||
[ 5114.284487] asix 1-1.4:1.0 eth1: register 'asix' at usb-3f980000.usb-1.4, ASIX AX88772B USB 2.0 Ethernet, 00:0e:c6:c8:2f:5e | |||
[ 5114.285904] usbcore: registered new interface driver asix | |||
[ 5114.519130] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready | |||
[ 5115.931438] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready | |||
[ 5115.935282] asix 1-1.4:1.0 eth1: link up, 100Mbps, full-duplex, lpa 0xC5E1 | |||
== /etc/network/interfaces == | |||
source-directory /etc/network/interfaces.d | |||
auto lo | |||
iface lo inet loopback | |||
auto eth0 | |||
iface eth0 inet manual | |||
auto eth1 | |||
iface eth1 inet static | |||
address 192.168.115.40 | |||
netmask 255.255.255.0 | |||
=== domadd.pas === | === domadd.pas === | ||
PathPrefix := cHtdocs; | |||
if (pos('ftp-',pUser)=1) or (pUser='incoming') then | |||
PathPrefix := cFtdocs; | |||
// Benutzer hat ev. einen numerischen Namen? | |||
if (pUser[1] in ['0'..'9']) then | |||
begin | |||
uUser := 'u' + pUser; | |||
end else | |||
begin | |||
uUser := pUser; | |||
end; | |||
// Add User | |||
Exec('useradd'+ | |||
' --home '+PathPrefix+pUser+ | |||
' --groups ftp'+ | |||
' --gid www'+ | |||
' --shell /bin/bash'+ | |||
' '+uUser ); | |||
// Set Password | |||
Exec('echo "'+uUser+':'+pPassword+'" | chpasswd'); | |||
=== Diagnose === | === Diagnose === | ||
Zeile 64: | Zeile 138: | ||
* Alle Benutzer der Gruppe "ftp" auflisten: | * Alle Benutzer der Gruppe "ftp" auflisten: | ||
** <code>cat /etc/group | grep ftp:</code> | ** <code>cat /etc/group | grep ftp:</code> | ||
== Benutzerliste == | |||
userlist_enable=YES | |||
userlist_file=/etc/vsftpd.userlist | |||
userlist_deny=NO | |||
== via SSH == | |||
== Fritz!Box == | |||
* die Fritz!Box hat eine Limitierung, die es nicht ermöglicht einen Portbereich auf einmal freizugeben der grösser ist als 254 Ports | |||
* es muss also eine Internetfreigabe in 4 Blöcken erfolgen | |||
ftp-data-1 TCP 21000 - 21254 | |||
ftp-data-2 TCP 21255 - 21509 | |||
ftp-data-3 TCP 21510 - 21764 | |||
ftp-data-4 TCP 21765 - 21999 | |||
FTP-Server TCP 21 |
Aktuelle Version vom 23. Mai 2023, 12:52 Uhr
Zurück zur Hauptseite raspberrypi
- Grund-Konfiguration
- Ich betreibe den Raspberry PI als FTP Server
- Mit dem eigenen LAN - Interface ist Raspi am Internet angeschlosse
- Mit einem USB-LAN Adapter hängt er am internen Netz
- wegen Routing-Problemen verwende ich hier eine feste IP-Adresse
- Im Folgenden sind die Konfigurations-Dateien dokumentiert
Vorbereitung
apt-get install vsftpd groupadd www
vsftpd.conf
# Core Settings # listen=YES ftpd_banner="Welcome to pi2x01 at orgamon.de FTP-service." use_localtime=YES listen_ipv6=NO local_umask=0000 dirmessage_enable=YES ls_recurse_enable=YES # Logging # xferlog_enable=YES log_ftp_protocol=YES vsftpd_log_file=/var/log/vsftpd.log xferlog_file=/var/log/vsftpd-xfer.log xferlog_std_format=YES syslog_enable=NO dual_log_enable=YES # PASV # #pasv_addr_resolve=YES pasv_address=IP.DEINES.SERVER.S pasv_min_port=21000 pasv_max_port=21999 pasv_promiscuous=YES # Authentification # write_enable=YES anonymous_enable=NO # # für den Raspi/Debian # secure_chroot_dir=/var/run/vsftpd/empty # # für OpenSuSE # secure_chroot_dir=/usr/share/empty pam_service_name=vsftpd local_enable=YES chroot_local_user=YES allow_writeable_chroot=YES #nopriv_user=ftpsecure # SSL # rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO
Benutzer anlegen
useradd --home /srv/ftp/user --groups ftp --gid www --shell /bin/bash user echo "user:password" | chpasswd
2. LAN INterface mit einem USB 2.0 <-> LAN Adapter
- "Amazon B0174PBLNS" einfach einstecken wird erkannt:
[ 5112.587570] usb 1-1.4: new high-speed USB device number 4 using dwc_otg [ 5112.730588] usb 1-1.4: New USB device found, idVendor=0b95, idProduct=772b [ 5112.730606] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 5112.730617] usb 1-1.4: Product: AX88772C [ 5112.730627] usb 1-1.4: Manufacturer: ASIX Elec. Corp. [ 5112.730636] usb 1-1.4: SerialNumber: 00008E [ 5114.284487] asix 1-1.4:1.0 eth1: register 'asix' at usb-3f980000.usb-1.4, ASIX AX88772B USB 2.0 Ethernet, 00:0e:c6:c8:2f:5e [ 5114.285904] usbcore: registered new interface driver asix [ 5114.519130] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready [ 5115.931438] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready [ 5115.935282] asix 1-1.4:1.0 eth1: link up, 100Mbps, full-duplex, lpa 0xC5E1
/etc/network/interfaces
source-directory /etc/network/interfaces.d auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto eth1 iface eth1 inet static address 192.168.115.40 netmask 255.255.255.0
domadd.pas
PathPrefix := cHtdocs; if (pos('ftp-',pUser)=1) or (pUser='incoming') then PathPrefix := cFtdocs; // Benutzer hat ev. einen numerischen Namen? if (pUser[1] in ['0'..'9']) then begin uUser := 'u' + pUser; end else begin uUser := pUser; end; // Add User Exec('useradd'+ ' --home '+PathPrefix+pUser+ ' --groups ftp'+ ' --gid www'+ ' --shell /bin/bash'+ ' '+uUser ); // Set Password Exec('echo "'+uUser+':'+pPassword+'" | chpasswd');
Diagnose
- Alle Benutzer der Gruppe "ftp" auflisten:
cat /etc/group | grep ftp:
Benutzerliste
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
via SSH
Fritz!Box
- die Fritz!Box hat eine Limitierung, die es nicht ermöglicht einen Portbereich auf einmal freizugeben der grösser ist als 254 Ports
- es muss also eine Internetfreigabe in 4 Blöcken erfolgen
ftp-data-1 TCP 21000 - 21254 ftp-data-2 TCP 21255 - 21509 ftp-data-3 TCP 21510 - 21764 ftp-data-4 TCP 21765 - 21999 FTP-Server TCP 21