Criar regras de acesso via IPTABLES para HTTPS (443)

1. Criar regras de acesso via IPTABLES para HTTPS (443)

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/02/2015 - 10:13h

Olá bom dia pessoal, estou desenvolvendo uma forma de criar regras personalizadas de acesso para HTTPS via IPTABLES, separando três grupo: totalmente bloqueados, parcialmente bloqueados e totalmente liberados (Como já implantei via Squid). Porem não estou obtendo êxito. Segue o código:

### CONTROLE PORTA 80 VIA SQUID TRANSPARENTE ###
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -s $LAN -j REDIRECT --to 3128


### CONTROLE PORTA 443 ###

iptables -A FORWARD -p tcp --dport 443 -j DROP #TODOS OS IPS BLOQUEADOS PARA ACESSO

for AT in `grep -v "^#" /etc/squid/acesso_total`; do ## IP DE USUÁRIOS LIBERADOS DE QUALQUER BLOQUEIO
iptables -I FORWARD -s $AT -d 0/0 -p tcp --dport 443 -j ACCEPT
done

cat /etc/squid/https | while read HTTPS #LISTA DE TERMOS QUE PODEM SER ACESSADOS
for AP in `grep -v "^#" /etc/squid/acesso_parcial`; do ##IP USUÁRIOS COM RESTRIÇÕES DE ACESSO
iptables -I FORWARD -d $AP string --algo bm --string "$HTTPS" -j ACCEPT
done

Agradeço a quem possa ajudar e viva o LInux!





  


2. Re: Criar regras de acesso via IPTABLES para HTTPS (443)

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/02/2015 - 09:52h

Olá bom dia pessoal, consegui resolver de forma satisfatória essa questão, integrando Squid e IPTABLES para Proxy transparente; estou compartilhando a todos, caso queiram colaborar para melhorar o código ou acrescentar sugestões, estejam a vontade. Segue o código testado para HTTP e HTTPS:

#SQUID CONTROLE DE ACESSO HTTP#
http_port 3128 transparent

# Validação da rede local#
acl acesso_total src "/etc/squid/acesso_total" # GRUPO DE IP de acesso TOTAL a internet colocar um por linha.

acl acesso_parcial src "/etc/squid/acesso_parcial" #GRUPO DE IP de acesso PARCIAL a internet com exceção dos sites abaixo
acl sites url_regex -i "/etc/squid/negados" #exceções negadas

acl acesso_restrito src 192.168.10.0/24 #GRUPO DE IP com acesso BLOQUEADO a internet com as excessos dos sites abaixo:
acl liberado url_regex -i "/etc/squid/liberados" #exceções liberadas

http_access allow acesso_total
http_access allow acesso_parcial !sites
http_access allow liberado
http_access deny acesso_restrito
http_access deny all

Com relação ao Firewall:

# Controle da Porta HTTPS #
iptables -A FORWARD -p tcp --dport 443 -j DROP ##TODOS USUARIOS NÃO LISTADOS SÃO BLOQUEADOS

for AP in `grep -v "^#" /etc/squid/acesso_total`; do ## GRUPO DE IP DE USUÁRIOS LIBERADOS PARA ACESSO colocar um por linha
iptables -I FORWARD -s $AP -d 0/0 -p tcp --dport 443 -j ACCEPT #TODOS OS SITES LIBERADOS
done

for IPR in `grep -v "^#" /etc/squid/acesso_parcial`; do ## GRUPO DE IP DE USUÁRIOS RESTRITOS

for HTTPS in `grep -v "^#" /etc/squid/https`; do ## SITES LIBERADOS DO BLOQUEIO colocar o IP do site um por linha
iptables -I FORWARD -s $IPR -d $HTTPS -p tcp --dport 443 -j ACCEPT
done

done

Obrigado a comunidade que ajudou a desenvolver a solução.












Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts