questão de segurança do comando sudo do Linux?

7
  1. Estou usando uma caixa do Red Hat Enterprise 5 Linux. Eu acho que se um usuário está no arquivo / etc / sudoers, então se o usuário executar o comando com o sudo, o usuário executará este comando com privilégio de root (sem saber a senha do root, o usuário executa o sudo só precisa digitar a própria senha do usuário para executar um comando com sudo). Isso é correto entendimento?

    1. Se sim, então é um buraco de segurança? Como usuários diferentes de root podem rodar com privilégios de root?

obrigado antecipadamente, George

    
por George2 11.05.2010 / 14:05

8 respostas

19

Não é uma falha de segurança, pelo menos não mais do que su é.

sudo é apenas um caminho para um administrador por ter um rápido acesso root sem usar um shell de root (que pode ser perigoso).

sudo apenas requer que o usuário insira sua própria senha e, de fato, lhe dará acesso root (tente $ sudo whoami ). No entanto, nem todos devem estar no arquivo /etc/sudoers .

Se você der uma olhada em sudo manpage, encontrará como limitar sudo a alguns comandos simples.

Você pode, por exemplo, permitir que o usuário bob execute $ sudo poweroff sem permitir que ele execute $ sudo cat /etc/shadow .

Portanto, não, não é uma falha de segurança se você configurá-lo e usá-lo corretamente. Se você não quiser que seus usuários tenham um shell de root, pense em proibir comandos como $ sudo su .

    
por 11.05.2010 / 14:10
11

Se fosse uma falha de segurança, o sudo já teria sido removido. É intencional, você pode configurá-lo para exigir a senha do usuário, a senha da raiz ou nenhuma senha.

Como apenas a raiz pode configurá-lo de qualquer maneira, não há falhas de segurança. A raiz configura quem tem acesso a ela, quem deve colocar qual senha, para cada usuário, para cada grupo.

Além disso, sobre a última parte: "já que outros usuários além do root podem ser executados com privilégios de root": Esse é o objetivo do programa sudo.

    
por 11.05.2010 / 14:13
3

o sudo é seguro - seguro o suficiente para algumas distribuições (Ubuntu) usarem e recomendarem por padrão.

Dito isso, se você conceder direitos gerais de sudo a um usuário, ele removerá a separação entre essa conta e uma conta raiz. Se você der direitos sudo gerais ao usuário timmy , por exemplo, a conta timmy torna-se tão privilegiada quanto a conta raiz . Qualquer um que invada a conta do timmy pode fazer qualquer coisa como root (na maioria dos casos, a senha do timmy é necessária).

Argumentos do Pro-sudo

  • Geralmente configurado para que ninguém possa efetuar login como o usuário chamado "root". Pode dificultar a força bruta de um login de superusuário.
  • Você pode ter um controle refinado sobre quais comandos um usuário pode executar como superusuário (embora normalmente você desse todos os privilégios a uma conta, o que efetivamente serve a mesma função que "root" com um nome diferente).
  • Remove a tentação de permanecer logado como root, quando nem todos os comandos que você executa precisam de privilégios de superusuário.

Argumentos do anti-sudo

    O
  • sudo pode ser visto para incentivar a prática de distribuir privilégios no nível de superusuário para os usuários, o que provavelmente não é uma boa ideia.
  • O sudo é um pouco mais complicado de configurar porque é muito flexível. Embora isso permita que você seja agradável e seguro, também pode facilitar a abertura inadvertida de lacunas de segurança se você não tiver cuidado ou não entender o que está fazendo.
  • Pode ser visto como uma má idéia, em geral, usar uma conta com privilégios de superusuário para uso diário, e ter privilégios de sudo é a próxima melhor coisa. Um contra-argumento para isso é que a sua senha de usuário é (na maioria dos casos) ainda necessária para elevar para o status de superusuário, e isso provavelmente não será conhecido por invasores / processos errantes executados como você.

Essencialmente, são apenas duas escolas de pensamento diferentes, ambas válidas o suficiente para ter distribuições inteiras apoiando sua própria abordagem.

Estou mais confortável com a abordagem não-sudo, principalmente porque é com isso que eu estou mais familiarizado como usuário Debian. Acho que a simplicidade de ter uma conta root sobre a flexibilidade do sudo ganha para mim. Eu não permito o login root remotamente (ou seja, via SSH) e eu recomendo que ninguém mais o faça.

    
por 12.05.2010 / 04:04
2

