Certificaciones de Linux

Serie RHCSA Instalación, configuración y obtención de un servidor web y FTP - Parte 9

Serie RHCSA Instalación, configuración y obtención de un servidor web y FTP - Parte 9

Un servidor web (también conocido como un Http servidor) es un servicio que maneja el contenido (más comúnmente páginas web, pero también otros tipos de documentos) a un cliente en una red.

Un servidor FTP es uno de los recursos más antiguos y más utilizados (incluso hasta el día de hoy) para poner los archivos a disposición de los clientes en una red en los casos en que no se necesita autenticación ya que FTP usa nombre de usuario y contraseña sin cifrado.

El servidor web disponible en Rhel 7 es versión 2.4 del servidor Apache HTTP. En cuanto al servidor FTP, utilizaremos el demonio FTP muy seguro (también conocido como VSFTPD) para establecer conexiones aseguradas por TLS.

En este artículo explicaremos cómo instalar, configurar y asegurar un servidor web y un servidor FTP en RHEL 7.

Instalación del servidor Apache y FTP

En esta guía utilizaremos un servidor Rhel 7 con una dirección IP estática de 192.168.0.18/24. Para instalar Apache y VSFTPD, ejecute el siguiente comando:

# Yum Update && Yum install httpd vsftpd 

Cuando se complete la instalación, ambos servicios se deshabilitarán inicialmente, por lo que debemos iniciarlos manualmente por el momento y permitirles comenzar automáticamente con el siguiente arranque:

# SystemCTL Start Httpd # SystemCTL Habilitar httpd # systemctl start vsftpd # systemctl habilitar vsftpd 

Además, tenemos que abrir puertos 80 y 21, donde los demonios web y FTP están escuchando, respectivamente, para permitir el acceso a esos servicios desde el exterior:

# firewall-cmd --zone = public --add-puerto = 80/tcp --Permanent # firewall-cmd --zone = public --add-service = ftp --Permanent # firewall-cmd --leload 

Para confirmar que el servidor web funciona correctamente, encienda su navegador e ingrese la IP del servidor. Deberías ver la página de prueba:

En cuanto al servidor FTP, tendremos que configurarlo más, lo que haremos en un minuto, antes de confirmar que está funcionando como se esperaba.

Configurar y asegurar el servidor web Apache

El archivo de configuración principal para apache Se encuentra en /etc/httpd/conf/httpd.confusión, pero puede confiar en otros archivos presentes dentro /etc/httpd/conf.d.

Aunque la configuración predeterminada debería ser suficiente para la mayoría de los casos, es una buena idea familiarizarse con todas las opciones disponibles como se describe en la documentación oficial.

Como siempre, haga una copia de copia de seguridad del archivo de configuración principal antes de editarlo:

# cp/etc/httpd/conf/httpd.conf/etc/httpd/conf/httpd.confusión.$ (fecha +%y%m%d) 

Luego ábralo con su editor de texto preferido y busque las siguientes variables:

  1. Avenida: El directorio donde se mantienen la configuración, el error y los archivos de registro del servidor.
  2. Escuchar: instruye a Apache que escuche en una dirección IP y / o puertos específicos.
  3. Incluir: Permite la inclusión de otros archivos de configuración, que deben existir. De lo contrario, el servidor fallará, a diferencia de la Directiva incluido.
  4. Usuario y grupo: el nombre del usuario/grupo para ejecutar el servicio HTTPD como.
  5. Raiz del documento: El directorio fuera del cual Apache servirá a sus documentos. Por defecto, todas las solicitudes se toman de este directorio, pero se pueden usar enlaces y alias simbólicos para señalar otras ubicaciones.
  6. Nombre del servidor: Esta directiva establece el nombre de host (o dirección IP) y el puerto que el servidor utiliza para identificarse a sí mismo.

La primera medida de seguridad consistirá en crear un usuario y grupo dedicado (i.mi. tecmenta/tecmenta) para ejecutar el servidor web y cambiar el puerto predeterminado a uno más alto (9000 en este caso):

ServerRoot "/etc/httpd" escucha 192.168.0.18: 9000 user Tecmint Group TecMint DocumentRoot "/var/www/html" Servername 192 192.168.0.18: 9000 

Puede probar el archivo de configuración con.

# apachectl configtest 

Y si todo es DE ACUERDO, luego reinicie el servidor web.

# SystemCTL reiniciar httpd 

Y no olvide habilitar el nuevo puerto (y deshabilitar el viejo) en el firewall:

# firewall-cmd --zone = public--Remove-Port = 80/TCP --Permanent # firewall-cmd --zone = public --add-port = 9000/tcp --Permanent # firewall-cmd 

Tenga en cuenta que, debido a Selinux Políticas, solo puede usar los puertos devueltos por

# Puerto de semanage -l | grep -w '^http_port_t' 

para el servidor web.

Si quieres usar otro puerto (yo.mi. Puerto TCP 8100), tendrás que agregarlo a Selinux contexto de puerto para el httpd servicio:

# Puerto de semanage -a -t http_port_t -p tcp 8100 

Para asegurar aún más su instalación de Apache, siga estos pasos:

1. El usuario Apache se está ejecutando ya que no debería tener acceso a un shell:

# usermod -s /sbin /nologin tecmint 

2. Deshabilitar la lista de directorio para evitar que el navegador muestre el contenido de un directorio si no hay índice.html presente en ese directorio.

Editar /etc/httpd/conf/httpd.confusión (y los archivos de configuración para hosts virtuales, si los hay) y asegúrese de que el Opción La directiva, tanto en la parte superior como en los niveles de bloqueo de directorio, se establece en Ninguno:

Opciones ninguna 

3. Ocultar información sobre el servidor web y el sistema operativo en las respuestas HTTP. Editar /etc/httpd/conf/httpd.confusión como sigue:

Serververkens Prod Serversignature Off 

Ahora está listo para comenzar a servir contenido desde su /var/www/html directorio.

Configuración y obtención del servidor FTP

Como en el caso de Apache, el archivo de configuración principal para VSFTPD (/etc/vsftpd/vsftpd.conf) está bien comentado y, aunque la configuración predeterminada debería ser suficiente para la mayoría de las aplicaciones, debe familiarizarse con la documentación y la página del hombre (Hombre VSFTPD.conf) Para operar el servidor FTP de manera más eficiente (no puedo enfatizar eso suficiente!).

En nuestro caso, estas son las directivas utilizadas:

anónimo_enable = no local_enable = yes write_enable = sí local_umask = 022 dirmessage_enable = sí xferlog_enable = yes Connect_From_Port_20 = sí xferlog_std_format = yes chroot_local_User = yes dign_wriTable_chroot = ye escucha = no escuchar Si tcp_wrappers = sí 

Mediante el uso chroot_local_user = sí, Los usuarios locales se colocarán (por defecto) en una cárcel de chroot en su directorio de inicio justo después de iniciar sesión. Esto significa que los usuarios locales no podrán acceder a ningún archivo fuera de sus directorios de inicio correspondientes.

Finalmente, para permitir que FTP lea archivos en el directorio de inicio del usuario, establezca lo siguiente Selinux booleano:

# setsebool -p ftp_home_dir on 

Ahora puede conectarse al servidor FTP usando un cliente como Filezilla:

Tenga en cuenta que el /var/log/xferlog Registro de registros Descargas y cargas, que coinciden con la lista de directorio anterior:

Leer también: Limite el ancho de banda de la red FTP utilizado por las aplicaciones en un sistema de Linux con goteo

Resumen

En este tutorial hemos explicado cómo configurar una web y un servidor FTP. Debido a la inmensidad del sujeto, no es posible cubrir todos los aspectos de estos temas (i.mi. Hosts web virtuales). Por lo tanto, le recomiendo que también consulte otros excelentes artículos en este sitio web sobre Apache.

Envío de formulario HTML automático utilizando wwwMechanize
Aquí hay un breve consejo sobre cómo enviar automáticamente un formulario HTML usando una línea de comandos de Linux y un script Perl. Para este ejemp...
Establezca y recupere una cookie con Perl y CGI
Hay múltiples parámetros que se pueden configurar al crear una cookie. Esto no se aplica solo a Perl y CGI, sino a todos los demás desarrollo......
Linux Nvidia McPtop 10 Forcedeth Module no funciona
Este problema con el módulo de Forcedeth parece afectar todas las principales distribuciones de Linux. Year 2008 fue la primera vez que informé este p...