Liberando máquinas pelo Squid/Firewall

Iniciado por hudsonflima, 10 de Novembro de 2011, 19:41

tópico anterior - próximo tópico

hudsonflima

Fala Galera, estou c/ uma dúvida que até agora está me dando dor de cabeça

Estou montando um servidor de Firewall e Squid na rede, a minha estrutura está assim:

Ubuntu 11.04 > nat, ssh, firewall, squid, sarg
Windows Server 2008 > ad ds, dns, dhcp, wsus

Os endereços estão passando por nat da seguinte forma:

Router >> eth0 (inet dhcp) >> eth1 (inet static: 192.168.1.1)

Configuração do Squid:

#Recommended minimum configuration:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl redelocal src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443 # RFC1918 possible internal network
#
acl SSL_ports port 563 # https
acl SSL_ports port 873 # snews
acl Safe_ports port 80 # rsync
acl Safe_ports port 21 # http
acl Safe_ports port 443 # ftp
acl Safe_ports port 70 # https
acl Safe_ports port 210 # gopher
acl Safe_ports port 1025-65535 # wais
acl Safe_ports port 280 # unregistered ports
acl Safe_ports port 488 # http-mgmt
acl Safe_ports port 591 # gss-http
acl Safe_ports port 777 # filemaker
acl Safe_ports port 631 # multiling http
acl Safe_ports port 873 # cups
acl Safe_ports port 901 # rsync
acl purge method PURGE # SWAT
acl CONNECT method CONNECT
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]


#Default:
# icp_access deny all
#
#Allow ICP queries from local networks only
icp_access allow redelocal
icp_access deny all


#
# Squid normally listens to port 3128
http_port 3128 transparent


#We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?


#
#   err, warning, notice, info, debug.
access_log /var/log/squid/access.log squid


#Suggested default:
refresh_pattern ^ftp:      1440   20%   10080
refresh_pattern ^gopher:   1440   0%   1440
refresh_pattern -i (/cgi-bin/|\?) 0   0%   0
refresh_pattern (Release|Packages(.gz)*)$   0   20%   2880
# example line deb packages
#refresh_pattern (\.deb|\.udeb)$   129600 100% 129600
refresh_pattern .      0   20%   4320

# Don't upgrade ShoutCast responses to HTTP
acl apache rep_header Server ^Apache
upgrade_http0.9 deny shoutcast

# Apache mod_gzip and mod_deflate known to be broken so don't trust
# Apache to signal ETag correctly on such responses
acl sites_bloqueados url_regex -i "/usr/local/squid/sites_b"
acl MAC arp 08:00:27:05:8F:5F 08-00-27-4A-D6-72
acl IP src 192.168.1.1-192.168.1.9/16
http_access allow redelocal
http_access allow IP
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
http_access allow localhost
http_access deny sites_bloqueados
http_access allow all
broken_vary_encoding allow apache

Configuração do firewall:

# Generated by iptables-save v1.4.10 on Wed Nov  9 17:46:21 2011
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1021 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 138 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -p tcp -m tcp -s 192.168.1.0/24 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A FORWARD -p tcp -m tcp -s 192.168.1.2/32 -i eth0 --dport 80 -j ACCEPT
-A FORWARD -p tcp -d 200.201.0.0/16 -j ACCEPT
-A FORWARD -p tcp -d 200.201.0.0/16 -j ACCEPT
COMMIT
# Completed on Wed Nov  9 17:46:21 2011
# Generated by iptables-save v1.4.10 on Wed Nov  9 17:46:21 2011
*mangle
:PREROUTING ACCEPT [435:37833]
:INPUT ACCEPT [423:36921]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [434:144011]
:POSTROUTING ACCEPT [434:144011]
COMMIT
# Completed on Wed Nov  9 17:46:21 2011
# Generated by iptables-save v1.4.10 on Wed Nov  9 17:46:21 2011
*nat
:PREROUTING ACCEPT [47:3401]
:INPUT ACCEPT [17:1389]
:OUTPUT ACCEPT [8:563]
:POSTROUTING ACCEPT [1:77]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A POSTROUTING -o eth0 -j ACCEPT
COMMIT
# Completed on Wed Nov  9 17:46:21 2011

Enfim, tudo isso estou administrando pelo Webmin, só que está muito estranho, as máquinas com nível hierárquico alto (diretoria) e no setor de TI não devem passar pelo proxy e estão todos "barrados". Como poderia solucionar isso????

Agradeço pela atenção de todos!!!

zekkerj