o sudo é seguro porque:

  1. um usuário root ou outro usuário com sudo (que pode executar 'visudo' ou '$ EDITOR / etc / sudoers') precisa modificar o / etc / sudoers para conceder os privilégios.

  2. Você pode restringir e especificar exatamente o que uma pessoa pode executar com privilégios de root, o que torna possível ter níveis variáveis de usuários admin em um servidor.

  3. Como usuário privilegiado, você pode visualizar o arquivo / etc / sudoers existente para ver quais usuários têm permissões.

  4. Você não precisa compartilhar a senha de root entre uma equipe de administradores.

  5. Existe uma contabilidade completa do que é feito com o comando sudo, fornecendo uma trilha de auditoria clara

por 11.05.2010 / 21:34
1

Eu acho que é melhor para a segurança do que estar logado como root, já que não é conveniente fazer as coisas como root. Certamente é melhor para a prestação de contas, que é parte da segurança.

Você precisa restringir quem a usaria. Normalmente, você o limita a pessoas que sabiam a senha do root de qualquer maneira, embora seja possível se tornar mais sofisticado e limitar o que pessoas específicas podem fazer.

O problema de segurança que me incomoda é que não é necessário digitar minha senha para cada comando sudo; se eu digitar outro no mesmo terminal sem muito tempo, ele aceita o sudo sem a senha. Isso é presumivelmente para evitar que eu continue inserindo minha senha, mas é concebível que algum software de usuário mal-intencionado possa explorar isso. Eu não sei o suficiente para avaliar o risco pessoalmente.

    
por 11.05.2010 / 17:14
0

sudoers não têm acesso automaticamente como root. Eles têm acesso como o usuário configurado. É possível e correto fornecer aos usuários acesso para executar ferramentas como outros usuários não-root.

Todos os usuários que têm acesso para executar um shell ou um comando que pode fornecer acesso ao shell devem ser os usuários com os quais você confiaria a senha raiz. Com o sudo é possível rodar um sistema sem uma senha root. Todos os usos do sudo são registrados, o que não é o caso com comandos executados como root.

Como observado, é possível limitar o acesso a comandos específicos. O exemplo sudoers tem um número de conjuntos de comandos que você pode conceder a usuários específicos que precisam executar tarefas que exigem privilégios de root. Usando o sudo, é possível permitir isso sem fornecer a senha de root.

Qualquer pessoa que possa executar um script ou comando com privleges de raiz, que eles possam alterar, recebeu efetivamente acesso root. Você precisa confiar nessas pessoas ou não lhes dar acesso.

Há um grande número de tarefas que exigem acesso root. Com o sudo, você pode delegar com segurança essas tarefas a operadores de backup, webmasters etc.

O Sudo é muito mais seguro que as alternativas. Se mal configurado, ou se o acesso incorreto for dado a usuários não confiáveis, isso é um risco de segurança (buraco).

    
por 12.05.2010 / 04:22
0

O comando sudo permite que um usuário execute comandos com os privilégios de outro. O outro usuário pode ser root ou pode ser outra pessoa, mas o padrão é root . Ele foi projetado para este propósito, tem muitas opções de configuração para ajudar a bloquear as coisas de várias maneiras, e foi testado por muitos anos por muitas pessoas. Não é apropriado para todos os problemas de segurança, mas usado corretamente, pode ser uma ferramenta muito útil. No entanto, se não for usado corretamente, pode criar mais problemas do que resolve.

    
por 04.06.2010 / 23:08
-3

sudo não é bom para segurança. Um software de delegação de privilégios é ajudar a distinguir quem fez o quê e registrar as atividades de maneira confiável. Mas com a maioria das configurações do sudo, o log de atividades pode ser facilmente falsificado. E o uso da senha do sistema do usuário significa que, se alguém roubar a senha de login de um usuário, ele também poderá executar o sudo como esse usuário para fazer algo ruim. Em seguida, nas plataformas UNIX / Linux, é muito fácil para qualquer administrador de sistema executar um script em segundo plano para roubar a senha de outras pessoas. Sysadmin também pode fazer o ataque de swap de senha para usar a conta da vítima para fazer algo ruim. E também pode usar a conta da vítima para executar o sudo para fazer algo ruim através da atualização do arquivo sudo timestamp. Isso significa que quando o log diz que fez alguma coisa a qualquer momento, pode não ser necessário uma investigação extra para descobrir o que aconteceu. nem sempre é possível.

    
por 27.02.2018 / 10:14