Tengo un proyecto para asegurar Ubuntu Server tanto como pueda. El servidor es un servidor de alojamiento web. El servidor ejecutará LAMP, Mail y DNS.
Tengo un proyecto para asegurar Ubuntu Server tanto como pueda. El servidor es un servidor de alojamiento web. El servidor ejecutará LAMP, Mail y DNS.
Respuestas:
Aquí hay una lista de cosas que hago para asegurar mi servidor.
sudo ufw enable
) y luego solo permita los puertos que realmente se utilizan. ( sudo ufw allow 80
)sudo apt-get install denyhosts
)Algunas cosas más a tener en cuenta. La mayoría de las personas se olvidan del acceso físico. Todas las configuraciones de software en el mundo no significan nada si puedo entrar físicamente con un LiveCD y robar sus datos. Cuidado con la ingeniería social. Haga preguntas para verificar quién está hablando por teléfono y asegúrese de que tengan autorización para hacer la solicitud que están haciendo.
Como todavía soy un "nuevo" usuario, no puedo publicar más de 2 enlaces. Puede leer más sobre este tema aquí: https://help.ubuntu.com/12.04/serverguide/index.html y preste especial atención a https://help.ubuntu.com/12.04/serverguide/security.html
iptables
reglas extremadamente específicas para no permitir el acceso externo a cualquier servicio que no vaya a utilizar, si tiene un problema extraño. configuración de bola que requiere enrutamiento avanzado y otras cosas.
/ dev / shm se puede usar en un ataque contra un servicio en ejecución, como httpd. Modifique / etc / fstab para hacerlo más seguro.
Abra una ventana de terminal e ingrese lo siguiente:
sudo vi /etc/fstab
Agregue la siguiente línea y guarde. Deberá reiniciar para que esta configuración surta efecto:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
El archivo /etc/sysctl.conf contiene todas las configuraciones de sysctl. Evite el enrutamiento de origen de los paquetes entrantes y registre las IP con formato incorrecto, ingrese lo siguiente en una ventana de terminal
sudo vi /etc/sysctl.conf
Edite el archivo /etc/sysctl.conf y descomente o agregue las siguientes líneas:
# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1
Para recargar sysctl con los últimos cambios, ingrese:
sudo sysctl -p
Abra una Terminal e ingrese lo siguiente:
sudo vi /etc/host.conf
Agregue o edite las siguientes líneas:
order bind,hosts
nospoof on
Edite el archivo php.ini:
sudo vi /etc/php5/apache2/php.ini
Agregue o edite las siguientes líneas:
disable_functions = exec,system,shell_exec,passthru
register_globals = Off
expose_php = Off
magic_quotes_gpc = On
DenyHosts es un programa de Python que bloquea automáticamente los ataques SSH al agregar entradas a /etc/hosts.deny. DenyHosts también informará a los administradores de Linux sobre hosts ofensivos, usuarios atacados e inicios de sesión sospechosos.
Abra una Terminal e ingrese lo siguiente:
sudo apt-get install denyhosts
Después de la instalación, edite el archivo de configuración /etc/denyhosts.conf y cambie el correo electrónico y otras configuraciones según sea necesario.
Para editar la configuración del correo electrónico del administrador, abra una ventana de terminal e ingrese:
sudo vi /etc/denyhosts.conf
Cambie los siguientes valores según sea necesario en su servidor:
ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES
Fail2ban es más avanzado que DenyHosts, ya que extiende la supervisión de registros a otros servicios, incluidos SSH, Apache, Courier, FTP y más.
Fail2ban escanea archivos de registro y prohíbe las IP que muestran signos maliciosos: demasiadas fallas de contraseña, búsqueda de exploits, etc.
En general, Fail2Ban luego se usaba para actualizar las reglas del firewall para rechazar las direcciones IP durante un período de tiempo especificado, aunque también se podría configurar cualquier otra acción arbitraria. Fuera de la caja, Fail2Ban viene con filtros para varios servicios (apache, courier, ftp, ssh, etc.).
Abra una Terminal e ingrese lo siguiente:
sudo apt-get install fail2ban
Después de la instalación, edite el archivo de configuración /etc/fail2ban/jail.local y cree las reglas de filtro según sea necesario.
Para editar la configuración, abra una ventana de terminal e ingrese:
sudo vi /etc/fail2ban/jail.conf
Active todos los servicios que desea que fail2ban supervise cambiando enabled = false a * enabled = true *
Por ejemplo, si desea habilitar la supervisión de SSH y la prohibición de la cárcel, busque la línea a continuación y cambie habilitado de falso a verdadero . Eso es.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Si desea recibir correos electrónicos de Fail2Ban si los hosts están prohibidos, cambie la siguiente línea a su dirección de correo electrónico.
destemail = root@localhost
y cambie la siguiente línea de:
action = %(action_)s
a:
action = %(action_mwl)s
También puede crear filtros de reglas para los diversos servicios que desea que fail2ban supervise que no se proporcionan de forma predeterminada.
sudo vi /etc/fail2ban/jail.local
Puede encontrar buenas instrucciones sobre cómo configurar fail2ban y crear los diversos filtros en HowtoForge . Haga clic aquí para ver un ejemplo.
Cuando haya terminado con la configuración de Fail2Ban, reinicie el servicio con:
sudo /etc/init.d/fail2ban restart
También puede verificar el estado con.
sudo fail2ban-client status
Tanto RKHunter como CHKRootkit básicamente hacen lo mismo: verifique su sistema en busca de rootkits. No hay daño en usar ambos.
Abra una Terminal e ingrese lo siguiente:
sudo apt-get install rkhunter chkrootkit
Para ejecutar chkrootkit, abra una ventana de terminal e ingrese:
sudo chkrootkit
Para actualizar y ejecutar RKHunter. Abra una Terminal e ingrese lo siguiente
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Nmap ("Network Mapper") es una utilidad gratuita y de código abierto para el descubrimiento de redes y la auditoría de seguridad.
Abra una Terminal e ingrese lo siguiente:
sudo apt-get install nmap
Escanee su sistema en busca de puertos abiertos con:
nmap -v -sT localhost
Escaneo SYN con lo siguiente:
sudo nmap -v -sS localhost
Logwatch es un sistema de análisis de registro personalizable. Logwatch analiza los registros de su sistema y crea un informe que analiza las áreas que especifique. Logwatch es fácil de usar y funcionará directamente desde el paquete en la mayoría de los sistemas.
Abra una Terminal e ingrese lo siguiente:
sudo apt-get install logwatch libdate-manip-perl
Para ver la salida de logwatch, use menos:
sudo logwatch | less
Para enviar por correo electrónico un informe de logwatch de los últimos 7 días a una dirección de correo electrónico, ingrese lo siguiente y reemplace mail@domain.com con el correo electrónico requerido. :
sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today'
Tiger es una herramienta de seguridad que se puede utilizar tanto como auditoría de seguridad como sistema de detección de intrusos.
Abra una Terminal e ingrese lo siguiente:
sudo apt-get install tiger
Para ejecutar Tiger ingrese:
sudo tiger
Toda la salida de Tiger se puede encontrar en / var / log / tiger
Para ver los informes de seguridad del tigre, abra una Terminal e ingrese lo siguiente:
sudo less /var/log/tiger/security.report.*
magic_quotes_gpc = On
. Las citas mágicas han quedado en desuso y luego se han eliminado: php.net/manual/en/security.magicquotes.whynot.php
Como dijiste que esto es servidor de alojamiento web ... Me gustaría compartir mis mejores prácticas y experiencia de 5 largos años en la línea de alojamiento web.
Según mis experiencias pasadas, en lugar de entrar en el infierno de la configuración de inmediato, primero debe ensamblar las uvas de seguridad bajas como se indica en el artículo dado.
Como tienes LAMP, debes ser muy cauteloso con PHP y su configuración php.ini. Este es un buen enlace para proteger PHP. PHP tiene superpoderes que pueden convertirse en bucles de seguridad cuando no se configuran correctamente.
Puede usar un trabajo cron para verificar cuándo sus archivos fueron modificados sin su permiso y posiblemente pirateados; usando este trabajo cron . Prefiero Notepad ++ para comparar los resultados cron (descargue directamente el correo electrónico cron de su servidor web y ábralo en Notepad ++).
Si desea instalar algunos SEM, entonces es mejor preferir cPanel (sin importar el pago). Webmin y zpanel son muy buenas alternativas gratuitas. Webmin es mejor porque al menos utiliza certificados autofirmados y agrega seguridad.
Si desea que algo funcione de inmediato, puede optar por Linux llave en mano. Está basado en Ubuntu, extremadamente fácil de implementar y flexible a sus necesidades. Con muy poco esfuerzo obtienes seguridad fuera de la caja. Esta es su pila LAMP . Yo personalmente uso y prefiero esto solo.
Si está comenzando desde cero, también puede instalar ISPconfig3. Instrucciones aquí .
Puede probar su seguridad tratando de penetrar su seguridad utilizando Back-Track-Linux .
mantener contraseñas complejas largas y aleatorias. No los almacene en la PC. escríbelos Use un CD en vivo para acceder a estos inicios de sesión.
obtenga un software de protección de fuerza bruta como fail2ban.
No ejecutes esos demonios que no necesitas.
Bloquear todos los puertos innecesarios. . tenga mucho cuidado con el puerto SSH (22).
Obtenga una IP estática en el sistema a través del cual va a administrar el servidor. Aproveche la mayoría de las cosas que bloquea IP y solo permita que su IP particular acceda a esos lugares de configuración como el puerto 22.
Al final del día ... trabaje con total tranquilidad, no se emocione con la instalación y aplicar el sentido común lo lleva mucho más allá.
**My heartiest best wishes to you. good luck.**
brute force attacks
y dictionary attacks
... La contraseña aleatoria larga es la única forma de protegerte de tales ataques.
Haz uso del proyecto Bastille Linux.
Proporciona una herramienta interactiva para realizar medidas de refuerzo de seguridad adicionales para aumentar la seguridad general y disminuir la susceptibilidad de compromiso para su sistema Ubuntu (desde Bastille Linux ).
Ofrece una funcionalidad de evaluación e informes, para que pueda decirle qué partes del sistema no están bloqueadas. Examina el sistema de forma de solo lectura, informando sobre el estado de cada uno de sus elementos de endurecimiento. Por ejemplo, Bastille podría verificar si el servidor DNS está bloqueado en una prisión chroot, si telnet está apagado o incluso si se requiere que las contraseñas tengan una buena longitud. Puede ver una demostración de esto solo en la Web a través de este enlace (más información ).
Puede obtener una vista previa de la demostración web (solo) aquí .
Utilizar nmap
en todas las interfaces de la máquina, para que sepa qué servicios ejecuta en su máquina. Esta es una herramienta esencial para la seguridad.
Elimine todos los servicios que no necesita en sus interfaces externas. Puede configurar MySQL para que solo escuche en interfaces específicas, como localhost.
Use ufw para proteger su servicio SSH (y otros posibles) para que no permita demasiadas conexiones (fallidas) por minuto desde la misma máquina. Eso hará que los ataques de fuerza bruta sean más difíciles. Cambiar el número de puerto no es tan útil, solo oscuridad, no seguridad.
Sea restrictivo con la cantidad de cuentas en su máquina. Tampoco instale más paquetes / programas de los que realmente usa. Instale solo clientes X11, no un servidor X11.
Solo permita ssh-login a la máquina con certificados digitales, sin contraseña. Eso también hará que los ataques de fuerza bruta sean difíciles / imposibles.
También consultaría el documento CIS Debian Benchmarks y tiene un número significativo de procedimientos y procesos para fortalecer el sistema operativo que se aplicará a Ubuntu ya que es un derivado de Debian. También consultaría:
La seguridad siempre tiene un precio. Establecer algunos límites realistas lo ayudará a alcanzar sus objetivos. Consideraría los siguientes aspectos:
Comprobando todos los enlaces que se publican aquí, creo que este debería agregarse. Entra en detalles no solo sobre cómo configurar su software, sino también sobre el plan de seguridad. Como un plus, cada comando a ejecutar se explica con una fuente.
Hice una publicación sobre esto no hace mucho tiempo sobre cómo asegurar ubuntu 16.04-18.04. Estos pasos incluyen:
Reemplace la contraseña de inicio de sesión con claves autorizadas Instale un firewall en su servidor Linux
y algo más. https://hostup.org/blog/how-to-secure-a-ubuntu-linux-server-in-3-simple-steps/