Administração de Sistemas Remotos com Port Knocking - Revista Infra Magazine 2

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Este artigo tem como objetivo demonstrar de forma prática uma técnica capaz de confundir scanners mal intencionados na procura por serviços de acesso remoto ativos no servidor.

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Do que se trata este artigo:

Este artigo tem como objetivo demonstrar de forma prática uma técnica capaz de confundir scanners mal intencionados na procura por serviços de acesso remoto ativos no servidor, tornando a porta de acesso remoto do SSH (Secure Shell) oculta para estas ameaças. A técnica de port knocking, aliada às configurações de segurança do SSH, cria um canal confiável de comunicação para servidores GNU/Linux.


Para que serve:

A técnica de port knocking está intimamente ligada ao SSH, que simultaneamente é um programa e um protocolo de rede capaz de permitir conexões remotas por meio das redes de computadores, de forma a permitir a execução de comandos em um computador remoto. O SSH vem se tornando a cada dia mais popular entre os administradores de sistemas e, por conta de sua facilidade de uso e por possuir diversos sistemas clientes, proporciona uma grande flexibilidade e segurança na autenticação e proteção do tráfego de dados.


Em que situação o tema é útil:

A técnica port knocking, e procedimentos relacionados, podem ser aplicados em servidores que necessitam de conexão remota para a administração. Implementando mecanismos e configurações de segurança, o usuário administrador não irá efetuar login diretamente no sistema remoto. Pode-se criar uma configuração automática de lista negra de endereços IP, tempo de inatividade de seção, ocultamento da porta de conexão remota, dentre outras técnicas que serão apresentadas posteriormente.

Autores: Flávio Alexandre dos Reis e Eduardo Pagani Julio

Uma das grandes vantagens no uso do GNU/Linux é a facilidade de administrar o sistema remotamente, seja administração feita via linha de comando ou com acesso à interface gráfica. Essa é uma necessidade para qualquer administrador de redes que mantém diversos servidores, em diferentes locais.

Nos dias atuais, poucas empresas hospedam seus websites em servidores instalados dentro da própria empresa. Quase sempre os servidores ficam hospedados em data centers que oferecem toda a estrutura necessária para que os serviços fiquem em funcionamento de forma confiável, incluindo links redundantes, no-breaks de grande porte, geradores, refrigeração, dentre outras vantagens.

Dessa forma, apesar do servidor ser de propriedade da empresa, o administrador não tem nenhum tipo de acesso físico a ele, tudo terá que ser feito à distância.

No GNU/Linux, toda a configuração do sistema, instalação de novos programas, dentre algumas funcionalidades, podem ser feitas a partir do modo texto, o que permite configurar o servidor e mantê-lo atualizado remotamente, não dependendo de aplicações específicas de modo gráfico. Toda essa manutenção poderá ser efetuada de outro sistema operacional. Por exemplo, uma estação Windows pode efetuar um acesso remoto a um servidor GNU/Linux, possibilitando assim a manutenção desejada.

Um exemplo comum no uso de acesso remoto é dentro das redes locais para acesso a aplicativos. Em muitas situações, faz sentido instalar determinados aplicativos em um servidor central e abrir seções remotas nos clientes, permitindo assim a centralização de informações no servidor (facilitando os backups, por exemplo) e, ao mesmo tempo, usar menos recursos nos clientes, o que possibilita o uso de micros mais antigos.

TELNET

O serviço telnet é um protocolo de acesso remoto cliente/servidor que permite ao administrador trabalhar conectado a outro computador à distância como se estivesse em frente ao mesmo. Esse protocolo chegou para substituir o rlogin e possui muitas melhorias em relação a seu antecessor, como o controle de acesso, personalização de seção e controle de terminal.

O telnet viabiliza emular terminais, permitindo assim ao usuário acessar aplicações remotas que estejam disponibilizadas em outras redes. A partir do momento que se inicia a seção de trabalho, qualquer comando digitado é enviado diretamente para o computador remoto. Será solicitado um username e uma password para acessar o sistema, conforme visto na Figura 1.

Figura 1. Início da conexão com servidor telnet.

O protocolo telnet oferece um terminal virtual de rede, que proporciona uma interface padrão para aplicações remotas, não havendo necessidade de um programa cliente compreender os detalhes de todos os possíveis sistemas remotos. Inclui um mecanismo que permite ao cliente e ao servidor negociarem opções e proporcionar um conjunto de opções padrão. Trata ambas as pontas da conexão simetricamente. Assim, ao invés de forçar o cliente a conectar-se a um terminal de usuário, o protocolo telnet permite um programa arbitrário tornar-se um cliente.

A seguir são listadas algumas características do protocolo telnet:

• Conexão rápida (não utiliza transmissão de dados criptografada), recomendado para ambientes seguros;

• Possui uma versão com suporte a criptografia via ssl;

• Possui controle de acesso tcpd (usando /etc/hosts.allow e /etc/hosts.deny);

• A maioria dos sistemas operacionais possui esse utilitário por padrão como sistema de acesso remoto a máquinas UNIX;

• Suporte a terminais ANSI (cores e códigos de escape especiais para o console) e uma grande variedade de outros terminais;

• O telnet responde por padrão na porta 23/tcp.

Um servidor telnet poderá criar arquivos de log a fim de auditar o sistema. As mensagens do servidor telnet relacionadas com seções são enviadas para /var/log/daemon.log, conforme visto na Figura 2.

Figura 2. Exemplo do arquivo /var/log/daemon.log.

As mensagens sobre autenticação e serviços de login são registradas pelos módulos PAM (Sistema padrão de autenticação do GNU/Linux) em /var/log/auth.log, conforme visto na Figura 3.

Figura 3. Exemplo do arquivo /var/log/auth.log.

O programa tcpd, que pode ser configurado no arquivo /etc/inetd.conf, oferece mecanismos de registro e controle de acesso para os serviços que está configurado para proteger. Ele é um tipo de firewall simples, de fácil configuração, que pode evitar conexões indesejadas e ainda registrar possíveis tentativas de invasão. Quando é executado pelo programa inetd (veja a Nota DevMan 1), lê os arquivos contendo regras de acesso, permitindo ou bloqueando o acesso ao servidor. Se nenhuma regra conferir, então assume que o acesso deve ser permitido a qualquer um. Esse tipo de bloqueio é conhecido como "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?