OBSOLETO: Es preferible no instalar el webmin en los servidores de producción y lo indicado aquí puede hacerse directamente con crontab -e (ver lo explicado en el punto del RKHunter).
Con la finalidad de que todas las madrugadas se ejecuten los programas de diagnóstico y se emitan los emails al Administrador del Servidor debemos:
Ingresar a:
Webmin > Sistema > Tareas Planificadas (Cron)
Crear los siguientes crones usando el enlace “Crear una nueva tarea de cron en catálogo“ y asignándolos a root, con ejecución en cualquier fecha a las horas seleccionadas, todos los días de todas las semanas de todos los meses:
Luego se debe hacer clic en el botón “Save” y finalmente hacer clic en el botón “Rebuild configuration and restart apache“.
A su vez, esto se puede hacer manualmente de la siguiente forma:
Uno de los mecanismos comúnmente usados por los intrusos es verificar la versión del servidor web Apache con la finalidad de conocer con exactitud cual tipo de vulnerabilidad o exploit será utilizada para penetrar el sistema. Para aumentar la seguridad debemos deshabilitar la identificación del Apache con:
nano /etc/httpd/conf/httpd.conf
Buscar y asegurar que las siguientes variables se cumplan:
Luego se debe hacer clic en el botón “Save” y finalmente hacer clic en el botón “Rebuild configuration and restart apache“.
A su vez, esto se puede hacer manualmente de la siguiente forma:
Uno de los mecanismos comúnmente usados por los intrusos es verificar la versión del servidor web Apache con la finalidad de conocer con exactitud cual tipo de vulnerabilidad o exploit será utilizada para penetrar el sistema. Para aumentar la seguridad debemos deshabilitar la identificación del Apache con:
nano /etc/httpd/conf/httpd.conf
Buscar y asegurar que las siguientes variables se cumplan:
El comando telnet es una de las vías más vulnerables para permitir el acceso a intrusos en forma remota, es por ello que debemos deshabilitarlo. Para lograr esto se debe ejecutar:
El comando sysctl es usado para visualizar, configurar y automatizar configuraciones del kernel en el directorio /proc/sys/. Un ataque posible es el SYN FlOODS (Ver el Punto 3.0 donde se explica este tipo de ataque).
Para proteger Sysctl de este tipo de ataques debemos ejecutar:
cd /etc nano /etc/sysctl.conf
Comentar lo que tenga y colocar:
#Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Disables packet forwarding net.ipv4.ip_forward=0 # Disables IP source routing net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.lo.accept_source_route = 0 net.ipv4.conf.eth0.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 # Enable IP spoofing protection, turn on source route verification net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 net.ipv4.conf.eth0.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # Disable ICMP Redirect Acceptance net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.eth0.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 # Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets net.ipv4.conf.all.log_martians = 0 net.ipv4.conf.lo.log_martians = 0 net.ipv4.conf.eth0.log_martians = 0 # Disables IP source routing net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.lo.accept_source_route = 0 net.ipv4.conf.eth0.accept_source_route = 0 # Enable IP spoofing protection, turn on source route verification net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 net.ipv4.conf.eth0.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # Disable ICMP Redirect Acceptance net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.eth0.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 # Disables the magic-sysrq key kernel.sysrq = 0 # Decrease the time default value for tcp_fin_timeout connection net.ipv4.tcp_fin_timeout = 15 # Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time = 1800 # Turn off the tcp_window_scaling net.ipv4.tcp_window_scaling = 0 # Turn off the tcp_sack net.ipv4.tcp_sack = 0 # Turn off the tcp_timestamps net.ipv4.tcp_timestamps = 0 # Enable TCP SYN Cookie Protection net.ipv4.tcp_syncookies = 1 # Enable ignoring broadcasts request net.ipv4.icmp_echo_ignore_broadcasts = 1 # Enable bad error message Protection net.ipv4.icmp_ignore_bogus_error_responses = 1 # Log Spoofed Packets, Source Routed Packets, Redirect Packets net.ipv4.conf.all.log_martians = 1 # Increases the size of the socket queue (effectively, q0). net.ipv4.tcp_max_syn_backlog = 1024 # Increase the tcp-time-wait buckets pool size net.ipv4.tcp_max_tw_buckets = 1440000 # Allowed local port range net.ipv4.ip_local_port_range = 16384 65536
SIM es un monitor de la integridad del sistema y sus servicios. Está diseñado para ser intuitivo y modular y para proporcionar un sistema limpio e informativo. Para ello, verifica sistemáticamente que los servicios están en línea, que los promedios de carga sean adecuados, y que los archivos de registro de eventos (logs) tienen tamaños razonables. SIM dispone de diversos módulos y características de mayor profundidad que lo convierten en una herramienta muy completa a nuestra disposición para la administración de servidores en la internet.
Las características de SIM son:
Supervisión de los Servicios HTTP, FTP, DNS, SSH, MYSQL y más
Seguimiento de eventos y del sistema de alertas
Capacidad de auto-reinicio para servicios caídos
Verificación contra los sockets de red y la lista de procesos para asegurar que los servicios estén en línea
Monitorización avanzada del servicio HTTP para evitar problemas encontrados comúnmente
Monitor de carga del sistema con advertencias y acciones personalizables
Capacidad de auto-reiniciar el sistema con un nivel de carga crítica definible
Cambio de prioridad configurable para los servicios, para niveles de carga de advertencia o crítica
Pantalla informativa del estado en la línea de comandos
Archivo de configuración fácilmente personalizable
Programa de auto configuración
Configuración del cronjob automática
Programa de instalación simple e informativo
Función de actualización automática integrada
Instalación
Para instalar SIM se deben seguir los siguientes pasos:
cd /usr/local/src wget http://www.rfxn.com/downloads/sim-current.tar.gz tar -zxvf sim-current.tar.gz cd sim-3.0/ ./setup -i
Esto muestra la licencia, el readme y la configuración automática, dar ENTER todo el tiempo.
Ahora debemos editar la configuración con:
nano /usr/local/sim/config/conf.sim
Debemos buscar los siguientes parámetros y colocar el valor indicado:
EMAIL="hostmaster@sudominio.com" SUBJ="Advertencia de Estado del Servidor $HOSTNAME"
Para activar los servicios que queremos monitorear debemos editar el archivo de configuración de módulos:
nano /usr/local/sim/config/mods.control
Observaremos la lista de módulos al final del mismo notando que todos están apagados (en off) por lo que no se verificará su funcionamiento. Para activar la verificación de los servicios deseados debemos colocarlos en on, por lo que se deben buscar los siguientes módulos y colocarlos en on como se muestra a continuación:
init.httpd on init.mysqld on init.named on init.sshd on
La lista de módulos indicada arriba es solo un ejemplo, como podrá observar en el archivo de configuración es posible monitorear muchos otros servicios incluyendo el propio cpanel o el webmin, lo importante es activar (colocar en on) solo aquellos servicios que realmente son fundamentales para el funcionamiento del servidor y están en ejecución en el mismo (ej. no activar la verificación del webmin en los servidores de producción ni del cpanel en los de desarrollo ya que dichos servicios no existen en esos servidores).
La tarea cron se crea automáticamente por lo que no es necesario crearla manualmente, sin embargo, si se desea eliminar y crearla posteriormente de nuevo el comando es:
cd /usr/local/src/sim-3.0/ ./setup -c
Si ya se estaba ejecutando el cron y lo eliminamos, entonces debemos ejecutar 2 veces el comando para re-establecerlo.
LSM es un monitor de sockets de red; está diseñado para realizar un seguimiento de los cambios en los sockets de la red y sockets de dominio de UNIX, esto es básicamente un monitor de puertos. Para ello, realiza una comparación simple basada en las diferencias de sockets actuales y nuevos (puertos del servidor). Un sistema de alerta simple y configurable envía alertas cada vez que se activan nuevos puertos. LSM omitirá los servicios que ya mantienen sockets abiertos y sólo informará de eventos cuando se haya creado un socket ‘nuevo’ (puerto).
Instalación:
Para instalar el LSM se debe ejecutar:
cd /usr/local/src wget http://www.rfxn.com/downloads/lsm-current.tar.gz tar -zxvf lsm-current.tar.gz cd lsm-0.6/ ./install.sh
Es fundamental que el administrador de un servidor conozca con precisión cuando alguien ingrese en el sistema utilizando el usuario root de tal forma que pueda ejecutar las acciones de defensa lo antes posible, para lograr esto debemos ejecutar:
cd /root nano -w /root/.bashrc
Ir al final del archivo y agregar:
echo 'ALERTA - Acceso Root por SSH en el Servidor N – Fecha/Desde:' `date` `who` | mail -s "Alerta: Acceso Root por SSH en el Servidor N `who | cut -d"(" -f2 | cut -d")" -f1`" hostmaster@sudominio.com
NOTA: Asegurarse que todo el comando anterior quede en una sola línea.
Con la finalidad de mostrar una advertencia legal en inglés y en español a los intrusos que accedan por SSH debemos ejecutar:
nano /etc/motd
Introducir en el archivo:
This server system is for SUEMPRESA authorized users only. All activity is logged and regulary checked by systems personal. Individuals using this system without authority or in excess of their authority are subject to having all their services revoked. Any illegal services run by user or attempts to take down this server or its services will be reported to local law enforcement, and said user will be punished to the full extent of the law. Anyone using this system consents to these terms.
Este sistema servidor es solo para usuarios autorizados de SUEMPRESA. Toda la actividad realizada es registrada en un bitacora que es verificada en forma periodica por nuestro personal de sistemas. Si usted utiliza este sistema sin la autorizacion necesaria o en exceso de la autoridad que se le ha otorgado, le podriamos suspender el servicio. Cualquier servicio ilegal ejecutado por un usuario o intento de sacar de funcionamiento este servidor o sus servicios sera reportado a las autoridades judiciales, y a dicho usuario le sera aplicado todo el peso de la ley. Al usar este sistema usted esta de acuerdo con estos terminos de uso.