[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: iptables + squid transparente + liberar https e msn com vídeo/áudio



Rafael, vou dar umas dicas, mas caso não se aplique as suas necessidade, é só desconsiderar

Bom Matheus aqui uso:
 Debian Etch kernel  2.6.18-6-686
 Squid Cache: Version 2.6.STABLE5

Aqui tenho 3 placas de rede uma Wan (eth2) duas Lan (eth1,eth0) segue
abaixo o meu script do iptables e meu squid.conf com o masquerade
funcionando e o msn tb nos ips que estão liberados para usa-lo
                              IPTABLES
#!/bin/bash
### BEGIN INIT INFO
# Provides:          Compartilhar
# Required-Start:
# Required-Stop:
# Default-Start:     S
# Default-Stop:
# Short-Description: Ativa o NAT e regras do IPTABLES.
# Description:
### END INIT INFO

iniciar(){
#Libera a interface de loopback
iptables -A INPUT -i lo -j ACCEPT

#Habilita o NAT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

#Protege contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

#Descarta pacotes mal formados protegendo contra ataques diversos
iptables -A INPUT -m state --state INVALID -j DROP

#Libera a porta do SQUID
#iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

#Libera a Porta 22 do SSH para todos
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#Libera as portas do SAMBA
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -p udp --dport 137:138 -j ACCEPT
Estas regras torna possível a qualquer usuário do mundo ver seus compartilhamentos windows. É mais seguro vc bloquear qualquer tráfego nestas portas pois evita o risco dos arquivos da sua rede possar "vazar" para a net, pois o windows trabalha em broadcast e mesmo que os pacotes não saiam da rede, o pacote será recepcionado e tratado pelo gateway, permitindo que qualquer sniffer faça o resto. O Bloquieo mais seguro para que arquivos da rede interna não passe para a net é feito na chain de FOWARD (na tabela filter) ou na chain PREROUTING (na tabela nat) pois os pacotes vindos da rede interna e destinados ao mundo não passam pelo INPUT. Um DROP nestas portas vc impede a "fuga" de seus arquivos e não prejudica sua rede pois o windows "polui" o barramento e o gateway não fará falta. (exceto se o servido for samba tb, mas neste caso a falha é mais grave, pois gateway e samba não devem estar na mesma máquina).

Outro detalhe é que
#Libera as portas do DNS
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

#libera a porta do NTP
iptables -A INPUT -p udp --dport 123 -j ACCEPT

#libera as portas HTTP e HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

#Proxy transparente na interface eth1(Professores)
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --
to-port 3128
iptables -A INPUT -s 192.168.6.0/24 -p tcp --dport 3128 -j ACCEPT

#IPs PROFESSORES com todas as portas liberadas
iptables -A INPUT -s 192.168.6.0/24 -p tcp --dport 1:65535 -j ACCEPT
iptables -A FORWARD -s 192.168.6.0/24 -p tcp --dport 1:65535 -j ACCEPT

#IPs LABORATORIO com todas as portas liberadas
iptables -A INPUT -s 192.168.5.250 -p tcp --dport 1025:65535 -j ACCEPT
iptables -A FORWARD -s 192.168.5.250 -p tcp --dport 1025:65535 -j
ACCEPT

#Proxy Transparente na interface eth0 (Laboratorio)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --
to-port 3128
iptables -A INPUT -s 192.168.5.0/24 -p tcp --dport 3128 -j ACCEPT

#Libera a Porta do Windows Terminal Server
iptables -A INPUT -s 192.168.5.0/24 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -s 192.168.5.0/24 -p tcp --dport 3389 -j ACCEPT

#Bloqueia Portas de 1025 a 65535
iptables -A INPUT -s 192.168.5.0/24 -p tcp --dport 1025:65535 -j DROP
iptables -A FORWARD -s 192.168.5.0/24 -p tcp --dport 1025:65535 -j
DROP

#Garante que o FIREWALL permitira pacotes de conexões, já iniciadas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Impede a abertura de novas conexões, efetivamente bloqueando o
acesso
#externo ao seu servidor, com exceção das portas e faixas de
endereços
#especificados anteriormente
iptables -A INPUT -p tcp --syn -j DROP
echo "Regras de FIREWALL e compartilhamento ATIVADOS"
}

Não vejo muita eficiência nesta regra pois bloqueia apenas tráfego tcp. Ataques de icmp ou udp obtem sucesso. Vc não definiu as polices, portanto seu firewall está, por padrão, como ACCEPT, ou seja, com exceção da ultima regra o resto é TUDO permitido. Mude a police para DROP e configure apenas o que vc quer permitir, incluindo aí a rede interna tb. Procure especifica a origem e destino das regras evitando tráfego desnecessário, aumentando a segurança .

Espero ter ajudado.
parar(){
iptables -F
iptables -F -t nat
echo "Regras de FIREWALL e compartilhamento DESATIVADOS"
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parametros start ou stop"
esac

                                  SQUID
http_port 192.168.5.252:3128 transparent
http_port 192.168.6.252:3128 transparent

cache_mem 256 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/cache/squid 2048 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
#emulate_http_log off
refresh_pattern         ^ftp:           1440    20%     10080
refresh_pattern         ^gopher:        1440    0%      1440
refresh_pattern         .               0       20%     4320

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 80 82 21 443 563 70 210 3050 #1025-65535
acl Safe_ports port 280         #http-mgmt
acl Safe_ports port 488         #gss-http
acl Safe_ports port 591         #filemaker
acl Safe_ports port 777         #multiling http
acl CONNECT method CONNECT

#Bloqueia o MSN
acl msn_livre src "/etc/squid/ips_liberados"
acl msn_web url_regex webmessenger.msn.com
acl msn url_regex -i /gateway/gateway.dll

#Bloqueia o Gtalk
acl gtalk url_regex -i mail.google.com/mail/channel/bind
http_access deny gtalk
### Block AOL and YAHOO
acl aolyahoo dstdomain login.oscar.aol.com
acl aolyahoo dstdomain pager.yahoo.com
acl aolyahoo dstdomain shttp.msg.yahoo.com
acl aolyahoo dstdomain update.messenger.yahoo.com
acl aolyahoo dstdomain update.pager.yahoo.com
http_access deny aolyahoo !msn_livre
http_access deny msn_web
http_access deny msn
#pode acessar tudo
acl ips_liberados src "/etc/squid/ips_liberados"
#nao acessa nada
acl ips_proibidos src "/etc/squid/ips_proibidos"
#hosts totalmente liberados
acl hosts_liberados dst "/etc/squid/hosts_liberados"
#hosts totalmente proibidos
acl hosts_proibidos dst "/etc/squid/hosts_proibidos"
#urls laboratório
acl liberadas_lab url_regex "/etc/squid/liberadas_lab"
acl proibidas_lab url_regex -i "/etc/squid/proibidas_lab"
#ips laboratorio
acl intranet_lab src 192.168.5.0/255.255.255.0

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

#regra ips liberados lab
http_access allow ips_liberados
http_access allow hosts_liberados
http_access deny ips_proibidos

#Intranet Lab
http_access deny intranet_lab gtalk
http_access allow intranet_lab liberadas_lab
http_access deny intranet_lab proibidas_lab
http_access deny intranet_lab hosts_proibidos
http_access allow intranet_lab

#regra ips especiais
#regra hosts liberados
http_access allow hosts_liberados
http_access deny hosts_proibidos

icp_access allow all
miss_access allow all

#logfile_rotate 4


error_directory /usr/share/squid/errors/Portuguese




Reply to: