Securizar sudo no noso sistema
Configurar sudo para facer o noso sistema máis seguro
Recentemente lendo un artigo acerca da conveniencia de usar sudo ou desbotalo e usar root, puiden ver que a configuración que ven por defecto de sudo non é a máis segura.
Xa sexa que o instalemos nós e engadamos o noso usuario ao ficheiro de sudoers, como que xa veña co sistema, os valores por defecto son febles.
Por exemplo, cando pomos o contrasinal este queda gardado por un tempo sen que teñamos que volvelo por. Tamén temos a opción de executar calquer comando de root con sudo.
Isto fai que se alguén se fixese ca nosa sesión e tivésemos o contrasinal posto, puidese facer o que quixese.
No artigo relacionado, o autor, reflexiona sobre á sua preferencia acerca de usar sudo ou acceder como root a facer o que precise e volver á sesión de usuario para seguir traballando. Os puntos de vista que aporta son certeiros. E aínda que poida estar ou non de acordo ca súa decisión final, o certo é que no contido ten razón. O comando sudo é demasiado poderoso para deixalo sen configurar. Polo que neste artigo imos ver de xeito breve algunha das configuracións que podemos facer para minimizar os riscos.
Onde
Para comezar, non vou editar o ficheiro /etc/sudoers
, se non que vou crear o meu propio que se procesará despois do ficheiro básico.
Fixándome no ficheiro sudoers vexo que xa ten incluída a seguinte directiva ao final do mesmo @includedir /etc/sudoers.d
. Se lemos o README que hai nesa ruta, xa se indica que a partir da mesma liña deixará de parsear o ficheiro actual e faráo cos ficheiros desa ruta.
Sempre que non conteñan ~
ou .
no nome.
Así pois co comando sudo visudo /etc/sudoers.d/ficheiro
crearei o ficheiro onde estarán as miñas políticas para o comando.
Mudar o editor
Por defecto o editor que se utiliza, a lo menos con Debian no meu caso, é nano. Polo que vou mudar para usar vim, xa que heme máis cómodo. Así engado a seguinte liña ao ficheiro Defaults editor=/usr/bin/vim
.
Inmediatamente ao gardar e volver a entrar en visudo xa estou en vim.
Tempo de gracia
Revisando a documentación de sudo, unha das cousas que nos sinalan é o período de gracia. Isto fai que unha vez posto o contrasinal, non nolo volva a pedir durante cinco minutos.
Co cal, por exemplo, se facemos algo e nos erguemos do posto; alguén tería marxe para facer algo con permisos de root.
Para previr isto con visudo, o que facemos é engadir unha liña que desactivará o período de gracia. Con Defaults timestamp_timeout=0
faremos que nos pida o contrasinal sempre que utilicemos sudo.
Rexistrar os comandos de sudo
Aproveitarei tamén para rexistrar calquer comando que se execute con sudo. Así en caso de ocorrer algo, terei a opción de ir ao arquivo a ver cales foron os comandos executados.
Isto non é só no caso de que alguén alleo faga algo, se non que no caso de meter eu a pata poderei ver que foi o que corrín e revertilo.
Cas seguintes liñas isto queda resolto:
Defaults log_output
Defaults logfile=/var/log/sudo.log
Raspberry Pi OS
No caso do sistema operativo da Raspberry, ao seguir estes pasos seguía a pedir o contrasinal. Isto era porque no directorio /etc/sudoers
incluíron un ficheiro 010_pi-nopasswd que lle dí que non pida nunca o contrasinal e pisaba a miña configuración.
Só contiña a directiva pi ALL=(ALL) NOPASSWD: ALL
, co que ao borralo funcionou como eu quería.
Conclusión
De momento vou deixar estas preferencias e irei probando a ver que tal vai. No caso de que nalgún momento queira ser máis restrictivo, outros parámetros poden ser atopados na documentación do proxecto
Referencias
Link de onde xurdiu a idea de securizar sudo: https://c3po.mataroa.blog/blog/nunca-uso-sudo/
Web do proxecto sudo https://www.sudo.ws/
Artigos Relacionados:
- Instalar Fedora con BTRFS, cifrado e Snapshots activos
- AWK
- Mudar as DNS en Fedora
- Distrobox
- Instalar Fedora en VirtualBox
- Eliminar liñas nun ficheiro con sed
- Cómo crear un live USB dende a terminal
- Engadir tarefas a Systemd
- Copiar a saída do terminal ao portapapeis
- Configurar acceso SFTP a un directorio
- Inicio de sesión automático en Alpine linux
- Crear un usuario con permisos restrinxidos para backups
- error: gpg failed to sign the data
- Xestionar varias claves ssh
- Cómo instalar Traefik con docker
- Configurar sshfs para acceder al sistema de ficheros de forma segura
- Cómo instalar Raspberry OS
- Instalando docker en modo rootless en Debian
- Configuración e uso de GPG en linux