+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.
- ÂżUtilizas Windows? Mira los Mejores comandos CMD utilizados en Hacking
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>

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

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

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Ăłn, cuĂĄndo se ha iniciado y cuĂĄnto tiempo ha estado inactivo.
w

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.

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

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

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

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

12. IP ROUTE
El comando ip route
mostrarĂĄ tu tabla de enrutamiento:
ip route

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

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

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
Postar um comentĂĄrio