A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

SSH - Bloqueando ataques de login

Sex

14

Abr

2006


16:06

(11 votos, média 4.91 de 5) 


Controlando acessos através do inetd

O inetd é um servidor de serviços que trabalha com dois arquivos de configuração sobre os quais falaremos mais tarde. Quando o daemon inetd está ativo, os serviços que estiverem sendo gerenciados por ele são ativados assim que forem solicitados e são desativados assim que forem encerrados. Isto significa que estes serviços não precisam estar no ar, o que reduz a carga do sistema.

Além disso, o inetd permite filtragens de solicitações... exatamente o que estamos procurando! Mas, antes das filtragens que devem frustrar os invasores, vamos aos arquivos de configuração.

A configuração de serviços

O arquivo /etc/services possui uma lista de nomes de serviços associados a números de portas. De acordo com as recomendações da IANA, cada uma das portas bem conhecidas devem ser designadas para o TCP e o UDP, mesmo se o protocolo não der suporte a operações UDP. As portas são divididas em três grupos:

  • Portas bem conhecidas, com números de 0 a 1023
  • Portas registradas, de 1024 a 49151
  • Portas dinâmicas e/ou privadas, de 49152 a 65535

As portas são canais de acesso ao sistema. As mais conhecidas são FTP/21, SSH/22, telnet/23, SMTP/24, HTTP/80 e mais outras tantas. A sintaxe utilizada no arquivo /etc/services é:,/P.

nome-do-serviço   porta/protocolo   [aliases ...]

Um exemplo é:

http   80/tcp   www www-http
http   80/udp   www www-http

A configuração do inetd

O arquivo de configuração /etc/inetd.conf é composto por linhas compostas por vários campos separados por TAB ou ESPAÇO. É importante que todos os campos tenham seus valores definidos:

  • nome do serviço
  • tipo de socket - o tipo pode ser stream, dgram, raw, rdm ou seqpacket,
  • protocolo - precisa ser válido, de acordo com um dos indicados no arquivo /etc/protocols.
  • wait/nowait[.max]
  • user[.group] ou user[:group] - o usuário (grupo) precisa ser um usuário (grupo) do sistema.
  • programa servidor - precisa ser indicado com o caminho completo.
  • argumentos do programa servidor

Se quisermos que o SSH seja controlado pelo inetd, precisamos acrescentar a seguinte linha ao /etc/inetd.conf:

ssh   stream   tcp   nowait   root   /usr/sbin/tcpd   sshd -i

O parâmetro -i especifica que o sshd corre através do inetd toda vez que for acionada a porta 22 conforme declarado no arquivo /etc/services.

Sempre que o arquivo de configuração /etc/inetd.conf for alterado, o daemon sshd precisa ser avisado de que houve uma modificação. Para que a nova configuração entre em vigor, dê o comando:

# killall -HUP inetd

Se você fez estas alterações, o sshd passa a ser chamado pelo inetd e não precisa ficar "daemonizado", ou seja, não precisa ficar no ar o tempo todo. Acontece que o daemon está no ar porque foi acionado no boot. Para que isto não ocorra, podemos comentar a chamada ao sshd no /etc/rc.d/rc.inet2 (onde também é feita a chamada para o inetd) ou desabilitar o script /etc/rc.d/rc.sshd. Se você optar pela segunda alternativa, faça um

# chmod 600 /etc/rc.d/rc.sshd

Informações adicionais