Outro aspecto importante da administração do sistema é proteger o ambiente de rede contra usuários mal intencionados e intrusos. O gerenciamento descuidado do sistema pode oferecer muitos alvos para usuários sem escrúpulos: ataques podem variar da tentativa de descoberta de uma senha até a monitoração do tráfego da rede, e os danos causados podem produzir desde mensagens com remetentes falsos até perda de dados ou violação da privacidade dos usuários. Mencionaremos aqui alguns dos problemas mais comuns, a forma como eles ocorrem e forma de evitá-los.
Esta seção irá discutir alguns exemplos e técnicas básicas em lidar com o sistema de segurança. Obviamente, os tópicos aqui descritos não descrevem as situações de forma extremamente detalhada, porém servem como forma ilustrativa das situações com as quais o administrador poderá se defrontar. De qualquer forma, a leitura de um bom livro de segurança é absolutamente necessária, especialmente em um sistema de redes. O livro ``Practical UNIX Security'' de Simon Garfinkel's (veja [#!segurança!#]) é altamente recomendada.
O sistema de segurança começa com uma boa administração do sistema. Isso inclui a checagem do dono e das permissões de todos os arquivos e diretórios, a monitoração do uso de contas privilegiadas, etc. O programa COPS, por exemplo, irá checar o sistema de arquivos e os arquivos de configurações mais utilizados, procurando por permissões não usuais e outras anomalias. É aconselhável ainda utilizar um programa de aperfeiçoamento de senhas, tornando-as mais difíceis de serem descobertas. O utilitário de senhas sombra1.11, por exemplo, requer que uma senha tenha no mínimo cinco letras e contenha tanto maiúsculas como minúsculas, além de números.
Ao criar um serviço acessível pela rede, deve-se estar seguro de dar-lhe o menor privilégio possível, significando que não será permitido executar atividades não enquadradas nos objetivos do programa. Por exemplo, pode-se desenvolver programas que utilizem setuid para o superusuário root ou alguma outra conta privilegiada, os quais dêem privilégios ao programa somente quando for necessário. Por exemplo, caso se deseje permitir que estações sem disco rígido sejam inicializadas a partir de sua máquina central, deve-se prover o serviço de TFTP (Serviço de Transferência Simples de Arquivos), permitindo que este possa receber os arquivos de configuração a partir do diretório /boot. De qualquer forma, ao ser usado de maneira irrestrita, o TFTP permitirá que qualquer pessoa no mundo possa receber qualquer arquivo a partir de seu sistema. Caso não seja isso que se queira, porque não restringir o serviço TFTP ao diretório /boot?1.12
Seguindo a mesma linha de pensamento, pode-se querer restringir certos serviços para usuários de certos servidores, digamos que dentro da rede local. No capítulo , apresentamos o servidor tcpd, o qual executa esta tarefa para uma grande variedade de aplicações de rede.
Outro ponto importante é evitar softwares suspeitos ou perigosos. Claro que qualquer software pode ser potencialmente perigoso, uma vez que pode ter problemas que gente esperta pode utilizar para explorar um sistema e até mesmo ganhar acesso à máquina. Coisas como essa acontecem e não há proteção completa que garanta a infalibilidade do sistema. Estes problemas afetam softwares de livre distribuição, assim como também produtos comerciais.1.13
De qualquer forma, programas que requerem privilégios especiais são potencialmente mais perigosos que outros, porque qualquer falha poderá trazer conseqüências catastróficas. Caso se instale um programa que utilize o setuid para propósitos de configuração de redes, deve-se redobrar os cuidados para não se esquecer de nada que esteja na documentação, para não se criar acidentalmente um problema de segurança.
Não se deve nunca esquecer de que, por maiores que sejam as precauções, elas podem falhar, independente de quão cuidadoso se seja. Deve-se também ser capaz de detectar intrusos o mais cedo possível. Verificar os arquivos de mensagens é um bom ponto de partida, porém o intruso é provavelmente esperto o suficiente para apagar as pistas de sua presença nestes arquivos. De qualquer forma há ferramentas como tripwire1.14, a qual permite uma checagem em arquivos vitais ao sistema, caso estes tenham tido o seu conteúdo ou permissões alterados. tripwire executa diversas checagens da integridade destes arquivos e armazena as informações em uma base de dados. Durante as execuções subseqüentes, os números de verificação serão recalculados e comparados com aqueles armazenados, fazendo com que eventuais modificações sejam detectadas.