Na frente um pequeno detalhe. As entradas de log que você vê parecem vir de hosts.deny
, porque sshd
é "TCP-wrapped" (normalmente, no Linux). Para informações detalhadas, consulte man tcpd
.
Usando regras de firewall, você pode ajustar melhor o que acaba no log (sys). Então, esse é o lugar para colocar seu IP estático na lista de permissões e colocar a lista negra em todas as outras pessoas.
Se você quiser converter as regras existentes em iptables
, use o seguinte script de shell (substitua as variáveis PORTS
e MYIP
pelas correspondentes às suas necessidades):
#!/bin/bash
IPT="echo /sbin/iptables"
MYIP=1.2.3.4
PORTS="22 443 8080"
$IPT -P INPUT DROP
for port in $PORTS; do
$IPT -I INPUT -p tcp --dport $port -s $MYIP -j ACCEPT
done
... ou menor:
#!/bin/bash
IPT="echo /sbin/iptables"
MYIP=1.2.3.4
PORTS="22 443 8080"
$IPT -P INPUT DROP
$IPT -I INPUT -p tcp -m multiport --dports ${PORTS// /,} -s $MYIP -j ACCEPT
... ou em duas linhas codificadas:
/sbin/iptables -P INPUT DROP
/sbin/iptables -I INPUT -p tcp -m multiport --dports 22,443,8080 -s 1.2.3.4 -j ACCEPT
Infelizmente, não há uma maneira legal de deduzir os números das portas, então você provavelmente acabará com esses códigos.
Lembre-se também de que você pode querer limpar sua tabela INPUT
antes de definir a política, usando iptables -X INPUT
.
O acima, explicado em poucas palavras, define a política padrão para a tabela INPUT
como DROP
e, em seguida, permite somente conexões TCP para as portas fornecidas ( $PORTS
) do IP fornecido ( $MYIP
) .
Você parece estar interessado em um bloqueio muito rigoroso, com exceção de seu próprio IP estático, portanto, nada do que se segue pode ser necessário.
Eu tenho usado as seguintes regras netfilter
, como apontado em uma postagem anterior por mim aqui no ServerFault: É normal obter centenas de tentativas de invasão por dia?
Não vou repetir as regras aqui, porque elas já existem no site . No entanto, você deve ter em mente que ainda receberá algumas mensagens de log até que o IP seja colocado automaticamente no tarpit. Em geral, não acho que você tenha que se preocupar tanto com a quantidade de tentativas, dada a configuração de sshd
do seu som. Ajuste os tempos de tarpit para confinar os invasores por mais tempo ou agir antes, mas lembre-se de não se bloquear.
Além disso, no passado recente, testei e gostei bastante do sshguard . Embora muitas pessoas o comparem com o Fail2Ban, acho que seu escopo é muito mais amplo (também não limitado a sshd
). Essa ferramenta pode usar vários recursos para analisar os logs (diretamente ou depois que o recurso de syslog os coloca em um arquivo) e vários recursos a serem bloqueados (por exemplo, netfilter
/ iptables
).
Sempre que as pessoas foram tenazes com suas tentativas, coloquei blocos completos (firewall).
Se apenas as entradas de log o incomodarem, configure sua logcheck
(ou outra ferramenta) para filtrá-las ou altere a porta à qual o sshd
é ligado. Em termos de segurança, no entanto, considero esse snakeoil.