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:
1-Não existem dois "root" no sistema;
Na hipótese da necessidade de privilégios administradivos para outros usuários, utilize o sudo, dando atributos de acordo com a necessidade.
2-Utilize a conta "root" para administrar, não para trabalhar;
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.
3-Não permita acesso como "root" via acessos remotos;
Nunca permita que o root tenha acesso via ssh por exemplo. Ajuste seu sshd_config adequadamente:
PermitRootLogin no
4-Não permita rodar scripts desconhecidos como "root"
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.
5-Não permita usuários com senha nula (em branco, empty) no sistema;
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
6-Não permita acesso "root" ao console;
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.
7-setuid e setgid também devem ser usados com cuidado, evitando-se a elevação de privilégios;
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
8-Cuide da "raiz" da sua árvore;
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.
9-id root = 0
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
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
Conclusão:
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.
[1] http://www.linfo.org/root.html
man setgid
man setuid
man credentials
0sem comentários ainda
Por favor digite as duas palavras abaixo