DOAS, originalmente criado para o OpenBSD e portado para outros sabores *nix, funciona semelhante ao
sudo, porém muito mais simples sua administração. Vamos instalar em um
openSUSE e ver seu funcionamento, para outras distribuições é mais fácil ainda.
Obs.: escolhi o openSUSE porque não existia até então compatibilidade com o mesmo, eu criei e submeti para o mantenedor do DOAS, ele já se encontra no GitHub do projeto.
[1]
https://github.com/slicer69/doas
Instalando dependências
1. Instalação dos pré-requisitos:
# zypper in gcc gcc-c++ make flex bison pam-devel byacc git
2. Clonando o projeto:
# cd /opt
# git clone https://github.com/slicer69/doas
3. Compilando:
# cd doas
# make
# make install
4. Copiando o conteúdo do pam.d/sudo para o DOAS:
# cp -a /usr/etc/pam.d/sudo /etc/pam.d/doas
5. Criando o diretório:
# mkdir /usr/local/etc/
# cd /usr/local/etc/
6. Criando e adicionando conteúdo no
doas.conf:
# cat <<EOF > doas.conf
permit user as root
#permit :wheel
permit nopass :wheel
EOF
7. Removendo o sudo com doas:
# su - user
doas zypper remove sudo
Funcionamento
Conforme expliquei no início do artigo, o DOAS é bem semelhante ao sudo, porém bem mais simples e enxuto de administrar. Segue abaixo algumas funcionalidades.
Modus operante do DOAS é igual o sudo:
doas comando
Permitir que todos usuários do grupo
wheel executem qualquer comando como root, basta somente editar o doas.conf e inserir o comando abaixo.
permit :wheel
Negar um usuário de executar algum comando:
deny clandestine cmd fdisk
Permitir que um usuário ou grupo execute comandos sem senha, o famoso NOPASSWD do sudo:
permit nopass :wheel
Não pedir senha para os usuários do grupo wheel por cinco minutos:
permit persist :wheel
Permitir que um usuário execute o comando reboot sem senha:
permit nopass clandestine cmd reboot
Ou seja, muito mais fácil que o sudo. O DOAS permite você inserir por usuário ou grupo, tanto faz, mas você deve estar se perguntando como faz para virar root:
doas su -
Lembra do visudo? No doas é
vidoas, simples assim.
Estatísticas de Vulnerabilidades do Sudo
Abaixo seguem gráficos das últimas vulnerabilidades encontradas no sudo.
Finalizando
DOAS é uma boa dica para evitar vetores de exploração em ambiente Unix/Linux, uso e indico, até hoje foi reportado apenas uma vulnerabilidade para o DOAS que afetava somente distros FreeBSD.
Segue abaixo material de referência.
[1]
https://man.openbsd.org/doas
[2]
https://wiki.gentoo.org/wiki/Doas
[3]
https://github.com/slicer69/doas/releases/tag/6.1
[4]
https://vuxml.freebsd.org/freebsd/7f7d6412-bae5-11e9-be92-3085a9a95629.html
[5]
https://www.tenable.com/plugins/nessus/127548