LinuxSecurity.com.br  BR-Linux ·  VivaoLinux ·  Under-Linux ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org
Projeto LinuxSecurity Brasil
.
Principal | Publicar Notícia ou Artigo | TOP 10 | Assinar Newsletter | Usuários | Biblioteca | Contato | Banco de Currículos | Publicidade
Patrocinio








Patrocine

Pesquisar

Google
Web LS-BR


  
Facilidades do sudo na administracao do sistema
(1544 palavras neste texto)
(lido: 23421 vezes)

Formatar para impressao Formatar para impressao


Facilidades do sudo na administracao do sistema

Facilidades do sudo na administracao do sistema

Autor: AAA (Anderson Alves de Albuquerque)
E-Mail: a.alves@montreal.com.br
Coluna: BSD



1. Introdução:

Através deste pequeno artigo tentarei mostrar as vantagens e facilidades de se utilizar o software sudo. Existem outros que podem ser usados para realizar as mesmas tarefas, estes serão descritos abaixo.
O sudo permite que um grupo de sysadmin efetue comandos pré-determinados pelo root sem a necessidade de acesso completo de root. O sudo facilita muito auditoria dos comandos executados por cada sysadmin indevidualmente.


Lista de algumas vantagens do sudo:

  • Limitar acesso de root;

  • Não necessita que todos os sysadmins tenham acesso a senha de root;

  • Controlar os comandos usados pelos sysadmin (auditar);

  • Possibilidade de criação de users para trabalhos específicos, como: user de backup, user de contas e etc... .


2. Onde encontrar o software:


Informações oficiais: http://www.courtesan.com/sudo/

Download FTP: ftp://ftp.courtesan.com/pub/sudo/

O sudo também é encontrado por default em distribuições *BSD, mas sempre é recomendado instalar a última versão.


2.1. Outros softwares existentes:

Software

Site

super

ftp://ftp.ucolick.org/pub/users/will/

runas

http://www.mindspring.com/~carpinello/runas/

calife

http://frmug.org/mutt/calife/

osh

http://www.engarde.com/~mcn/osh.html

susub

http://www.tlogic.com/susub.htm

Power Broker

http://www.symark.com/pbroker.htm




3. Instalação e configuração


3.1. Instalação:


Este software foi testado em um S.O. Freebsd e a versão do sudo testada e a 1.6.3p6 .


$ tar -xvzf sudo-1.6.3p6.tar.gz
$ ./configure
$ make
$ make install

Arquivos instalados:

/usr/local/bin/sudo
/usr/local/etc/sudoers
/usr/local/sbin/visudo
(perm 4111)
(perm 440)
(perm 111)


3.2. Máscaras usadas no arquivo de configuração:

O arquivo de configuração /usr/local/etc/sudoers possui algumas máscaras que serao apresentadas abaixo.

Máscara

Significado

%

Palavra iniciada com este caracter se refere a um grupo de usuários do unix/linux.

*

Ex: ls /etc/p* (Todo o comando iniciado com < ls /etc/p > e válido).

?

Ex: ls /etc/p? (Todo o comando iniciado com < ls /etc/p > mais um caracter e válido).

[... - ...]

Delimita intervalo.

![... - ... ]

Delimita exclusão de um intervalo.

:

Palavra iniciada com este caracter se refere a um usuário do unix/linux.

3.3. Arquivo de configuração /usr/local/etc/sudoers :


Este arquivo de configuração descreve quais os comandos e quais que cada user (sysadmin) pode executar, e com qual uid cada user executará esse comando. Por isso a configuração deste deve ser bem planejada, abaixo colocaremos alguns exemplos simples.

Exemplo1:

anderson 192.168.100.1=(root) /bin/ls , /bin/pwd
user ip id comandos

Exemplo2:

anderson ALL = /bin/ls , /bin/passwd, !/bin/passwd *root*
user ip comando executado como root

Exemplo3:

anderson 192.168.100.1 = NOPASSWD: /bin/reboot , /bin/halt
user ip nao requer password comandos
(O user anderson pode executar os comandos listados sem a requisicao da sua senha)

Exemplo4:

aaa ALL = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root
(Permite o user aaa mudar a senha de qualquer user cujo o login esteja no intervalo de A a Z exceto o root).

Nestes exemplos iniciais é importante a dicisão de incluir o ip de onde o user (sysadmin) executará o comando em vez de ALL. Com a adição do ip em vez de ALL podemos evitar a execução de comandos remotos (R*), apesar que a maioria não utiliza mais isso porém é sempre bom evitar transtornos e surpresas.

Exemplo5:

