Revista Do Linux
A Revista do Linux foi publicada pela Conectiva entre 1999 e 2004. O material abaixo foi distribuído em CD-ROM pela empresa, que permanece proprietária dos direitos sobre eles. A disponibilização on-line é iniciativa do BR-Linux, como tributo à pioneira entre as publicações impressas sobre código aberto no Brasil.
Veja o índice de edições disponíveis.
 
EDIÇÃO DO MÊS
 CD do Mês

 Capa
 Estudo de Caso
 Produto
 Tutorial
 Iniciantes
 Segurança
 Hardware
 Desenvolvimento
 Entrevista
 Corporativo
 Especial
 Distro
 Comunidade
 
 
 
sistema
 
(continuação)
Na última edição começamos a desvendar os segredos da rede Linux. Este mês, vamos continuar a série e conhecer um pouco mais
sobre alguns de seus aspectos.
 
<IMG> Como de costume, tanto a edição de arquivos quanto a execução de comandos devem ser feitas como superusuário. Então todo cuidado é pouco. Além disso, como algumas distribuições não seguem padrões, é possível que algumas ações não funcionem na sua. Se este for o caso, consulte a documentação.
 
Desvendando o NIS
<IMG> Num ambiente com muitos usuários e muitas máquinas, manter cópias dos usuários e grupos em todas as máquinas é, no mínimo, não muito prático. Para simplificar, você pode usar o Network Information Service, ou NIS. A função do NIS é levar informações da rede para todas as máquinas que dela fazem parte. Estas informações são geralmente os usuários e os grupos do sistema.
<IMG> Vejamos como colocar nossa máquina kepler em uma rede NIS.
<IMG> Vamos supor que nosso servidor NIS seja a máquina newton e que seu endereço IP seja 192.168.1.1
<IMG> Antes de mais nada, editemos o arquivo /etc/sysconfig/network para configurar o nome do nosso domínio:
HOSTNAME=kepler
NISDOMAIN=ciencia.
<IMG> Em seguida, executemos o comando abaixo para que a configuração fique ativa sem necessidade de reiniciar a rede:
# nisdomainname ciencia.
<IMG> Agora que a máquina já possui um domínio NIS, precisamos configurar o serviço ypbind para que este conecte a máquina ao servidor NIS durante a inicialização do sistema. Para isso, devemos editar o arquivo /etc/yp.conf para que se pareça com:
domain ciencia. server newton.ciencia
 
<IMG> Este é, aliás, mais um motivo para se usar apelidos (vide edição pas--sada). Poderíamos dar à máquina newton o apelido de nis. Assim, se por alguma razão a máquina newton não pudesse mais ser usada como servidor NIS, bastaria configurar outra máquina como servidor e dar-lhe o apelido de nis e as máquinas clientes jamais notariam a diferença, pois já estariam “apontando” para nis.ciencia.
<IMG> Precisamos, então, iniciar o serviço ypbind para ligar a máquina ao servidor:
# /etc/init.d/ypbind start
# chkconfig --add ypbind
<IMG> Há um pequeno detalhe que não podemos esquecer: O serviço ypbind tem de ser capaz de encontrar o servidor NIS. Como durante a iniciali-zação pode acontecer de o servidor DNS ainda não ter sido contactado quando o NIS é iniciado, precisamos ter certeza de que nossa máquina pode achar o servidor de qualquer maneira. Como fazer isso? É nosso velho amigo /etc/hosts quem vai nos ajudar. Aliás, notaram como o hosts é muito útil para um arquivinho que teve sua função primária roubada pela criação do DNS e já deveria ter morrido há tempos?
<IMG> Para que o ypbind sempre encontre o servidor, incluímos a seguinte linha no arquivo /etc/hosts:
192.168.1.1 newton.ciencia newton
 
<IMG> Precisamos ainda nos assegurar de que o serviço portmap está sendo inicializado antes do ypbind.
<IMG> Agora os usuários da rede podem conectar-se à nossa máquina. Notemos que eles não terão um diretório /home, a não ser que criemos um para aqueles que o necessitarem.
 
Como funciona
o inetd.conf
<IMG> Uma das grandes dúvidas de administradores menos experientes é quanto ao suposto desaparecimento dos serviços de telnet e FTP em versões mais recentes de algumas distribuições. Na verdade, este “desapareci-mento” foi apenas uma medida de segurança. Algumas distribuições, preocupadas com a segurança de seus clientes, resolveram que, por padrão, as portas associadas a diversos serviços iriam fechadas. É o caso do FTP, do telnet, do POP3 e muitas outras.
<IMG> Para resolver este problema, apelamos para um dos arquivos mais importantes no /etc: o inetd.conf.
<IMG> Se visualizarmos o conteúdo deste arquivo, veremos diversas linhas semelhantes às abaixo:
#ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
<IMG> Cada uma destas linhas representa um serviço. Para habilitar o FTP e o Telnet, simplesmente desco-men-ta-mos as linhas correspondentes e reiniciamos o serviço inetd.
<IMG> As linhas do inetd.conf têm o seguinte formato:
[serviço] [tipo de socket] [protocolo] [wait/nowait] [usuario] [exec] [arg]
<IMG> Estes campos são:
Serviço: é o nome do serviço
Tipo de Socket: pode ser “stream’’, “dgram’’, “raw’’ ou “rdm’’. Para mais informações vide man socket
Protocolo: é o protocolo usado pelo serviço. Pode ser “tcp” ou “udp”, por exemplo, ou qualquer protocolo especificado em /etc/protocols
wait/nowait: com exceção de sockets do tipo “dgram”, todos os outros deveriam sempre usar “nowait”. Este campo indica se o serviço libera o socket para o inetd logo após a conexão, permitindo que o mesmo socket seja usado para outras conexões (nowait) ou se o socket fica “preso” (wait)
Usuário: especifica com qual usuá-rio o serviço será executado. Isto permite que sejam dadas menos permissões a um serviço
Exec: o nome do programa a ser exe-cutado para processar a conexão.
Arg: a linha de comando completa com os parâmetros a serem passados para o programa especificado em [exec].
<IMG> Este arquivo é de suma importância na rede. É muito comum em listas de segurança perguntas sobre linhas “estranhas” no arquivo. Realmente é comum que um usuário mal intencionado inclua uma linha no inetd.conf para lhe dar acesso futuro. Veja, por exemplo, a linha abaixo:
asp stream tcp nowait root /bin/ls /bin/ls -l
 
<IMG> Se nos conectarmos a esta máquina usando a porta do serviço asp (telnet localhost asp), receberemos uma listagem detalhada do diretório. Podemos imaginar o que um usuário mal intencionado poderia fazer al-terando esta linha, para executar outros comandos como, por exemplo, o bash.
<IMG> Devemos sempre verificar se não há linhas “estranhas” no arquivo, e nunca abrir portas que não têm necessidade de ser abertas.
 
Roberto Teixeira
maragato@conectiva.com.br
 
 

A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux