LinuxParty
Todo el mundo dice que Linux es seguro de forma predeterminada y convino en cierta medida (el tema es discutible). Sin embargo, Linux tiene un modelo de seguridad incorporado por defecto. Pero también tiene la necesidad de ajustar y personalizarla según sus necesidades que te pueden ayudar a hacer que el sistema sea más seguro. Haciendo Linux más difícil de manejar, y ofrece más flexibilidad y opciones de configuración.
Asegurar un sistema en producción de las manos de hackers y crackers es una tarea difícil para un administrador del sistema. Este es nuestro primer artículo relacionado a "Cómo proteger el sistema Linux" o "endurecimiento de un Linux". En este post vamos a explicar 25 consejos y trucos útiles para proteger el sistema Linux. Espero, que los consejos y trucos le ayudarán a ampliar y a proteger sus datos personales.
1. Sistema de Seguridad Física
Configure la BIOS para deshabilitar el arranque desde CD / DVD, dispositivos externos, unidad de disquete en la BIOS. A continuación, habilite la contraseña del BIOS y también protega GRUB con contraseña para restringir el acceso físico de su sistema.
2. La creación de particiones
Es importante tener diferentes particiones para obtener mayor seguridad de los datos en caso de que si ocurre cualquier desastre. Mediante la creación de diferentes particiones, los datos pueden ser separados y agrupados.
Cuando se produce un accidente inesperado, sólo los datos de la partición se dañarán, mientras que los datos en otras particiones sobrevivirán. Asegúrese de que dispone de las siguientes particiones separadas y asegurarse de que las aplicaciones de terceros se deben instalarse en los sistemas de archivos independientes en /opt.
/ /boot /usr /var /home /tmp /opt
3. Minimizar Paquetes para minimizar la vulnerabilidad
¿De verdad quieres todo tipo de servicios instalado?. Se recomienda evitar la instalación de paquetes inútiles para evitar vulnerabilidades en los paquetes ya instalados. Esto puede minimizar el riesgo que comprometa un servicio y que puede llevar a comprometer otros servicios. Encontrar y eliminar o deshabilitar los servicios no deseados del servidor para minimizar la vulnerabilidad. Utilice el comando "chkconfig" para averiguar los servicios que se ejecutan en el nivel de ejecución 3.
# /sbin/chkconfig --list |grep '3:on'
Una vez que hayas averiguado cualquier servicio no deseado que se está ejecutando, desactivarlos mediante el siguiente comando.
# chkconfig serviceName off
Utilice el gestor de paquetes RPM, como herramientas "yum" o "apt-get" para listar todos los paquetes instalados en un sistema y eliminarlos mediante el siguiente comando.
# yum -y remove package-name
# sudo apt-get remove package-name
4. Compruebe Puertos de escucha de red
Con la ayuda de comandos de redes 'netstat' se pueden ver todos los puertos abiertos y los programas asociados. Como he dicho anteriormente utilizar el comando "chkconfig 'para desactivar todos los servicios de red no deseados del sistema.
# netstat -tulpn
5. Use Secure Shell (SSH)
Telnet y rlogin utiliza protocolos de texto plano, sin formato cifrado, de por si, esto ya es un fallo de seguridad. SSH es un protocolo seguro que usa de la tecnología de cifrado durante la comunicación con el servidor.
Nunca entre directamente como root a menos que sea necesario. Utilice "sudo" para ejecutar comandos. sudo se especifican en /etc/sudoers también puede ser editado con la utilidad "visudo", que se abre en el editor VI.
También es recomendable cambiar el número de puerto 22 por defecto SSH por otro número de puerto más alto. Abra el archivo principal de configuración de SSH y edite algunos parámetros siguientes para evitar que los usuarios tengan acceso.
# vi /etc/ssh/sshd_config
Deshabilitar root Login
PermitRootLogin no
Permitir sólo usuarios específicos
AllowUsers username
Usar SSH Protocolo 2 Version
Protocol 2
6. Mantenga actualizados del sistema
Siempre mantenga el sistema actualizado con los últimos parches de versiones, revisiones de seguridad y del núcleo cuando esté disponible.
# yum updates # yum check-update
7. Cronjobs Lockdown
Cron tiene su propia función incorporada, donde permite especificar quién puede y quién no lo desea, ejecutar los trabajos. Esto se controla mediante el uso de archivos llamado /etc/cron.allow y /etc/cron.deny. Para bloquear a un usuario utilizando cron, sólo tiene que añadir los nombres de usuario en cron.deny y permitir a un usuario ejecutar cron, complemento en el archivo cron.allow. Si desea desactivar todos los usuarios el uso de cron, agregue la línea "ALL" en el archivo cron.deny.
# echo ALL >>/etc/cron.deny
8. Desactivar detectar la memoria USB
Muchas veces sucede que queremos restringir a otros usuarios el uso de memoria USB en los sistemas para proteger y asegurar los datos de ser robados. Cree un archivo /etc/modprobe.d /no-usb 'y añadiendo a continuación la línea no detectará el almacenamiento USB.
install usb-storage /bin/true
9. Active SELinux
Security-Enhanced Linux (SELinux) es un mecanismo de seguridad de control de acceso obligatorio previsto en el kernel. Deshabilitando SELinux significa la eliminación de mecanismo de seguridad del sistema. Piense dos veces antes de desactivarlo, si su sistema está conectado a Internet y se accede por el público, luego considere y piense un poco más en él.
SELinux proporciona tres modos básicos de operación y son.
- Cumplimiento: Este es el modo por defecto que permitan y hacer cumplir la política de seguridad de SELinux en la máquina.
- Tolerante: En este modo, SELinux no hará cumplir la política de seguridad en el sistema, sólo advertir y registrar las acciones. Este modo es muy útil en términos de resolución de problemas relacionados con SELinux.
- Desactivado: SELinux está apagado.
Puede ver el estado actual del modo de SELinux desde la línea de comandos con "system-config-selinux 'comandos' sestatus' o 'getenforce '.
# sestatus
Si está deshabilitada, habilite SELinux con el siguiente comando.
# setenforce enforcing
También se puede gestionar desde archivo '/etc/selinux/config /', donde se puede activar o desactivar.
10. Elimine el escritorio del servidor, sea... KDE / GNOME Desktops
No hay necesidad de ejecutar escritorios X Window como KDE o GNOME en su servidor dedicado. Puede quitarlo o deshabilitar para aumentar la seguridad de su servidor y rendimiento. Para desactivarlo, es sencillo abrir el archivo '/etc/inittab' y establezca el nivel de ejecución 3. Si desea eliminar por completo del sistema, utilice el comando siguiente.
# yum groupremove "X Window System"
11. Desactivar IPv6
Si usted no está utilizando un protocolo IPv6, debe desactivarlo porque la mayoría de las aplicaciones o políticas no son necesarios para el protocolo IPv6 actualmente. Ir al archivo de configuración de red y agregar líneas siguientes pasos para desactivarlo.
# vi /etc/sysconfig/network
NETWORKING_IPV6=no IPV6INIT=no
12. Restringir usuarios de utilizar contraseñas antiguas
Esto es muy útil si desea no permitir que los usuarios utilicen las mismas contraseñas. El archivo de contraseñas se encuentra en /etc/security/ opasswd. Esto se puede lograr mediante el uso de módulo PAM.
Abrir el archivo '/etc/pam.d/system-auth' bajo RHEL / CentOS / Fedora.
# vi /etc/pam.d/system-auth
Archivo en Ubuntu / Debian / Linux Mint Abrir "/etc/pam.d/common-password"
# vi /etc/pam.d/common-password
Agregue la línea siguiente a la sección 'auth'.
auth sufficient pam_unix.so likeauth nullok
Agregue la línea siguiente a la sección 'password' para no permitir que un usuario vuelva a utilizar una vieja contraseña.
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=5
Sólo las últimos 5 contraseñas se recuerdan por el servidor. Si se trató de utilizar cualquiera de las últimos 5 contraseñas antiguas, obtendrá un error similar.
Contraseña ya ha sido utilizada. Elija otra.
o
Password has been already used. Choose another.
13. Cómo comprobar la caducidad de la contraseña de usuario
En Linux, las contraseñas de usuario se almacenan en el archivo '/etc/shadow' en formato cifrado. Para comprobar la caducidad de la contraseña de usuario, es necesario utilizar el comando 'chage'. Muestra información de contraseñas, detalles de vencimiento junto con la última fecha de modificación contraseña. Estos datos son utilizados por el sistema para decidir cuando un usuario debe cambiar su contraseña.
Para ver la información de antigüedad de cualquier usuario existente como la fecha y hora de vencimiento, utilice el comando siguiente.
#chage -l username
Para cambiar el envejecimiento de cualquier usuario/contraseña, utilice el siguiente comando.
#chage -M 60 username #chage -M 60 -m 7 -W 7 userName
Parámetros
- -M Númeo el número máximo de días
- -m número mínimo de días
- -W Ajuste el número de días de aviso
14. Bloquear y desbloquear cuenta manualmente
El bloqueo y desbloqueo de las funciones son muy útiles, en lugar de eliminar una cuenta del sistema, se puede bloquear durante una semana o un mes. Para bloquear a un usuario específico, puede utilizar el comando siguiente.
# passwd -l accountName
Nota: El usuario bloqueado está disponible sólo para el usuario root. El bloqueo se lleva a cabo mediante la sustitución de contraseña cifrada con una cadena (!). Si alguien trata de acceder al sistema utilizando esta cuenta, recibirá un error similar al siguiente.
# su - accountName This account is currently not available.
Para desbloquear o permitir el acceso a una cuenta bloqueada, utilice el comando igualmente. Esto eliminará (!) Cadena con contraseña cifrada.
# passwd -u accountName
15. La aplicación de contraseñas más seguras
Varios de los usuarios utilizan contraseñas blandas o débiles y su contraseña puede ser hackeado con un diccionario base o ataques de fuerza bruta. El módulo 'pam_cracklib' si está disponible en PAM (Pluggable Authentication Modules) obligará al usuario establecer contraseñas seguras. Abra el siguiente archivo con un editor.
Lea también:
# vi /etc/pam.d/system-auth
Y agregue la línea con los parámetros de crédito, (lcredit, ucredit, dcredi t y/o ocredit respectivamente minúsculas, mayúsculas, dígitos y otros)
/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1
16. Habilitar Iptables (Firewall)
Es altamente recomendable activar el firewall de Linux para garantizar el acceso no autorizado de sus servidores. Aplicar las reglas de iptables a los filtros de entrada, paquetes salientes y reenvío. Podemos especificar la dirección de origen y de destino para permitir y denegar en concreto el número de puerto udp / tcp.
17. Desactivar Ctrl + Alt + Delete en Inittab
En la mayoría de las distribuciones de Linux, al pulsar 'CTRL-ALT-DELETE' se lleva el sistema para reiniciar el proceso. Por lo tanto, no es una buena idea tener esta opción activada, al menos en los servidores de producción.
Esto se define en el archivo '/etc/inittab', si te fijas bien en ese archivo, verá una línea similar a la siguiente. Por línea por defecto no está comentada. Tenemos que comentar a cabo. Este particular secuencia de teclas de señalización será apagado el sistema.
# Trap CTRL-ALT-DELETE #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
18. Cuentas para contraseñas vacías
Cualquier cuenta con una contraseña vacía significa deja una puerta abierta para el acceso no autorizado a cualquier persona en la web y es una parte de la seguridad en un servidor Linux. Por lo tanto, debe asegurarse de que todas las cuentas engan contraseñas seguras y nadie tenga acceso no autorizado. Las cuentas con contraseñas vacías son los riesgos de seguridad y pueden ser fácilmente crackeadas. Para comprobar si había cuentas con contraseña vacía, utilice el comando siguiente.
# cat /etc/shadow | awk -F: '($2==""){print $1}'
19. Mostrar SSH Banner Antes Login
Siempre es una buena idea mostrar un aviso legal o banners de seguridad con algunas advertencias de seguridad antes de la autenticación en SSH. Para ajustar estos banners leer el siguiente artículo.
20. Supervisar las actividades de los usuarios
Si se trata de un montón de usuarios, entonces es importante recopilar la información de cada uno de las actividades del usuario y procesos consumidos por ellos y analizarlos en un momento posterior o en caso de cualquier tipo de rendimiento, problemas de seguridad. Pero, ¿cómo podemos controlar y recopilar información de las actividades del usuario.
Hay dos herramientas útiles llamados 'psacct' y 'ACCT' se utilizan para el seguimiento de las actividades y procesos de usuario en un sistema. Estas herramientas se ejecuta en un fondo del sistema y hacen un seguimiento continuo de cada actividad del usuario en un sistema y los recursos consumidos por los servicios como Apache, MySQL, SSH, FTP, etc Para obtener más información sobre la instalación, configuración y uso, visite el siguiente URL.
21. Revisar los registros con regularidad
Compruebe los registros de log del servidor dedicado, esto evita que los intrusos puedan modificar fácilmente los registros locales. Estos son los nombres más común en Linux por defecto para los archivos de registro y su uso:
- /var/log/message - Donde están disponibles los registros del sistema entero o registros de actividad actuales.
- /var/log/auth.log - Registros de autenticación.
- /var/log/kern.log - logs del kernel.
- /var/log/cron.log - logs crond (cron).
- /var/log/maillog - los registros del servidor de correo.
- /var/log/boot.log - registro de arranque del sistema.
- /var/log/mysqld.log - archivo de registro del servidor de bases de datos MySQL.
- /var/log/secure - registro de autenticación.
- /var/log/utmp o /var/log/wtmp: Login archivo de registros.
- /var/log/yum.lo g: archivos de registro de Yum.
22. Copia de seguridad de archivos importantes
En un sistema de producción, es necesario tener copias de seguridad de archivos importantes y mantenerlos en condiciones de seguridad bóveda, sitios remotos o fuera de las instalaciones para recuperación de desastres.
23. NIC Bonding
Hay dos tipos de modo de unión NIC, deben mencionar en la interfaz de unión.
- mode = 0 - Round Robin
- mode = 1 - Activa y Backup
NIC Bonding nos ayuda a evitar puntos de fallo. En unión NIC, que es unir dos o más tarjetas de red Ethernet juntos y hacemos una interfaz virtual único donde se puede asignar una dirección IP a hablar con otros servidores. Nuestra red estará disponible en el caso de una tarjeta NIC esté inactivo o no esté disponible por cualquier motivo.
Lea también: Crear NIC Channel Bonding en Linux
24. Mantener / arrancar en modo de sólo lectura
Linux kernel y los archivos relacionados se encuentran en el directorio /boot, que es por defecto como de lectura y escritura. Cambiar a sólo lectura reduce el riesgo de modificación no autorizada de archivos de arranque críticos. Para ello, abra el archivo "/etc/fstab".
# vi /etc/fstab
Agregue la siguiente línea en la parte inferior, guardar y cerrar.
LABEL=/boot /boot ext2 defaults,ro 1 2
Tenga en cuenta que usted necesita reiniciar para restablecer el cambio de lectura y escritura si necesita actualizar el kernel en el futuro.
25. No haga caso de petición ICMP o Broadcast
Agregue la línea siguiente en el archivo "/etc/sysctl.conf" para hacer caso omiso de petición ping o broadcast.
Ignore ICMP request: net.ipv4.icmp_echo_ignore_all = 1 Ignore Broadcast request: net.ipv4.icmp_echo_ignore_broadcasts = 1
Cargar nuevos ajustes o cambios, mediante la ejecución comando siguiente
#sysctl -p
Si te has perdido alguna nota de seguridad importante o endurecimiento en la lista anterior, o tienes cualquier otra sugerencia que debe ser incluida en la lista. Por favor deje su comentario en nuestro apartado de comentarios.
Pronto tendremos disponible la segunda parte.
Continúa en: 25 Consejos para los servidores Linux (2 de 2)
-
Seguridad
- Drones, vigilancia y reconocimiento facial: una startup llamada 'Sauron' presenta un sistema de seguridad para el hogar de estilo militar
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- ¿Olvidó su contraseña? Cinco razones por las que necesita un administrador de contraseñas
- Cómo limitar las conexiones SSH (puerto TCP 22) con ufw en Ubuntu Linux
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
Comentarios
Muy bueno.......
Hay que asimilarlo y aunque creo que algunos consejos no los voy a llevar a la practica.
Poner el sistema de ficheros en solo lectura es algo contradictorio con actualizar el sistema periódicamente.
Pero lo voy a probar por curiosidad