Como bloquear sites com iptables

7

Eu gostaria de bloquear sites usando iptables . Como faço para isso e como posso garantir que as regras iptables sejam salvas?

    
por gustavosiq 16.11.2011 / 01:35

6 respostas

10

Bloquear sites com regras iptables é uma idéia muito ruim, principalmente porque o iptables (como a maioria dos firewalls) lida com os endereços IP, e a relação entre um site e seus endereços IP é bastante frouxa :

  1. Um site pode ter muitos endereços IP, que podem ser alterados com bastante frequência. Uma vez que as regras do iptables são criadas, mesmo que você especifique o nome de um site como parte de uma regra, o primeiro endereço IP naquele momento é usado. Se o endereço do site mudar, suas regras do iptables estarão desatualizadas.

  2. Um endereço IP pode hospedar muitos sites (e isso acontece com frequência). Isso só será mais frequente, devido à escassez de endereços IP. Se você bloquear um endereço IP, bloqueará todos os sites hospedados nele.

Portanto, mesmo que outras respostas expliquem como você o faz, peço-lhe que procure outra solução. Por exemplo, a instalação de um proxy http transparente conseguirá o que você precisa. Este transparente HTTP proxy HOWTO está um pouco desatualizado, mas ajudará você a começar.

Uma vez que você tenha um proxy transparente, você pode adicionar regras arbitrárias a ele para bloquear sites específicos, você nem precisa usar o recurso de cache do squid, se você não quiser.

Existem outras maneiras de lidar com o bloqueio de sites (outros firewalls, proxies, etc.), mas as regras do iptables são praticamente uma das piores formas possíveis de lidar com isso.

    
por 16.11.2011 / 04:10
1

Você pode usar a correspondência de string do iptables para conseguir isso:

iptables -A OUTPUT -p tcp -m string --string "block-me.com" --algo kmp -j REJECT

-A OUTPUT adiciona a regra a seguir à corrente OUTPUT .

-m string --string "block-me.com" --algo kmp diz ao iptables para procurar pela string block-me.com usando o Algoritmo de correspondência Knuth-Morris-Pratt .

A maneira mais fácil de fazer seus iptables serem restaurados quando você reiniciar sua máquina é instalar o pacote iptables-persistent se disponível em seu sistema. Se você instalar o pacote depois de definir as novas regras, será perguntado se deseja salvar as regras usadas atualmente para uso permanente. iptables-persistent basicamente apenas carrega as regras salvas nos arquivos /etc/iptables/rules.v4 e /etc/iptables/rules.v6 .

Se você alterar suas regras novamente, para salvar as alterações e restaurá-las em uma reinicialização, salve-as nos arquivos mencionados acima usando os comandos

iptables-save > /etc/iptables/rules.v4
iptables-save > /etc/iptables/rules.v6

Eles agora serão restaurados em uma reinicialização.

Na verdade, você não precisa de iptables-persistent . Esta questão tem outra quase como solução simples.

Observe que você precisa executar iptables-save como root ou com sudo da seguinte forma:

sudo bash -c "iptables-save > /etc/iptables/rules.v4"

Se você acabou de executar sudo iptables-save > /etc/iptables/rules.v4 , receberá uma mensagem de "acesso negado" para rules.v4 .

    
por 23.01.2014 / 17:35
1

Existem várias maneiras de restringir sites https.

1- Proxy de Lula

2- IPtables

Com o Squid Proxy Server

- > Abra sua configuração do squid no meu caso (vim /etc/squid/squid.conf)

- > Coloque as regras como definido.

acl badsite dstdomain .facebook.com .soundcloud.com .playit.pk .songs.com

link

link

- > Depois disso reinicie seu squid

Com Iptables Precisa colocar regras como definir aqui

iptables -N STREAM

iptables -I OUTPUT -m string --string "www.facebook.com" --algo bm --de 1 a 600 -j STREAM

iptables -I OUTPUT -m string --string "facebook.com" --algo bm --de 1 a 600 -j STREAM

iptables -I FORWARD -m string --string "www.facebook.com" --algo bm --de 1 a 600 -j STREAM

iptables -I FORWARD -m string --string "facebook.com" --algo bm --de 1 a 600 -j STREAM iptables -A STREAM -j REJECT

    
por 08.08.2016 / 14:50
0

Sob o gentoo, para salvar as regras do iptables que você adicionou, use

/etc/init.d/iptables save

No entanto, você também precisará certificar-se de que o script init do iptables (cuja finalidade é recarregar as regras) seja executado na inicialização:

rc-update add iptables default 

Ambos os comandos devem ser executados como root (via sudo se você tiver instalado)

    
por 16.11.2011 / 02:42
0

ok, digamos que você queira bloquear o endereço IP 192.168.1.5, apenas insira isto no prompt de comando em seu shell script:

iptables -A INPUT -s 192.168.1.5 -j DROP

Então você pode bloquear o endereço IP 192.168.1.2 do servidor com este comando:

iptables -A OUTPUT -d 192.168.1.2  -j DROP

e deve impedir que o site o incomode de novo. espero que isso ajude.

    
por 16.11.2011 / 02:10
-1
-A INPUT -p tcp -m tcp -d www.facebook.com -j DROP

apenas estudamos hoje

Debian 7

se você quiser permitir que eles façam ping neste site, basta adicionar --dport 80,443 após o nome do site

    
por 03.12.2013 / 19:37

Tags