meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
seguridad:asegurar_linux [2015/04/24 10:17] – [Bastionado de Centos] luiscaseguridad:asegurar_linux [2023/05/02 09:04] (actual) – [Referencias] lc
Línea 1: Línea 1:
 +{{tag>centos bastionado seguridad}}
 ===== Bastionado de Centos ===== ===== Bastionado de Centos =====
- 
 ==== Asegurar la máquina físicamente ==== ==== Asegurar la máquina físicamente ====
  
-Lo primero es asegurarnos de que a la máquina física no se puede acceder sin permiso+Lo primero es asegurarnos de que a la máquina física no se puede acceder sin permiso. Además en caso de que el servidor disponga de tarjeta de acceeso remoto tipo ILO o similar, hay que configurarla en una VLAN propia que se utilice exclusivamente para gestión, si no se va a utilizar dicha tarjeta hay que desactivarla. 
 + 
 + 
 +En caso de que no podamos restringir dicho acceso o para una mayor seguridad:
   * Desactivar el arranque desde cualquier dispositivo excepto el disco duro que contiene el SO   * Desactivar el arranque desde cualquier dispositivo excepto el disco duro que contiene el SO
   * Establecer una contraseña para acceder a la BIOS   * Establecer una contraseña para acceder a la BIOS
   * Proteger el gestor de arranque GRUB mediante contraseña   * Proteger el gestor de arranque GRUB mediante contraseña
   * Deshabilita el arranque interactivo en el caso de que la distribución lo soporte   * Deshabilita el arranque interactivo en el caso de que la distribución lo soporte
-  * En caso de que el servidor disponga de tarjeta de acceeso remoto tipo ILO o similar, hay que configurarla en una VLAN propia que se utilice exclusivamente para gestión, si no se va a utilizar dicha tarjeta hay que desactivarla. 
  
  
Línea 34: Línea 36:
  
 <note> <note>
-En Centos para configurar la red ejecutar <code>system-config-network</code> o editando el fichero correspondiente a nuestra tarjeta, que se encuentra en la ruta **/etc/sysconfig/networking/devices**+En Centos para configurar la red ejecutar <sxh>system-config-network</sxh> o editando el fichero correspondiente a nuestra tarjeta, que se encuentra en la ruta **/etc/sysconfig/networking/devices**
  
 Los DNS hay que especificarlos en el archivo /etc/resolv.conf Los DNS hay que especificarlos en el archivo /etc/resolv.conf
Línea 40: Línea 42:
  
 == Deshabilitar IPV6 si no lo utilizamos == == Deshabilitar IPV6 si no lo utilizamos ==
-Para ver si tenemos IPV6 activo ejecutamos <code>ifconfig | grep inet6</code>+Para ver si tenemos IPV6 activo ejecutamos <sxh>ifconfig | grep inet6</sxh>
  
 Para deshabilitarlo sin reiniciar el sistema, ejecutar: Para deshabilitarlo sin reiniciar el sistema, ejecutar:
  
-<code>echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 +<sxh>echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 
-echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6</code>+echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6</sxh>
  
 otra forma sería: otra forma sería:
-<code>+<sxh>
 sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.all.disable_ipv6=1
-sysctl -w net.ipv6.conf.default.disable_ipv6=1</code>+sysctl -w net.ipv6.conf.default.disable_ipv6=1</sxh>
  
 == Deshabilitar Zeroconf == == Deshabilitar Zeroconf ==
