Informática Numaboa - Linux
SSH - Bloqueando ataques de login
Sex 14 Abr 2006 16:06 |
- Detalhes
- Categoria: Como fazer segurança
- Atualização: Quinta, 12 Março 2009 21:58
- Autor: vovó Vicki
- Acessos: 16734
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