5.3. Protegendo o NIS

NIS significa Serviço de Informações de Rede (Network Information Service). É um serviço RPC chamado ypserv que é usado em conjunto com o portmap e outros serviços relacionados, para distribuir mapas de nomes de usuário, senhas e outras informações importantes para qualquer computador que queira estar em seu domínio.

Um servidor NIS é composto de diversas aplicações. Elas incluem as seguintes:

NIS é bastante inseguro para os padrões de hoje. Não tem mecanismo de autenticação da máquina e passa toda a sua informação sem criptografia através da rede, incluindo uma gama de senhas. Como resultado, tenha muito cuidado ao configurar uma rede que usa NIS. Para complicar ainda mais, a configuração default do NIS é essencialmente insegura.

É recomendado a qualquer um planejando implementar um servidor NIS, primeiro proteger o serviço portmap conforme descrito na Seção 5.2, e então resolver as seguintes questões.

5.3.1. Planejar Cuidadosamente a Rede

Como o NIS passa informações delicadas sem criptografia através da rede, é importante que o serviço seja executado por trás de um firewall e numa rede segmentada e segura. Toda vez que informações do NIS são passadas através de uma rede insegura, seus riscos estão sendo interceptados. Um planejamento cuidadoso da rede neste aspecto pode ajudar a prevenir sérias violações à segurança.

5.3.2. Use um Nome de Domínio e Nome da Máquina (hostname) do NIS Parecido com uma Senha

Qualquer máquina com um domínio NIS pode usar comandos para extrair informações do servidor sem autenticação, desde que o usuário saiba o o nome da máquina DNS e o nome de domínio NIS do servidor.

Por exemplo: se alguém conectar um laptop a uma rede ou violar a rede por fora (e conseguir roubar um endereço IP), o seguinte comando revela o mapa de /etc/passwd:

ypcat -d <NIS_domain> -h <DNS_hostname> passwd

Se este atacante for um usuário root, poderá obter o arquivo /etc/shadow digitando o seguinte comando:

ypcat -d <NIS_domain> -h <DNS_hostname> shadow

NotaNota
 

Se o Kerberos for usado, o arquivo /etc/shadow não estará armazenado em um mapa NIS.

Para dificultar o acesso aos mapas NIS a um atacante, crie uma série randômica de caracteres para o nome da máquina DNS, tal como o7hfawtgmhwg.domain.com. Similarmente, crie um nome diferente de domínio NIS randomizado . Isto dificulta bastante um atacante de acessar o servidor NIS.

5.3.3. Edite o Arquivo /var/yp/securenets

O NIS escuta todas as redes caso o arquivo /var/yp/securenets esteja em branco ou não exista (como é o caso após uma instalação default). Uma das primeiras coisas a fazer é colocar uma máscara de rede/'network pairs' no arquivo de modo que ypserv somente responda aos pedidos da rede apropriada.

Veja abaixo um exemplo de entrada de um arquivo /var/yp/securenets:

255.255.255.0     192.168.0.0

AtençãoAlerta
 

Nunca inicie um servidor NIS pela primeira vez sem criar o arquivo /var/yp/securenets.

Essa técnica não oferece proteção contra ataque de spoofing de IP, mas pelo menos impõe limites a quais redes o servidor NIS serve.

5.3.4. Determinar Portas Estáticas e Usar Regras do IPTables

Todos os servidores relacionados ao NIS podem ter portas específicas, exceto o rpc.yppasswdd — o daemon que permite a usuários alterarem suas senhas de autenticação (login). Determinar portas para os outros dois daemons do servidor NIS, rpc.ypxfrd e ypserv, permite criar regras de firewall para proteger futuramente os daemons do servidor NIS contra intrusos.

Para fazer isto, adicione as seguintes linhas a /etc/sysconfig/network:

YPSERV_ARGS="-p 834"
YPXFRD_ARGS="-p 835"

As seguintes regras do IPTables podem ser determinadas para reforçar a qual rede o servidor escuta para estas portas:

iptables -A INPUT -p ALL -s! 192.168.0.0/24  --dport 834 -j DROP
iptables -A INPUT -p ALL -s! 192.168.0.0/24  --dport 835 -j DROP

DicaDica
 

Consulte o Capítulo 7 para mais informações sobre a implementação de firewalls com comandos do IPTables.

5.3.5. Use Autenticação do Kerberos

Uma das desvantagens mais gritantes ao usar NIS para autenticação é que sempre que um usuário se autentica (log in) em uma máquina, uma senha com caracteres misturados é enviada do mapa /etc/shadow através da rede. Se um intruso obtiver acesso a um domínio NIS e bisbilhotar o tráfego de rede, essas misturas de nomes de usuários e senhas podem ser discretamente coletadas. Com tempo suficiente, um programa de cracking de senha pode adivinhar senhas fáceis e um atacante pode obter acesso a uma conta válida na rede.

Como o Kerberos usa criptografia de chave secreta, as misturas de senha nunca são enviadas através da rede, tornando o sistema bem mais seguro. Para saber mais sobre o Kerberos, consulte o capítulo entitulado Kerberos no Guia de Referência do Red Hat Enterprise Linux.