Results 1 to 4 of 4

Thread: Alternative zum integriertem FTP-Server (vsftp aus ipkg verwenden)

  1. #1

    Post Alternative zum integriertem FTP-Server (vsftp aus ipkg verwenden)

    Nachdem ich erfolglos versucht habe den integrierten FTP-Server aus der oleg-Firmware (renewed: WL500gpv2-1.9.2.7-rtn-r3121)
    nach newbiefan's Anleitung zu konfigurieren, habe ich einfach mal vsftpd aus dem Repo installiert und möchte nun meine Erkenntnisse mit euch teilen.
    Voraussetzung ist natürlich ein fertig aufgesetzter WL500gP(v2) nach wengi's How To mit der oleg-Firmware (renewed).

    Bevor ihr meine Lösung allerdings in die Tat umsetzt, sollte sich einer das Ganze mal kritisch ansehen und vor allem Tipps geben
    wie man die Sache sicherer gestalten kann. Der angelegte Benutzer ist ja ein vollwertiger Benutzer!


    1. per SSH (unter Windows mit PuTTY) auf dem Router einloggen und das vsftpd-Paket installieren:
      Code:
      ipkg install vsftpd
      falls nicht vorhanden auch "adduser" installieren (wird später für die Benutzerverwaltung benötigt):
      Code:
      ipkg install adduser
    2. Datei "vsftpd" in /opt/etc/xinetd.d/ mit folgendem Inhalt anlegen (damit vsftpd per xinetd gestartet wird):
      Code:
      service ftp
      {
        socket_type = stream
        server = /opt/sbin/vsftpd
        protocol = tcp
        port = 21
        user = admin
        group = root
        wait = no
        disable = no
      }
    3. Konfiguration in vsftpd.conf nach Bedarf anpassen. Meine sieht wie folgt aus:
      Code:
      anonymous_enable=NO                                                          
      local_enable=YES                                                             
      write_enable=YES                                                             
      local_umask=022                                                              
      #anon_upload_enable=YES                                                      
      #anon_mkdir_write_enable=YES                                                 
      dirmessage_enable=YES                                                        
      xferlog_enable=YES                                                           
      connect_from_port_20=YES                                                     
      #chown_uploads=YES                                                           
      #chown_username=whoever                                                      
      vsftpd_log_file=/opt/var/log/vsftpd.log                                      
      #xferlog_std_format=YES                                                      
      idle_session_timeout=600                                                     
      data_connection_timeout=120                                                   
      #nopriv_user=ftpsecure                                                       
      #async_abor_enable=YES                                                       
      #ascii_upload_enable=YES                                                       
      #ascii_download_enable=YES                                                     
      ftpd_banner=Du benutzt zwennysFTPserver auf zwennysgateway                     
      #deny_email_enable=YES                                                         
      #banned_email_file=/opt/etc/vsftpd.banned_emails
      chroot_local_user=YES                        
      #chroot_list_enable=YES                                                        
      #chroot_list_file=/opt/etc/vsftpd.chroot_list                                  
      ls_recurse_enable=YES                                                          
      listen=NO                                                                      
      #listen_ipv6=YES
    4. Die FTP-Benutzer habe ich einfach mit "adduser" erstellt:
      Code:
      adduser Benutzername
      Anschließend müsst ihr ein Passwort eingeben und dieses nochmal bestätigen. Der Benutzer ist dann in /etc/passwd eingetragen.
    5. In /etc/passwd muss dann noch das Heimatverzeichnis (home) zum gewünschten FTP-Pfad für den Benutzer geändert werden.
      Der Pfad ist absolut und wird vorgegeben mit /home/Benutzername.
      Erstellt man also einen Benutzer namens ftpuser würde der Eintrag in /etc/passwd folgendermaßen aussehen:
      Code:
      ftpuser:waKS/Rlnrx4XY:1001:1001:Linux User,,,:/home/ftpuser:/bin/sh
      Aus Sicherheitsgründen glaube ich sollte die letzte Spalte von "/bin/sh" besser auf "/bin/false" gesetzt werden,
      damit das Benutzerkonto nicht missbraucht werden kann!


      Ihr könnt den Benutzer übrigens ganz einfach wieder mit
      Code:
      deluser Benutzername
      löschen.
    6. Jetzt könnt ihr xinetd neustarten und damit vsftpd anschmeißen:
      Code:
      /opt/etc/init.d/S10xinetd restart


    Damit solltet ihr dann per FTP-Cliet auf die FTP-Freigaben gelangen.
    Last edited by zwenny; 05-02-2012 at 00:00.

  2. #2
    Join Date
    Jul 2007
    Location
    Austria
    Posts
    1,336
    Quote Originally Posted by zwenny View Post
    Bevor ihr meine Lösung allerdings in die Tat umsetzt, sollte sich einer das Ganze mal kritisch ansehen und vor allem Tipps geben
    wie man die Sache sicherer gestalten kann. Der angelegte Benutzer ist ja ein vollwertiger Benutzer!
    Nun, vorerst einmal Danke für deine Mühe - ich habe mir das Ganze einmal wie gewünscht etwas kritisch angesehen.

    1.) Es gibt keinen wie auch immer gearteten Grund, nicht den eingebauten vsftpd-Server zu verwenden.
    Im Gegenteil: Der Vsftpd im IPKG-Repo ist die Version 2.3.4-1
    Seit FW r2624 im d-Branch (Kernel 2.4) wird auch die Version 2.3.4 verwendet.
    Im RTN-Branch wird sogar die neuere Version 2.3.5 seit FW r3719 verwendet.

    2.) Natürlich kann xinetd den vsftpd der FW genau gleich starten, lediglich der Pfad zum Server ist anders. Darüber hinaus bin ich von xinetd nicht überzeugt, Dienste können nur bei Bedarf gestartet, aber nicht mehr beendet werden. Wo soll dann der Vorteil liegen-unter normalen Umständen läuft ein Server nur wenn er auch wirklich gebraucht wird, also läuft letztendlich lediglich ein Dienst mehr als notwendig. Werden alle Dienste von xinetd gestartet, verbrauche ich mit xinetd nur mehr Speicher als vorher. Das macht höchstens Sinn, wenn man zwar viele Services haben will, aber nur sehr selten braucht. Dann erhebt sich die Frage, ob man nicht gleich mit WinSCP zugreift, dann brauche ich nur Dropbear. Das geht zwar etwas langsamer, aber wenn man es sowieso sehr selten braucht......
    Als Linux-Spielerei ist es jedoch in Ordnung.

    3.) Die Datei vsftpd.conf kann überall liegen, so z.Bspl. auch auf /opt/etc
    Nachstehend das von mir verwendetet Startfile S06vsftpd in /opt/etc/init.d als Bspl.:
    Code:
    #! /bin/sh
    #
    # startfile for built in vsftpd, by newbiefan @ wl500g.info
    # For Olegs & Ily's FW for Asus Routers
    # store this script in /opt/etc/init.d if you've installed optware
    
    # Prgmname=/full_path/Prgmname
    prgmname="/usr/sbin/vsftpd"
    shortname="vsftpd"
    
    #configfile=/full_path/configfile
    configfile="/opt/etc/vsftpd.conf"
    
    #location of pid-file, if any, configure stop function of this script  
    #pidfile="/var/lock/vsftpd.pid"
    
    ###########################End of Script configuration###################
    
    start() {
            # Code here to start the program
            ${prgmname} ${configfile} &
            logger -t $shortname "$prgmname started with config from $configfile"
            return 0
    }
    
    stop() {
            # Code here to stop the program and check it's dead
            if [ -n "`pidof $shortname`" ]; then
            killall $shortname
            logger -t $shortname "$prgmname stopped"
            fi
            return 0
    }
    ##########################start here##########################
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      restart)
            logger -t $shortname "Restart of $prgmname, executed from $(whoami)"
            stop
            sleep 2
            start
            ;;
      *)
            echo $"Usage: $0 {start|stop|restart}"
            exit 1
    esac
    sleep 1
    exit
    (whoami hat nicht jeder installiert...kann man weg lassen)

    4.) Als Verbesserung für die vsftpd.conf folgende Zeilen hinzu fügen:
    Code:
    delay_failed_login=15
    max_login_fails=2
    Wenn jemand einen falschen Loginversuch durchführt, muss er 15 Sekunden warten. Das geht nur 2 x, dann antwortet ihm der Server nicht mehr.
    Diese 2 Zeilen verderben Script-Kiddies und Hacker schnell den Spass. Natürlich sollte man den ganzen Server sowieso mit Iptables noch absichern (ip_recent).

    5.) Ich habe mit der Verwendung der Standard-Passwd Datei erhebliche Sicherheitsbedenken-deshalb verwende ich eine eigene Password-Datei für vsftpd.

    6.) Dein HowTo hat Fehler: So kann zwar ein Benutzer angelegt werden, aber nach einem Reboot sind die Benutzer wieder weg. Dazu musst du noch deine Passwd-Datei in die .files eintragen und danach ein flashfs save, flashfs commit, flashfs enable und ein reboot durchführen. Leider musst du das bei jeder Änderung eines Benutzers durchführen. Falls du die passwd-Datei auf z.Bspl. /opt/etc für vsftpd legst, kannst du eine Änderung viel leichter durchführen, dann brauchst du nicht immer die Änderungen in den Flash-Speicher schreiben.

    LG
    Newbiefan

    P.S.: Es wäre schön, wenn du uns mitteilen würdest woran du bei der ursprünglichen Version gescheitert bist. Was genau ging nicht? War der Server überhaupt jemals in Betrieb?
    Last edited by newbiefan; 17-02-2012 at 20:29.
    Alle HowTo's, all howto's

    RT-N16 1.9.2.7-rtn-r3121, Samba, VSFTP, Lightthpd, PHP, Perl, MySQL, Serendipity, Aria2web, HDD 640GB
    RT-N66U, 16GB MicroSD/ 2 Partitions, 2,5" HDD 1TB, running with Merlin's FW and Entware, 16 Mbit A1,
    Netgear DGND 3700V2, QNAP TS119PII 4 TB, QNAP TS209 2 TB Raid1, Backup Synology DS107+ 1 TB, HP CP1515n

  3. #3

    Smile Schnellschuss...

    Ich muss zugeben, dass diese Lösung ein Schnellschuss war und nach einem Neustart (das hatte ich nicht getestet) nicht mehr funktioniert.
    Dein HowTo ist besser durchdacht, nur ging bei mir schon an dem Punkt nicht weiter an welchem der integrierte FTP-Server aktiviert werden soll.
    Nachdem alle Einstellungen im Webinterface getätigt waren und der Router zum Übernehmen neu gestartet wurde, lief einfach kein Dienst.
    Hab Zugriff auf FTP Port 21 per telnet überprüft und mir die laufenden Prozesse (mit ps) auf dem Router anzeigen lassen: Nichts.

    Mittlerweile ist ja wieder einige Zeit vergangen und es gab auch schon wieder ein Firmware-Update.
    Nun gibt's keine Probleme mehr und die Funktionen des integrierten FTP-Servers reichen für meine Zwecke.
    Dein HowTo ist aber nach wie vor in Ordnung und ich finde hier bestimmt auch ein Thema bei dem ich mich einbringen kann

  4. #4
    Join Date
    Jul 2007
    Location
    Austria
    Posts
    1,336
    Quote Originally Posted by zwenny View Post
    ich finde hier bestimmt auch ein Thema bei dem ich mich einbringen kann
    Danke, das freut unsere Community ganz besonders - mit Sicherheit gibt es viele offene Themen.
    Und unsere Asus-Router können so manchen User begeistern - schliesslich kann man mit Linux sehr viel machen.
    LG
    Newbiefan
    Alle HowTo's, all howto's

    RT-N16 1.9.2.7-rtn-r3121, Samba, VSFTP, Lightthpd, PHP, Perl, MySQL, Serendipity, Aria2web, HDD 640GB
    RT-N66U, 16GB MicroSD/ 2 Partitions, 2,5" HDD 1TB, running with Merlin's FW and Entware, 16 Mbit A1,
    Netgear DGND 3700V2, QNAP TS119PII 4 TB, QNAP TS209 2 TB Raid1, Backup Synology DS107+ 1 TB, HP CP1515n

Similar Threads

  1. Jak odpalić FTP Server
    By Mateluta in forum Polish Discussion - Polski (PL)
    Replies: 1
    Last Post: 13-07-2009, 14:02
  2. HowTo secure FTP server (SSL/TLS)
    By Tamadite in forum WL-500gP Tutorials
    Replies: 12
    Last Post: 14-10-2008, 20:38
  3. Kombinierter FTP Client und Server für den WL500gP?
    By darkside40 in forum German Discussion - Deutsch (DE)
    Replies: 0
    Last Post: 24-07-2008, 12:01
  4. FTP über anderen Port von der WAN-Seite aus.
    By rj.2001 in forum German Discussion - Deutsch (DE)
    Replies: 1
    Last Post: 15-09-2007, 02:58
  5. FTP server op wl500g-dlx niet bereikbaar vanaf internet
    By Sawilla in forum Dutch Discussion - Nederlands
    Replies: 16
    Last Post: 19-12-2005, 10:37

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •