Transferir regras iptables para outro servidor (quase) em tempo real

1

Estou executando 2 servidores cPanel com ConfigServer Security & Firewall plugin. Uma das funções do plugin é bloquear via iptables (temporariamente e / ou permanentemente) IPs que falham com várias autenticações (POP3 / IMAP, SMTP, FTP, webmail, mod_security e outras).

Agora, gostaria de enviar esses blocos IP ao roteador de borda para descartar pacotes o mais rápido possível (e isso protegendo as outras máquinas na rede).

Tenha em mente que, após N logins com falha, o IP é bloqueado por 5 minutos e, em seguida, permitido novamente. Se várias proibições ocorrerem em uma hora, o IP será bloqueado permanentemente e deverá ser desbloqueado "manualmente". Então eu preciso de uma solução quase em tempo real .

O que estou procurando é uma maneira melhor do que disparar alguns cronjobs no cPanels e no roteador de borda para:

  • despeje as regras para arquivar
  • transfira o arquivo para o roteador de borda (via scp / sftp)
  • carrega as regras do arquivo no roteador de borda

Estou ciente de que precisarei de alguns scripts para analisar e modificar as regras, pois os cPanels têm uma interface ethernet e alguns aliases enquanto o roteador de borda tem duas interfaces ehternet e alguns loopbacks.

Todas as máquinas envolvidas usam o Linux.

EDITAR conforme o comentário @pjmorse.

O plugin consiste em um monte de arquivos perl e config. A parte em que estou interessado é um processo que varre logfiles ( lfd ) e instala iptables rules (e envia um email de alerta). O fato é que ele atualiza com bastante frequência (uma ou duas vezes por semana) e ele próprio tem > 7000 linhas de perl, portanto, não me sinto confortável em adulterá-lo.

    
por Mr Shunz 29.03.2012 / 09:23

1 resposta

2

Uma solução que forneceria uma 'transferência' em tempo real seria substituir iptables por um script que chama iptables no roteador.

  1. gere um par de chaves ssh e autorize a chave para efetuar login na raiz no host do gateway
  2. crie /path/to/override/iptables como um script que executa ssh root@routerhost iptables "$@"
  3. No script de inicialização que inicia seu servidor da Web, defina PATH="/path/to/override:$PATH"

Agora, sempre que o plug-in for procurar iptables , ele encontrará o em /path/to/override , já que foi especificado primeiro em $PATH . Ele executará o script quando passar todos os argumentos recebidos pelo script para iptables on routerhost .
No entanto, se o plug-in usar um caminho absoluto para iptables , você terá que alterar manualmente o caminho no plug-in.

    
por 30.03.2012 / 01:26

Tags