aaa ALL = /bin/passwd ?* , !/bin/passwd *root*
user ip comando permitido comando nao permitido
(O user aaa pode mudar a senha de todos os users exceto a do root, desde que este user tenha pelo menos um caracter válido)

Exemplo6:

anderson 192.168.168.1 = (webmaster) vi /www/index.html
user ip uid que executara o comando comando usado

Neste caso basta o user anderson executar:

$ /usr/su/bin/sudo vi webmaster vi /www/index.html

(Permite o user anderson executar o comando vi /www/index.html com os poderes do user webmaster).


Exemplo7:

Defaults@ALL log_year, logfile=/var/adm/sudolog
(Concentrando os logs /var/adm/sudolog)

Defaults:anderson log_year, logfile=/var/adm/anderson.sudolog
(Permite desviar os logs do user anderson para o arquivo /var/adm/anderson.sudolog )

Defaults@ALL mailto=root,admin,webmaster
(Envia emails de notificações para root,admin,webmaster)


Também podemos usar o visudo em /usr/local/sbin/ para edição do arquivo de configuração, este binário tem função parecida com o vipw do freebsd. Ele automaticamente verifica se a sintaxe esta correta ou não, em caso de erro de sintaxe ele automaticamente avisa ao root se deseja gravar ou não o arquivo /usr/local/etc/sudoers. Ao usar o visudo o sudo e locado em /etc/sudoers.tmp ou em /usr/local/etc/sudoers.tmp , impedindo edições conflitantes.

Para obter mais informações: man sudoers

3.4. Uso do sudo:

Apos a configuração em /usr/local/etc/sudoers basta executar o sudo com as seguintes sintaxe:

$ sudo

$ sudo -u

$ sudo -l
Password: *******
User anderson may run the following commands on this host:
(root) /bin/adduser
(webmast) vi /www/index.html
(aaa) /bin/pwd

(Lista as possibilidades de comandos que o user pode afetuar atraves do sudo)

Para obter mais informações: man sudo


3.5. Exemplos de logs do sudo:


Por default os logs são registrados em /var/log/messages, podendo ser modificados conforme o exemplo7 do item 3.3 .

- Exemplo de comando bem sucedido:

Feb 2 11:03:00 server /usr/bin/sudo: anderson : TTY=ttyp1 ; PWD=/usr/home/anderson ; USER=root ; COMMAND=/usr/bin/add

Feb 2 11:03:03 server /usr/bin/sudo: anderson : TTY=ttyp1 ; PWD=/usr/home/anderson ; USER=root ; COMMAND=/usr/bin/adduser


- Exemplo de user que executa comando não permitido, mas esta liberado a usar algum comando com sudo:

Feb 2 11:05:17 server /usr/bin/sudo: anderson : command not allowed ; TTY=ttyp1 ; PWD=/etc ; USER=root ; COMMAND=/bin/passwd

Out no display:

$ /usr/bin/sudo /usr/su/ls

Sorry, user anderson is not allowed to execute '/bin/passwd' as root on server.

- Exemplo de user que não e permitido usar o sudo:

Feb 2 11:07:38 server /usr/bin/sudo: anderson : user NOT in sudoers ; TTY=ttyp1 ; PWD=/usr/home/anderson ; USER=root ; COMMAND=/bin/ls

Out no display:

bash$ /usr/su/bin/sudo /bin/ls

anderson is not in the sudoers file. This incident will be reported.


- Exemplo de password incorreto:

Feb 2 12:19:53 server /usr/bin/sudo: anderson : 1 incorrect password attempt ; TTY=ttyp1 ; PWD=/etc ; USER=root ; COMMAND=/bin/ls



4. Bibliografia:

Site oficial: http://www.courtesan.com/sudo/
Freebsd: http://www.freebsd.org



Espero que este artigo ajude a outras pessoas, qualquer dúvida ou sugestão mailme ....



[ Voltar a A.Alves | Indice de Seções ]




Projeto LinuxSecurity Brasil. Desde 2000 um projeto LIVRE com foco em informações sobre administração e segurança de redes Linux (RedHat, Conectiva, Slackware, Suse, Kurumin, Debian, Mandrake ou qualquer outra distribuição), BSD (FreeBSD, OpenBSD, NetBSD) e demais UNIX, Microsoft Windows, Sun Solaris, com artigos, notícias e tutoriais sobre proxy (squid), servidores de email (postfix, sendmail, qmail), servidores WEB (apache, IIS), bancos de dados (MySQL, PostgreSQL, mSQL), samba, criptografia, vulnerabilidades, dentre outros assuntos importantes a qualquer administrador de sistemas ou redes preocupado com segurança