Regra Iptables para servidor acessado remotamente via DHCP

0

Desculpe por fazer esta pergunta - mas eu tenho navegado em fóruns e tópicos sobre este assunto e parece me confundir mais do que realmente obter alguma clareza. Tudo o que preciso é uma resposta breve e concisa para este problema:

Como configurar uma regra (encadeada) no iptables que rejeita qualquer fonte que não consiga acessar o servidor após XX tentativas dentro de YY minutos, para que qualquer nova tentativa de contato com o servidor seja rejeitada antes que a senha seja correspondida ZZ minutos. Depois de ZZ minutos após a última tentativa de conexão, a regra deve permitir que a mesma fonte repita a tentativa como se nunca tivesse tentado se reconectar antes.

  • Presumo que isso tenha que ser escrito como uma nova regra de cadeia.
  • Eu suponho que a regra da cadeia tenha que ser salva no iptables, para que a regra seja retomada na reinicialização.
  • Eu suponho que a regra da cadeia precise de algum tipo de registro.

Meu problema é que eu não entendo a sintaxe do iptables desconsiderando o quanto eu a estudei e, portanto, sou grato pela resposta mais curta "tipo de script" sobre esta questão

    
por root-11 18.12.2011 / 22:01

1 resposta

1

Bem, para ser honesto, há uma curva de aprendizado para o iptables.

Primeiro, você pode usar o ufw para começar. O ubw é uma poderosa ferramenta de linha de comando e a vantagem é que a sintaxe é semelhante ao iptables.

sudo ufw enable
sudo ufw limit 22

Aqui estou limitando a porta 22, você pode usar qualquer porta que desejar.

link

Mais uma vez, a vantagem é que o ufw irá automatizar muito isso e facilitar o seu processo de aprendizagem.

Se você quiser usar o iptables, você precisará, no mínimo, aprender a salvar e restaurar suas regras.

sudo iptables-save > /etc/iptables.save
sudo iptables-restore /etc/iptables.save

Você pode editar /etc/iptables.save , a sintaxe é direta o suficiente.

Ao tentar regras de controle remoto, use iptables-apply para evitar um bloqueio

sudo iptables-apply /etc/iptables.save

Para restaurar suas regras na inicialização, um dos vários métodos é adicioná-lo ao /etc/rc.local

iptables-restore /etc/iptables.save

Outras opções listadas na página wiki do Ubuntu iptables (veja abaixo).

A sintaxe do iptables é

iptables -I INPUT -p tcp -m state --state NEW -m limit --limit 30/minute --limit-burst 5 -j ACCEPT

Para LOG, adicione um LOG, mas, a menos que você monitore seus logs, use snort. logging iptables, IMO, é mais útil para depuração.

Veja man iptables, wiki do Ubuntu iptables

Algumas pessoas acham que a minha página da Web do iptables é útil para começar.

Para responder ao seu comentário, veja estas regras

iptables -A INPUT -p tcp -m tcp --dport 22 -m tcp -m state --state NEW -m recent --set --name SSH --rsource

iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 600 --hitcount 8 --rttl --name SSH --rsource -j DROP

iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

link

A ressalva é, depende do serviço. O ssh é configurado para permitir tantas tentativas de autenticação de senha 9see /etc/ssh/sshd_config ), portanto cada conexão fornece 6 tentativas de senha.

    
por Panther 18.12.2011 / 22:11