iptables - Bloqueando a porta 443 e liberando apenas para sites específicos

Publicado por johnny borges em 17/09/2012

[ Hits: 25.376 ]

 


iptables - Bloqueando a porta 443 e liberando apenas para sites específicos



Tenho visto muitas pessoas procurando como bloquear a porta 443 e liberar apenas para alguns sites.

Muitos colocam junto com o firewall, o que resulta em um grande e pesado arquivo, mas com esta técnica, você diminuirá significativamente o volume do seu firewall, deixando-o muito mas fácil, caso mais pra frente, haja a necessidade de implementar ou retirar regras.

A configuração é:

### Sites https Liberados ###
iptables -A FORWARD -p tcp --dport 443 -j DROP
for URL in `grep -v "^#" /etc/squid/list/lib.txt`; do
iptables -I FORWARD -d $URL -p tcp --dport 443 -j ACCEPT
done
echo "Liberando Sites Para Porta 443........................[ OK ]"


O /etc/squid/list/lib.txt é o caminho que conterá todos os domínios ou IPs dos sites que deseja-se liberar.

Para descobrir o IP de um site, use o comando ping (no terminal do GNU/Linux) ou CMD no Windows.

Exemplo:

ping www.google.com

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Canal do YouTube sobre GNU/Linux

Pino - um cliente para o Twitter

Em qual CD do Debian está tal pacote?

Configurando apt-get com proxy

Instalar OpenJDK 8 + IcedTeaPlugin Firefox no ArchLinux

  

Comentários
[1] Comentário enviado por saitam em 18/09/2012 - 09:24h

Ótima dica, apenas para complementar, caso desejar liberar sites para porta 443 para IPs de máquinas de usuários especificos, assim não libera para todos.
Segue...
[code]
### Sites https Liberados apenas para IPs de máquinas de usuários especificos ###
iptables -A FORWARD -p tcp --dport 443 -j DROP
for URL in `grep -v "^#" /etc/squid/list/lib.txt`; do
for IP in `grep -v "^#" /etc/squid/list/ipsusersblock.txt`; do
iptables -I FORWARD -d $IP -p tcp --dport 443 -j DROP
iptables -I FORWARD -d $URL -p tcp --dport 443 -j ACCEPT
done
echo "Liberando Sites Para Porta 443 apenas nos IPs de usuários especificos....................[ OK ]"
[/code]

[2] Comentário enviado por johnnyb em 18/09/2012 - 10:23h

hum amigo pelo que intendi vc bloqueia os pacotes que irao para o destino da rede interna.

[3] Comentário enviado por johnnyb em 18/09/2012 - 10:39h

tive uma ideia para controle ainda melhor da porta 443 nessa aqui vc bloqueia e libera toda a porta 443 para alguns. e filtro para o restante

### Controle da Porta 443 ###
iptables -A FORWARD -p tcp --dport 443 -j DROP
for URL in `grep -v "^#" /etc/squid/list/lib.txt`; do
for IP in `grep -v "^#" /etc/squid/list/ipsusersblock.txt`; do
for AP in `grep -v "^#" /etc/squid/list/ipsusersaceitos.txt`; do
iptables -I FORWARD -s $AP -d 0/0 -p tcp --dport 443 -j ACCEPT
iptables -I FORWARD -d $IP -p tcp --dport 443 -j DROP
iptables -I FORWARD -d $URL -p tcp --dport 443 -j ACCEPT
done
echo "Controle da Porta 443 Ativado com Sucesso........................[ OK ]"

Lembrando que isso pode ser feito em qualquer outra porta, se não estiver enganado também pode ser feito por mac irei tentar e depois postarei aqui

[4] Comentário enviado por smaderson em 03/07/2014 - 11:23h

Agradecimentos ao johnnyb e ao saitam, excelente dica, resolveu meus problemas!

[5] Comentário enviado por bruno_69 em 11/06/2016 - 11:46h

Tem como fazer algo parecido usando strings?
Eu tentei usar a mesma lógica mas como ficam aspas nas regras acho que acontece algum erro de sintaxe.

Exemplo da minha regra:
iptables -A FORWARD -i eth1 -m string --algo bm --string "facebook.com" -j DROP
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string "facebook.com" -j DROP

EU tentei:
for URL in `grep -v "^#" /etc/squid3/url`; do
iptables -A FORWARD -i eth1 -m string --algo bm --string $URL -j DROP
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string $URL -j DROP
done

E no arquivo da lista eu coloquei os domínios com as aspas: "exemplo.com" mas não bloqueia dai eu to usando o arquivão de configuração por enquanto.




[6] Comentário enviado por mreismococa em 05/06/2017 - 12:23h

bom dia, alguem pode me ajudar, quando executo os scripts acima aparecem o erro
/root/https1.sh
/root/https1.sh: line 11: erro de sintaxe: fim prematuro do arquivo


[7] Comentário enviado por JohnnyB em 05/06/2017 - 22:03h


[6] Comentário enviado por mreismococa em 05/06/2017 - 12:23h

bom dia, alguem pode me ajudar, quando executo os scripts acima aparecem o erro
/root/https1.sh
/root/https1.sh: line 11: erro de sintaxe: fim prematuro do arquivo




posta ai seu script, para poder te ajudar.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts