GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

FTP-Server mit PureFTPd, MariaDB und virtuellen Benutzern (inkl. Quoten- und Bandbreitenverwaltung) auf CentOS 7.2

In diesem Dokument wird beschrieben, wie Sie einen PureFTPd-Server installieren, der anstelle von echten Systembenutzern virtuelle Benutzer aus einer MariaDB-Datenbank (MySQL-kompatibel) verwendet. Dies ist viel leistungsfähiger und ermöglicht Tausende von FTP-Benutzern auf einem einzigen Computer. Darüber hinaus werde ich die Verwendung von Kontingenten und Upload-/Download-Bandbreitenbeschränkungen mit diesem Setup zeigen. Passwörter werden verschlüsselt als MD5-Strings in der Datenbank gespeichert.

Für die Verwaltung der MariaDB-Datenbank können Sie webbasierte Tools wie phpMyAdmin verwenden, die ebenfalls in diesem Howto installiert werden. phpMyAdmin ist eine komfortable grafische Oberfläche, was bedeutet, dass Sie sich nicht mit der Befehlszeile herumschlagen müssen.

Dieses Tutorial basiert auf CentOS 7.2. Sie sollten bereits ein grundlegendes minimales CentOS 7.2 System eingerichtet haben.

Dieses Howto ist als praktischer Leitfaden gedacht; es deckt nicht die theoretischen Hintergründe ab. Sie werden in vielen anderen Dokumenten im Internet behandelt.

Dieses Dokument wird ohne jegliche Gewährleistung geliefert! Ich möchte sagen, dass dies nicht die einzige Möglichkeit ist, ein solches System einzurichten. Es gibt viele Wege, dieses Ziel zu erreichen, aber ich gehe diesen Weg.

1 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.1.100. Diese Einstellungen können für Sie abweichen, daher müssen Sie sie gegebenenfalls ersetzen.

2 Installieren Sie MySQL und phpMyAdmin

Zuerst aktivieren wir das EPEL-Repository auf unserem CentOS-System, da einige Pakete, die wir im Laufe dieses Tutorials installieren werden, nicht in den offiziellen CentOS 7.2-Repositorys verfügbar sind:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Dann aktivieren wir das EPEL-Repository auf unserem CentOS-System, da viele der Pakete, die wir im Laufe dieses Tutorials installieren werden, nicht im offiziellen CentOS 7-Repository verfügbar sind:

yum -y install epel-release
yum -y install yum-priorities

Bearbeiten Sie /etc/yum.repos.d/epel.repo...

nano /etc/yum.repos.d/epel.repo

... und fügen Sie die Zeile priority=10 zum Abschnitt [epel] hinzu:

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]

Dann aktualisieren wir unsere bestehenden Pakete auf dem System:

yum update

Jetzt können wir den Apache-Webserver, PHP, MariaDB und phpMyAdmin wie folgt installieren:

yum -y install mariadb mariadb-server phpmyadmin httpd php

Jetzt konfigurieren wir phpMyAdmin. Wir ändern die Apache-Konfiguration so, dass phpMyAdmin Verbindungen nicht nur von localhost zulässt (indem wir alles in der Zeilengruppe auskommentieren und die Zeile Require all granted hinzufügen):

nano /etc/httpd/conf.d/phpMyAdmin.conf

sodass die Datei so aussieht:

# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8 # <IfModule mod_authz_core.c> # # Apache 2.4 # <RequireAny> # Require ip 127.0.0.1 # Require ip ::1 # </RequireAny> # </IfModule> # <IfModule !mod_authz_core.c> # # Apache 2.2 # Order Deny,Allow # # Deny from All # Allow from 127.0.0.1 Options Indexes AllowOverride None Require all granted # Allow from ::1 # </IfModule> </Directory> <Directory /usr/share/phpMyAdmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 Require ip ::1 </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> # These directories do not require access over HTTP - taken from the original # phpMyAdmin upstream tarball # <Directory /usr/share/phpMyAdmin/libraries/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/lib/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/frames/> Order Deny,Allow Deny from All Allow from None </Directory> # This configuration prevents mod_security at phpMyAdmin directories from # filtering SQL etc. This may break your mod_security implementation. # #<IfModule mod_security.c> # <Directory /usr/share/phpMyAdmin/> # SecRuleInheritance Off # </Directory> #</IfModule>

Dann erstellen wir die Systemstart-Links für MySQL und Apache (so dass beide automatisch starten, wenn das System hochfährt) und starten beide Dienste.

