Proftpd - Virtualhosts, globaler Abschnitt und Serverkontext werden korrekt verwendet

1064
user299793

Kurze Version:

Was ist der Unterschied zwischen dem Serverkontext und einem Abschnitt für virtuelle Hosts in der Konfigurationsdatei von proftpd? Im Sinne dessen, was ich mit dem ersteren machen kann, kann ich mit dem letzteren nichts anfangen.
Zum Beispiel kann ich Direktiven wie UseIPv6 oder MaxInstances nicht in einen virtuellen Host oder in den globalen Abschnitt einfügen, aber das Einfügen in den Serverkontext funktioniert einwandfrei. Was wäre dann die korrekte Verwendung dieser Abschnitte für die unten genannte Einstellung?

Ich dachte, der gesamte Prozess sei der folgende: Wenn ein Client eine Verbindung zum Server herstellt, prüft der Server, ob es einen virtuellen Host gibt, der der Adresse entspricht, mit der der Client verbunden ist. Wenn nicht, wird der Serverkontextabschnitt ausgewählt (mit Ausnahme der DefaultServer-Direktive, um dies zu verhindern). Ich dachte also, dass der Server-Kontextabschnitt und ein Virtualhost-Abschnitt gleichermaßen "mächtig" sind. Dies kann jedoch nicht der Fall sein, da es Richtlinien gibt, die nur in einem der Abschnitte funktionieren.

Langversion (zusätzliche Informationen):

Grundsätzlich möchte ich nur einen Proftp-Server auf einem lokalen Computer zu Hause ausführen und diesen Server sowohl vom Internet als auch von meinem LAN aus erreichen. Und es funktioniert. Ich habe proftpd von source kompiliert (Grund unten), es installiert und konfiguriert und es scheint so zu funktionieren, wie es sollte. Ich brauche keine Hilfe, damit proftpd richtig läuft.

Ich konnte den Server jedoch nicht durch Ausführen der Proftpd-Dokumentation zum Laufen bringen, und ich musste weiter an der Konfigurationsdatei arbeiten, bis alles gut geklappt hatte. Es gibt also immer noch etwas über die Verwendung von VirtualHosts, den globalen und den Serverkontextabschnitt, den ich nicht richtig verstehe, und deshalb bin ich auf die obigen Fragen gestoßen.

Ich habe über die Konfiguration von Proftpd hinter einem Router und die Bedeutung von VirtualHosts, Global- und Server-Kontextabschnitt gelesen:
http://www.proftpd.org/docs/howto/NAT.html
http://www.proftpd.org/docs/howto /Vhost.html
Ich folgte mehreren Leitfäden und durchsuchte das Forum nach ähnlichen Fragen. Der Server funktioniert, ich verstehe einfach nicht, warum es jetzt ist und warum es vorher nicht funktioniert hat.

Dies ist die Struktur meiner aktuellen (funktionierenden) proftpd.conf: <Global> User ... Group ... RequireValidShell ... DefaultRoot ... ... <IfModule mod_tls.c> TLSEngine ... TLSProtocol TLSv1.2 ... </IfModule> </Global>
#server context managing the config for access over the internet ServerName "external" Port 21 #can't be used inside a virtualhost section UseIPv6 off ... #need to masquerade ip for external address MasqueradeAddress myurl.com #needed for passive ftp mode PassivePorts 60000 65535
#virtualhost managing the config for lan access <VirtualHost 192.168.178.54> ServerName "internal" Port 21 PassivePorts 60000 65535 </VirtualHost>

Zuerst dachte ich, ich sollte nur zwei virtuelle Hostbereiche erstellen, einen für LAN und einen für externen Zugriff, und den Serverkontextbereich deaktivieren, indem Sie Port 0 setzen. Aber dann gibt es Anweisungen, die ich nicht innerhalb der virtuellen Hostbereiche verwenden kann. Ich bin mir also ziemlich unsicher, ob ich die drei möglichen Abschnitte benutze, wie ich soll. Muss ich den Serverkontextabschnitt verwenden, um eine Art Standardkonfiguration zu erhalten? Dies kann mit der DefaultServer-Direktive gemäß der Dokumentation erfolgen.

uname -a: Linux HOSTNAME 3.16.0-4-amd64 # 1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU / Linux

proftpd -v: ProFTPD Version 1.3.5 Das in den Debian-Repositorys enthaltene proftpd-Binärpaket unterstützt TLS 1.2 nicht, und ich möchte kein FTP mit TLS-Version darunter oder gar SSL verwenden. Also habe ich es selbst zusammengestellt.

Dies ist ein ziemlich langer Text. Ich habe versucht, es zu verkürzen, genau zu sein, unnötig zu vermeiden, aber genügend Informationen bereitzustellen. Wenn es etwas gibt, das ich verbessern könnte oder wenn meine Frage eher zu unix und linux stackexchange gehört, lass es mich wissen. Ich habe mich für Superuser über Serverfault entschieden, um diese Frage zu stellen, da es sich um eine Serverumgebung zu Hause handelt.

Vielen Dank für Ihre Zeit und Hilfe.

Jan

1

2 Antworten auf die Frage

1
Castaglia

Es gibt einige Konfigurationsanweisungen, die den gesamten Dämon betreffen, wie z. B. UseIPv6oder MaxInstances. Diese Richtlinien können aus diesem Grund nicht pro-vhost festgelegt werden.

Die ProFTPD-Konfigurationsdateisyntax verfügt jedoch nicht über einen Kontext / Abschnitt, der besagt, dass "diese Anweisungen nur für den gesamten Daemon gelten". So standardmäßig (und ja, es ist nicht ideal), wobei diese Daemon weite Richtlinien sind nur in dem „Serverkonfiguration“ Abschnitt erlaubt, außerhalb <Global>, <VirtualHost>oder einem anderen Kontext.

Hoffe das hilft!

0
user299793

Es stellte sich heraus, dass ich bezüglich einiger Informationen, die ich zur Verfügung stellte, nicht recht hatte. Ich werde diese Frage als beantwortet markieren, um zu vermeiden, dass die Leute Zeit damit verbringen, sie zu beantworten. Eine einfache Bearbeitung hilft nicht, da ich nicht weiß, wann ich meine Proftpd-Einstellungen überprüfen kann. Ich werde jedoch die Ursache der fehlerhaften Beschreibung klären, meine Frage überarbeiten und sie in einiger Zeit erneut posten.