A maior parte das instalações de Linux utiliza o gerenciador de boot lilo (LInux LOader) como um facilitador do processo; entre outras vantagens, o lilo permite escolher entre múltiplos kernels de Linux que você tenha instalado, e até entra mais de um sistema operacional presente na mesma máquina.
E é no momento da carga do sistema operacional que ocorre um dos momentos mais críticos da segurança do Linux (e da maior parte dos sistemas operacionais, já que praticamente todos contam com recursos semelhantes ao que apresentaremos a seguir): o operador do console tem a possibilidade de ordenar ao sistema operacional que não proceda à sua inicialização completa, e ao invés disso entrando no chamado modo monousuário, onde quem estiver operando o console tem poderes de usuário root, mesmo sem ter fornecido senha, em alguns casos.
Esta característica é muito útil para resolver problemas de inicialização, quando a configuração do sistema operacional apresenta falhas críticas e não pode se completar; por exemplo, quando a inicialização é dependente da disponibilidade de uma rede local que no momento está inoperante, ou se a inicialização em modo gráfico entra em loop por erros de sintaxe na configuração do servidor X. O boot em modo monousuário também é uma das soluções mais simples para um problema clássico: a perda da senha de root da máquina.
Para entrar em modo monousuário, basta passar alguns parâmetros específicos ao kernel. Isto pode ser feito através do prompt do lilo (o tradicional "lilo boot:"), através do prompt do próprio kernel, quando disponível, ou por maneiras específicas de outros gerenciadores de boot dos quais você possa dispor. O parâmetro mais comumente encontrado é o single, mas usuários experientes utilizam diretamente o single rw ou o single rw init=/bin/bash, quando o diretório /bin residir no mesmo sistema de arquivos que o root. A discussão sobre cada uma destas opções pode ser encontrada no BootPrompt-HOWTO em linuxdoc.org.
Comumente se questiona a possível falha de segurança que este boot em modo privilegiado oferece, já que qualquer pessoa pode se tornar superusuário sem saber a senha, bastando para isto provocar uma reinicilização da máquina. Esta questão é objeto de debates há muitos anos, e sua solução se encontra em um axioma da segurança de dados: não há segurança se é possível obter acesso físico ao console ou ao conjunto CPU/discos de um servidor.
Senão vejamos: uma pessoa com acesso físico pode forçar o reboot e inicializar o servidor com uma mídia removível (disquete ou CD-ROM de boot) que lhe dê direitos especiais. Se a máquina tiver senha na BIOS que impeça este tipo de inicialização, há uma série de técnicas (que não serão discutidas aqui) para contornar este tipo de senha simples; no limite, um invasor cujo intuito seja causar dano pode danificar fisicamente a máquina, ou sua estrutura de suporte (eletricidade, cabeamento de rede), ou até mesmo roubar os discos rígidos e posteriormente montá-los como secundários (e ter acesso irrestrito ao seu conteúdo) em outro computador. O livro Practical Unix and Internet Security (da editora O'Reilly ) conta com um capítulo inteiro sobre as razões da segurança física, se você quiser se aprofundar.
Considerando todos estes riscos que uma pessoa com acesso físico a um sistema pode impor, os projetistas dos sistemas operacionais com características de segurança assumem que o administrador de sistemas (você!) irá cuidar da tarefa de protegê-los fisicamente. Isto posto, dadas as possíveis circunstâncias de necessidade expostas acima, e considerando que todo sistema com intenção de ser seguro deve contar com restrição física de acesso ao console, não há porque impedir que o operador do sistema (com acesso físico) possa forçar o modo monousuário.
Mesmo com todo o exposto acima, muitos administradores tem razões para deixar os seus servidores expostos. Podem ser máquinas utilizadas para treinamento, ou pode não haver disponibilidade de um local seguro; as razões não importam. Assume-se que neste caso o administrador não busca a proteção contra a interrupção do serviço (já que é muito fácil cortar um cabo, derrubar a CPU no chão ou até mesmo colocar o cabo de rede em uma tomada de 220V - e não duvide!), mas apenas a segurança das informações armazenadas. O que se pode fazer?
Como raramente se dispõe de recursos para o nível de criptografia necessário para garantir a segurança contra alguém com poderes de superusuário, podemos assumir que nossa solução será através da tentativa de impedir a inicialização em modo monousuário. E é o que veremos a seguir.
Em primeiro lugar, garanta que sua BIOS permita apenas o boot pelo disco rígido, e jamais pelo disquete ou CD-ROM. Coloque senha para alteração das opções da sua BIOS, e verifique junto ao fornecedor se ela não dispõe de uma senha mestra - muitos modelos de BIOS comuns possuem senhas padronizadas pelo fabricante, que funcionam em todos os computadores, em adição à senha selecionada pelo proprietário. Se o seu gabinete dispuser de tranca ou cadeado, utilize-o, e guarde a chave em local seguro.
Em segundo lugar, instale o gerenciador lilo de maneira adequada às suas necessidades, mas incluindo as seguintes opções no /etc/lilo.conf:
Não permita a execução de nenhum outro sistema operacional além do Linux. Existem utilitários de outros sistemas operacionais que podem ser utilizados para dar um boot na máquina e entrar no linux sem passar pelo lilo, e você estará tão desprotegido como se estivesse com o boot por disquete habilitado.
Com isto você tornará seu sistema bem mais restrito, e o invasor casual terá um pouco mais trabalho para obter o acesso privilegiado. Mas cuidado para não esquecer a senha e ao mesmo tempo perder a chave do gabinete ;)
O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.