Liberar site porta 443 e bloquear o resto p/IP

1. Liberar site porta 443 e bloquear o resto p/IP

Gerardo
gfcf

(usa Debian)

Enviado em 19/06/2013 - 10:19h

Boa tarde a todos.
Venho estudando para fazer uma regra funcional e até o momento não consegui.
Sei que o squid só tem gerência de conteúdo na porta 80, 443 tenho que ir para o iptables, me corrijam se eu estiver errado.
O cenário é o seguinte:
Tenho um cenário com 10 micros ligados ao firewall.
Gostaria de definir 3 grupos:
Diretoria: liberar tudo
Consultor: liberar alguns sites que utilizam a porta 80 e alguns de bancos e email que usa https (443) e bloquear o resto.
Estagiários: apenas dois sites só que um é http e outro é https, bloquear o resto.

Bloquear os http consegui facilmente o problema é o https.
Usei até uma regra de exemplo para o estagiário e não funcionou:
iptables -A FORWARD -s 192.168.10.10 -d owa2.xxxxxxx.com.br -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s 192.168.10.10 -d webmail.xxxxxxxx.com.br -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.10.10 -p tcp --dport 443 -j DROP
iptables -A FORWARD -s 192.168.10.10 -p tcp --dport 80 -j DROP

Obs: estou usando o debian 7
Desde já agradeço pela ajuda.
Atenciosamente,
Gerardo Coelho







  


2. Re: Liberar site porta 443 e bloquear o resto p/IP

Roberto Santin
betosantin1

(usa Outra)

Enviado em 25/06/2013 - 11:10h

gfcf escreveu:

Boa tarde a todos.
Venho estudando para fazer uma regra funcional e até o momento não consegui.
Sei que o squid só tem gerência de conteúdo na porta 80, 443 tenho que ir para o iptables, me corrijam se eu estiver errado.
O cenário é o seguinte:
Tenho um cenário com 10 micros ligados ao firewall.
Gostaria de definir 3 grupos:
Diretoria: liberar tudo
Consultor: liberar alguns sites que utilizam a porta 80 e alguns de bancos e email que usa https (443) e bloquear o resto.
Estagiários: apenas dois sites só que um é http e outro é https, bloquear o resto.

Bloquear os http consegui facilmente o problema é o https.
Usei até uma regra de exemplo para o estagiário e não funcionou:
iptables -A FORWARD -s 192.168.10.10 -d owa2.xxxxxxx.com.br -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s 192.168.10.10 -d webmail.xxxxxxxx.com.br -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.10.10 -p tcp --dport 443 -j DROP
iptables -A FORWARD -s 192.168.10.10 -p tcp --dport 80 -j DROP

Obs: estou usando o debian 7
Desde já agradeço pela ajuda.
Atenciosamente,
Gerardo Coelho



Seguinte abaixo vai um exemplo de bloqueio por pacotes via porta 443


#Bloqueia por String e Pacotes via HTTPS tambem
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "4shared.com" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "twitter.com" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "yahoo.com" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "g1.globo.com" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "youtube.com" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "kboing.com.br" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "instagram.com" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "uol.com.br" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "meebo.com" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "mediafire.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "outlook.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "hotmail.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "live.com" -j DROP

#Abaixo vai ser liberado os endereços acima para o iprange / Diretoria
iptables -I FORWARD -m iprange --src-range 192.168.254.20-192.168.254.46 -j ACCEPT
iptables -I FORWARD -m iprange --dst-range 192.168.254.20-192.168.254.46 -j ACCEPT

acho que com isso já vai lhe ajudar em alguma coisa,
utilize os iprange para bloqueio através de filtros de pacote também, assim você consegue
bloquear em níveis por diretoria e etc.



3. usando só iptables

Alex Rocha
alerocha79

(usa Ubuntu)

Enviado em 02/12/2013 - 19:38h

Quiosque funcionando: consegui usando o Debian 7.2, bloqueia todos os sites da internet e só acessa um domínio.

Passos:

A) Configurar o firewall (arquivo: firewall.sh, e dê permissão de execução – sudo chmod a+x firewall.sh, salvei em /home/firewall.sh):

#######################INICIODOARQUIVO########
#!/bin/bash

# Apagando todas as regras
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

# Mudando a politica – Começa bloqueando tudo
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Libera conexões pre-estabelecidas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Liberar https – aqui você coloca o ip do domínio
iptables -A OUTPUT -p tcp -d xx.xx.xx.xx --dport 443 -m state --state NEW -j ACCEPT

# Liberar http – aqui você coloca o ip do domínio
iptables -A OUTPUT -p tcp -d xx.xx.xx.xx --dport 80 -m state --state NEW -j ACCEPT

# Liberar DNS
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

#Liberar DHCP - na minha rede interna usa dhcp
iptables -A OUTPUT -p tcp --dport 67 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 67 -m state --state NEW -j ACCEPT

#######################FIM

B) deixar configurado para quando iniciar a máquina executar o firewall.sh
edite:
sudo gedit /etc/rc.local

#############INICIODOARQUIVO
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/home/./firewall.sh
exit 0
#################################FIM

Inicie:
sudo /etc/init.d/rc.local start

C)Agendei para executar o script de 5 em 5 minutos no cron (precaução minha):

Configurando o cron:
crontab -e

######INICIO
# Todos os dias de 5 em 5 minutos
*/5 * * * * /etc/init.d/rc.local start

#######FIM

Monitorando para ver se está sendo executado:
sudo tail -f grep CRON /var/log/syslog

D) Configurando para iniciar a máquina e abrir só o firefox
edite:
sudo gedit /etc/X11/Xsession.d/99x11-common_start

###########INICIODOARQUIVO

# $Id: 99x11-common_start 305 2005-07-03 18:51:43Z dnusinow $

# This file is sourced by Xsession(5), not executed.

#exec $STARTUP

exec firefox javascript:%20resizeTo\(1280,1024\)

# vim:set ai et sts=2 sw=2 tw=80:

######FIM


4. Bloqueando HTTPs com iptables

Renan Roel
renanroel

(usa Slackware)

Enviado em 19/01/2017 - 16:35h

Aqui resolvemos assim, bloqueando na rede geral:

#Bloquear HTTPs
#--------------------------------
iptables -t filter -A FORWARD -p tcp --dport 443 -m string --algo bm --string "facebook.com" -j DROP
iptables -t filter -A FORWARD -p tcp --dport 443 -m string --algo bm --string "youtube.com" -j DROP

Espero ter ajudado.






Patrocínio

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts