Version corta:
¿Cuál es la diferencia entre el contexto del servidor y una sección de host virtual en el archivo de configuración proftpd? En el sentido de qué puedo hacer con lo primero, no puedo hacer con lo segundo.
Por ejemplo, no puedo poner directivas como UseIPv6 o MaxInstances en un host virtual o en la sección global, pero ponerlas en el contexto del servidor funciona bien. ¿Cuál sería entonces el uso correcto de esas secciones para la configuración que se menciona a continuación?
Pensé que el proceso general era el siguiente: cada vez que un cliente se conecta al servidor, el servidor verifica si hay un host virtual correspondiente a la dirección a la que se conectó el cliente. De lo contrario, se elige la sección de contexto del servidor (excepto que se usa la directiva DefaultServer para evitar esto). Entonces pensé que la sección de contexto del servidor y la sección de host virtual son igualmente "poderosas". Pero ese no puede ser el caso porque hay directivas que sólo funcionan en una de las secciones.
Versión larga (información adicional):
Básicamente, todo lo que quiero hacer es ejecutar un servidor proftp en una máquina local en casa y hacer que este servidor sea accesible tanto desde Internet como desde mi LAN. Y está funcionando. Compilé proftpd desde la fuente (razón a continuación), lo instalé y configuré y parece funcionar como debería. No necesito ayuda para que proftpd se ejecute correctamente.
Sin embargo, no pude ejecutar el servidor simplemente leyendo la documentación de proftpd y tuve que seguir modificando el archivo de configuración hasta que todo salió bien. Entonces, todavía hay algo sobre el uso de hosts virtuales, la sección de contexto global y del servidor que no entiendo correctamente y es por eso que se me ocurrieron las preguntas anteriores.
Leí sobre la configuración de proftpd detrás de un enrutador y el significado de la sección de contexto de servidor, global y virtualhosts:
http://www.proftpd.org/docs/howto/NAT.html
http://www.proftpd.org/docs/howto/Vhost.html
Seguí varias guías y busqué en el foro preguntas similares. El servidor está funcionando, pero no entiendo realmente por qué funciona ahora y por qué no antes.
Esta es la estructura de mi actual (en funcionamiento) 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>
Primero pensé que debería crear dos secciones de virtualhost, una para LAN y otra para acceso externo y deshabilitar la sección de contexto del servidor configurando el Puerto 0. Pero luego hay directivas que no puedo usar dentro de las secciones de virtualhost. Así que no estoy seguro de si estoy usando las 3 secciones posibles como se supone que debo hacerlo. ¿Necesito usar la sección de contexto del servidor para tener algún tipo de configuración predeterminada? Esto se podría hacer con la directiva DefaultServer según la documentación.
uname -a: NOMBRE DE HOST Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (24/05/2015) x86_64 GNU/Linux
proftpd -v: ProFTPD Versión 1.3.5 El paquete binario proftpd incluido en los repositorios de Debian no es compatible con TLS 1.2 y no quiero usar FTP con una versión de TLS inferior a esa o incluso SSL. Así que lo compilé yo mismo.
Este es un texto bastante largo. Intenté acortarlo, ser preciso, evitar lo innecesario pero proporcionar suficiente información. Si hay algo que pueda mejorar o si mi pregunta pertenece más bien a Unix y Linux StackExchange, hágamelo saber. Elegí superusuario en lugar de serverfault para hacer esta pregunta porque se trata de un entorno de servidor en casa.
Gracias por su tiempo y ayuda.
Ene
Respuesta1
Hay algunas directivas de configuración que afectan a todo eldemonio, como UseIPv6
o MaxInstances
. Estas directivasno puedopor este motivo.
Sin embargo, la sintaxis del archivo de configuración de ProFTPD no tiene un contexto/sección que diga "estas directivas son sólo para todo el demonio". Por lo tanto, de forma predeterminada (y sí, no es ideal), estas directivas para todo el demonio solo se permiten en la sección "configuración del servidor", fuera de <Global>
, <VirtualHost>
o cualquier otro contexto.
¡Espero que esto ayude!
Respuesta2
Resulta que no tenía razón acerca de cierta información que proporcioné. Voy a marcar esta pregunta como respondida para evitar que la gente pierda tiempo respondiéndola. Una simple edición no ayudará porque no sé cuándo tendré tiempo para volver a verificar mi configuración de proftpd. Sin embargo, aclararé la causa de la descripción incorrecta que proporcioné, revisaré mi pregunta y la publicaré nuevamente en algún momento.