Öffnen Sie die http- und https-Ports, wenn die CentOS-Firewall "firewalld" auf Ihrem Server installiert ist.

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Starten Sie dann MariaDB und Aapche.

systemctl enable mariadb.service
systemctl start mariadb.service
systemctl enable httpd.service
systemctl start httpd.service

Erstellen Sie ein Passwort für den MySQL-Benutzer root (ersetzen Sie Ihrmariadbpassword durch das Passwort, das Sie verwenden möchten):

mysql_secure_installation

[[email protected] ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation:line 379:find_mysql_client:command not found

HINWEIS:DAS AUSFÜHREN ALLER TEILE DIESES SCRIPTS WIRD FÜR ALLE MariaDB EMPFOHLEN
      SERVER IM PRODUKTIONSEINSATZ! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG!

Um sich bei MariaDB anzumelden, um es zu sichern, benötigen wir das aktuelle
Passwort für den Root-Benutzer. Wenn Sie MariaDB gerade erst installiert und
das Root-Passwort noch nicht festgelegt haben, ist das Passwort leer,
also sollten Sie hier einfach die Eingabetaste drücken.<--ENTER
Aktuelles Passwort für root eingeben (Eingabe für keins):<--ENTER
OK, erfolgreich verwendetes Passwort, weiter geht's...

Das Festlegen des Root-Passworts stellt sicher, dass sich niemand ohne die entsprechende Berechtigung beim MariaDB
root-Benutzer anmelden kann.

Root-Passwort setzen? [J/n]<--ENTER
Neues Passwort:<--yourrmariadbpassword
Geben Sie das neue Passwort erneut ein:<--yourrmariadbpassword
Passwort erfolgreich aktualisiert!
Berechtigungstabellen werden neu geladen..
 ... Erfolgreich!


Standardmäßig hat eine MariaDB-Installation einen anonymen Benutzer jeder
sich bei MariaDB anmelden kann, ohne dass ein Benutzerkonto
für ihn erstellt werden muss. Dies ist nur zum Testen gedacht und um die Installation
etwas reibungsloser zu gestalten. Sie sollten sie entfernen, bevor Sie in eine
Produktionsumgebung wechseln.

Anonyme Benutzer entfernen? [J/n]<--ENTER
 ... Erfolgreich!

Normalerweise sollte root nur erlaubt sein, sich von 'localhost' zu verbinden. Dies
stellt sicher, dass niemand das Root-Passwort aus dem Netzwerk erraten kann.

Root-Anmeldung aus der Ferne verbieten? [J/n]<--ENTER
 ... Erfolgreich!

MariaDB wird standardmäßig mit einer Datenbank namens "test" geliefert, auf die jeder
zugreifen kann. Dies ist ebenfalls nur zum Testen gedacht und sollte entfernt werden,
bevor Sie in eine Produktionsumgebung wechseln.

Testdatenbank und Zugriff darauf entfernen? [J/n]<--ENTER
 - Testdatenbank wird gelöscht...
 ... Erfolg!
 - Berechtigungen für Testdatenbank werden entfernt...
 ... Erfolg!

Durch das Neuladen der Berechtigungstabellen wird sichergestellt, dass alle bisher vorgenommenen Änderungen
sofort wirksam werden.

Berechtigungstabellen jetzt neu laden? [J/n]<--ENTER
 ... Erfolgreich!

Aufräumen...

Alles erledigt! Wenn Sie alle oben genannten Schritte ausgeführt haben, sollte Ihre MariaDB
Installation jetzt sicher sein.

Danke, dass Sie MariaDB verwenden!
[[email protected] ~]#

3 Installieren Sie PureFTPd mit MySQL-/MariaDB-Unterstützung

Das CentOS PureFTPd-Paket unterstützt verschiedene Backends wie MySQL, PostgreSQL, LDAP usw. Daher müssen wir nur das normale PureFTPd-Paket installieren:

yum -y install pure-ftpd

Dann erstellen wir eine FTP-Gruppe (ftpgroup) und einen Benutzer (ftpuser), denen alle unsere virtuellen Benutzer zugeordnet werden. Ersetzen Sie die Gruppen- und Benutzerkennung 2001 durch eine auf Ihrem System freie Nummer:

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

Der FTP-Dienst muss vom Firewall-Cmd wie folgt zugelassen werden:

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

4 Erstellen Sie die Datenbank für PureFTPd

Jetzt erstellen wir eine Datenbank namens pureftpd und einen MariaDB-Benutzer namens pureftpd, den der PureFTPd-Daemon später verwenden wird, um sich mit der pureftpd-Datenbank zu verbinden:

mysql -u root -p
CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;

Ersetzen Sie die Zeichenfolge ftpdpass durch das Passwort, das Sie für den MySQL-Benutzer pureftpd verwenden möchten. Immer noch auf der MySQL-Shell erstellen wir die Datenbanktabelle, die wir brauchen (ja, es gibt nur eine Tabelle!):

USE pureftpd;
CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) ENGINE=MyISAM;
quit;

