Kurumin6 não consigo fazer funcionar Proxy transparente!!!
Pessoal já sou adepto do projeto kurumin desde a versao 4 acho muito bom...principalmente para mim que estou começando, Estou usando o kurumin mais como servidor e ja montei 2 squids porem em ambos não estou sendo capaz de fazer com que o proxy funcione de forma trasnparente ja tentei de tudo e nda resolve...quando ativo o firewall ele simplesmente bloqueia a navegação até mesmo no servidor...a unica coisa que consegui foi que nao precisa-se colocar a porta do proxy no navegador mas o ip tenho que colocar....mas qdo ativo firewall ele bloqueia a navegação... vou postar para vcs meu squid.conf o arquivo de configuração do iptables...
Se alguem puder me ajudar vou ser muito grato pois ja procurei muito sobre o assunto e nao consigo concluir....
#!/bin/bash
firewall_start(){
#libera rede local
iptables -A INPUT -s 10.0.0.0/255.0.0.0 -j ACCEPT
#liberar porta para wan
iptables - A INPUT -p tcp --destination-port 4040 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
iptables -A INPUT -p udp --dport 33435:33525 -j DROP
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Fecha as portas udp de 1 a 1024, abre para o localhost
iptables -A INPUT -p udp -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -p udp --dport 1:1024 -j DROP
iptables -A INPUT -p udp --dport 59229 -j DROP
iptables -A INPUT -p tcp --syn -j DROP
/etc/skel-fix/firewall-msg
}
firewall_stop(){
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
}
case "$1" in
"start")
firewall_start
;;
"stop")
firewall_stop
echo "O kurumin-firewall está¡ sendo desativado"
sleep 2
echo "ok."
;;
"restart")
echo "O kurumin-firewall está¡ sendo desativado"
sleep 1
echo "ok."
firewall_stop; firewall_start
;;
*)
iptables -L -n
esac
# /etc/squid.conf
# Este é o principal arquivo de configuração do Squid.
# Esta versão incluída no Kurumin inclui apenas as opções mais usadas,
# comentadas de forma a facilitar a configuração. Se quiser ver o arquivo
# original incluído no pacote, leia o arquivo /etc/squid.conf.debian
# Comentários por Carlos E. Morimoto
# Porta:
# Esta é a porta tcp onde o squid ficará ativo. O padrão é a porta 3128
http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
# >> Configuração do cache de páginas e arquivos <<
# O squid armazena as páginas e arquivos já acessados, para agilizar o
# acesso.
# Ao ativar o proxy transparente no ícone mágico, o cache passar a
# armazenar também todos os downloads feitos pelos clientes, via
# http, ftp e também através do apt-get, que também usa http.
# >> Quantidade de memória RAM dedicada ao cache <<
# Se estiver usando um servidor com muita RAM, você pode aumentar isso
# para até mais ou menos um terço da memória RAM total.
cache_mem 384 MB
# O tamanho máximo dos arquivos que serão guardados no cache feito
# na memória RAM. O resto vai para o cache feito no HD.
# O cache na memória é muito mais rápido, mas como a quantidade de
# RAM é muito limitada, melhor deixa-la disponível para páginas web,
# figuras e arquivos pequenos em geral.
maximum_object_size_in_memory 64 KB
# >> Tamanho máximo e mínimo para arquivos serem armazenados no cache <<
# por default, o máximo são downloads de 16 MB e o mínimo é zero, o que
# faz com que mesmo imagens e arquivos pequenos sejam armazenados
# no cache. Sempre é mais rápido ler a partir do cache do que baixar de
# novo da web.
# Se você faz download de arquivos grandes e deseja que eles fiquem
# armazenados no cache, aumente o valor da opção maximum_object_size
# Isto é especialmente útil para quem precisa baixar muitos arquivos
# através do apt-get ou Windows update em muitos micros da rede.
maximum_object_size 16 MB
minimum_object_size 0 KB
# Percentagem de uso do cache que fará o squid começar a descartar os
# arquivos mais antigos. Por padrão isso começa a acontecer quando o
# cache está 90% cheio.
cache_swap_low 95
cache_swap_high 98
# >> Cache em disco <<
# Esta opção é composta por quatro valores. O primeiro, (/var/spool/squid)
# Indica a pasta onde o squid armazena os arquivos do cache. Você pode
# querer alterar para uma pasta em uma partição separada por exemplo.
# O "512" indica a quantidade de espaço no HD (em MB) que será usada para
# o cache. Aumente o valor se você tem muito espaço no HD do servidor e
# quer que o squid guarde os downloads por muito tempo.
# Finalmente, os números 16 256 indicam a quantidade de subpastas que
# serão criadas dentro do diretório. Por padrão temos 16 pastas com 256
# subpastas cada uma.
cache_dir ufs /var/spool/squid 10240 32 512
# Arquivo onde são guardados os logs de acesso do Squid.
cache_access_log /var/log/squid/access.log
visible_hostname kurumin
# O e-mail que o Squid envia como senha ao acessar um servidor
# FTP anonimo:
ftp_user [email protected]
# >> Padrão de atualização do cache <<
# Estas três linhas precisam sempre ser usadas em conjunto. Ou seja,
# você podde alterá-las, mas sempre as três precisam estar presentes
# no arquivo. Eliminando um, o squid ignora as outras duas e usa o
# default.
# Os números indicam o tempo (em minutos) quando o squid irá verificar
# se um ítem do cache (uma página por exemplo) foi atualizado, para
# cada um dos três protocolos.
# O primeiro número (o 15) indica que o squid verificará se todas as
# páginas e arquivos com mais de 15 minutos foram atualizados. Ele
# só verifica checando o tamanho do arquivo, o que é rápido. Se o
# arquivo não mudou, então ele continua mandando o que não está
# no cache para o cliente.
# O terceiro número (o 2280, equivalente a dois dias) indica o tempo
# máximo, depois disso o objeto é sempre verificado.
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
# >> Controle de acesso <<
# Aqui vai vão as regras de quem acessa ou não o proxy. Por default
# o proxy vem configurado de uma forma liberal, para facilitar o uso.
# É recomendável que você ative o firewall do Kurumin e o configure
# para permitir apenas acessos a partir da rede local.
acl all src 10.0.0.0/255.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 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
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 Safe_ports port 901 # SWAT
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
http_access allow localhost
# A acl "proibidos" é usada para fazer bloqueio de palavras ou sites
# pelo icone magico do Kurumin. Você pode remove-la se não pretender
# usar o filtro de conteúdo por palavras.
acl proibidos dstdom_regex "/etc/squid/proibidos"
http_access deny proibidos
# Esta acl serve para bloquear alguns domínios específicos. você pode
# incluir quantos domínios quiser, basta separá-los por espaço e colocar
# tudo na mesma linha:
#acl bloqueados dstdomain orkut.com www.orkut.com playboy.abril.com.br
#http_access deny bloqueados
# >> Bloqueio com base no horário <<
# Esta regra faz com que o proxy recuse conexões feitas dentro de determinados
# horários. Você pode combinar várias das regras abaixo para bloquear todos
# os horários em que você não quer que o proxy seja usado:
#acl madrugada time 00:00-06:00
#http_access deny madrugada
#acl manha time 06:00-12:00
#http_access deny manha
#acl almoco time 12:00-14:00
#http_access deny almoco
#acl tarde time 14:00-19:00
#http_access deny tarde
#acl noite time 19:00-24:00
#http_access deny noite
# >> Proxy com autenticação <<
# Se você quer habilitar o uso de login e senha para acessar através
# do proxy, siga os seguintes pasos:
# 1- Instale o pacote apache-utils (apt-get install apache-utils)
# 2- Crie o arquivo que será usado: touch /etc/squid/squid_passwd
# 3- Cadastre os logins usando o comando:
# htpasswd /etc/squid/squid_passwd kurumin
# (onde o "kurumin" é o usuário que está sendo adicionado).
# Depois de terminar de cadastrar os usuários, descomente as três linhas
# abaixo e reinicie o squid com o comando "service squid restart".
# Quando os usuários tentarem acessar será aberto uma tela pedindo login.
#auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
#acl autenticados proxy_auth REQUIRED
#http_access allow autenticados
# >> Controle de acesso <<
# Aqui você pode ativar a configuração do Squid que o deixará explicitamente
# disponível apenas para a faixa de endereços da sua rede local, recusando
# acessos provenientes de outras redes, mesmo que o firewall esteja desabilitado.
# Configure a linha abaixo com a faixa de endereços IP e a máscara de
# sub-rede (o 24 equivale à mascara 255.255.255.0) da sua rede local e deixe
# também a linha http_access deny all (mais abaixo) descomentada.
acl redelocal src 10.0.0.0/24
http_access allow redelocal
# Ao ativar qualquer uma das regras de controle de acesso, você deve
# descomentar tampém a linha abaixo, que vai recusar as conexões que
# não sejam aceitas nas regras acima. Ao alterar a configuração, comente ou apague
# a linha "http_access allow all", que permite que todo mundo utilize o proxy.
http_access deny all
#http_access allow all
# >> Proxy Transparente <<
# As linhas abaixo, combinadas com uma regra de firewall adicionada pela opção
# no ícone mágico fazem o squid se comportar como um proxy transparente.
# Leia o capítulo 6 do livro do Kurumin para mais detalhes.
#httpd_accel_host virtual
#httpd_accel_port 80
#httpd_accel_with_proxy on
#httpd_accel_uses_host_header on
# Para habilitar o proxy transparente, você deve descomentar as 4 linhas acima e
# adicionar a regra do firewall que redireciona o tráfego da porta 80 do servidor
# para a porta 3128 do squid.
# Isto é feito colocando os seguintes comandos no arquivo /etc/rc.d/rc.local:
# (substitua o $placalocal pela placa da rede local, ex: eth0)
# (substitua o $placainternet pela placa ligada na internet, ex: eth1 ou ppp0)
# modprobe iptable_nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A PREROUTING -i $placalocal -p tcp --dport 80 -j REDIRECT --to-port $porta
# iptables -t nat -A POSTROUTING -o $placainternet -j MASQUERADE
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Re: Kurumin6 não consigo fazer funcionar Proxy transparente!!!
eh impressao minha ou essas regras aqui nao estao descomentadas em lugar algum?
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A PREROUTING -i $placalocal -p tcp --dport 80 -j REDIRECT --to-port $porta
# iptables -t nat -A POSTROUTING -o $placainternet -j MASQUERADE
sim isso o proxytransparente nao vai funfar mesmo
Re: Kurumin6 não consigo fazer funcionar Proxy transparente!!!
Então eu apenas copiei e colei os .conf.....esseas linhas ficam mesmo no squid.conf? porque estão comentadas "#" no squid.conf
Não seria no firewall.conf?
Vou fazer os testes
e posto a resposta
Vlw pela atenção
Re: Kurumin6 não consigo fazer funcionar Proxy transparente!!!
Bom fiz alguns testes.... no final do squid.conf encontro o seguinte comentário
# Para habilitar o proxy transparente, você deve descomentar as 4 linhas acima e
# adicionar a regra do firewall que redireciona o tráfego da porta 80 do servidor
# para a porta 3128 do squid.
# Isto é feito colocando os seguintes comandos no arquivo /etc/rc.d/rc.local:
# (substitua o $placalocal pela placa da rede local, ex: eth0)
# (substitua o $placainternet pela placa ligada na internet, ex: eth1 ou ppp0)
Minha rede está da seguinte forma
eth1 - dhcp pelo modem roteado 192.168.1.0/24 INTERNET
eth2 - fixo 10.0.0.254/255.0.0.0 rede interna
então deixei assim o arquivo rc.local
#
# bootmisc.sh Miscellaneous things to be done during bootup.
#
# Version: @(#)bootmisc.sh 2.78 13-Nov-1999 [email protected]
#
. /etc/default/rcS
#
# Put a nologin file in /etc to prevent people from logging in before
# system startup is complete.
# (ideia correta, porem atrapalha o trabalho do KDM em certos
# casos, impedindo a inicializacao normal do sistema.)
#if [ "$DELAYLOGIN" = yes ]
#then
# echo "System bootup in progress - please wait" > /etc/nologin
# cp /etc/nologin /etc/nologin.boot
#fi
#
# Wipe /tmp (and don't erase `lost+found', `quota.user' or `quota.group')!
# Note that files _in_ lost+found _are_ deleted.
#
[ "$VERBOSE" != no ] && echo -n "Cleaning: /tmp "
#
# If $TMPTIME is set to 0, we do not use any ctime expression
# at all, so we can also delete files with timestamps
# in the future!
#
if [ "$TMPTIME" = 0 ]
then
TEXPR=""
else
TEXPR="! -ctime -$TMPTIME"
fi
( cd /tmp && \
find . -xdev \
$TEXPR \
! -name . \
! \( -name lost+found -uid 0 \) \
! \( -name quota.user -uid 0 \) \
! \( -name quota.group -uid 0 \) \
-depth -exec rm -rf -- {} \; )
rm -f /tmp/.X*-lock
#
# Clean up any stale locks.
#
[ "$VERBOSE" != no ] && echo -n "/var/lock "
( cd /var/lock && find . -type f ! -newer /etc/mtab -exec rm -f -- {} \; )
#
# Clean up /var/run and create /var/run/utmp so that we can login.
#
[ "$VERBOSE" != no ] && echo -n "/var/run"
( cd /var/run && \
find . ! -type d ! -name utmp ! -name innd.pid ! -name random-seed \
! -newer /etc/mtab -exec rm -f -- {} \; )
: > /var/run/utmp
if grep -q ^utmp: /etc/group
then
chmod 664 /var/run/utmp
chgrp utmp /var/run/utmp
fi
[ "$VERBOSE" != no ] && echo "."
#
# Set pseudo-terminal access permissions.
#
if [ -c /dev/ttyp0 ]
then
chmod 666 /dev/tty[p-za-e][0-9a-f]
chown root:tty /dev/tty[p-za-e][0-9a-f]
fi
#
# Update /etc/motd.
#
if [ "$EDITMOTD" != no ]
then
uname -a > /etc/motd.tmp
sed 1d /etc/motd >> /etc/motd.tmp
mv /etc/motd.tmp /etc/motd
fi
#
# Save kernel messages in /var/log/dmesg
#
dmesg > /var/log/dmesg
# Ativa suporte a Ultra DMA
/sbin/hdparm -qc3 -qd1 /dev/hda
/sbin/hdparm -qd1 /dev/hdb
/sbin/hdparm -qd1 /dev/hdc
/sbin/hdparm -qd1 /dev/hdd
chmod 666 /dev/scd0
chmod 666 /dev/scd1
chmod 666 /dev/sr0
chmod 666 /dev/sr1
chmod 666 /dev/src
chmod 666 /dev/hdc
chmod 666 /dev/hdd
chmod 666 /dev/dvd
chmod 755 /usr/bin/cdrecord
chmod 755 /usr/bin/cdrdao
chmod 755 /usr/bin/readcd
chmod +s /usr/bin/cdrecord
chmod +s /usr/bin/cdrdao
chmod +s /usr/bin/readcd
chmod 644 /var/log/syslog.ppp
chmod 644 /var/log/syslog
chmod 644 /var/log/messages
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i $eth2 -p tcp --dport 80 -j REDIRECT --to-port $3128
iptables -t nat -A POSTROUTING -o $eth1 -j MASQUERADE
/etc/./transp
Porém ainda não funciona e qdo ativo o kurumin firewall que é baseado no iptables a nevegação através do proxy 10.0.0.254/255.0.0.0 deixa de funcionar incluindo no próprio servidor...é só desativar o firewall que ele volta a funcionar a unica coisa que ele faz mesmo é que nao preciso indicar qual a porta a ser usada tipo basta que indique o ip dp proxy a porta nao precisa ser indicada....mais alguma dica? estou confuso e preciso muito conseguir fazer isso....vlw pela atenção e desculpa pelo tamanho do post.