Virtuelles Hosting mit PureFTPd und MySQL (inkl. Quota und Bandbreiten Management) auf Fedora 7 - Seite 2

6 Die Datenbank füllen und testen

Um die Datenbank zu füllen, kannst Du die MySQL Kommandozeile verwenden:

mysql -u root -p

USE pureftpd;

Nun erstellen wir den Benutzer exampleuser mit dem Status 1 (was bedeutet, sein ftp Konto ist aktiv), das Passwort secret (das verschlüsselt mittels MySQL MD5 Funktion abgelegt wird), die BenutzerID und GruppenID 2001 (verwende die BenutzerID und GruppenID des Benutzers/der Gruppe, den Du am Ende von Schritt 2 angelegt hast!), das Home Verzeichnis /home/www.example.com, ein Upload und Download Bandbreite von 100 KB/sec. (Kilobytes pro Sekunde) und eine Quota von 50 MB:

INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('exampleuser', '1', MD5('secret'), '2001', '2001', '/home/www.example.com', '100', '100', '', '*', '50', '0');

quit;

Öffne nun auf Deinem Arbeitsplazt Dein FTP Client Programm (etwas wie WS_FTP oder SmartFTP wenn Du Dich auf einem Windows System befindest oder gFTP auf einem Linux Desktop) und versuche Dich zu verbinden. Als Hostname verwendest Du server1.example.com (oder die IP Adresse des Systems), der Benutzername ist exampleuser und das Passwort ist secret.

Wenn Du Dich verbinden kannst, dann Herzlichen Glückwunsch! Wenn nicht, ist etwas schief gelaufen.

Wenn Du nun Folgendes ausführst

ls -l /home

solltest Du feststellen, dass das Verzeichnis /home/www.example.com (exampleusers Home Verzeichnis) automatisch erstellt wurde und dass es dem ftpuser und der ftpgroup (der Benutzer/die Gruppe, die wir am Ende von Schritt 2 angelegt haben) gehört:

[root@server1 ~]# ls -l /home
total 4
drwxr-xr-x 2 ftpuser ftpgroup 4096 2007-07-04 01:50 www.example.com
[root@server1 ~]#

7 Administration der Datenbank

