| Red Hat Enterprise Linux 4: Guia de Segurança | ||
|---|---|---|
| Anterior | Capítulo 4. Segurança da Estação de Trabalho | Próxima |
Enquanto o acessso a controles administrativos é uma questão importante para administradores de sistemas dentro de uma empresa, manter controle de quais serviços de rede estão ativos é de suma importância para qualquer um que administrar e operar um sistema Linux.
Muitos serviços comportam-se como servidores de rede sob o Red Hat Enterprise Linux. Se um serviço de rede estiver rodando em uma máquina, então uma aplicação de servidor chamada daemon está escutando conexões em uma ou mais portas de rede. Cada um destes servidores deve ser tratado como uma via potencial de ataque.
Serviços de rede podem apresentar muitos riscos a sistemas Linux. Veja abaixo uma lista com as principais questões:
Ataques Denial of Service (DoS) — Ao inundar um serviço com pedidos, um ataque de denial of service pode trazer ao sistema uma parada terrível ao tentar registrar e responder à cada pedido.
Ataques à Vulnerabilidade do Script — Se um servidor estiver usando scripts para executar ações no lado do servidor, como servidores Web geralmente fazem, um cracker pode montar um ataque com scripts escritos inapropriadamente. Estes ataques à vulnerabilidade do script podem acarretar na condição de sobrecarga do buffer ou permitir que o atacante altere arquivos no sistema.
Ataques de Sobrecarga do Buffer (Buffer Overflow) — Serviços que se conectam a portas numeradas de 0 a 1023 devem ser executados por um usuário administrativo. Se a aplicação tiver uma sobrecarga explorável do buffer, um atacante pode obter acesso ao sistema como o usuário rodando o daemon. Devido à existência de sobrecarga explorável do buffer, os crackers usam ferramentas automatizadas para identificar sistemas com vulnerabilidades, e após obterem acesso ao sistema, utilizam rootkits automatizados para mantê-lo.
![]() | Nota |
|---|---|
A ameaça das vulnerabilidades da sobrecarga do buffer é amenizada no Red Hat Enterprise Linux pelo ExecShield, uma tecnologia de segmentação e proteção da memória executável suportada pelos kernels de mono ou mulit-processadores x86. O ExecShield reduz o risco de sobrecarga do buffer dividindo a memória virtual em segmentos executáveis e não-executáveis. Qualquer código de programa que tentar executar fora do segmento executável (como código maldoso de um exploit da sobrecarga do buffer) aciona uma falha na segmentação e é terminado. O Execshield também inclui suporte para a tecnologia No eXecute (NX) nas plataformas AMD64 e para a tecnologia eXecute Disable (XD) em sistemas Itanium e EM64T da Intel®. Estas tecnologias trabalham em conjunto com o ExecShield para impedir que código maldoso rode na porção executável da memória virtual com uma granularidade de 4kb de código executável, diminuindo o risco de ataques exploits furtivos da sobrecarga do buffer. Para mais informações sobre as tecnologias do ExecShield, NX ou XD, consulte o documento técnico intitulado New Security Enhancements in Red Hat Enterprise Linux v.3, Update 3, disponível na seguinte URL: |
Para limitar a exposição a ataques através da rede, todos os serviços não utilizados devem ser desligados.
Para aumentar a segurança, a maioria dos serviçosde rede instalados com o Red Hat Enterprise Linux são desligados por default. No entanto, há algumas exceções notáveis:
cupsd — O servidor de impressão default do Red Hat Enterprise Linux.
lpd — Um servidor de impressão alternativo.
xinetd — Um super servidor que controla as conexões para uma máquina de servidores subordinados, como vsftpd e telnet.
sendmail — O agente de transporte Sendmail é ativado por default, mas escuta apenas conexões a partir da máquina local (localhost).
sshd — O servidor OpenSSH, um substituto seguro para o Telnet.
Ao determinar se estes serviços devem ou não ser deixados rodando, é melhor usar o bom senso e pecar pela precaução. Por exemplo: se uma impressora não está disponível, não deixe o cupsd rodando. O mesmo vale para o portmap. Se você não monta volumes NFSv3 ou não usa o NIS (o serviço ypbind), então o portmap deve ser desativado.
O Red Hat Enterprise Linux é distribuído com três programas desenvolvidos para ligar e desligar serviços. Eles são: Ferramenta de Configuração dos Serviços (system-config-services), ntsysv e chkconfig. Para informações sobre o uso destas ferramentas, consulte o capítulo Controlando Acesso aos Serviços do Guia de Administração de Sistemas Red Hat Enterprise Linux.
Se você não está certo sobre o propósito de um serviço específico, a Ferramenta de Configuração dos Serviços tem um campo de descrição, ilustrado na Figura 4-3, que pode lhe ser útil.
Mas verificar quais serviços de rede estão disponíveis para iniciar no momento de ligar a máquina (boot) não é suficiente. Bons administradores de sistema também devem verificar quais portas estão abertas e escutando. Veja a Seção 5.8 para mais informações sobre o assunto.
Potencialmente, qualquer rede é insegura. Por este motivo, desligar serviços não usados é tão importante. Exploits de serviços são revelados e consertados rotineiramente. Portanto é importante manter atualizados os pacotes associados a qualquer serviço de rede. Veja o Capítulo 3 para mais detalhes sobre este assunto.
Alguns protocolos de rede são essencialmente mais inseguros que outros. Estes incluem quaisquer serviços que façam o seguinte:
Passem Nomes de Usuário e Senha Não Criptografados por uma Rede — Muitos protocolos antigos, como Telnet e FTP, não criptografam a seção de autenticação e devem ser evitados sempre que possível.
Passar Dados Importantes por uma Rede Não-Criptografada — Muitos protocolos passam dados através da rede não-criptografada. Estes protocolos incluem o Telnet, FTP, HTTP e o SMTP. Muitos sistemas de arquivo de rede, como o NFS e o SMB, também passam informações através da rede não-criptografada. É responsabilidade do usuário limitar o tipo de dados transmitidos ao utilizar estes protocolos.
Serviços dump de memória remota, como o netdump, passam o conteúdo da memória não criptografado através da rede. Dumps de memória podem conter senhas ou pior, informações de banco de dados ou outras informações delicadas.
Outros serviços como finger e rwhod revelam informações sobre os usuários do sistema.
Exemplos de serviços essencialmente inseguros incluem os seguintes:
rlogin
rsh
telnet
vsftpd
Todos os programas de autenticação e shell (rlogin, rsh e telnet) devem ser evitados a favor do SSH. (Veja a Seção 4.7 para mais informações sobre o sshd).
O FTP não é essencialmente tão perigoso à segurança do sistema quanto janelas de comando (shells) remotas, mas os servidores FTP devem ser configurados e monitorados cuidadosamente para evitar problemas. Veja a Seção 5.6 para mais informações sobre a proteção de servidores FTP.
Aqui estão alguns dos serviços que devem ser implementados cuidadosamente e por trás de um firewall:
finger
identd
netdump
netdump-server
nfs
rwhod
sendmail
smb (Samba)
yppasswdd
ypserv
ypxfrd
Você pode consultar mais informações sobre a proteção de serviços de rede no Capítulo 5.
A próxima seção aborda as ferramentas disponíveis para configurar um firewall simples.