+15 COMANDOS ESENCIALES DE SEGURIDAD EN LINUX

+15 COMANDOS ESENCIALES DE SEGURIDAD EN LINUX

Si estĂĄ cuidando la seguridad de los sistemas Linux, estos son los comandos que debes conocer.

Hay muchos aspectos de la seguridad en los sistemas Linux, desde la configuraciĂłn de cuentas hasta la garantĂ­a de que los usuarios legĂ­timos no tengan mĂĄs privilegios de los que necesitan para realizar su trabajo. Este es un vistazo a algunos de los comandos de seguridad mĂĄs esenciales para el trabajo diario en sistemas Linux.

1. SUDO

Ejecutar comandos privilegiados con sudo â€“ en lugar de cambiar de usuario a root – es una buena prĂĄctica esencial, ya que ayuda a garantizar que sĂłlo se utiliza el privilegio de root cuando es necesario y limita el impacto de los errores. Tu acceso al comando sudo depende de la configuraciĂłn de los archivos /etc/sudoers y /etc/group.

sudo adduser <nuevo_usuario>
AĂąadir usuario con comando sudo
AĂąadir usuario con comando sudo

Si ejecutas sudo y preguntas quiĂŠn eres, por ejemplo, obtendrĂĄs confirmaciĂłn de que estĂĄs ejecutando el comando como root.

sudo whoami
Comando sudo whoami
Comando sudo whoami

Si gestionas la configuraciĂłn de sudo para los usuarios, tambiĂŠn debes sentirte cĂłmodo con el comando visudo.

2. VISUDO

El comando visudo te permite hacer cambios en el fichero /etc/sudoers abriendo el fichero en un editor de texto y comprobando la sintaxis de los cambios. Ejecuta el comando con “sudo visudo” y asegĂşrate de que entiendes la sintaxis.

Los privilegios pueden ser asignados por usuario o por grupo. En la mayorĂ­a de los sistemas Linux, el fichero /etc/sudoers ya estarĂĄ configurado con grupos como los que se muestran a continuaciĂłn que permiten asignar los privilegios a los grupos configurados en el fichero /etc/group. En esos casos, no necesitas usar el comando visudo en absoluto – sĂłlo debes estar familiarizado con los grupos que otorgan privilegios de root de esta manera, y hacer tus actualizaciones al archivo /etc/group.

%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
%wheel ALL=(ALL:ALL) ALL

Ten en cuenta que los nombres de grupo estĂĄn precedidos por el signo %.


Probablemente puedes mostrar el grupo que proporciona acceso a sudo en tu archivo /etc/group como este, ya que probablemente es uno de ellos:

egrep "admin|sudo|wheel" /etc/group
Acceso sudo a usuarios Linux
Acceso sudo a usuarios Linux

La forma mĂĄs fĂĄcil de darle privilegios a alguien es aĂąadirlo al grupo autorizado en /etc/group. Sin embargo, eso significa que pueden ejecutar cualquier comando como root. Si deseas que algunos usuarios tengan autoridad de root para un conjunto limitado de comandos (por ejemplo, aĂąadir y eliminar cuentas), puedes definir los comandos que deseas que puedan ejecutarse a travĂŠs de un alias de comando como este:

Cmnd_Alias ACCT_CMDS = /usr/sbin/adduser, /usr/sbin/deluser

Luego da al usuario o grupo la habilidad de ejecutar estos comandos usando sudo con un comando como este:

<usuario> ALL=(ALL) ACCT_CMDS
%<grupo>  ALL=(ALL:ALL) ACCT_CMDS

La primera lĂ­nea permite al usuario ejecutar los dos comandos (adduser y deluser) con sudo mientras que la segunda asigna los mismos privilegios a cualquiera del <grupo> en el fichero /etc/group.

3. WHO Y W

Los comandos who y w te muestran quiĂŠn ha iniciado sesiĂłn en el sistema, aunque w muestra mĂĄs informaciĂłn, como por ejemplo desde dĂłnde se ha iniciado la sesiĂłncuĂĄndo se ha iniciado y cuĂĄnto tiempo ha estado inactivo.

w
Comando w en Linux
Comando w en Linux

Utiliza el comando “sudo update-alternatives – config editor” si no te gusta el editor predeterminado que se utiliza cuando ejecutas el comando visudo. Ofrecerá un número de editores como opciones y cambiará tu configuración.

4. LAST

El comando last muestra los inicios de sesiĂłn recientes de los usuarios y a menudo resulta Ăştil cuando se intenta realizar un seguimiento de los cambios u otras actividades.

Comando last en Linux
Comando last en Linux

Este tipo de informaciĂłn puede ser Ăştil para decidir si es necesario hacer un seguimiento.

5. FIND

El comando find se utiliza para muchos tipos de bĂşsquedas. Cuando se trata de seguridad, es posible que busques archivos que no tengan propietarios (ni cuentas correspondientes) o que sean escribibles y ejecutables para todos. Los comandos find son fĂĄciles de componer pero requieren cierta familiaridad con sus muchas opciones para definir lo que se estĂĄ buscando.

sudo find /home -nouser
sudo find / -perm -o=wx
Comando find en Linux
Comando find en Linux

El primero de estos dos comandos encontrarĂĄ archivos sin propietarios definidos actualmente. El segundo encontrarĂĄ archivos que probablemente cualquiera puede ejecutar y modificar.

Ten en cuenta que la -o en el segundo comando se refiere al grupo “other” – no al propietario y no al grupo asociado con los archivos.

6. FILE

El comando file mira un archivo y determina quĂŠ tipo de archivo estĂĄ basado en su contenido, no en su nombre. Muchos archivos (como los archivos jpeg) contienen identificadores cerca del comienzo de los archivos que los identifican.

ls -l
file <archivo.extensiĂłn>

7. WHICH

El comando which identifica el ejecutable que se ejecutarĂĄ cuando escribas su nombre. Esto no siempre serĂĄ lo que crees que es. Si un troyano se ha insertado en el sistema de archivos en una ubicaciĂłn que aparece en la ruta de bĂşsqueda antes que la legĂ­tima, se ejecutarĂĄ en su lugar. Esta es una buena razĂłn para asegurarte de que tu ruta de bĂşsqueda incluye directorios como /usr/bin antes de aĂąadir menos ubicaciones estĂĄndar y especialmente antes de “.” (directorio actual).

which date
/usr/local/bin/date <=== probablemente no es lo que querĂ­amos

Puedes comprobar la ruta de bĂşsqueda de un usuario cambiando al usuario y haciĂŠndole echo:

sudo su - <usuario>
echo $PATH
Uso del comando which
Uso del comando which

Incluso si las rutas de bĂşsqueda de los usuarios estĂĄn configuradas en un archivo de sistema como /etc/profile o /etc/bash.bashrc, pueden haber sido alteradas por la configuraciĂłn local.

8. SS

El comando ss es una herramienta para investigar sockets y te permite hacer cosas como mostrar puertos de escucha y conexiones activas. Sin aĂąadir algunas restricciones, ss va a mostrar mucha mĂĄs informaciĂłn de la que probablemente deseas ver. DespuĂŠs de todo, muchas partes del sistema operativo se comunican a travĂŠs de sockets. Si deseas generar una lista de conexiones o puertos de escucha establecidos (es decir, servicios disponibles para sistemas externos), los comandos de este tipo resultarĂĄn muy Ăştiles.

Conexiones establecidas:

ss -t
ss | grep ESTAB | grep tcp
Comando ss en Linux
Comando ss en Linux

Puertos en escucha (listening):

ss -ltn

9. UFW

Si estĂĄs ejecutando un firewall en tu sistema Linux – un paso importante para controlar el acceso al sistema, los comandos utilizados para iniciar/parar, habilitar/deshabilitar, modificar y mostrar el estado o las reglas activas son crĂ­ticos. AquĂ­ hay algunos comandos de ejemplo para ufw â€“ el “uncomplicated firewall” que encontrarĂĄs en muchos sistemas Ubuntu:


sudo ufw status verbose

El siguiente comando es para desactivar el cortafuegos/firewall.

sudo ufw disable

10. IPTABLES

TambiĂŠn es importante saber cĂłmo listar las reglas del firewall para iptables. Estos comandos te proporcionarĂĄn una lista completa de las reglas de netfilter:

sudo iptables -vL -t filter
sudo iptables -vL -t nat
sudo iptables -vL -t mangle
sudo iptables -vL -t raw
sudo iptables -vL -t security

11. IP

El comando ip te permite mostrar informaciĂłn sobre tus interfaces de red. En el siguiente ejemplo, vemos el loopback y la interfaz pĂşblica.

ip a
Ejemplo de comando ip en Linux
Ejemplo de comando ip en Linux

12. IP ROUTE

El comando ip route mostrarĂĄ tu tabla de enrutamiento:

ip route
Comando ip route en Linux
Comando ip route en Linux

13. KILL, PKILL & KILLALL

Como puedes ver en “MĂĄs de una manera de matar un proceso Unix“, los sistemas Unix y Linux ofrecen una selecciĂłn conveniente de comandos para terminar procesos sin importar por quĂŠ los quieres muertos. Puedes matar por ID de proceso o por nombre. Puedes matar individualmente o en grupo. En cualquier caso, los diversos comandos kill estĂĄn a tu disposiciĂłn y debes estar listo para usarlos cuando sea necesario. Los ejemplos incluyen:

kill 1234
pkill bad
killall badproc

14. PASSWD

Aunque el comando passwd es probablemente obvio cuando se trata de la seguridad del sistema, tambiĂŠn es uno que no deberĂ­a omitirse de ninguna lista de elementos esenciales de seguridad. Es importante tener una polĂ­tica razonable para los cambios de contraseĂąa, especialmente a medida que los usuarios van y vienen o cambian de roles.

Sin embargo, el comando passwd no sĂłlo se utiliza para cambiar contraseĂąas. TambiĂŠn puedes utilizarlo con privilegios sudo para cambiar las contraseĂąas de otros usuarios, bloquear/desbloquear o caducar cuentas, comprobar el estado de la cuenta y cambiar la configuraciĂłn que determina cuĂĄndo caduca una contraseĂąa o las advertencias de contraseĂąa de tiempo.

Comprueba la pĂĄgina man (man passwd) para mĂĄs detalles y utiliza comandos como estos:

sudo passwd <usuario>	<== cambiar la contraseĂąa de <usuario>
sudo passwd -e <usuario>   <== caduca la contraseĂąa de <usuario> (la obliga a restablecerla)
sudo passwd -i <usuario>  <== deshabilita la cuenta de <usuario>

15. PWCK

El comando pwck hace una especie de comprobaciĂłn de integridad en tus archivos /etc/passwd y /etc/shadow â€“ asegurĂĄndose de que los campos requeridos estĂŠn presentes, que existan archivos y directorios, etc.

sudo pwck
Comando pwck en Linux
Comando pwck en Linux

16. SETFACL & GETFACL

No dejes que la fĂĄcil visualizaciĂłn de los permisos de tipo rwxr-x--- te haga imaginar que esto es todo lo que hay para archivar permisos en sistemas Linux. Con los comandos setfacl y getfacl, puedes dar acceso a un archivo a alguien que no sea el propietario de un archivo y que no sea miembro del grupo asociado (y no quiera que lo sea).

Supongamos que deseas que <usuario> tenga acceso de lectura a un archivo que contiene las instrucciones de instalaciĂłn de su ufw, pero nada mĂĄs. Utiliza un comando como este para modificar la lista de control de acceso (ACL) del archivo:

setfacl -m u:<usuario>:r ufw-setup
getfacl ufw-setup

17. SESTATUS & APPARMOR

Los comandos sestatus y apparmor pueden mostrar el estado de SELinux y las herramientas apparmor que proporcionan aislamiento entre aplicaciones mediante el control de acceso obligatorio. Si estĂĄs utilizando una u otra de estas herramientas, deberĂ­as saber cĂłmo visualizar su status.

sudo sestatus
sudo apparmor_status
Comando apparmor_status
Comando apparmor_status

TambiĂŠn debes saber cĂłmo iniciar y detener estas herramientas.

sudo /etc/init.d/apparmor start
sudo /etc/init.d/apparmor stop
sudo /etc/init.d/apparmor restart

y, para SELinux, lo que representan los distintos modos:

enforcing -- Se aplica la polĂ­tica de seguridad de SELinux
permissive -- SELinux imprime advertencias en lugar de hacerlas cumplir
disabled -- SELinux estĂĄ totalmente desactivado

ComentĂĄrios

Ebook

Postagens mais visitadas