Hallo zusammen, heute werden wir in diesem Tutorial PureFTPd aus dem Quellcode auf CentOS 7 kompilieren und installieren. Pure-ftpd ist ein leichter und stabiler FTP-Daemon, der verschiedene Authentifizierungs-Backends wie Linux-Systembenutzer, puredb, MySQL und PostgeSQL unterstützt. P>
1. Pureftpd installieren
Installieren Sie die CentOS-Entwicklungstoolkette.
# yum -y groupinstall 'Development Tools'
Installieren Sie die MariaDB-Entwicklungsdateien.
# yum -y install mariadb-devel
Laden Sie die pure-ftpd-Quelldateien herunter und entpacken Sie das Archiv.
# cd /usr/local/src
# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.bz2
# tar xvjpf pure-ftpd-1*.tar.bz2
# cd pure-ftpd-1*
Führen Sie den Befehl configure aus, um den Build vorzubereiten. Um einen Überblick über alle Kompilierungsoptionen zu erhalten, führen Sie ./configure --help.
aus# ./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin \
--libexecdir=/usr/libexec --datadir=/usr/share --sysconfdir=/etc \
--sharedstatedir=/usr/com --localstatedir=/var --libdir=/usr/lib64 \
--includedir=/usr/include --infodir=/usr/share/info --mandir=/usr/share/man \
--with-mysql --with-virtualchroot --with-everything
und kompilieren Sie die pure-ftpd-Binärdatei:
# make
# make install
2. Erstellen von Konfigurationsdateien und Startskripten
Zuerst erstellen wir das Startskript. Für diesen Build verwenden wir das Startskript von CentOS 6.5, das unter CentOS 7 immer noch gut funktioniert.
# nano /etc/init.d/pure-ftpd
#!/bin/bash
#
# Startup script for the pure-ftpd FTP Server $Revision: 1.1 $
#
# chkconfig: - 85 15
# description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd
# processname: pure-ftpd
# pidfile: /var/run/pure-ftpd.pid
# config: /etc/pure-ftpd/pure-ftpd.conf
# Source function library.
. /etc/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is configured.
# [ ${NETWORKING} = "no" ] && exit 0
RETVAL=0
prog="pure-ftpd"
# Path to the pure-ftp binaries.
fullpath=/usr/sbin/pure-ftpd
pureftpwho=/usr/sbin/pure-ftpwho
pure_config=/etc/pure-ftpd/pure-ftpd.conf
pure_launch_script=/usr/sbin/pure-config.pl
start() {
echo -n $"Starting $prog: "
daemon "$pure_launch_script $pure_config --daemonize > /dev/null"
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/pure-ftpd
echo
}
stop() {
echo -n $"Stopping $prog: "
killproc pure-ftpd
RETVAL=$?
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/pure-ftpd
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
echo -n $"Reloading $prog: "
killproc pure-ftpd -HUP
RETVAL=$?
echo
;;
condrestart)
if [ -f /var/lock/subsys/pure-ftpd ] ; then
stop
# avoid race
sleep 3
start
fi
;;
status)
status pure-ftpd
RETVAL=$?
if [ -f $pureftpwho ] && [ $RETVAL -eq 0 ] ; then
$pureftpwho
fi
;;
*)
echo $"Usage: pure-ftpd {start|stop|restart|reload|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
3. Konfigurieren von Dateiberechtigungen
Jetzt müssen wir die erforderlichen Dateiberechtigungen mit den folgenden Befehlen bereitstellen, einschließlich der Konfiguration von Dingen nach der Installation.
# chmod +x /etc/init.d/pure-ftpd
# mkdir /etc/pure-ftpd/
# cp configuration-file/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf
# cp configuration-file/pure-config.pl /usr/sbin/pure-config.pl
# chmod 744 /etc/pure-ftpd/pure-ftpd.conf
# chmod 755 /usr/sbin/pure-config.pl
Dann erstellen Sie die Systemstartlinks und starten Sie PureFTPd:
# chkconfig --levels 235 pure-ftpd on
# systemctl start pure-ftpd.service
4. TLS mit OpenSSL konfigurieren
Jetzt konfigurieren wir PureFTPd so, dass FTP- und TLS-Sitzungen zugelassen werden. FTP ohne TLS ist ein sehr unsicheres Protokoll denn alle Passwörter und alle Daten werden im Klartext übertragen . Durch die Verwendung von TLS kann die gesamte Kommunikation verschlüsselt werden , wodurch FTP viel sicherer wird.
OpenSSL wird von TLS benötigt; Um OpenSSL zu installieren, führen wir einfach Folgendes aus:
# yum -y install openssl
Öffnen Sie /etc/pure-ftpd/pure-ftpd.conf...
# nano /etc/pure-ftpd/pure-ftpd.conf
Wenn Sie FTP- und TLS-Sitzungen zulassen möchten, setzen Sie TLS auf 1:
# Diese Option kann drei Werte annehmen:
# 0 :SSL/TLS-Verschlüsselungsschicht deaktivieren (Standard).
# 1 :akzeptieren Sie sowohl traditionelle als auch verschlüsselte Sitzungen.
# 2 :Verbindungen ablehnen, die keine SSL/TLS-Sicherheitsmechanismen verwenden,
# einschließlich anonymer Sitzungen.
# Entkommentieren Sie dies _nicht_ blind. Sei sicher, dass :
# 1) Ihr Server wurde mit SSL/TLS-Unterstützung kompiliert (--with-tls),
# 2) Ein gültiges Zertifikat ist vorhanden,
# 3) Nur kompatible Clients melden sich an.
Um TLS verwenden zu können, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/ssl/private/, daher erstelle ich dieses Verzeichnis zuerst:
mkdir -p /etc/ssl/private/
Anschließend können wir das SSL-Zertifikat wie folgt generieren:
# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Ändern Sie die Berechtigungen des SSL-Zertifikats:
# chmod 600 /etc/ssl/private/pure-ftpd.pem
Starten Sie abschließend PureFTPd neu:
# systemctl stop pure-ftpd.service
# systemctl start pure-ftpd.service
Schlussfolgerung
Hurra, wir haben pureftpd erfolgreich installiert und konfiguriert. Jetzt können wir die FTP-Datenübertragung mit TLS-Sicherheit genießen. Bitte beachten Sie, dass wir beim Verbinden des FTP-Servers unseren FTP-Client so konfigurieren sollten, dass er TLS verwendet, wenn Sie SSL-Zertifikate korrekt installiert und konfiguriert haben. Und standardmäßig öffnet pureftpd Port 21, um mit dem Client zu kommunizieren. Wenn Sie irgendwelche Probleme, Fragen oder Fragen haben, kommentieren Sie bitte ohne zu zögern unten, damit wir unsere Blogs und Inhalte weiter aktualisieren und verbessern können.