Gerenciando regras do iptables no Linux

17

Eu tenho muitas regras para a minha configuração do iptables (roteamento, proibições ssh, etc). Também peguei uma lista de IPs a serem proibidos a partir daqui http://blacklist.linuxadmin.org e agora está ficando realmente complicado.

Meu /etc/sysconfig/iptablesé realmente longo. Existe uma maneira de gerenciar as regras incluindo regras de arquivos externos?

Por exemplo:

#include "pre_routing_rules"
#include "ssh_bans"

Isso incluirá as regras adicionadas nos arquivos "pre_routing_rules" e "ssh_bans". Dessa maneira, eu posso gerenciar facilmente minhas regras sem procurar cat /etc/sysconfig/iptables.

peterh - Restabelecer Monica
fonte

Respostas:

11

Experimente os ipsets do iptables . Os ipsets são configurados separadamente e também são mais rápidos se você tiver endereços IP suficientes para gerenciar.

A regra do iptables pode se referir ao ipset assim:

iptables -A FORWARD -m set --set blocklist src, dst -j DROP

Alexey Naidyonov
fonte
Meu maior problema é com o endereço IP para que eu possa usar isso.
Estou usando esse recurso. Os IPs da minha lista negra / lista branca são os maiores, para que eles possam ir em um ipset. Eu acho que o material pré-roteamento pode ficar na lista de configuração principal
Este tópico do fórum tem alguns exemplos de scripts usando ipsets: forums.gentoo.org/viewtopic-t-863121.html
mivk:
3

Uma solução simples é usar vários scripts bash para cada seção, algo como:

iptables-routing.sh
iptables-ssh-bans.sh
iptables-blacklist.sh

E execute esses arquivos a partir de um script mestre.

Andrei Savu
fonte
Bem, sim, é o que eu faço. Mas se eu tiver que visualizar a lista de regras do iptables (por exemplo, cat / etc / sysconfig / iptables), ele me mostrará todas as regras que foram adicionadas via iptables-routing.sh iptables-blacklist.sh
2

O iptables não lê o arquivo diretamente, isso é feito por um programa chamado iptables-restore. Isso geralmente é chamado de um de seus scripts de inicialização.

Você pode adicionar arquivos de entrada extras à sua linha iptables-restore. Você precisará descobrir onde esta linha está no seu sistema, mas na minha caixa Debain, ela está em /etc/init.d/nat

Atualmente, a linha é assim:

/sbin/iptables-restore < /etc/network/iptables

Talvez possa ser alterado para algo como isto:

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore
Adam Pierce
fonte
2

Costumo usar um dos muitos scripts / ferramentas de firewall na parte superior das tabelas de ip, como Firestarter ou Shorewall, eles vêm com muitos arquivos, separados por objetivo, adicionam regras interessantes para proteger contra certos tipos de pacotes falsos e geralmente funcionam bem.

Vinko Vrsalovic
fonte
Estes são utilizáveis ​​via linha de comando? Meu servidor é um remoto e eu realmente não preferem TODO X através de SSH
Shorewall é um conjunto de arquivos de texto simples que geram regras de tabelas de ip. É muito utilizável na linha de comando e possui ótimas ferramentas de documentação e diagnóstico.
Paul Engrenagem
0

Não tenho certeza de qual distro você está executando, já que o meu não possui o arquivo a que se refere - mas normalmente os arquivos que contêm regras do iptables são apenas scripts de shell - portanto, você deve poder fazer o que deseja, tendo uma linha tal como :

. / etc / sysconfig / pre_routing_rules

ou como na parte superior do arquivo iptables a que você se refere.

Comedor de Deus
fonte
Estou executando o Fedora e o CentOS