De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Francisco Aparecido da Silva
Data de Publicação: 27 de fevereiro de 2013
Ser root em um sistema Linux ou Unix não é somente um "direito" e sim um "privilégio". O "direito" não necessáriamente está relacionado com o privilégio e sim com diretivas a serem seguidas, enquanto "privilégio" é o "poder" investido na conta de acesso. Isto parece confuso? pode-se dizer que diretiva é o que você segue (ou deveria seguir) enquanto o privilégio é o que você tem.
Em um sistema Linux ou Unix, o usuário root é a principal conta do sistema com direitos supremos, podendo ter acesso a qualquer dispositivo, arquivos e comandos [1], inclusive para remover o sistema. Por esta razão, ao proteger esta conta do sistema, cria-se uma camada adicional na sua segurança. O interessante aqui, é o conceito de segurança do sistema operacional, seja ele um servidor ou um desktop. Note no entanto, que cada ambiente precisa de cuidados diferenciados, por exemplo, um servidor tem muitos serviços rodando, usuários com diferentes perfis e necessidades, logo, sua falha comprometerá atividades que podem significar a exposição de dados importantes e prejuizos institucionais, enquanto no desktop pode-se conviver com regras mais flexíveis (embora não recomendadas).
Em sistemas Debian, a definição de senha de root durante a instalação do sistema é opcional, ou seja, caso não seja informada, o primeiro usuário do sistema tem privilégio de sudo para atividades administrativas.
A lógica da segurança nesta questão, coloca luz para outro ponto cujo entendimento não tem tanta profundidade para iniciantes e estudantes do sistema, que é a questão de que a "segurança não é um produto e sim um conceito", por isso que vale o investimento do tempo para entender e melhorar a segurança do sistema.
Algumas recomendações de proteção para a conta root:
Na hipótese da necessidade de privilégios administradivos para outros usuários, utilize o sudo, dando atributos de acordo com a necessidade.
Não crie o hábito de logar e manter-se logado como root no seu sistema. Desta forma, cria-se a cultura de segurança em todas as atividades, desde as simples até as complexas.
Nunca permita que o root tenha acesso via ssh por exemplo. Ajuste seu sshd_config adequadamente: PermitRootLogin no
Diria ainda mais, não rode nem mesmo os scripts conhecidos como root, a não ser que tenha uma boa razão para isso.
Ao permitir isso, e estando o intruso no sistema, outras vulnerabilidades poderão ser alcançadas, inclusive a possbilidade de execução como sudo ou outro tipo de engenharia. Note que quem tem direitos de sudo, deve também cuidar de suas senhas. Para isso, ajuste seu sshd_config:
PermitEmptyPasswords no
Ajustando seu securetty em /etc/securetty. Neste arquivo, são listados os terminais onde root pode logar-se. O recomendável, é que root não tenha acesso aos consoles, principalmente em sistemas firewall ou servidores onde a segurança seja uma questão suprema.
O sistema operacional checa estes bits identicadores a cada chamada de sistema. Então, pelo setuid e setgid permite-se ao usuário a execução com privilégios elevados temporáriamente, como por exemplo, a alteração de senha. Observe o executável passwd, cujo setgid permite a execução por qualquer conta do sistema, com privilégios temporários de root:
-rwsr-xr-x 1 root root 34740 Feb 15 2011 passwd
O sistema operacional possui uma hierarquia de diretórios onde tudo está relacionado ao / (raiz), formando a árvore de diretórios. Em alguns pontos desta árvore, é possível recuperar arquivos ou diretórios removidos, isto considerando experiência e tempo para tanto. Mas outros pontos, a remoção pode ser fatal, como por exemplo o próprio /. A remoção (rm- rf /) por exemplo, destrói de forma irreversível a sua instalação.
O id 0 (zero) é reservado para o usuário root. Existem diversas razões para isso ser assim, incluindo a permissão dos processos do sistema. Portanto, nunca altere as permissões de um usuário para id 0, por exemplo, editando o /etc/passwd.
grep root /etc/passwd root:x:0:0:root:/root:/bin/bash
A exemplos de outros pequenos artigos, este foi baseado em experiência própria e voltado para resposta pontual, do tipo, o que é root ou como devo proteger a conta de root. É comum perceber a confusão que novos usuários do sistema fazem quando estão no prompt # ou $, não sabendo nem mesmo diferenciar o shell.
Este artigo foi publicado originalmente em http://blog.silva.eti.br
Francisco Aparecido da Silva trabalha atualmente com administração de redes e aulas na graduação na www.santacruz.br, Software Livre e segurança de redes. Utiliza GNU/Debian como distro linux preferida tanto em servidores quanto nos desktops. Blog Pessoal http://blog.silva.eti.br e no http://twitter.com/fafanete .
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários