DMS_
(usa elementary OS)
Enviado em 12/01/2012 - 10:03h
diegobnx escreveu:
phrich escreveu:
diegobnx escreveu:
precisava ver como está seu firewall, se quiser postar ele aqui te digo no mais existe uma regra
que eu gosto de usar msm sabendo que o proxy autenticado não precisa dela:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
essa regra é mandatória tudo que chegar na porta 80 vai para 3128 proxy... verifica se esta autenticando agora.
Se vc adicionar esta regra a autenticação para de funcionar...
E de qualquer forma também não iria rolar para https...
Eu acho que não interfere pelo contrário ajuda até na proteção contra engraçadinhos que tentam burlar, até então o proxy está configurado manualmente no navegador e outra não funcionaria se a porta do proxy fosse outra e não 3128.
E outra coisa https é 443...
Enfim não vou ficar discutindo isso aqui né sairia fora do assunto do tópico, espero ter ajudado o amigo
digo_pk.
PS.: Se eu falei alguma besteira me corrijam por favor, afinal criticas são bem vindas.
Fui abraxx t+.
Acho que o phrich está correto, pois squid autenticado não pode ser transparente, e essa regra
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
O torna transparente. O que tem que se fazer é configurar o squid no navegador do fulano, e bloquear requisição na porta 80, sendo assim, o "engraçadinho" só vai navegar se estiver no proxy!.
digo_pk escreveu:
Eu queria liberar acesso as portas que estão la no squid.conf e bloquear o acesso de algum engraçadinho que tente invadir a maquina
Você pode bloquar negando a porta 80, assim o acesso só vai ser feito por quem passar pelo squid, e tiver usuario e senha para navegar, caso for autenticado. E adotar politica bloqueia tudo, e liberar portas específicas.
No squid também, por exemplo crie uma acl com os sites oks ex:
acl sitesOK url_regex -i "/etc/squid/liberado/sitesOK"
Dentro dela coloque todos os sites permitidos.
Após isso use a regra:
http_access deny !sitesOK
O ponto de exclamação inverte a regra, logo, ela bloqueará tudo que NÃO faz parte da acl sitesOK. Acho muito mais fácil, e você terá mais controle.
Não sei se vai ajudar, mas segue o squid que eu uso, Além dos sitesOk, que são permitidos para todos, a certos usuários que precisam acessar certos sites. Logo, há 4 niveis de usuários (pode-se adicionar mais) cada nivel de usuario pode acessar sirtes diferentes, além dos sitesOK. Financeiro acessa bancos e afins. RH acessa Catho, infojobs e etc.
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 DEFORA DA REDE LOCAL
#antes de passar pela autenticacao
acl redelocal src 192.168.1.0/24
http_access deny !redelocal
### LIBERADOS - ACL CONTENDO IP OU hostname QUE NÂO PASSAM PELA AUTENTICAÇÃO E ACESSAM
### TUDO
acl no_auth src "/etc/squid/no_auth"
http_access allow no_auth
### DEFINE NUMERO DE MAQUINAS QUE USUÁRIO PODE EFETUAR LOGIN AO MESMO TEMPO
### NÃO FUNCIONAL
###acl controle_login max_user_ip -1
###http_access deny controle_login
### 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 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"
#### LIBERANDO ACESSO A DETERMINADO SITES POR NIVEL DE USUARIO
http_access allow sitesUsuarios1 usuarios1
http_access allow sitesUsuarios2 usuarios2
http_access allow sitesUsuarios3 usuarios3
#### BLOQUEIA TODOS OS SITES, MENOS OS QUE FAZEM PARTE DOS sitesUsuarios e sitesOK
http_access deny !sitesOK
http_access allow autenticados
#### Libera i acessi da rede local e localhost para os autenticados
http_access allow localhost
http_access allow redelocal
http_access deny all
E um script para criar usuário e joga-lo no grupo, bastar executar como ./addproxyuser usuario senha nivel
#!/bin/sh
if [ -z "$1" ] ||
[ -z "$2" ] ||
[ -z "$3" ]
then
echo "Parâmetros inválidos, use:"
echo " addproxyuser username password level"
exit
fi
if [$3 -lt 0] || [$3 -gt 4]
then
echo "O parâmetro level só pode ser de 0 a 4"
exit
fi
echo "Criando usuário ..."
/usr/bin/htpasswd -b /etc/squid/squid.passwd $1 $2
echo "Colocando usuário no level ..."
echo "$1" >> /etc/squid/grupos/usuarios$3
squid -k reconfigure
Toda e quaisquer sugetões ao script são bem vindas, sei que da pra melhorar, mas por enquanto está fazendo o que eu preciso.
[]'s