Serie RHCSA: Instalación, configuración y protección de un servidor Web y FTP-Parte 9

Un servidor web (también conocido como servidor HTTP. es un servicio que maneja 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 hacer que los archivos estén disponibles para los clientes en una red en los casos en los que no es necesaria la autenticación, ya que FTP utiliza nombre de usuario. y contraseña. sin cifrado.

El servidor web disponible en RHEL 7. es la versión 2.4. de Apache HTTP Servidor. En cuanto al servidor FTP, usaremos Very Secure Ftp Daemon (también conocido como vsftpd. para establecer conexiones protegidas por TLS.

Configuración y protección de Apache y servidor FTP RHCSA: Instalación, configuración y protección de Apache y FTP-Parte 9

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

Instalación de Apache y servidor FTP

En esta guía usaremos 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 la instalación se completa, ambos servicios se deshabilitarán inicialmente, por lo que debemos iniciarlos manualmente por el momento y habilitarlos para que comiencen automáticamente comenzando con el siguiente arranque:

# systemctl start httpd

# systemctl enable httpd

# systemctl start vsftpd

# systemctl enable vsftpd

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

# firewall-cmd–zone = public–add-port = 80/tcp–permanent

# firewall-cmd–zone = public–add-service = ftp–permanent

# firewall-cmd–reload

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

 Confirm Apache Web Server Confirmar Apache Web Server

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.

Configuración y protección del servidor web Apache

El archivo de configuración principal para Apache. se encuentra en/etc/httpd/conf/httpd. conf, pero puede depender de otros archivos presentes dentro de/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 seguridad copia del archivo de configuración principal antes de editarlo:

# cp/etc/httpd/conf/httpd.conf/etc/httpd/conf/httpd.conf.$(date +% Y% m% d)

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

  1. ServerRoot. el directorio donde se guardan los archivos de configuración, error y registro del servidor.
  2. Escuchar. indica a Apache que escuche en direcciones 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 IncludeOptional, que se ignora silenciosamente si los archivos de configuración especificados no existen.
  4. Usuario y grupo. el nombre del usuario/group para ejecutar el servicio httpd como.
  5. DocumentRoot. el directorio desde el cual Apache servirá sus documentos. De forma predeterminada, todas las solicitudes se toman de este directorio, pero se pueden usar enlaces simbólicos y alias para señalar a otras ubicaciones.
  6. ServerName. esta directiva establece el nombre de host (o la dirección IP ) y el puerto que utiliza el servidor para identificarse.

La primera medida de seguridad consistirá en crear un usuario y un grupo dedicados (es decir, tecmint. tecmint. para ejecutar el servidor web y cambiar el puerto predeterminado a uno superior ( 9000. en este caso):

ServerRoot “/etc/httpd” Escuche 192.168.0.18: 9000 Usuario grupo tecmint tecmint DocumentRoot “/var/www/html” ServerName 192.168.0.18:9000

Puede probar el archivo de configuración con.

# apachectl configtest

y si todo está OK. luego reinicie el servidor web.

# systemctl reinicie httpd

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

# firewall-cmd–zone = public–remove-port = 80/tcp–permanente # firewall-cmd–zone = public–add-port = 9000/tcp–permanent # firewall-cmd–reload

Tenga en cuenta que, debido a las políticas de SELinux. solo puede usar los puertos devueltos por

# semanage port-l | grep-w ‘^ http_port_t’

para el servidor web.

Si desea utilizar otro puerto (es decir, el puerto TCP 8100. , deberá agregarlo a Contexto del puerto SELinux. para el servicio httpd.

# semanage port-a-t http_port_t-p tcp 8100  Agregar puerto Apache a las políticas de SELinux Agregar puerto Apache a SELin ux Políticas Agregar puerto Apache a las políticas de SELinux

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.. Desactive la lista de directorios para evitar que el navegador no muestre el contenido de un directorio si no hay index.html. presente en ese directorio.

Edite/etc/httpd/conf/httpd.conf (y los archivos de configuración para hosts virtuales, si los hay) y asegúrese de que la directiva Opciones. tanto en la parte superior como en los niveles de bloque de directorio, se establece en Ninguno.

Opciones Ninguno

3.. Ocultar información sobre el servidor web y el sistema operativo en las respuestas HTTP. Edite/etc/httpd/conf/httpd.conf de la siguiente manera:

ServerTokens Prod ServerSignature Off

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

Configuración y protección del servidor FTP

Como en el caso de Apache, el archivo de configuración principal para Vsftpd. (/etc/vsftpd/vsftpd.conf) es bien comentado y si bien 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 de manual (man vsftpd.conf) para operar el servidor ftp de manera más eficiente (¡no puedo enfatizar eso lo suficiente!).

En nuestro caso, estas son las directivas utilizadas:

anonymous_enable = NO local_enable = YES write_enable = YES local_umask = 022 dirmessage_enable = YES xferlog_enable = YES connect_from_port_20 = YES xferlog_std_format = YES chroot_local_write = YES YES listen = NO listen_ipv6 = YES pam_service_name = vsftpd userlist_enable = YES tcp_wrappers = YES

Al usar chroot_local_user = YES, los usuarios locales serán (por defecto) colocados en una cárcel con chroot en su directorio de inicio inmediatamente 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, configure el siguiente SELinux. booleano:

# setsebool-P ftp_home_dir on

Ahora puede conectarse al servidor ftp usando un cliente como Filezilla.

 Verificar FTP Conexión Compruebe la conexión FTP

Tenga en cuenta que el registro de/var/log/xferlog registra las descargas y cargas, que coinciden con la lista de directorios anterior:

 Monitor FTP Descarga y carga Monitor FTP Descarga y Subir

Leer también. Limitar el ancho de banda de la red FTP utilizado por las aplicaciones en un sistema Linux con Trickle

Resumen

En este tutorial hemos explicado cómo configurar una web y un servidor ftp. Debido a la amplitud del tema, no es posible cubrir todos los aspectos de estos temas (es decir, servidores web virtuales). Por lo tanto, te recomiendo que consultes también otros excelentes artículos en este sitio web sobre Apache.