Citaracl sites_bloqueados url_regex -i "/usr/local/squid/sites_b"
acl MAC arp 08:00:27:05:8F:5F 08-00-27-4A-D6-72
acl IP src 192.168.1.1-192.168.1.9/16
http_access allow redelocal
http_access allow IP
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
http_access allow localhost
http_access deny sites_bloqueados
http_access allow all
broken_vary_encoding allow apache

A ordem destas regras está errada. Você está liberando os IPs listados antes de bloquear os sites restritos. Além disso, a ACL que escolhe os IPs a serem liberados está usando uma máscara estranha para a faixa de IPs escolhida (/16), o normal seria usar máscara /24.

Explique também um pouco melhor o que vc quer fazer. Pelo que eu entendi, sua intenção é colocar no proxy apenas "a ralé" (má idéia --- o proxy não é um instrumento de bloqueio, ele é instrumento de racionalização do tráfego, todo mundo tem que passar pelo proxy, independente de ser ralé ou nobreza). No entanto, sua regra de redirecionamento é incondicional (o que é bom).
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zekkerj

Ah, antes que eu esqueça... se sua intenção é fazer amarração entre o MAC e o IP, o pior lugar possível pra fazer isso é dentro do squid. Faça essa amarração no próprio iptables, o tópico abaixo pode te ajudar nisso.
http://ubuntuforum-pt.org/index.php/topic,89434.0.html
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

hudsonflima

#3
Bem já corrigi a ordem das ACLs e a máscara (de /16 para /24). O lance é esse mesmo, barrar por nível hierárquico. Eu consegui barrar torrents, MSN e chats "dropando" no iptables, coloquei uma regrinha na GPO no W2K8 para que os usuários recebam as configs do proxy automaticamente, até pq o proxy está transparente. Existe alguma regra no iptables para sincronizar os endereços IP ou MAC junto com o squid??? Ah sim... por falar em 2k8, o proxy está barrando as atualizações do server, mas acessa a web numa boa, o que pode ser isso???

zekkerj

Citarcoloquei uma regrinha na GPO no W2K8 para que os usuários recebam as configs do proxy automaticamente, até pq o proxy está transparente.
Opa, opa, opa: é uma coisa ou outra. Se o proxy está automático, ele não está transparente. Se está transparente, não está automático...

CitarExiste alguma regra no iptables para sincronizar os endereços IP ou MAC junto com o squid???
iptables é uma coisa, squid é outra. É preciso entender bem onde termina um e onde começa o outro, pra poder tirar o máximo dos dois.
O tópico que eu te indiquei na outra mensagem trata exatamente de amarração entre IP e MAC no iptables. Você chegou a lê-lo?

CitarAh sim... por falar em 2k8, o proxy está barrando as atualizações do server, mas acessa a web numa boa, o que pode ser isso???
Aposto que você não lembrou de configurar o proxy do sistema... lembrou? No Windows XP, é o comando "proxycfg"; no Windows 7, é o comando "netsh winhttp set proxy".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

hudsonflima

Ahhh... peraí, zekkerj eu vou te mandar uns prints p/ vc ter idéia de como está o server, a intenção do proxy automático não é a captura automatizada do browser, o server já manda a política diretamente na estação, ou seja, eu diminuí o "serviço de formiga" p/ não ter q alterar o proxy pc por pc. Eu li ambos os tópicos inclusive do Guia do Hardware, só que eu não entendi muito bem a regra "-A INPUT -i lo -j ACCEPT", ela não deveria ser dedicada em uma das placas. ex: -A INPUT -i ethx -j ACCEPT?

zekkerj

Ela está dedicada a uma das placas (interfaces). Ela está dedicada à interface Loopback, que trata do tráfego que a máquina gera com destino a si mesma.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

hudsonflima

Blz, vou começar a "brincar" com o firewall. Daqui a pouco voltarei para mostar os resultados!!! Zekkerj agradeço pacas pela atenção ;D

hudsonflima

Zekkerj consegui  ;D  ;D!!! O que fiz detalhadamente foi o seguinte:

1) Amarrar os MACs Full, Medium e Minimum Access
2) Full Access coloquei como a primeira regrinha, tem proxy, mas não está nada restrito
3) No meio da regra coloquei uma para Gerentes/Coordenadores/Supervisores que tem umas regalias, mas não faz download de streaming
4) Não precisa nem dizer né? hehehe... o Minimum está totalmente restrito, só liberado o necessário

O Server 2008 só está lançando IPs pela rede e levantei as zonas forward/reverse.

Agradeço pacas pela a atenção. Um abraço!!!!