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.
[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]
[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
[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