Como parar o acesso do telnet para um endereço IP particular?

1

Como posso parar o acesso por telnet de um determinado endereço IP na linha de comando?

    
por Amy 04.12.2012 / 08:49

2 respostas

5

Uma solução mais geral do que Laurentiu Roescu seria usar o iptables, que funciona da mesma forma em todos os distribuição e, essencialmente, independentemente de qual software está instalado.

# iptables -A INPUT -p tcp -s <ip_address> --dport telnet -j DROP

Opcionalmente, você pode usar -j REJECT em vez de -j DROP . Usando REJECT irá dizer quem está do outro lado que não há nada nessa porta em particular; usar DROP irá eliminar o pacote, o que leva ao tempo limite da tentativa de conexão após o intervalo de tempo limite de conexão do host remoto ter passado.

É possível que você precise inserir a regra antes de qualquer regra "ACEITAR" que já esteja em vigor. Se sim, gosto de fazer assim:

# iptables -L INPUT --line-number
<some or lots of output>
# iptables -I INPUT <number of telnet accept rule> ...

em que ... é tudo de -p tcp no comando acima. Essencialmente, -I INPUT n substitui -A INPUT . (-I é inserir logo antes da posição n , -A é anexado.)

Você pode usar --dport telnet porque telnet está listado em / etc / services. Tente grep telnet /etc/services se você está curioso. Se não fosse, você teria que usar o número numérico da porta, que é 23 .

Pode ser necessário usar algo como iptables-save para preservar a regra nas reinicializações. Os detalhes sobre isso dependerão de sua distribuição e configuração e, portanto, não poderão ser respondidos de maneira geral. Se você especificar sua distribuição e versão, alguém pode oferecer informações específicas sobre isso (ou pode funcionar melhor como uma questão separada "como eu preservo as regras do iptables através de reinicializações na Distribuição X Versão Y?).

Dito , concordo com o fato de que é necessário usar o SSH. Mas você ainda pode querer bloquear o acesso de determinados IPs e o nível mais baixo em que isso pode ser feito, menos você corre o risco de um bug em uma parte de nível mais alto da pilha, levando a um comprometimento ou negação de serviço.

    
por 04.12.2012 / 10:01
4

Em /etc/host.deny, adicione:

telnet: <ip_addres>

Mas você deve usar o ssh em vez disso.

    
por 04.12.2012 / 08:52