O Ubuntu IPTables permite apenas permitir 1 país

9

Por isso, pesquisei na Internet por um script que eliminaria todo o tráfego para todas as portas, exceto as portas http (80) e https (443), e permitiria o tráfego somente em todas as outras portas do país x ( onde no meu caso o país x é os EUA).

Eu não quero adicionar todos os IPs de todos os países, só quero permitir que ips do meu país bloqueiem quase todo o tráfego do mundo exterior. Ninguém fora do meu país deve ter acesso a ssh, ftp, smtp, etc. além de mim mesmo. Se isso mudar, adicionarei um caso especial quando se aproximar.

Nota lateral

Devo observar que encontrei uma pergunta que contém um script para ban ip by país usando tabelas ip , mas isso é muito de inserção extra que eu teria que fazer.

O script marcado como a melhor resposta bloqueará todo o tráfego desses IPs. Eu só quero bloquear o acesso a todas as portas, exceto para 80 e 443.

Atualizar

Com a seguinte regra,

iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

eu seria capaz de modificá-lo e fazer algo como

iptables -A OUTPUT -m geoip --dst-cc CN --dport 80 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN --dport 443 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

Eu diria que isso permitiria que os ips da china acessassem a porta 80 e a porta 443 e isso diminuiria o restante. Esta suposição estaria correta? Se não, por que não?

Atualização 2

Depois de algumas bagunças, descobri que minha versão do Ubuntu não gosta do atributo --dport . Então, ao invés de usar que aqueles de nós rodando o Ubuntu 14+ (pelo menos, eu tenho apenas o Ubuntu 14.04, 14.10 e 15.04 instalado em algumas máquinas) terá que usar -p PORT_NUMBER_OR_NAME

Então, isso seria parecido com

iptables -A OUTPUT -m geoip --dst-cc CN -p 443 -j ACCEPT

ou para tráfego de entrada,

iptables -A INPUT -m geoip --src-cc CN -p 443 -j ACCEPT
    
por Austin Kregel 05.11.2015 / 18:08

1 resposta

7

Você precisará adicionar o suporte iptables para a geolocalização. Para fazer isso, você precisará seguir estas etapas:

# apt-get install xtables-addons-common
# mkdir /usr/share/xt_geoip
# apt-get install libtext-csv-xs-perl unzip
# /usr/lib/xtables-addons/xt_geoip_dl
# /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv

Isso permitirá que você faça coisas como:

iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

Isso bloquearia qualquer tráfego de saída para a China (CN). A complexidade das regras depende de você, basicamente você não precisa de um script, apenas anote as regras que deseja aplicar e então use iptables-save para que elas sejam carregadas toda vez que você reiniciar.

    
por 05.11.2015 / 18:16