Wie Sie vielleicht bemerkt haben, mit dem Beenden; Befehl haben wir die MySQL-Shell verlassen und befinden uns wieder auf der Linux-Shell.

Übrigens (ich gehe davon aus, dass der Hostname Ihres FTP-Serversystems server1.example.com ist) Sie können auf phpMyAdmin unter http://server1.example.com/phpMyAdmin/ zugreifen (Sie können auch die IP-Adresse anstelle von server1 verwenden .example.com) in einem Browser und melden Sie sich als Benutzer pureftpd an. Dann können Sie einen Blick in die Datenbank werfen. Später können Sie phpMyAdmin verwenden, um Ihren PureFTPd-Server zu verwalten.

5 PureFTPd konfigurieren

Bearbeiten Sie /etc/pure-ftpd/pure-ftpd.conf und stellen Sie sicher, dass die Zeilen ChrootEveryone, MySQLConfigFile und CreateHomeDir aktiviert sind und wie folgt aussehen:

nano /etc/pure-ftpd/pure-ftpd.conf
[...]
ChrootEveryone              yes
[...]
MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf
[...]
CreateHomeDir               yes
[...]

Die Einstellung ChrootEveryone bewirkt, dass PureFTPd jeden virtuellen Benutzer in seinem Home-Verzeichnis chrootet, sodass er nicht in der Lage sein wird, Verzeichnisse und Dateien außerhalb seines Home-Verzeichnisses zu durchsuchen. Die Zeile CreateHomeDir veranlasst PureFTPd, das Home-Verzeichnis eines Benutzers zu erstellen, wenn sich der Benutzer anmeldet und das Home-Verzeichnis noch nicht existiert.

Dann bearbeiten wir /etc/pure-ftpd/pureftpd-mysql.conf. Es sollte so aussehen:

cp /etc/pure-ftpd/pureftpd-mysql.conf /etc/pure-ftpd/pureftpd-mysql.conf_orig
cat /dev/null > /etc/pure-ftpd/pureftpd-mysql.conf
nano /etc/pure-ftpd/pureftpd-mysql.conf
MYSQLSocket      /var/lib/mysql/mysql.sock
#MYSQLServer     localhost
#MYSQLPort       3306
MYSQLUser       pureftpd
MYSQLPassword   ftpdpass
MYSQLDatabase   pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt      md5
MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

Achten Sie darauf, dass Sie in der Zeile MYSQLPassword den String ftpdpass durch das echte Passwort für den MySQL-Benutzer pureftpd ersetzen! Bitte beachten Sie, dass wir md5 als MYSQLCrypt-Methode verwenden, was bedeutet, dass wir die Passwörter der Benutzer als MD5-Zeichenfolge in der Datenbank speichern, was weitaus sicherer ist als die Verwendung von Klartext-Passwörtern!

Jetzt erstellen wir die Systemstartlinks für PureFTPd und starten es:

systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service

6 Befüllen Sie die Datenbank und testen Sie den Server

Um die Datenbank zu füllen, können Sie die MySQL-Shell verwenden:

mysql -u root -p
USE pureftpd;

Jetzt erstellen wir den Benutzer exampleuser mit dem Status 1 (was bedeutet, dass sein FTP-Konto aktiv ist), dem Passwort geheim (das mit der MD5-Funktion von MySQL verschlüsselt gespeichert wird), der UID und GID 2001 (verwenden Sie die Benutzer- und Gruppen-ID des Benutzers / Gruppe, die Sie am Ende von Schritt zwei erstellt haben!), das Home-Verzeichnis /home/www.example.com, eine Upload- und Download-Bandbreite von 100 KB/Sek. (Kilobyte pro Sekunde) und ein Kontingent 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;

Öffnen Sie nun Ihr FTP-Client-Programm auf Ihrer Workstation (so etwas wie FileZilla, wenn Sie auf einem Windows-System arbeiten, oder gFTP auf einem Linux-Desktop) und versuchen Sie, eine Verbindung herzustellen. Als Hostname verwenden Sie server1.example.com (oder die IP-Adresse des Systems), der Benutzername ist exampleuser und das Passwort ist secret.

Wenn Sie sich verbinden können - herzlichen Glückwunsch! Wenn nicht, ist etwas schief gelaufen.

Nun, wenn Sie laufen

ls -l /home

Sie sollten sehen, dass das Verzeichnis /home/www.example.com (das Home-Verzeichnis des Beispielbenutzers) automatisch erstellt wurde und im Besitz von ftpuser und ftpgroup ist (dem Benutzer/der Gruppe, die wir am Ende von Schritt zwei erstellt haben):

[[email protected] ~]# ls -l /home
total 0
drwx------. 2 administrator administrator 59 Jun 21 16:13 administrator
drwxr-xr-x. 2 ftpuser ftpgroup 22 Jul 4 18:30 www.example.com
[[email protected] ~]#

7 Datenbankverwaltung

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

Immer wenn Sie einen neuen Benutzer anlegen möchten, müssen Sie einen Eintrag in der Tabelle ftpd erstellen, daher erkläre ich hier die Spalten dieser Tabelle:

