Squid Autenticado+Transparent

1. Squid Autenticado+Transparent

Daniel Marchi
DMS_

(usa elementary OS)

Enviado em 12/09/2011 - 08:24h

Bom Dia a todos,
Estou com uma dúvida:

Referente a proxy, estou usando o seguinte proxy:

http_port 3128
visible_hostname debian
error_directory /usr/share/squid/errors/Portuguese/

cache_mem 64 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 2048 16 256
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

#Bloqueia acessos de fora da rede local
#antes de passar pela autenticacao
acl redelocal src 192.168.1.0/24
http_access deny !redelocal


### ACL Liberando membros da diretoria ###
acl diretoria src "/etc/squid/diretoria"
http_access allow diretoria

###ACL CONTENDO SITESOK - Liberados ####
acl sitesOK url_regex -i "/etc/squid/liberado/sitesOK"


### AUTENTICA COM USUARIO E SENHA ###
auth_param basic realm Use a Internet com responsabilidade
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid.passwd
acl autenticados proxy_auth REQUIRED


#### ACL CONTENDO USUARIOS por NIVEIS #####
acl usuarios1 proxy_auth "/etc/squid/grupos/usuarios1"
acl usuarios2 proxy_auth "/etc/squid/grupos/usuarios2"
acl usuarios3 proxy_auth "/etc/squid/grupos/usuarios3"
acl usuarios4 proxy_auth "/etc/squid/grupos/usuarios4"

#### ACL CONTENDO SITES LIBERADOS POR NIVEL DE USUARIO ####
acl sitesUsuarios1 url_regex -i "/etc/squid/liberado/sitesUsuarios/sitesUsuario1"
acl sitesUsuarios2 url_regex -i "/etc/squid/liberado/sitesUsuarios/sitesUsuario2"
acl sitesUsuarios3 url_regex -i "/etc/squid/liberado/sitesUsuarios/sitesUsuario3"
acl sitesUsuarios4 url_regex -i "/etc/squid/liberado/sitesUsuarios/sitesUsuario4"

#### LIBERANDO ACESSO A SITES DOS PERMITIDOS PARA CADA NIVEL DE USUARIO ####
http_access allow sitesUsuarios1 usuarios1
http_access allow sitesUsuarios2 usuarios2
http_access allow sitesUsuarios3 usuarios3
http_access allow sitesUsuarios4 usuarios4


#### BLOQUEIA TODOS OS SITES, MENOS OS QUE FAZEM PARTE DOS sitesUsuarios e sitesOK ####
http_access deny !sitesOK
http_access allow autenticados

####LIBERA O ACESSO A LOCALHOST E REDELOCAL AUTENTICADOS E NEGA OS DEMAIS ####
http_access allow localhost
http_access allow redelocal
http_access deny all










minha dúvida é, ele é autenticado certo? Precisa de usuário e senha, agora, configuro o proxy pelo navegador, colocando o IP da maquina onde o proxy está instalado e a porta, no caso 3128, agora...e o usuário ir na configuração do navegador e remover esta configuração, deixar sem proxy, ele vai navegar normalmente pela internet, sem passar pelo proxy? Ou terei que fazer um redirecionamento da pora 80 para porta 3128, como segurança, em caso de algum espertinho remover a configuração do navegador?


  


2. Re: Squid Autenticado+Transparent

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/09/2011 - 08:39h

Neste caso, vc deve bloquear a sua rede interna d acessar a porta 80 diretamente:

# iptables -I FORWARD -o eth1 -p tcp --dport 80 -j DROP

Considerando q a eth1 seja a rede interna.


3. Re: Squid Autenticado+Transparent

Daniel Marchi
DMS_

(usa elementary OS)

Enviado em 12/09/2011 - 08:41h

That makes sense ;D

Valeu renato!
Só pra confirmar nessa sua regra, eth1 seria a interface da internet? ou interface local?
E aonde colocaria esta regra neste iptables? Creio que no topo da lista correto? Após " # Ativando compartilhamento de Internet
":

#! /bin/bash

iniciar(){

# Ativando compartilhamento de Internet
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# Permite conexões da rede local na porta 22
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Regras básicas:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -p tcp --syn -j DROP

# Liberação de Portas
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
iptables -A INPUT -p tcp --dport 110 -j ACCEPT # POP3
iptables -A INPUT -p tcp --dport 25 -j ACCEPT # SMTP
iptables -A INPUT -p tcp --dport 53 -j ACCEPT # DNS
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT # PROXY
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS




echo "### Regras de Firewall ativadas ###"
}
parar(){
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo "### Regras de Firewall desativadas ###"
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "### Use os parâmetros start, stop ou restart ###"



4. Re: Squid Autenticado+Transparent

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/09/2011 - 09:35h

Bom, d acordo com a suas regras, percebi q a política da tabela filter está como ACCEPT. Portanto, TODAS as portas já estão liberadas por padrão. O certo é vc inserir a política d DROP para, pelo menos, FORWARD e INPUT, dae vc liberaria aos poucos. Eu não sei do seu nível d conhecimento sobre a ferramenta, mas se não tiver domínio, deixe como está, ok?
Voltando à sua pergunta, insira a linha na parte d "Liberação de portas":

# Liberação de Portas
iptables -A FORWARD -i eth1 -p tcp --dport 80 -j DROP # Não deixar q acessem a Internet sem proxy
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
iptables -A INPUT -p tcp --dport 110 -j ACCEPT # POP3
iptables -A INPUT -p tcp --dport 25 -j ACCEPT # SMTP
iptables -A INPUT -p tcp --dport 53 -j ACCEPT # DNS
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT # PROXY
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS


5. Re: Squid Autenticado+Transparent

Daniel Marchi
DMS_

(usa elementary OS)

Enviado em 12/09/2011 - 09:51h

Hmm, entendi, acho melhor msm bloquear tudo e ir liberando aos poucos,

Outra dúvida é na primeira regra, estou dando DROP na porta 80, só que na segunda regra estou dando ACCEPT para pacotes de entrada na porta 80, a dúvida é a primeira regra não anula a segunda, só perguntei por segurança, mas pela sintaxe, parece que são coisas completamente diferentes, analisando os parâmetros.

Anyway, vou dar uma estudada a mais no iptables!
Vlw Renato!

iptables -I FORWARD -o eth1 -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
iptables -A INPUT -p tcp --dport 110 -j ACCEPT # POP3
iptables -A INPUT -p tcp --dport 25 -j ACCEPT # SMTP
iptables -A INPUT -p tcp --dport 53 -j ACCEPT # DNS
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT # PROXY
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS


6. Re: Squid Autenticado+Transparent

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/09/2011 - 11:28h

São coisas diferentes, ok?

FORWARD - encaminha pacotes q passam pelo servidor
INPUT - pacotes que tem destino o endereço do servidor






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts