SlideShare una empresa de Scribd logo
Seguridad en HTTP, FTP  y SMTP Laura Concepción Rodríguez
Índice Servidor http  Apache Servidor ftp Vsftpd Servidor smtp Postfix 2
Introducción Los servicios más comunes que se pueden ofrecer al exterior son: Páginas web Archivos Correo electrónico La seguridad en los archivos de configuración de estos servicios es muy importante para no permitir el acceso a otras partes de nuestro sistema. 3
Apache Por defecto, Apache lee un solo archivo de configuración llamado httpd.conf. Dependiendo de la distribución su localización puede ser diferente aunque se puede encontrar con el siguiente comando: locate httpd.conf 4
Apache Apache es iniciado por el root, pero posteriormente el usuario efectivo pasa a ser el definido en la directiva  User. Los archivos relativos al servidor no deben ser editables por otros usuarios que no sean el root. La estructura de directorios bajo la que se encuentran los archivos debe tener permisos de escritura únicamente para root. 5
Apache Si vamos a instalar el servidor en /usr/local/apache2: mkdir /usr/local/apache2 cd /usr/local/apache2 chown 0 . bin conf logs chgwp 0 . bin con f logs chmod 755 . bin conf logs 6
Apache Se asume que únicamente root tiene permiso de escritura en /, /usr y /usr/local. El ejecutable que arranca el servidor, httpd, debe estar protegido de una forma similar: Se puede crear un subdirectorio denominado htdocs que sea modificable por otros usuarios. cp httpd /usr/local/apache2/bin chown 0 /usr/local/apache2/bin/httpd chgrp 0 /usr/local/apache2/bin/httpd chmod 511 /usr/local/apache2/bin/httpd 7
Apache Op MaxClients   <nº> : Límite de clientes conectados a la vez al servidor. Evita que el servidor bloquee al sistema. Listen  y  Port : Cambia el puerto por el que escucha el servidor (80 por defecto) en el caso de que no se desee que el servidor esté accesible para todo el mundo. 8
Apache DocumentRoot directorio : especifica el directorio raiz desde el cual Apache ofrecerá las páginas html para usuarios del exterior. User  y  Group : definen el propietario y el grupo bajo el cual el proceso httpd correrá. User daemon o User Apache Group daemon o Group Apache TimeOut <seg> :  Tiempo máximo para una conexión activa, evita bloqueos 9
Apache UserDir  <directorio> :   Permite servir ficheros de usuarios. Puede proporcionar información no deseada, así que lo evitamos: Option –Indexes DirectoryIndex index.html :  Si no existe la página de inicio indicada por defecto se mostrará el contenido del directorio y eso es peligroso. 10
Apache UserDir  <enable/disable>   Habilitar o Deshabilitar usuarios específicos para administrar el sistema. Ej. UserDir disable root ftp ServerName dns:puerto :  No especificar el nombre de la máquina donde está el servidor para evitar dar más información de la necesaria al exterior. 11
Apache FollowSymLinks:  Por defecto la directiva FollowSymLinks está habilitada, lo cual puede comprometer la seguridad  en el caso de que existan enlaces simbólicos hacia fuera del contenedor. Options -FollowSymLinks 12
Apache Archivos de configuración secundarios Los archivos  .htaccess proporcionan una forma de realizar un cambio en la configuración basada en directorios. Un archivo .htaccess con directivas de configuración se sitúa en un directorio, de modo que esas directivas se aplican a ese directorio y a sus subdirectorios. 13
Apache Archivos de configuración secundarios Los archivos .htaccess pueden anular las precauciones tomadas en la configuración de httpd.conf.  Para evitar esto hacemos, en httpd.conf: <Directory /> AllowOverride None </Directory> 14
Apache Autentificar usuarios Para autentificar a un usuario se utilizan las siguientes directivas en el contenedor requerido: AuthType Basic AuthName &quot;Sitio privado&quot; AuthUserFile /usr/local/apache2/passwd/passwords Require Valid-User 15
Apache Para crear el archivo de passwords y añadir usuarios, se utiliza la orden htpasswd. Opción -c para crear un nuevo archivo de passwords. Opción -b para suministrar el password en la línea de la orden (modo batch). Si no se indica esta opción, se solicita el password a continuación. httpasswd -c -b {path}/passwords  usuario contraseña 16
Apache Para restingir el acceso a una máquina, un red, un dominio, etc, se utilizan las directivas allow y deny. Allow: controla los servidores que tendrán acceso al contenido Deny: controla los servidores que no tendrán acceso Order: determina el orden en el que se leerán los permisos <Directory /> Order Deny,Allow Deny from 192.168.1.0/24 .conga.net Allow from all </Directory> 17
Apache Un buen seguimiento de los logs es crítico para una buena seguridad. Se utilizan las siguientes directivas para tratar los logs: Errorlog: indica el directorio donde se almacenarán los registros de errores LogLevel: especifica el nivel de detalle de los errores LogFormat: para seleccionar la información que se muestra CustomLog: indica donde se almacena el registro de acceso que almacena información sobre las peticiones que procesa el servidor. 18
Apache Con ErrorLog y LogLevel  ErrorLog /var/log/httpd/error_log LogLevel warn Con  LogFormat  y CustomLog LogFormat “%a %p %P” common CustomLog /var/log/httpd/common_log common 19
Apache   y SSL Netscape desarrolló el protocolo abierto no propietario llamado Secured Socket Layer (SSL) para proporcionar encriptación de datos, autentificación del servidor, integridad de datos y autentificación de clientes para comunicación basada en TCP/IP. HTTPS es la versión segura de HTTP que utiliza SSL para crear un canal de cifrado más apropiado para el tráfico de información sensible. 20
Apache   y SSL 21
Apache   y SSL En una transacción basada en SSL, el servidor envía un certificado al sistema cliente. Las autoridades certificadoras (como VeriSign) son las que normalmente emiten los certificados. El certificado contiene la clave pública del servidor, que se utilizará para establecer un canal de comunicación seguro. 22
Apache   y SSL El módulo mod_ssl provee una interfaz para OpenSSL. OpenSSL es una implementación de código abierto de los protocolos SSL v2/v3 y TLS v1 (Transport Layer Security). Para establecer SSL para apache necesitamos instalar OpenSSL en el sistema. Se puede descargar el paquete OpenSSL desde  http://www.openssl.org . Para instalar este paquete solo tenemos que descomprimirlo y desempaquetarlo e instalarlo mediante las herramientas configure y make. 23
Apache   y SSL En la instalación de Apache se deben pasar los siguientes argumentos a configure: --with-ssl={Directorio de OpenSSL} --enable-ssl Una vez instalado OpenSSL y Apache con el módulo mod_ssl debemos obtener un certificado. A través de una CA comercial (VeriSign). A través de una CA privada de autocertificación. 24
Apache   y SSL Para crear un certificado para test utilizamos la utilidad  openssl . openssl req –new –x509 –nodes –out server.crt –keyout server.key Una vez creado, establecemos una password para server.key. openssl rsa –des3 –in server.key –out server.key.new mv server.key.new server.key 25
Apache   y SSL Para poder ejecutar SSL, en el fichero httpd.conf creamos un servidor virtual que escuche las peticiones al puerto 443 (puerto de HTTPS por defecto). <VirtualHost _default_:443> DocumentRoot &quot;/www/privado&quot; <Directory /> Order allow,deny Allow from all </Directory> </VirtualHost> 26
Apache   y SSL Habilitamos SSL para ese servidor virtual e indicamos la ubicación de los certificados (dentro de la directiva VirtualHost): SSLEngine on SSLCertificateFile /usr/local/apache2/conf/server.crt SSLCertificateKeyFile /usr/local/apache2/conf/server.key 27
Apache   y SSL Añadimos el tipo MIME adecuado para el tipo de los certificados (.crt). AddType application/x-x509-ca-cert .crt Añadimos la directiva Listen 443 para habilitar que se puedan realizar peticiones a través de este puerto. Arrancamos el servidor: /usr/local/apache2/bin/apachectl start 28
Vsftpd El servidor FTP que proporciona Fedora Core 3 por defecto es vsftpd (Very Secure FTP Daemon). vsftpd es un servidor FTP para sistemas UNIX con licencia GPL.  Es seguro, rápido y estable 29
Vsftpd El fichero de configuración del servidor es /etc/vsftpd/vsftpd.conf. La documentación se encuentra en /usr/share/doc/vsftpd-{versión}. A continuación veremos las directivas más importantes a tener en cuenta para asegurar nuestro servidor. 30
Vsftpd Para impedir el acceso del usuario anónimo (se permite por defecto): anonymous_enable=NO Para restringir a los usuarios a sus directorios home: chroot_local_user=YES Al restringirlos a sus directorios home, no pueden seguir enlaces simbólicos. 31
Vsftpd Para permitir el acceso a usuarios locales del sistema se utiliza la directiva  local_enable=yes  (por defecto no se permite). Una vez activada, mediante PAM se puede restringir el acceso a determinados usuarios, como por ejemplo el usuario root. El fichero PAM correspondiente es  /etc/pam.d/vsftpd  32
Vsftpd Indirectamente soporta máximo número de clientes debido a que es un servicio basado en inetd. Si se utiliza xinetd, se puede establecer un límite de conexiones por servicio y por IP. Si se ejecuta vsftpd en solitario (standalone) se puede restringir el número máximo de usuarios con la directiva  max_clients=número_máximo y   max_per_ip=número máximo. 33
Vsftpd Por defecto, vsftpd no permite la escritura. Ningún usuario podrá escribir en el directorio raíz del servidor. Si queremos permitir escritura, debemos incluir las directivas: write_enable=YES anon_upload_enable=YES  34
Vsftpd 35 allow_anon_ssl  Sólo se aplica se está activa la opción ssl_enable. Si esta opción se pone a YES, los usuarios anonymous podrán hacer uso de conexiones SSL seguras. Por defecto: NO  dirlist_enable   Si se pone a NO, a todos los comandos para listar el directorio se les denegará el permiso de ejecución. Por defecto: YES
download_enable   Si se pone a NO, a todas las peticiones de descarga de ficheros se les denegará el permiso. Por defecto: YES  cmds_allowed   Esta opción permite especificar una lista de comandos separados por comas, que serán los comandos FTP que se permitan utilizar (tras login, USER, PASS y QUIT, que son comandos previos al login, siempre son permitidos). Los demás comandos no serán aceptados. Ejemplo: cmds_allowed=PASV,RETR,QUIT  Vsftpd
Postfix Postfix es el servidor de correo más utilizado en las distribuciones de Linux. Es más fácil de administrar, rápido y SEGURO que el sendmail (que viene por defecto en Fedora Core3). Fue desarrollado por IBM.
Postfix Instalación en el sistema: Desactivar el sendmail Crear usuario  postfix  y grupo  postdrop Instalar en el sistema (make) 38
Postfix El fichero de configuración es:  /etc/postfix/main.cf Las directivas más relevantes concernientes a la seguridad son: default_privs = nobody  Default_privs indica los privilegios por defecto del agente de entrega de correo para ejecutar un comando o abrir un archivo. Generalmente se usa nobody ya que no se debe especificar un usuario con privilegios o el usuario postfix 39
Postfix mynetworks = 192.168.10.0/28, 127.0.0.0, !192.168.10.29  Máquinas que pueden y que no pueden (precedidas de ‘!’ ) enviar correo  message_size_limit = tamaño (en bytes) Indica el tamaño máximo que puede tener un mensaje. Por defecto: 10 MB. mailbox_size_limit = tamaño (en bytes)  Indica el tamaño máximo que puede tener un buzón de correo. Por defecto: 50 MB
Postfix relay_domains = <dirección_de _máquina> Especifica las máquinas a las que se les puede enviar el correo. notify_classes=<bounce, 2bounce, delay, policy, protocol, resource, software> Mediante la directiva notify_classes el administrador indica a Postfix qué tipo de incidencias debe notificar automáticamente , mediante un mensaje al usuario Postmaster.
Postfix Bounce Si un mensaje no puede ser encaminado, se envía otro mensaje al remitente y una copia al Postmater incluyendo el mensaje original. En el caso del Postmaster sólo se incluyen por razones de privacidad las cabeceras. 2bounce En el caso en que la notificación de un mensaje de error de encaminamiento genere también un error de encaminamiento, se envía notificación a Postmaster. 42
Postfix Delay Se informa a Postmaster de que hay mensajes pospuestos por problemas en su encaminamiento. Policy Se informa sobre peticiones rechazadas de entrega de mensajes. Normalmente se debe a que el interlocutor o el propio mensaje incumple la política definida para la aceptación de correo. Muy útil para conocer intentos fallidos de uso de la estafeta como relay.
Postfix Protocol Se informa sobre incidentes de protocolo. Resource Se comunica a Postmaster que un mensaje no ha sido encaminado por problemas de recursos en el sistema. Software Se comunica a Postmaster que un mensaje no ha sido encaminado por problemas de software.
Postfix smtpd_client_restrictions = reject_unknown_client Permite rechazar las conexiones desde clientes cuya dirección IP no disponga de resolución inversa en el DNS smtpd_client_restrictions = reject_rbl_client relays.ordb.org Permite fácilmente verificar que el cliente que ha establecido la conexión SMTP o el remitente del mensaje no está inscrito en alguna de las listas negras que se designen 45
Postfix smtpd_helo_required Dándole el valor yes obliga a que el sistema remoto inicie la sesión con la directiva HELO o EHLO. Por defecto: NO. Obligar a iniciar la sesión con HELO/EHLO ya en sí inutiliza algunas herramientas utilizadas para SPAM y algún que otro virus. smtpd_helo_restrictions En conjunción con la anterior directiva, ésta permite establecer criterios que permiten continuar o no con la sesión.
Postfix Ejemplo de configuración más usada: smtpd_helo_restrictions = reject_invalid_hostname: rechaza la petición cuando HELO es enviado con mala sintaxix. reject_unknown_hostname: similar reject_non_fqdn_hostname: cuando el helo no está de la forma especificada en el RFC821
Postfix Filtrado por cabeceras Un mecanismo que proporciona Postfix, y que se está utilizando ampliamente contra la propagación de virus, es la posibilidad de filtrar los mensajes en base a las cabeceras de los mismos y a patrones definidos mediante expresiones regulares. De esta manera, todo mensaje que contenga una cabecera que cumpla un determinado patrón será rechazado automáticamente.
Postfix Suponiendo que el fichero de definición de cabeceras está en  /etc/postfix/headers_checks , para activar el filtrado por cabeceras será necesario incluir en el fichero  main.cf  la siguiente directiva: header_checks = egexp:/etc/postfix/header_checks
Postfix #  Headers Checks # Virus: W32.SirCam [20/SEP/01] /^date:.*/i REJECT /^Content-Disposition: Multipart message/ REJECT # Virus Nimda (attach readme.exe) [20/SEP/01] /^X-Unsent: 1/ REJECT # Virus Badtrans [30/NOV/01] /^From: &quot;.*&quot; <_/ REJECT # Virus W32.Myparty.B@mm [29/ENE/02] /^Subject: new photos from my party!/ REJECT #Virus W32/Frethem.K/J [15/JUL/02] /^Subject: Re: Your password!/ REJECT
Postfix Filtrado por contenidos De igual manera que pueden filtrarse mensajes en base a patrones que se definen sobre las cabeceras de los mensajes, también se pueden definir patrones que se aplicarán al contenido de los mensajes Suponiendo que el fichero de definición de contenidos es  /etc/postfix/body_checks , para activar el filtrado por contenidos en el mensaje será necesario incluir en el fichero  main.cf  la directiva: body_checks = regexp:/etc/postfix/body_checks
Postfix # Body Checks # /Accept Credit Cards/ REJECT /Nude Celebrities/ REJECT /PRODUCT or SERVICE/ REJECT /GUARANTEED!/ REJECT /Amateur Girls/ REJECT /FREE MEMBERSHIP/ REJECT /bizinfo/ REJECT
Postfix Postfix puede ejecutar la mayoría de sus procesos en modo chroot, es decir, los procesos sólo disponen de privilegios para acceder al directorio  /var/spool/postfix , y todas las referencias a ficheros se resuelven tomando este directorio como raíz. No pueden ejecutarse en modo chroot el proceso local, virtual y todos los procesos pipe. Aunque este no es un mecanismo que garantice la inviolabilidad, sí que representa una barrera más, y por tanto es recomendable su adopción en instalaciones que requieran un nivel adicional de seguridad.
Postfix Dado que para cambiar a modo chroot es necesario copiar algunos ficheros, que cambiarán según el sistema operativo que se esté utilizando, Postfix proporciona en su distribución una colección de scripts para realizar esta labor. A efectos de configuración, sólo es necesario modificar el fichero  master.cf  para indicar qué procesos deben ejecutarse en modo chroot.
55 FIN

Más contenido relacionado

DOCX
PROXY CENTOS 6.5
DOCX
Manual de squid creado por juanextk
PDF
Manual de configuracion de proxy SQUID
PDF
Manual ldap
PDF
Apache: instalación y configuración en Ubuntu Server y Windows Server
PPTX
PDF
Squid3 - Servidor Proxy
PDF
Squid proxy transparente en ubuntu
PROXY CENTOS 6.5
Manual de squid creado por juanextk
Manual de configuracion de proxy SQUID
Manual ldap
Apache: instalación y configuración en Ubuntu Server y Windows Server
Squid3 - Servidor Proxy
Squid proxy transparente en ubuntu

La actualidad más candente (20)

PDF
Tutorial linux centos configuraciones básicas
 
PDF
Practica 15 21 qde cota
PPTX
Seguridad de las Redes Informáticas
ODP
Samba como PDC y autentificación LDAP
PDF
Práctica 15
PDF
Manual FTP, SSH y OpenMedia Vault
PDF
0 entorno php
PDF
Entorno PHP
PDF
Instalación de Servidores GNU/Linux - parte 1
PDF
Instalación de dns en centos
DOCX
Servidor DNS Dinámico en Ubuntu Server 16.04 LTS
PDF
Instalación de Servidores GNU/Linux - APACHE, MySQL, PHP (parte 2)
PDF
OpenSSH
PDF
Filtrado der contenido web con GNU/Linux y Squid
PDF
Instalación y configuración Servidor FTP y SSH
PDF
Pecha kuchassh windows
PDF
Configuracion del servidor vsftpd en linux
PDF
Unidad 14 - SAMBA, NFS y LDAP
PDF
0114 manual-de-configuracion-servidores-en-centos
Tutorial linux centos configuraciones básicas
 
Practica 15 21 qde cota
Seguridad de las Redes Informáticas
Samba como PDC y autentificación LDAP
Práctica 15
Manual FTP, SSH y OpenMedia Vault
0 entorno php
Entorno PHP
Instalación de Servidores GNU/Linux - parte 1
Instalación de dns en centos
Servidor DNS Dinámico en Ubuntu Server 16.04 LTS
Instalación de Servidores GNU/Linux - APACHE, MySQL, PHP (parte 2)
OpenSSH
Filtrado der contenido web con GNU/Linux y Squid
Instalación y configuración Servidor FTP y SSH
Pecha kuchassh windows
Configuracion del servidor vsftpd en linux
Unidad 14 - SAMBA, NFS y LDAP
0114 manual-de-configuracion-servidores-en-centos
Publicidad

Similar a Apache.http ftp-smtp (20)

PPT
Apache2 dia1
PDF
apache00000000000000000000000000000_t.pdf
PDF
Apli t1 practicas_apache
PDF
Guia basica-securizacion-apache
PDF
Laboratorio Nº 9.1.pdf
PDF
PDF
PDF
Unidad III: Seguridad de las redes
PDF
Introducción a Servidor HTTP Apache
PPT
Servidir Proxy
PPTX
servidor proxy
PPTX
RESUMEN PROXY
PPTX
Resumen Servidor Proxy
PDF
Servidor web Apache
PPT
Fuerza bruta con hydra y montando un ssh
PDF
Servidorweb
PDF
Servicio apache gnu linux-centos ::: http://leymebamba.com
PDF
Unidad iii seguridad de redes
PDF
PDF
servidor proxy squid
Apache2 dia1
apache00000000000000000000000000000_t.pdf
Apli t1 practicas_apache
Guia basica-securizacion-apache
Laboratorio Nº 9.1.pdf
Unidad III: Seguridad de las redes
Introducción a Servidor HTTP Apache
Servidir Proxy
servidor proxy
RESUMEN PROXY
Resumen Servidor Proxy
Servidor web Apache
Fuerza bruta con hydra y montando un ssh
Servidorweb
Servicio apache gnu linux-centos ::: http://leymebamba.com
Unidad iii seguridad de redes
servidor proxy squid
Publicidad

Más de gh02 (12)

PDF
presentation-passiveinvesting - presentation-passiveinvesting
PDF
Power gui 3.5_userguide. Powershell for windows
PPT
Apache.d4 admin web
PPS
Seguridad vo ip
PPS
Penetration testing
PPS
Nmap.potosim
PPS
Intrusion detectionsystems
PPT
Wireshark.ethereal
PPT
IDS Network security - Bouvry
PPT
Sshmarta
PPT
Ssh
PPT
Resumen iptables- 10 comandos mas usados de iptables
presentation-passiveinvesting - presentation-passiveinvesting
Power gui 3.5_userguide. Powershell for windows
Apache.d4 admin web
Seguridad vo ip
Penetration testing
Nmap.potosim
Intrusion detectionsystems
Wireshark.ethereal
IDS Network security - Bouvry
Sshmarta
Ssh
Resumen iptables- 10 comandos mas usados de iptables

Apache.http ftp-smtp

  • 1. Seguridad en HTTP, FTP y SMTP Laura Concepción Rodríguez
  • 2. Índice Servidor http Apache Servidor ftp Vsftpd Servidor smtp Postfix 2
  • 3. Introducción Los servicios más comunes que se pueden ofrecer al exterior son: Páginas web Archivos Correo electrónico La seguridad en los archivos de configuración de estos servicios es muy importante para no permitir el acceso a otras partes de nuestro sistema. 3
  • 4. Apache Por defecto, Apache lee un solo archivo de configuración llamado httpd.conf. Dependiendo de la distribución su localización puede ser diferente aunque se puede encontrar con el siguiente comando: locate httpd.conf 4
  • 5. Apache Apache es iniciado por el root, pero posteriormente el usuario efectivo pasa a ser el definido en la directiva User. Los archivos relativos al servidor no deben ser editables por otros usuarios que no sean el root. La estructura de directorios bajo la que se encuentran los archivos debe tener permisos de escritura únicamente para root. 5
  • 6. Apache Si vamos a instalar el servidor en /usr/local/apache2: mkdir /usr/local/apache2 cd /usr/local/apache2 chown 0 . bin conf logs chgwp 0 . bin con f logs chmod 755 . bin conf logs 6
  • 7. Apache Se asume que únicamente root tiene permiso de escritura en /, /usr y /usr/local. El ejecutable que arranca el servidor, httpd, debe estar protegido de una forma similar: Se puede crear un subdirectorio denominado htdocs que sea modificable por otros usuarios. cp httpd /usr/local/apache2/bin chown 0 /usr/local/apache2/bin/httpd chgrp 0 /usr/local/apache2/bin/httpd chmod 511 /usr/local/apache2/bin/httpd 7
  • 8. Apache Op MaxClients <nº> : Límite de clientes conectados a la vez al servidor. Evita que el servidor bloquee al sistema. Listen y Port : Cambia el puerto por el que escucha el servidor (80 por defecto) en el caso de que no se desee que el servidor esté accesible para todo el mundo. 8
  • 9. Apache DocumentRoot directorio : especifica el directorio raiz desde el cual Apache ofrecerá las páginas html para usuarios del exterior. User y Group : definen el propietario y el grupo bajo el cual el proceso httpd correrá. User daemon o User Apache Group daemon o Group Apache TimeOut <seg> : Tiempo máximo para una conexión activa, evita bloqueos 9
  • 10. Apache UserDir <directorio> : Permite servir ficheros de usuarios. Puede proporcionar información no deseada, así que lo evitamos: Option –Indexes DirectoryIndex index.html : Si no existe la página de inicio indicada por defecto se mostrará el contenido del directorio y eso es peligroso. 10
  • 11. Apache UserDir <enable/disable> Habilitar o Deshabilitar usuarios específicos para administrar el sistema. Ej. UserDir disable root ftp ServerName dns:puerto : No especificar el nombre de la máquina donde está el servidor para evitar dar más información de la necesaria al exterior. 11
  • 12. Apache FollowSymLinks: Por defecto la directiva FollowSymLinks está habilitada, lo cual puede comprometer la seguridad en el caso de que existan enlaces simbólicos hacia fuera del contenedor. Options -FollowSymLinks 12
  • 13. Apache Archivos de configuración secundarios Los archivos .htaccess proporcionan una forma de realizar un cambio en la configuración basada en directorios. Un archivo .htaccess con directivas de configuración se sitúa en un directorio, de modo que esas directivas se aplican a ese directorio y a sus subdirectorios. 13
  • 14. Apache Archivos de configuración secundarios Los archivos .htaccess pueden anular las precauciones tomadas en la configuración de httpd.conf. Para evitar esto hacemos, en httpd.conf: <Directory /> AllowOverride None </Directory> 14
  • 15. Apache Autentificar usuarios Para autentificar a un usuario se utilizan las siguientes directivas en el contenedor requerido: AuthType Basic AuthName &quot;Sitio privado&quot; AuthUserFile /usr/local/apache2/passwd/passwords Require Valid-User 15
  • 16. Apache Para crear el archivo de passwords y añadir usuarios, se utiliza la orden htpasswd. Opción -c para crear un nuevo archivo de passwords. Opción -b para suministrar el password en la línea de la orden (modo batch). Si no se indica esta opción, se solicita el password a continuación. httpasswd -c -b {path}/passwords usuario contraseña 16
  • 17. Apache Para restingir el acceso a una máquina, un red, un dominio, etc, se utilizan las directivas allow y deny. Allow: controla los servidores que tendrán acceso al contenido Deny: controla los servidores que no tendrán acceso Order: determina el orden en el que se leerán los permisos <Directory /> Order Deny,Allow Deny from 192.168.1.0/24 .conga.net Allow from all </Directory> 17
  • 18. Apache Un buen seguimiento de los logs es crítico para una buena seguridad. Se utilizan las siguientes directivas para tratar los logs: Errorlog: indica el directorio donde se almacenarán los registros de errores LogLevel: especifica el nivel de detalle de los errores LogFormat: para seleccionar la información que se muestra CustomLog: indica donde se almacena el registro de acceso que almacena información sobre las peticiones que procesa el servidor. 18
  • 19. Apache Con ErrorLog y LogLevel ErrorLog /var/log/httpd/error_log LogLevel warn Con LogFormat y CustomLog LogFormat “%a %p %P” common CustomLog /var/log/httpd/common_log common 19
  • 20. Apache y SSL Netscape desarrolló el protocolo abierto no propietario llamado Secured Socket Layer (SSL) para proporcionar encriptación de datos, autentificación del servidor, integridad de datos y autentificación de clientes para comunicación basada en TCP/IP. HTTPS es la versión segura de HTTP que utiliza SSL para crear un canal de cifrado más apropiado para el tráfico de información sensible. 20
  • 21. Apache y SSL 21
  • 22. Apache y SSL En una transacción basada en SSL, el servidor envía un certificado al sistema cliente. Las autoridades certificadoras (como VeriSign) son las que normalmente emiten los certificados. El certificado contiene la clave pública del servidor, que se utilizará para establecer un canal de comunicación seguro. 22
  • 23. Apache y SSL El módulo mod_ssl provee una interfaz para OpenSSL. OpenSSL es una implementación de código abierto de los protocolos SSL v2/v3 y TLS v1 (Transport Layer Security). Para establecer SSL para apache necesitamos instalar OpenSSL en el sistema. Se puede descargar el paquete OpenSSL desde http://www.openssl.org . Para instalar este paquete solo tenemos que descomprimirlo y desempaquetarlo e instalarlo mediante las herramientas configure y make. 23
  • 24. Apache y SSL En la instalación de Apache se deben pasar los siguientes argumentos a configure: --with-ssl={Directorio de OpenSSL} --enable-ssl Una vez instalado OpenSSL y Apache con el módulo mod_ssl debemos obtener un certificado. A través de una CA comercial (VeriSign). A través de una CA privada de autocertificación. 24
  • 25. Apache y SSL Para crear un certificado para test utilizamos la utilidad openssl . openssl req –new –x509 –nodes –out server.crt –keyout server.key Una vez creado, establecemos una password para server.key. openssl rsa –des3 –in server.key –out server.key.new mv server.key.new server.key 25
  • 26. Apache y SSL Para poder ejecutar SSL, en el fichero httpd.conf creamos un servidor virtual que escuche las peticiones al puerto 443 (puerto de HTTPS por defecto). <VirtualHost _default_:443> DocumentRoot &quot;/www/privado&quot; <Directory /> Order allow,deny Allow from all </Directory> </VirtualHost> 26
  • 27. Apache y SSL Habilitamos SSL para ese servidor virtual e indicamos la ubicación de los certificados (dentro de la directiva VirtualHost): SSLEngine on SSLCertificateFile /usr/local/apache2/conf/server.crt SSLCertificateKeyFile /usr/local/apache2/conf/server.key 27
  • 28. Apache y SSL Añadimos el tipo MIME adecuado para el tipo de los certificados (.crt). AddType application/x-x509-ca-cert .crt Añadimos la directiva Listen 443 para habilitar que se puedan realizar peticiones a través de este puerto. Arrancamos el servidor: /usr/local/apache2/bin/apachectl start 28
  • 29. Vsftpd El servidor FTP que proporciona Fedora Core 3 por defecto es vsftpd (Very Secure FTP Daemon). vsftpd es un servidor FTP para sistemas UNIX con licencia GPL. Es seguro, rápido y estable 29
  • 30. Vsftpd El fichero de configuración del servidor es /etc/vsftpd/vsftpd.conf. La documentación se encuentra en /usr/share/doc/vsftpd-{versión}. A continuación veremos las directivas más importantes a tener en cuenta para asegurar nuestro servidor. 30
  • 31. Vsftpd Para impedir el acceso del usuario anónimo (se permite por defecto): anonymous_enable=NO Para restringir a los usuarios a sus directorios home: chroot_local_user=YES Al restringirlos a sus directorios home, no pueden seguir enlaces simbólicos. 31
  • 32. Vsftpd Para permitir el acceso a usuarios locales del sistema se utiliza la directiva local_enable=yes (por defecto no se permite). Una vez activada, mediante PAM se puede restringir el acceso a determinados usuarios, como por ejemplo el usuario root. El fichero PAM correspondiente es /etc/pam.d/vsftpd 32
  • 33. Vsftpd Indirectamente soporta máximo número de clientes debido a que es un servicio basado en inetd. Si se utiliza xinetd, se puede establecer un límite de conexiones por servicio y por IP. Si se ejecuta vsftpd en solitario (standalone) se puede restringir el número máximo de usuarios con la directiva max_clients=número_máximo y max_per_ip=número máximo. 33
  • 34. Vsftpd Por defecto, vsftpd no permite la escritura. Ningún usuario podrá escribir en el directorio raíz del servidor. Si queremos permitir escritura, debemos incluir las directivas: write_enable=YES anon_upload_enable=YES 34
  • 35. Vsftpd 35 allow_anon_ssl Sólo se aplica se está activa la opción ssl_enable. Si esta opción se pone a YES, los usuarios anonymous podrán hacer uso de conexiones SSL seguras. Por defecto: NO dirlist_enable Si se pone a NO, a todos los comandos para listar el directorio se les denegará el permiso de ejecución. Por defecto: YES
  • 36. download_enable Si se pone a NO, a todas las peticiones de descarga de ficheros se les denegará el permiso. Por defecto: YES cmds_allowed Esta opción permite especificar una lista de comandos separados por comas, que serán los comandos FTP que se permitan utilizar (tras login, USER, PASS y QUIT, que son comandos previos al login, siempre son permitidos). Los demás comandos no serán aceptados. Ejemplo: cmds_allowed=PASV,RETR,QUIT Vsftpd
  • 37. Postfix Postfix es el servidor de correo más utilizado en las distribuciones de Linux. Es más fácil de administrar, rápido y SEGURO que el sendmail (que viene por defecto en Fedora Core3). Fue desarrollado por IBM.
  • 38. Postfix Instalación en el sistema: Desactivar el sendmail Crear usuario postfix y grupo postdrop Instalar en el sistema (make) 38
  • 39. Postfix El fichero de configuración es: /etc/postfix/main.cf Las directivas más relevantes concernientes a la seguridad son: default_privs = nobody Default_privs indica los privilegios por defecto del agente de entrega de correo para ejecutar un comando o abrir un archivo. Generalmente se usa nobody ya que no se debe especificar un usuario con privilegios o el usuario postfix 39
  • 40. Postfix mynetworks = 192.168.10.0/28, 127.0.0.0, !192.168.10.29 Máquinas que pueden y que no pueden (precedidas de ‘!’ ) enviar correo message_size_limit = tamaño (en bytes) Indica el tamaño máximo que puede tener un mensaje. Por defecto: 10 MB. mailbox_size_limit = tamaño (en bytes) Indica el tamaño máximo que puede tener un buzón de correo. Por defecto: 50 MB
  • 41. Postfix relay_domains = <dirección_de _máquina> Especifica las máquinas a las que se les puede enviar el correo. notify_classes=<bounce, 2bounce, delay, policy, protocol, resource, software> Mediante la directiva notify_classes el administrador indica a Postfix qué tipo de incidencias debe notificar automáticamente , mediante un mensaje al usuario Postmaster.
  • 42. Postfix Bounce Si un mensaje no puede ser encaminado, se envía otro mensaje al remitente y una copia al Postmater incluyendo el mensaje original. En el caso del Postmaster sólo se incluyen por razones de privacidad las cabeceras. 2bounce En el caso en que la notificación de un mensaje de error de encaminamiento genere también un error de encaminamiento, se envía notificación a Postmaster. 42
  • 43. Postfix Delay Se informa a Postmaster de que hay mensajes pospuestos por problemas en su encaminamiento. Policy Se informa sobre peticiones rechazadas de entrega de mensajes. Normalmente se debe a que el interlocutor o el propio mensaje incumple la política definida para la aceptación de correo. Muy útil para conocer intentos fallidos de uso de la estafeta como relay.
  • 44. Postfix Protocol Se informa sobre incidentes de protocolo. Resource Se comunica a Postmaster que un mensaje no ha sido encaminado por problemas de recursos en el sistema. Software Se comunica a Postmaster que un mensaje no ha sido encaminado por problemas de software.
  • 45. Postfix smtpd_client_restrictions = reject_unknown_client Permite rechazar las conexiones desde clientes cuya dirección IP no disponga de resolución inversa en el DNS smtpd_client_restrictions = reject_rbl_client relays.ordb.org Permite fácilmente verificar que el cliente que ha establecido la conexión SMTP o el remitente del mensaje no está inscrito en alguna de las listas negras que se designen 45
  • 46. Postfix smtpd_helo_required Dándole el valor yes obliga a que el sistema remoto inicie la sesión con la directiva HELO o EHLO. Por defecto: NO. Obligar a iniciar la sesión con HELO/EHLO ya en sí inutiliza algunas herramientas utilizadas para SPAM y algún que otro virus. smtpd_helo_restrictions En conjunción con la anterior directiva, ésta permite establecer criterios que permiten continuar o no con la sesión.
  • 47. Postfix Ejemplo de configuración más usada: smtpd_helo_restrictions = reject_invalid_hostname: rechaza la petición cuando HELO es enviado con mala sintaxix. reject_unknown_hostname: similar reject_non_fqdn_hostname: cuando el helo no está de la forma especificada en el RFC821
  • 48. Postfix Filtrado por cabeceras Un mecanismo que proporciona Postfix, y que se está utilizando ampliamente contra la propagación de virus, es la posibilidad de filtrar los mensajes en base a las cabeceras de los mismos y a patrones definidos mediante expresiones regulares. De esta manera, todo mensaje que contenga una cabecera que cumpla un determinado patrón será rechazado automáticamente.
  • 49. Postfix Suponiendo que el fichero de definición de cabeceras está en /etc/postfix/headers_checks , para activar el filtrado por cabeceras será necesario incluir en el fichero main.cf la siguiente directiva: header_checks = egexp:/etc/postfix/header_checks
  • 50. Postfix # Headers Checks # Virus: W32.SirCam [20/SEP/01] /^date:.*/i REJECT /^Content-Disposition: Multipart message/ REJECT # Virus Nimda (attach readme.exe) [20/SEP/01] /^X-Unsent: 1/ REJECT # Virus Badtrans [30/NOV/01] /^From: &quot;.*&quot; <_/ REJECT # Virus W32.Myparty.B@mm [29/ENE/02] /^Subject: new photos from my party!/ REJECT #Virus W32/Frethem.K/J [15/JUL/02] /^Subject: Re: Your password!/ REJECT
  • 51. Postfix Filtrado por contenidos De igual manera que pueden filtrarse mensajes en base a patrones que se definen sobre las cabeceras de los mensajes, también se pueden definir patrones que se aplicarán al contenido de los mensajes Suponiendo que el fichero de definición de contenidos es /etc/postfix/body_checks , para activar el filtrado por contenidos en el mensaje será necesario incluir en el fichero main.cf la directiva: body_checks = regexp:/etc/postfix/body_checks
  • 52. Postfix # Body Checks # /Accept Credit Cards/ REJECT /Nude Celebrities/ REJECT /PRODUCT or SERVICE/ REJECT /GUARANTEED!/ REJECT /Amateur Girls/ REJECT /FREE MEMBERSHIP/ REJECT /bizinfo/ REJECT
  • 53. Postfix Postfix puede ejecutar la mayoría de sus procesos en modo chroot, es decir, los procesos sólo disponen de privilegios para acceder al directorio /var/spool/postfix , y todas las referencias a ficheros se resuelven tomando este directorio como raíz. No pueden ejecutarse en modo chroot el proceso local, virtual y todos los procesos pipe. Aunque este no es un mecanismo que garantice la inviolabilidad, sí que representa una barrera más, y por tanto es recomendable su adopción en instalaciones que requieran un nivel adicional de seguridad.
  • 54. Postfix Dado que para cambiar a modo chroot es necesario copiar algunos ficheros, que cambiarán según el sistema operativo que se esté utilizando, Postfix proporciona en su distribución una colección de scripts para realizar esta labor. A efectos de configuración, sólo es necesario modificar el fichero master.cf para indicar qué procesos deben ejecutarse en modo chroot.