FTPD-Tabelle:

  • Benutzer:Der Name des virtuellen PureFTPd-Benutzers (z. B. exampleuser).
  • Status:0 oder 1. 0 bedeutet, dass das Konto deaktiviert ist, der Benutzer sich nicht anmelden kann.
  • Passwort:Das Passwort des virtuellen Benutzers. Stellen Sie sicher, dass Sie die MD5-Funktion von MySQL verwenden, um das Passwort verschlüsselt als MD5 zu speichern Zeichenkette:
  • UID:Die Benutzer-ID des FTP-Benutzers, den Sie am Ende von Schritt zwei erstellt haben (z. B. 2001).
  • GID:Die Gruppen-ID der FTP-Gruppe, die Sie am Ende von Schritt zwei erstellt haben (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 zum ersten Mal über FTP anmeldet. Der virtuelle Benutzer wird in dieses Home-Verzeichnis eingesperrt, d.h. er kann nicht auf andere Verzeichnisse außerhalb seines Home-Verzeichnisses zugreifen.
  • ULBandwidth:Upload-Bandbreite des virtuellen Benutzers in KB/Sek. (Kilobyte pro Sekunde). 0 bedeutet unbegrenzt.
  • DLBandwidth:Download-Bandbreite des virtuellen Benutzers in KB/Sek. (Kilobyte pro Sekunde). 0 bedeutet unbegrenzt.
  • Kommentar:Hier können Sie einen beliebigen Kommentar (z.B. für Ihre interne Verwaltung) eingeben. Normalerweise lassen Sie dieses Feld leer.
  • ipaccess:Geben Sie hier IP-Adressen ein, die sich mit diesem FTP-Account verbinden dürfen. * bedeutet, dass jede IP-Adresse eine Verbindung herstellen darf.
  • QuotaSize:Speicherplatz in MB (nicht KB, wie bei ULBandwidth und DLBandwidth!), den der virtuelle Benutzer auf dem FTP-Server nutzen darf. 0 bedeutet unbegrenzt.
  • QuotaFiles:Anzahl der Dateien, die der virtuelle Benutzer auf dem FTP-Server speichern darf. 0 bedeutet unbegrenzt.

8 Anonymes FTP

Wenn Sie ein anonymes FTP-Konto erstellen möchten (ein FTP-Konto, bei dem sich jeder ohne Passwort anmelden kann), benötigen Sie einen Benutzer und eine Gruppe namens ftp. Beide wurden automatisch erstellt, als Sie das pure-ftpd-Paket installiert haben, sodass Sie sie nicht manuell erstellen müssen. Das Homedir von FTP ist jedoch standardmäßig /var/ftp, aber ich möchte das anonyme FTP-Verzeichnis in /home/ftp erstellen (die FTP-Verzeichnisse der normalen Benutzer befinden sich ebenfalls in /home, z. B. /home/www.example. de). Aber natürlich können Sie das /var/ftp-Verzeichnis für anonymes FTP verwenden, wenn Sie es vorziehen.

Wenn Sie /home/ftp verwenden möchten, öffnen Sie /etc/passwd und ändern Sie das Homedir des FTP-Benutzers von /var/ftp in /home/ftp (tun Sie dies nicht, wenn Sie /var/ftp verwenden möchten):

nano /etc/passwd
[...]
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
ftp:x:14:50:FTP User:/home/ftp:/sbin/nologin
[...]

Verschieben Sie dann /var/ftp nach /home (tun Sie dies nicht, wenn Sie /var/ftp verwenden möchten):

mv /var/ftp /home

Dann erstellen wir das Verzeichnis /home/ftp/incoming, das es anonymen Benutzern ermöglicht, Dateien hochzuladen. Wir werden dem /home/ftp/incoming-Verzeichnis Berechtigungen von 311 erteilen, damit Benutzer Dateien in dieses Verzeichnis hochladen, aber keine Dateien sehen oder herunterladen können. Das Verzeichnis /home/ftp hat Berechtigungen von 555, was das Anzeigen und Herunterladen von Dateien erlaubt:

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

(Wenn Sie stattdessen /var/ftp verwenden möchten, ersetzen Sie in den obigen Befehlen /home/ftp durch /var/ftp.)

Anonyme Benutzer können sich anmelden und Dateien von /home/ftp herunterladen, aber Uploads sind auf /home/ftp/incoming beschränkt (und sobald eine Datei in /home/ftp/incoming hochgeladen wird, es kann von dort weder gelesen noch heruntergeladen werden; der Serveradministrator muss es zuerst nach /home/ftp verschieben, um es anderen zur Verfügung zu stellen).

Jetzt müssen wir PureFTPd für anonymes FTP konfigurieren. Öffnen Sie /etc/pure-ftpd/pure-ftpd.conf und vergewissern Sie sich, dass Sie die folgenden Einstellungen darin haben:

nano /etc/pure-ftpd/pure-ftpd.conf
[...]
NoAnonymous                 no
[...]
AntiWarez                   no
[...]
AnonymousBandwidth            8
[...]
AnonymousCantUpload         no
[...]

(Die Einstellung AnonymousBandwidth ist optional – sie ermöglicht es Ihnen, die Upload- und Download-Bandbreiten für anonyme Benutzer zu begrenzen. 8 bedeutet 8 KB/s. Verwenden Sie einen beliebigen Wert, oder kommentieren Sie die Zeile aus, wenn Sie die Bandbreiten nicht begrenzen möchten.)

Abschließend starten wir PureFTPd neu:

systemctl restart pure-ftpd.service

9 Laden Sie diesen CentOS 7.2-Server als virtuelle Maschine herunter

Dieses Setup ist als Download einer virtuellen Maschine im ova/ovf-Format (kompatibel mit VMWare und Virtualbox) für howtoforge-Abonnenten verfügbar.

Anmeldedaten für die VM

  • Das Root-Passwort lautet:howtoforge
  • Das Passwort des "Administrator"-Benutzers lautet:howtoforge

Bitte ändern Sie beide Passwörter bei der ersten Anmeldung.

  • Die IP-Adresse der VM lautet 192.168.1.100

  • PureFTPd:http://www.pureftpd.org/
  • MySQL:http://www.mysql.com/
  • phpMyAdmin:http://www.phpmyadmin.net/
  • CentOS:http://centos.org/

Cent OS
  1. So richten Sie einen FTP-Server mit VSFTPD unter CentOS 7 ein

  2. Mailserver mit virtuellen Benutzern und Domains mit Postfix und Dovecot auf einem CentOS 6 VPS

  3. So installieren Sie Varnish und phpMyAdmin auf einem CentOS 7 VPS mit Nginx, MariaDB und PHP-FPM

  4. Installieren Sie Zenario mit Apache, PHP und MariaDB auf CentOS 7

  5. Richten Sie einen Mailserver mit PostfixAdmin und MariaDB auf CentOS 7 ein

Virtuelles Hosting mit PureFTPd und MySQL (inkl. Kontingent- und Bandbreitenverwaltung) auf Ubuntu 12.04

Virtuelles Hosting mit PureFTPd und MySQL (inkl. Kontingent- und Bandbreitenverwaltung) auf Ubuntu 12.10

Virtuelles Hosting mit PureFTPd und MySQL (inkl. Kontingent- und Bandbreitenverwaltung) auf Ubuntu 14.04LTS

Serverüberwachung mit munin und monit auf CentOS 5.2

Serverüberwachung mit Munin und Monit auf CentOS 7

Serverüberwachung mit Munin und Monit auf CentOS 7.2