Für die meisten Leute ist es einfacher, wenn sie ein grafisches Frontend für MySQL haben; daher kannst Du auch  phpMyAdmin (in diesem Beispiel unter http://server1.example.com/phpMyAdmin/) verwenden, um die pureftpd Datenbank zu verwalten.


Wenn Du einen neuen Benutzer erstellen möchtest, musst Du einen Eintrag in der ftpd Tabelle vornehmen, alsso werde ich die Spalten dieser Tabelle hier erklären:

ftpd Table:

  • User: Der Name des virtuellen PureFTPd Benutzers (z.B. exampleuser).
  • status: 0 oder 1. 0 bedeutet, das Konto ist deaktiviert, der Benutzer kann sich nicht anmelden.
  • Password: Das Passwort des virtuellen Benutzers. Pass auf, dass Du die MySQLs MD5 Funkiton verwendest, um das Passwort verschlüsselt als MD5 String zu speichern:
  • UID: Die BenutzerID, die Du am Ende von Schritt 2 angelegt hast (z.B. 2001).
  • GID: Die GruppenID der ftp Gruppen, die Du am Ende von Schritt 2 angelegt hast (z.B. 2001).
  • Dir: Das Home Verzeichnis des virtuellen PureFTPd Benutzers (z.B. /home/www.example.com). Wenn es nicht vorhanden ist, wird es erstellt, wenn sich der neue Benutzer erstmalig via FTP einloggt. Der virtuelle Benutzer wird in sein Home Verzeichnis gesperrt, d.h. er kann auf andere Verzeichnisse außerhalb seines Home Verzeichnisses nicht zugreifen.
  • ULBandwidth: Die Upload Bandbreite des virtuellen Benutzers in KB/sec. (Kilobytes pro Sekunde). 0 bedeutet unbegrenzt.
  • DLBandwidth: Die Download Bandbreite des virtuellen Benutzers in KB/sec. (Kilobytes pro Sekunde). 0 bedeutet unbegrenzt.
  • comment: Hier kannst Du irgendeinen Kommentar eingeben (z.B. für Deine interne Administration). Normalerweise lässt man dieses Feld frei.
  • ipaccess: Gib hier IP Adressen ein, die sich mit diesem FTP Konto verbinden dürfen. * bedeutet, dass sich jede IP Adresse verbinden darf.
  • QuotaSize: Speicherplatz in MB (nicht KB, wie bei ULBandwidth und DLBandwidth!), den der virtuelle Benutzer auf dem FTP Server verwenden darf. 0 bedeutet unbegrenzt.
  • QuotaFiles: Menge an Dateien, die der virtuelle Benutzer auf dem FTP Server speichern darf. 0 bedeutet unbegrenzt.

8 Anonymes FTP Konto

Wenn Du ein anonymes FTP Konto erstellen möchtest (ein FTP Konto, in das sich jeder ohne Passwort einloggen kann), dann brauchst Du einen Benutzer und ein Gruppe mit der Bezeichnung ftp. Beide wurden automatisch erstellt als Du das pure-ftpd Paket installiert hast, Du musst sie also nicht manuell erstellen. Jedoch ist ftps Homedir standardmäßig /var/ftp, ich möchte das anonyme FTP Verzeichnis aber in /home/ftp (die normalen FTP Verzeichnisse des Benutzers befinden sich auch in /home, z.B. /home/www.example.com) erstellen. Selbstverständlich kannst Du auch das /var/ftp Verzeichnis für anonyme FTP Konten verwenden, wenn Du dies bevorzugst.

Wenn Du /home/ftp verwenden möchtest, öffne /etc/passwd und ändere die Homedir des ftp Benutzers von /var/ftp zu /home/ftp (tu dies nicht, wenn Du /var/ftp verwenden möchtest):

vi /etc/passwd


[...]
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin ftp:x:14:50:FTP User:/home/ftp:/sbin/nologin [...]
Verschiebe dann /var/ftp nach /home (tu dies nicht, wenn Du  /var/ftp verwenden möchtest):

mv /var/ftp /home

Dann erstellen wir das Verzeichnis /home/ftp/incoming, was anonymen Benutzern erlaubt, Dateien hochzuladen. Wir geben dem Home Verzeichnis /home/ftp/incoming Berechtigungen von 311, damit Benutzer Hochladen, aber Dateien in diesem Verzeichnis nicht sehen oder hochladen können. Das /home/ftp Verzeichnis wird die Berechtigungen von 555 haben, wobei Datein runter geladen und gesehen werden können:

chown ftp:nobody /home/ftp
cd /home/ftp
mkdir incoming
chown ftp:nobody incoming/
chmod 311 incoming/
cd ../
chmod 555 ftp/

(Wenn Du stattdessen  /var/ftp verwenden möchtest, ersetze /home/ftp with /var/ftp in den obigen Befehlen.)

Anonyme Benutzer werden in der Lage sein, sich anzumelden und dürfen Dateien von /home/ftp runterladen, Uploads werden allerdings auf /home/ftp/incoming (und wenn eine Datei einmal nach /home/ftp/incoming hochgeladen wurde, kann sie von dort aus weder gelesen noch runter geladen werden; der Server Admin muss sie in /home/ftp setzen, um sie anderen zur Verfügung zu stellen) beschränkt.

Nun müssen wir PureFTPd für das anonyme FTP Konto konfigurieren. Öffne /etc/pure-ftpd/pure-ftpd.conf und vergewissere Dich, dass folgende Einstellungen darin enthalten sind:

vi /etc/pure-ftpd/pure-ftpd.conf


[...]
NoAnonymous no [...] AntiWarez no [...] AnonymousBandwidth 8 [...] AnonymousCantUpload no [...]
(Die AnonymousBandwidth Einstellung ist optional - sie erlaubt Dir Upload und Download Bandbreiten für anonyme Benutzer zu begrenzen. 8 bedeutet 8 KB/sec. Verwende irgendeinen Wert oder kommentiere die Zeile aus, wenn Du keine Bandbreiten begrenzen möchtest.)

Schließlich starten wir PureFTPd neu:

/etc/init.d/pure-ftpd restart


9 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte