Raspberrypi.vsftpd

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen

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