-Comprobar si se está ejecutando [[http://es.wikipedia.org/wiki/Zeroconf|Zeroconf]] <code>ps -e | grep avahi</code>Si devuelve algún resultado es que avahi está activo. +Comprobar si se está ejecutando [[http://es.wikipedia.org/wiki/Zeroconf|Zeroconf]] <sxh>ps -e | grep avahi</sxh>Si devuelve algún resultado es que avahi está activo. 
 Para deshabilitarlo: Para deshabilitarlo:
-Añadir la línea **NOZEROCONF=yes** Al archivo /etc/sysconfig/network y eliminar el paquete  <code>yum -y remove avahi</code>+Añadir la línea **NOZEROCONF=yes** Al archivo /etc/sysconfig/network y eliminar el paquete  <sxh>yum -y remove avahi</sxh>
  
 == Detectar sevicios en escucha == == Detectar sevicios en escucha ==
-Ejecutar <code>sudo netstat -tuanp | grep LISTEN</code>+Ejecutar <sxh>sudo netstat -tuanp | grep LISTEN</sxh>
  
 Si tenemos servicios innecesarios en /etc/init.d se encuentran los scripts de gestión del sistema SystenV tradicional y en /etc/init se encuentran los servicios adaptdos al sistema upstart.  Si tenemos servicios innecesarios en /etc/init.d se encuentran los scripts de gestión del sistema SystenV tradicional y en /etc/init se encuentran los servicios adaptdos al sistema upstart. 
 Para ver que servicios tenemos ejecutamos  Para ver que servicios tenemos ejecutamos 
-<code>ls -1 /etc/init.d > servicios</code> o bien <code>ls -1 /etc/init >> servicios</code>+<sxh>ls -1 /etc/init.d > servicios</sxh> o bien <sxh>ls -1 /etc/init >> servicios</sxh>
  
-Para deshabilitar un servicio determinado <code>chkconfig <service> off</code>+Para deshabilitar un servicio determinado <sxh>chkconfig <service> off</sxh>
  
 <note warning>si es posible eliminar los paquetes</note> <note warning>si es posible eliminar los paquetes</note>
Línea 85: Línea 87:
  
 Para configurar un servidor de tiempo hay que seguir estos pasos: Para configurar un servidor de tiempo hay que seguir estos pasos:
-  * Instalar el paquete ntpd <code>yum install ntp</code>+  * Instalar el paquete ntpd <sxh>yum install ntp</sxh>
   * Editar el archivo/etc/ntp.conf y poner nuestro servidor de tiempo el primero de la lista <file>server X.X.X.X </file>   * Editar el archivo/etc/ntp.conf y poner nuestro servidor de tiempo el primero de la lista <file>server X.X.X.X </file>
   * chkconfig ntpd on    * chkconfig ntpd on 
Línea 101: Línea 103:
 == Crear usuarios con privilegios de administrador == == Crear usuarios con privilegios de administrador ==
 Ejecutar el siguiente comando para cada usuario que requiera privilegios de administrador Ejecutar el siguiente comando para cada usuario que requiera privilegios de administrador
-<code>usermod -G wheel -a usuario </code>+<sxh>usermod -G wheel -a usuario </sxh>
  
 Editar el archivo /etc/pam.d/su y asegurarse de que contiene la línea Editar el archivo /etc/pam.d/su y asegurarse de que contiene la línea
-<code>auth required pam_wheel.so use_uid</code>+<sxh>auth required pam_wheel.so use_uid</sxh>
  
 == Limitar el uso de sudo a miembros de un grupo de administradores == == Limitar el uso de sudo a miembros de un grupo de administradores ==
Línea 140: Línea 142:
  
 Para crear usuario sin Shell hay que ejecutar el comando: Para crear usuario sin Shell hay que ejecutar el comando:
-<code>useradd -M -s /sbin/nologin usuario</code>+<sxh>useradd -M -s /sbin/nologin usuario</sxh>
  
 Donde -M indica que no se creará el directorio HOME del usuario, si es necesario que tenga HOME hay que quitar este parámetro del comando, y -s indica la SHELL que se le asigna al usuario, al especificar /sbin/nologin se asigna una SHELL que impide el inicio de sesión en el sistema Donde -M indica que no se creará el directorio HOME del usuario, si es necesario que tenga HOME hay que quitar este parámetro del comando, y -s indica la SHELL que se le asigna al usuario, al especificar /sbin/nologin se asigna una SHELL que impide el inicio de sesión en el sistema
Línea 155: Línea 157:
  
 Si se ha denegado la salida del tráfico mediante reglas de iptables habrá que permitir la salida al puerto 514 UDP mediante el comando Si se ha denegado la salida del tráfico mediante reglas de iptables habrá que permitir la salida al puerto 514 UDP mediante el comando
-<code>iptables -I OUTPUT -p udp -d X.X.X.X –dport 514 -j ACCEPT</code>+<sxh>iptables -I OUTPUT -p udp -d X.X.X.X –dport 514 -j ACCEPT</sxh>
  
  
 ==== At y Cron ==== ==== At y Cron ====
 Permitir el uso de cron y at tan solo al usuario root ejecutando los siguientes comandos Permitir el uso de cron y at tan solo al usuario root ejecutando los siguientes comandos
-<code>rm /etc/{cron.deny,at.deny}echo root > /etc/cron.allowecho root > /etc/at.allow</code>+<sxh>rm /etc/{cron.deny,at.deny}echo root > /etc/cron.allowecho root > /etc/at.allow</sxh>
  
 ==== Bastionar el acceso por SSH ==== ==== Bastionar el acceso por SSH ====
Línea 207: Línea 209:
  
 Para instalar y arrancar auditd durante el inicio del sistema ejecutar estos comandos Para instalar y arrancar auditd durante el inicio del sistema ejecutar estos comandos
-<code>+<sxh>
 yum install auditd yum install auditd
-chkconfig auditd on</code>+chkconfig auditd on</sxh>
  
 Una vez instalado y configurado hay que revisar el resultado del comando aureport regularmente Una vez instalado y configurado hay que revisar el resultado del comando aureport regularmente
Línea 221: Línea 223:
  
 Para ver los dispositivos ejecutar  Para ver los dispositivos ejecutar 
-<code>lspci -v </code+<sxh>lspci -v </sxh
-<code>lsusb</code>+<sxh>lsusb</sxh>
  
 Una vez localizados, deshabilitar los módulos innecesarios  Una vez localizados, deshabilitar los módulos innecesarios 
Línea 240: Línea 242:
 Desactivar el bit SUID y SGID en el máximo de programas Desactivar el bit SUID y SGID en el máximo de programas
 Para buscar que archivos tienen el bit SUID/SGID activado ejecutar  Para buscar que archivos tienen el bit SUID/SGID activado ejecutar 
-<code>find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -print </code>+<sxh>find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -print </sxh>
  
 Revisar el listado que aparece por si hay alguno al que podamos quitarselo Revisar el listado que aparece por si hay alguno al que podamos quitarselo
  
 para desactivar este permiso para desactivar este permiso
-<code>chmod -s ruta_al_ejecutable</code>+<sxh>chmod -s ruta_al_ejecutable</sxh> 
 + 
 +==== Habilitar la comprobación de integridad ==== 
 +La comprobación de integridad nos ayuda a localiza el punto de entrada de un ataque así como los archivos modificados o a los que han tenido acceso.  
 +Para esta tarea podemos utilizar estas herramientas: 
 +  * Amtu (Abstract Machine Test Utility): Realiza comprobaciones de seguridad en CPU, HD, red y memoria 
 +  * Aide(Advanced Intrusion Detection Environment): Utilidad para la comprobar la integridad de archivos
  
 ==== Scripts de bastionado ==== ==== Scripts de bastionado ====
Línea 257: Línea 265:
   * www.sans.org/resources/policies   * www.sans.org/resources/policies
   * http://abdulet.net/?p=591   * http://abdulet.net/?p=591
 +  * https://www.ccn-cert.cni.es/pdf/guias/series-ccn-stic/guias-de-acceso-publico-ccn-stic/3674-ccn-stic-619-implementacion-de-seguridad-sobre-centos7/file.html
  
  
 === Búsqueda de archivos con suid/sgid === === Búsqueda de archivos con suid/sgid ===
-<code>find / -type t\ (-perm 04000 -o - perm -02000\) -exec ls -la {} \</code>+<sxh>find / -type t\ (-perm 04000 -o - perm -02000\) -exec ls -la {} \</sxh>
  
 === Buscar otros archivos peligrosos === === Buscar otros archivos peligrosos ===
-<code>find / name -rhosts -name .netrc</code>+<sxh>find / name -rhosts -name .netrc</sxh>