-
Ich bin Linux Anfänger....
-
Bevor man an Serverdiensten wie ProFTPD (und FTP ist sicherlich noch das einfachste) heranwagt, sollte man ein solides Grundwissen von Linux haben. Welche Distribution man verwendet spielt dabei keine grosse Rolle - alle haben ihre Stärken und Schwächen und verwenden im Ende doch die gleiche Software (Kernel 2.6.x, GCC, X-Org, etc). Das wohl beste Buch für Linux Einsteiger ist der "Kofler".
Link zu Amazon: Linux, m. DVD-ROM
-
Wie kann ich User hinzufügen ?
-
per Standard koennen sich alle Systemuser per FTP anmelden. Wenn man nun neue User anlegen möchte, dann kann man einfach diese am System anlegen. Wenn man vermeiden möchte, dass die sich "richtig" am System anmelden können, dann kann man die shell auf "/bin/false" legen - dann ist nur noch FTP möglich (dann jedoch "RequireValidShell off" in die ProFTPD.conf schreiben. Die User kann man dann einfach per YAST (SuSE) oder von der Console mittels "useradd" anlegen.
Wenn man mehr User anmelden möchte, oder sich das relativ häufig ändern, dann empfehle ich die Userverwaltung mittels extra Files (AuthUserfile) oder per SQL (Mod_SQL).
-
Wie kann ich sehen, wer auf dem Server ist ?
-
ftpwho aufrufen. Mittels "ftpwho -v" bekommt man noch mehr Ausgaben. Ab ProFTPD 1.2.7 ist ausserdem ein Tool namens "ftptop" enthalten, was die Verbindungen dauerhaft anzeigt. Ab ProFTPD 1.2.8 sogar mit der Speed Anzeige.
-
Wie kann ich Resume erlauben ?
-
Per Default kann ProFTPD nicht resumen ! Bitte folgende Anweisungen in die ProFTPD.conf einfügen:
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
Bitte beachten, daß "hiddenstor" nicht aktiviert sein darf (ist per Default deaktiviert).
-
Wie kann ich FXP einrichten ?
-
per Default erlaubt ProFTPD keinen FXP Tranfer. Man kann dann in der /var/log/messages folgende Meldungen sehen:
Jan 27 12:37:07 webserver proftpd[15736]: webserver.stonki.de (xxx.t-ipconnect.de[xx.xxx.xxx.xx]) - Refused PORT yy,yy,yy,yy,0,93 (bounce attack)
Dazu muss man in der ProFTPD.conf die Anweisung "AllowForeignAddress on" einfügen und ProFTPD neu starten. Unser Beispiel würde aber dennoch nicht klappen. In meinem Beispiel will der FXP Client Pakete auf Port 93 schicken (die letzte Zahl + (256 * die vorletzte Zahl)). Pakete an Ports unterhalb 1024 werden Grundsätzlich abgelehnt ! (ist auch gut so). Dann bitte den FXP Client umstellen.
-
Wie kann ich FTP Zugang als root bekommen ?
-
Zuerst: Das ist eine SCHEISS Idee, da bei FTP das Passwort unverschlüsselt übertragen wird. Ich empfehle entweder FTP über SSH (selber noch nie probiert), oder als User die Files uploaden und dann mittels SSH Connect die Dateien da hinschieben, wo sie hin sollen.
Um es dennoch zu tun (Sie wurden gewarnt *g*) einfach die Direktive "RootLogin on" in die Config einfügen.
Expert:
Stonki (www.stonki.de)
-
Wie kann ich einen User in ein Verzeichnis "einsperren" ?
-
Das ist die Masterfrage ! Durch die Direktive "defaultroot" kann ein User in ein Verzeichnis gesperrt werden. Dabei kann entweder ein Verzeichnis angegeben werden, daß für alle gilt oder der Platzhalter "~". Dieser Platzhalter steht für das jeweilige Heimatverzeichnis des eingeloggten Users.
Beispiel:
defaultroot /var/ftp
sperrt alle User in das Verzeichnis /var/ftp
defaultroot ~
sperrt den User "stonki" in sein Heimatverzeichnis, üblicherweise /home/stonki", den User "proftpd" in seins "/home/proftpd" usw usw.
-
Wie kann ich ein Verzeichnis einbinden, was der User normaler nicht erreichen kann ?
-
Das Defaultroot hat ja zur Folge, dass Dateien ausserhalb des Defaultroot nicht mehr erreichbar sind. Softlinks oder ähnliches klappt nicht, nur Hardlinks, aber die funktionieren leider nur bei Dateien. Um komplette Verzeichnisse in das Defaultroot einzubinden, bieten der Linux Kernel ab 2.4.x eine neue mount Funktion.
mount --bind olddir newdir
Diese Anweisung bindet das Verzeichnis ein weiteres mal unter "newdir" ein.
Beispiel:
mount --bind /home/user1/Privat /home/user2/privat
Das private Dir von "user1" steht auch "user2" zur Verfügung
P.S. unter BSD heisst der Befehl "mount_null" und funktioniert genauso (mount_null olddir newdir)
Weiterführende Links
-
Wie kann ich die Bandbreite beschränken ?
-
ProFTPD bietet zwei Möglichkeiten die Bandbreite zu beschränken. Einmal pro Verbindung, dann mit dem Modul "mod_shaper" für den ganzen Server. Dieses Modul ist bis jetzt noch experimental und steht nur für die Versionen ab 1.2.10 RC1 zur Verfügung: www.castaglia.org
Die Bandbreite für einzelne Verbindungen kann wie folgt beschränkt werden:
Bei Versionen bis einschliesslich ProFTPD 1.2.7:
RateReadBPS <max. Bytes/Sekunde for Download>
RateWriteBPS <max. Bytes/Sekunde for Upload>
für Versionen ab ProFTPD 1.2.8:
TransferRate STOR <max. KBytes/Sekunde for Upload>
TransferRate RETR <max. KBytes/Sekunde for Download>
Weiterführende Links
www.proftpd.de/28.0.html
-
Wie kann ich den anonymen Zugang abschalten ?
-
in der ProFTPD findet sich der Block zur Configuration zwischen <Anonymous> und </Anonymous>. Einfach den ganzen Block (einschliesslich der beiden Zeilen löschen).
-
Welche module sind mit installiert?
-
Wenn Sie den Proftpd selber uebersetzt haben werden Sie wahrscheinlich noch wissen welche Module Sie mit uebersetzt haben, falls Sie aber ein binaer Packet installiert haben koennen Sie nicht sicher sagen welche Module mit uebersetzt wurden. Um sich die installierten Module anzeigen zu lassen muessen Sie den Proftpd mit dem Parameter -l starten:
sven@srv01:/mnt/home/sven > /usr/local/sbin/proftpd -l
Compiled-in modules:
mod_core.c
mod_auth.c
mod_xfer.c
mod_site.c
mod_ls.c
mod_unixpw.c
mod_log.c
mod_pam.c
-
ProFTPD startet nicht ! Wie kann ich mehr Infos bekommen ?
-
ok, mit grosser Wahrscheinlichkeit wird ProFTPD zu Beginn nicht genau das tun, was man erwartet oder es wird mit einer mehr oder weniger kryptischen Fehlermeldung den Dienst verweigern.
In diesem Fall sollte man ProFTPD im Debug Modus starten. Das klappt am besten im Standalone Modus. Sollte man sonst ProFTPD ueber Inetd oder xinetd starten, so sollte man nun 3min investieren und ProFTPD zumindest vorruebergehend so einstellen, dass er im Standalone Modus gestartet wird.
Dann startet man proftpd wie folgt: "proftpd -n -d5". Dieses besagt, dass die gesamte Ausgabe auf die Console umgeleitet wird (-n) und dass relativ viel Debug Code erzeugt wird. In der Praxis haben sich "-d5" fuer das normale debuggen und "-d9" fuer harte Faelle, wo es Probleme mit Libraries gibt, als sinnvoll erwiesen.
Sollte man mod_sql benuzten, so muss man ab Version 1.2.8 den Befehl "SQLLOG /pfad/datei" in die proftpd.conf einfuegen, da SQL Befehle sonst nicht mehr ausgegeben werden.
Ab ProFTPD 1.2.8 kann man jedoch das Debug Loggen auch direkt in der proftpd.conf aktivieren. Dort:
debugLevel 6
Serverlog /var/log/proftpd.debug.log
eingeben und man bekommt die Ausgabe direkt in eine Datei geloggt.
Der Debug Code bietet meist sehr gute Hinweise, wo das Problem zu suchen ist. Wenn man weitere Hilfe benoetigt, den Teil der Ausgabe wo der Fehler auftritt ins Forum posten oder mit per Mail schicken.
Expert:
Stonki (www.stonki.de)
-
Mein FTP Server ist nur lokal erreichbar ! Von aussen kann ihn keiner erreichen !
-
ProFTPD fühlt sich per Default nicht für alle Netzwerkkarten im System verantwortlich. Daher bitte die Anweisung "Defaultserver on" in die ProFTPD.conf einfügen und ProFTPD neu starten.
Weiterführende Links
www.proftpd.de/28.0.html
Expert:
Stonki (www.stonki.de)
-
langsame Logins
-
Wenn der Login laenger als 10 sekunden dauert, so liegt dieses meist an einem Timeout von einer DNS Aufloesung oder einem Ident Request. Diese kann z.B. durch eine Firewall bedingt sein.
Um die Abfragen abzuschalten, kann man in der ProFTPD folgendes eintragen:
UseReverseDNS off
IdentLookups off
Weiterführende Links
www.proftpd.de/index.php
www.proftpd.de/index.php
Expert:
Stonki (www.stonki.de)
-
Failed binding to 0.0.0.0, port 21: Address already in use
-
Beim starten von ProFTPD im Debug Modus kommt diese Fehlermeldung:
Failed binding to 0.0.0.0, port 21: Address already in use
Was bedeutet das ? Nun, zunaechst einmal lauscht ein anderer Dienst auf dem Port 21, daher kann ProFTPD diesen nicht fuer sich beanspruchen. Dieses kann verschiedene Gruende haben:
1) ProFTPD ist falsch konfiguriert und der Servertype ist z.B. Standalone ,wenn er aus Inetd gestarten wird, oder (haeufiger) der Servertype steht auf Inetd und ProFTPD wird jedoch von der console direkt gestarter. In beiden Faellen ist natuerlich die Einstellung zu korrigieren.
2) Ein anderer Dienst laueft bereits auf Port 21 und hat diesen in Beschlag genommen. Dieses kann man unter Linux wie folgt herausfinden:
webserver:~ # fuser -n tcp 21
21/tcp: 3191
webserver:~ # ps aux | grep 3191
nobody 3191 0.0 0.5 2656 1260 ? S 15:17 0:00 proftpd: (accepting connections)
root 3197 0.0 0.1 1396 476 pts/0 R 15:18 0:00 grep 3191
webserver:~ #
Zunaechst fragen wir mit dem Befehl "fuser" den Dienst ab, der auf Port 21 den TCP Dienst belegt. In diesem Beispiel ist dass das Programm mit der pid
"3191". Im naechsten Schritt fragen wir, wie das Programm mit der Pid "3191" heisst: in diesem Falle also ProFTPD.
Haeufig verweisst diese Vorgehensweise auf inetd oder xinetd. In diesem Falle muss man die inetd.conf bzw. xinetd.conf bearbeiten und den FTP Dienst entfernen. Anschliessend muss dann der Dienst neu gestartet werden (kill -SIGHUP "pid" von dem Prozess), damit die Config neu eingelesen wird. Anschliessend kann man sich wieder mit "fuser" vergewissern, ob Port 21 wirklich frei ist. Ist das der Fall kann man ProFTPD starten.
Expert:
Stonki (www.stonki.de)