squid transparent não esta funcionando! [RESOLVIDO]

1. squid transparent não esta funcionando! [RESOLVIDO]

caio thimons
caio.thimons

(usa Ubuntu)

Enviado em 10/12/2012 - 10:08h

Bom dia, tenho que fazer um squid transparet, fiz um regra no iptable para redirecionar a porta 80 e 443 para o o squid porta 3128, porém ao fazer isso, o acesso á internet para, abaixo esta meu iptable e o squid, por gentileza me ajudem, já vi varios post, fiz tudo identico ao post daqui do forum, porém não funciona.
agradeço deis de já.

eth0= rede externa(IP dhcp)
eth1= rede interna(IP servidor 10.0.0.1)

IPTABLE

#!/bin/bash

############# Script###########
################################################################################
#################### Iniciando Firewall ###########################################
################################################################################.
echo "Carregando modulos"
/sbin/modprobe ip_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_queue
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_state
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_multiport
/sbin/modprobe ipt_mac
/sbin/modprobe ipt_string

echo "## Limpando as Regras existentes #######"
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -Z

echo "## Definindo politica padrão (Nega entrada e permite saida)"
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
################################################################################
######################## Protege contra ataques diversos #######################
################################################################################

###### Protege contra synflood
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

###### Protecao contra ICMP Broadcasting
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
###### Prote.. Contra IP Spoofing
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
###### Protecao diversas contra portscanners, ping of death, ataques DoS, pacotes danificados e etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP
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 INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
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

################################################################################
############################ Input Rede Interna #################################
################################################################################

echo "Redirecionando porta 80 para o proxy"

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3128

## Estabelece relação de confiança entre maquinas da rede local eth0(rede local)

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --syn -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -i eth1 -s 10.0.0.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -i eth1 -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


############################ Liberando o INPUT #################################
################################################################################
echo "liberando o INPUT externo"

iptables -A INPUT -i eth0 -p tcp -m multiport --dport 1050,8083,8088,8086,8090,8092,22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT
################################################################################
############################ Redirecionamentos #################################
################################################################################
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 1050 -j DNAT --to-destination 10.0.0.50:1050
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8083 -j DNAT --to-destination 10.0.0.50:8083
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8088 -j DNAT --to-destination 10.0.0.50:8088
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8086 -j DNAT --to-destination 10.0.0.153:8086
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8092 -j DNAT --to-destination 10.0.0.147:8092
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8090 -j DNAT --to-destination 10.0.0.211:8090
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.50:22
iptables -t nat -A PREROUTING -d 10.0.0.189 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.103 #IP do Servidor UOL
################################################################################
############################ Drop Input #################################
################################################################################
echo "## Fechando portas não abertas acima ##"
iptables -A INPUT -i eth0 -j REJECT

################################################################################
############################ Compartilhamento Internet #########################
################################################################################
echo "Compartilhando Internet"
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "..........................Firewall Ativo[OK]"
################################################################################
######################################## Fim ############################################################################.


SQUID
Configure squid.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


http_port 3128
visible_hostname cientistas

error_directory /usr/share/squid/errors/Portuguese

hierarchy_stoplist CGI-bin ?

cache_mgr ti@cientistas.com.br

acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY

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 280 488 59 777 901 3000 8000-9000 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

acl rede_local src 10.0.0.0/24
acl palavras_bloqueadas url_regex -i "/etc/squid/palavras_bloqueadas.txt "
acl sites_bloqueados url_regex -i "/etc/squid/ sites_bloqueados.txt"
acl redes_sociais url_regex -i "/etc/squid/redes_sociais.txt"
acl liberados src "/etc/squid/ips_liberados.txt"
acl formato_arquivo url_regex -i "/etc/squid/formato_arquivo.txt"
acl horario_almoco time 12:00-13:00

http_access allow liberados
http_access allow redes_sociais horario_almoco
http_access deny redes_sociais
http_access deny sites_bloqueados
http_access deny palavras_bloqueadas
http_access deny formato_arquivo
http_access allow rede_local
http_access allow localhost

http_access deny all



  


2. Re: squid transparent não esta funcionando! [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 10/12/2012 - 10:13h

caio.thimons escreveu:

Bom dia, tenho que fazer um squid transparet, fiz um regra no iptable para redirecionar a porta 80 e 443 para o o squid porta 3128, porém ao fazer isso, o acesso á internet para, abaixo esta meu iptable e o squid, por gentileza me ajudem, já vi varios post, fiz tudo identico ao post daqui do forum, porém não funciona.
agradeço deis de já.

eth0= rede externa(IP dhcp)
eth1= rede interna(IP servidor 10.0.0.1)

IPTABLE

#!/bin/bash

############# Script###########
################################################################################
#################### Iniciando Firewall ###########################################
################################################################################.
echo "Carregando modulos"
/sbin/modprobe ip_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_queue
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_state
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_multiport
/sbin/modprobe ipt_mac
/sbin/modprobe ipt_string

echo "## Limpando as Regras existentes #######"
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -Z

echo "## Definindo politica padrão (Nega entrada e permite saida)"
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
################################################################################
######################## Protege contra ataques diversos #######################
################################################################################

###### Protege contra synflood
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

###### Protecao contra ICMP Broadcasting
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
###### Prote.. Contra IP Spoofing
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
###### Protecao diversas contra portscanners, ping of death, ataques DoS, pacotes danificados e etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP
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 INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
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

################################################################################
############################ Input Rede Interna #################################
################################################################################

echo "Redirecionando porta 80 para o proxy"

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3128

## Estabelece relação de confiança entre maquinas da rede local eth0(rede local)

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --syn -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -i eth1 -s 10.0.0.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -i eth1 -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


############################ Liberando o INPUT #################################
################################################################################
echo "liberando o INPUT externo"

iptables -A INPUT -i eth0 -p tcp -m multiport --dport 1050,8083,8088,8086,8090,8092,22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT
################################################################################
############################ Redirecionamentos #################################
################################################################################
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 1050 -j DNAT --to-destination 10.0.0.50:1050
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8083 -j DNAT --to-destination 10.0.0.50:8083
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8088 -j DNAT --to-destination 10.0.0.50:8088
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8086 -j DNAT --to-destination 10.0.0.153:8086
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8092 -j DNAT --to-destination 10.0.0.147:8092
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8090 -j DNAT --to-destination 10.0.0.211:8090
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.50:22
iptables -t nat -A PREROUTING -d 10.0.0.189 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.103 #IP do Servidor UOL
################################################################################
############################ Drop Input #################################
################################################################################
echo "## Fechando portas não abertas acima ##"
iptables -A INPUT -i eth0 -j REJECT

################################################################################
############################ Compartilhamento Internet #########################
################################################################################
echo "Compartilhando Internet"
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "..........................Firewall Ativo[OK]"
################################################################################
######################################## Fim ############################################################################.


SQUID
Configure squid.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
http_port 3128
visible_hostname cientistas

error_directory /usr/share/squid/errors/Portuguese

hierarchy_stoplist CGI-bin ?

cache_mgr ti@cientistas.com.br

acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY

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 280 488 59 777 901 3000 8000-9000 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

acl rede_local src 10.0.0.0/24
acl palavras_bloqueadas url_regex -i "/etc/squid/palavras_bloqueadas.txt "
acl sites_bloqueados url_regex -i "/etc/squid/ sites_bloqueados.txt"
acl redes_sociais url_regex -i "/etc/squid/redes_sociais.txt"
acl liberados src "/etc/squid/ips_liberados.txt"
acl formato_arquivo url_regex -i "/etc/squid/formato_arquivo.txt"
acl horario_almoco time 12:00-13:00

http_access allow liberados
http_access allow redes_sociais horario_almoco
http_access deny redes_sociais
http_access deny sites_bloqueados
http_access deny palavras_bloqueadas
http_access deny formato_arquivo
http_access allow rede_local
http_access allow localhost

http_access deny all




As regras iptables do seu script estão desorganizadas, lembrando se tiver uma regra DROP e outra ACCEPT, o iptables trata a primeira na mesma regra.

Confere aqui as regras iptables http://mundodacomputacaointegral.blogspot.com.br/2012/05/entendendo-o-funcionamento-de-um.html


3. Re: squid transparent não esta funcionando! [RESOLVIDO]

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 10/12/2012 - 11:04h

Squid transparente então troque a linha:

http_port 3128

por:

http_port 3128 transparent

Outra coisa remova a linha:

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3128

https não pode ser redirecionado vai ter muitos problemas com bancos e sites https


4. Re: squid transparent não esta funcionando! [RESOLVIDO]

caio thimons
caio.thimons

(usa Ubuntu)

Enviado em 10/12/2012 - 14:43h

saitam - fiz conforme o topico que vc me passou, tentei fazer o squid com autenticação, porém não funcionol, coloquei para o navegadoro ip do servidor e orta 3128, porém não funcional.
de uma olhada nas configurações:
iptable-> firewall.sh:

#!/bin/bash

#######################################################
# SCRIPT DE FIREWALL PARA FINS DE APRENDIZADO, MODIFIQUE-O A SEU GOSTO #
# Criado por phrich #
#######################################################

###################
# DECLARANDO VARIÁVEIS #
###################

# Interface de rede que recebe a internet
IFACE_WEB="eth0"

# Interface de rede ligada a rede interna
IFACE_LAN="eth1"

# Rede interna
REDE_INTERNA="10.0.0.0/24"

#####################################################################
# FUNÇÃO STOP #
# Esta função limpa todas as regras e libera todos os acessos, caso necessite de redirecionamentos (NAT) #
# Favor incluir as linhas referentes a nat, que não está incluso neste exemplo #
#####################################################################

# Cria a função

function stop() {

# Limpa todas as regras
iptables -F
iptables -t nat -F
iptables -t mangle -F

# Coloca as políticas padrões como ACCEPT, liberando todo e qualquer acesso
iptables -A INPUT -P ACCEPT
iptables -A OUTPUT -P ACCEPT
iptables -A FORWARD -P ACCEPT

# Habilita o roteamento no kernel #
echo 1 > /proc/sys/net/ipv4/ip_forward

# Compartilha a internet
iptables -t nat -A POSTROUTING -o $IFACE_WEB -j MASQUERADE

# Fecha a função
}

# FIM DA FUNÇÃO STOP #


####################################################################
# FUNÇÃO START #
# Esta função tem por finalidade setar as regras a fim de realizar as liberações, pois trabalharemos com #
# as políticas do iptables como DROP #
####################################################################

# Cria a função
function start () {

# Limpa as regras criadas anteriormente #

# Limpa a tabela filter
iptables -F

# Limpa a tabela nat
iptables -t nat -F

# Limpa a tabela mangle
iptables -t mangle -F


# Coloca as políticas padrões como DROP, ou seja nenhum acesso foi liberado #

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Carrega módulos #

# Em alguns casos esses módulos serão úteis, realize uma pesquisa sobre cada um #
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe nf_conntrack_ipv4
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe nf_nat
/sbin/modprobe nf_conntrack
/sbin/modprobe x_tables
/sbin/modprobe nf_nat_pptp


# Habilita o roteamento no kernel #
echo 1 > /proc/sys/net/ipv4/ip_forward

# Compartilha a internet
iptables -t nat -A POSTROUTING -o $IFACE_WEB -j MASQUERADE

#############
# REGRAS DE NAT #
#############

# Acesso remoto via RDP para um host RWindows
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp --dport 3389 -j REDIRECT --to 10.0.0.2:3389
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 1050 -j DNAT --to-destination 10.0.0.50:1050
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8083 -j DNAT --to-destination 10.0.0.50:8083
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8088 -j DNAT --to-destination 10.0.0.50:8088
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8086 -j DNAT --to-destination 10.0.0.153:8086
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8092 -j DNAT --to-destination 10.0.0.147:8092
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8090 -j DNAT --to-destination 10.0.0.211:8090
iptables -t nat -A PREROUTING -i $IFACE_WEB
-p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.50:22
iptables -t nat -A PREROUTING -d 10.0.0.189 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.103 #IP do Servidor UOL


###############
# REGRAS DE INPUT #
###############

# Libera o squid a partir da rede interna
iptables -A INPUT -p tcp --dport 3128 -s $LAN -j ACCEPT

# Libera SSH Apenas para a rede interna
iptables -A INPUT -p tcp --dport 22 -s $LAN -j ACCEPT

################
# REGRAS DE OUTPUT #
################

# Libera as portas 80 e 443 apenas para localhost
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

# Libera DNS apenas para localhost
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

# Libera FTP para localhost (muito útil para o apt-get, yum, etc)
iptables -A OUTPUT -p tcp -m multiport --dports 20,21 -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dports 20,21 -j ACCEPT

#################
# REGRAS DE FORWARD #
#################

# Libera o acesso a clientes de email, pop e smtp
iptables -A FORWARD -p tcp -m multiport --dports 25,110 -j ACCEPT

# Fecha a função
}

# FIM DA FUNÇÃO START #

############################
# CRIANDO OS PARÂMETROS DO SCRIPT #
############################

#Aqui serão definidos os parâmetros:

# start = Ativa todas as regras, realizando os bloqueios e liberações
# stop = Limpa todoas as regras, "libera geral" ;-)
#restart = Carrega novas regras inseridas posteriormente

case $1 in

start)
start
;;

stop)
stop
;;

restart)
stop
start
;;

*)
echo "Erro, utilize os seguintes parâmetros: start | stop | restart"
exit 0
;;

esac

# FIM DO SCRIPT DE FIREWALL #

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


squid.conf
# Porta em que o squid irá "ouvir"
http_port 3128

# Nome visível do servidor
visible_hostname servidor rede

# Programa que será usado na autenticação, no caso msnt_auth
auth_param basic program /usr/lib/squid3/msnt_auth

# Número de processos filhos usados pelo autenticador, caso seja utilizado em uma rede muito grande
# esse número deve ser aumentado.
auth_param basic children 5

# Mensagem que aparecerá na janela de autenticação
auth_param basic realm "Servidor Proxy/rede"


#######
# ACLS #
#######

# ACLS que não vão passar pela autenticação
# Insira aqui as acls que você não quer que passe pela autenticação
# Nesta artigo não darei exemplos, porém você pode usar para uma atualização de antivírus
# Ou qualquer outra aplicação que não necessite de autenticação

# Insira dentro do arquivo citado abaixo os ips usados pelo seu antivírus
#acl antivirus dst "/etc/squid3/acls/antivirus"

# Torna obrigatório o uso de autenticação (O que for feito desta linha para baixo)
acl internal_lan proxy_auth REQUIRED

# GRUPOS #

# cientistas
acl administrators proxy_auth "/etc/squid3/grupos/cientistas"

# Diretoria
acl diretoria proxy_auth "/etc/squid3/groups/diretoria"

# xbot
acl recepcao proxy_auth "/etc/squid3/groups/xbot"

# visitante
acl recepcao proxy_auth "/etc/squid3/groups/visitante"

#wireless
acl recepcao proxy_auth "/etc/squid3/groups/wireless"




# Arquivos com bloqueios #

# Acl do tipo url_regex (regex de expressão regular - Regular Expression)
# Isira no arquivo as palavras proibidas como sexo, orkut, etc, conforme visto anteriormente
acl palavras_proibidas url_regex "/etc/squid3/acls/palavras_proibidas"

# Acl do tipo url_regex (regex de expressão regular - Regular Expression)
# Insira aqui os sites que foram bloqueados pela acl palavras proibidas, como por exemplo .sexosaude.com*
acl palavras_permitidas url_regex "/etc/squid3/acls/palavras_permitidas"

# Colocar no arquivo /etc/squid3/acls/sites_restritos
# links de sites que são proibidos
# Exemplo: O site uol.com.br está liberado, porém o usuário não consegue acessar a parte do site sexo.uol.com.br
# Portanto adicione no arquivo as sessões dos sites que você não quer que o usuário acesse.
acl sites_restritos dstdomain "/etc/squid3/acls/sites_restritos"

#Recommended minimum configuration:
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl rede_interna 10.0.0.0/24

# Acls padrões do SQUID (Aqui ele faz liberações de algumas portas)
acl SSL_ports port 443
acl SSL_ports port 563
acl SSL_ports port 2095
acl SSL_ports port 2082
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 59
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 445
acl Safe_ports port 901
acl Safe_ports port 3000
acl Safe_ports port 8000-9000
acl Safe_ports port 1025-65535

acl CONNECT method CONNECT

# MANAGER ACLS #

# Acls padrões do SQUID
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports


# PERSONAL MANAGER #

# Insira aqui as regras de liberações para o que não vai passar pela autenticação

# Libera os ips contídos na acl antivirus
http_access allow antivirus
##

# Administradores (Acesso total)
#http_access allow administradores

# Diretoria (Acesso total)
http_access allow diretoria

# cientistas (Acesso com restrições, o que estiver contido em palavras_proibidas e sites_restritos)
#http_access allow cientistas palavras_permitidas !palavras_proibidas !sites_restritos
http_access allow cientistas !sites_restritos

# xbot (Acesso apenas ao que estiver listado em sites_xbot)
http_access allow xbot !sites_restritos

# visitante (Acesso apenas ao que estiver listado em sites_visitante)
http_access allow visitante !sites_restritos

# wireless (Acesso apenas ao que estiver listado em sites_recepcao)
#http_access deny wireless !sites_wireless
http_access allow wireless !sites_restritos


# Nega palavras proibidas exceto o que estiver em palavras_permitidas
http_access deny palavras_proibidas !sites_permitidos

# Libera rede interna, Localhost e nega tudo o que não se enquadrou em nenhuma regra
http_access allow localhost
http_access allow internal_lan
http_access deny all


icp_access deny all
htcp_access deny all

hierarchy_stoplist cgi-bin \?

# Overwrite cache
cache_replacement_policy lru
memory_replacement_policy lru

#Default:
# cache_dir ufs /var/spool/squid3 100 16 256

# Arquivo de log
access_log /var/log/squid3/access.log squid

# Arquivo de cache
cache_log /var/log/squid3/cache.log

# Ajustes do cache, não entrarei em maiores detalhes
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320

icp_port 3130

# Coloca as páginas de erro em português
error_directory /usr/share/squid3/errors/Portuguese

coredump_dir /var/spool/squid3


o que eu tenho que fazer.;.???

esta certo.?
porque não funcionol..?


5. andrecanhadas

caio thimons
caio.thimons

(usa Ubuntu)

Enviado em 10/12/2012 - 14:46h

andrecanhadas, iz o que voce me falou para colocar, http_port 3128 transparent, porém não funciona, e tentei por tambem http_port 3128 intercept ; porém ambos não funcionou, precisso usar esse squid, me ajudar please!!!

obrigado pela atenção deis de já!


6. Re: squid transparent não esta funcionando! [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 10/12/2012 - 14:55h

caio.thimons escreveu:

saitam - fiz conforme o topico que vc me passou, tentei fazer o squid com autenticação, porém não funcionol, coloquei para o navegadoro ip do servidor e orta 3128, porém não funcional.
de uma olhada nas configurações:
iptable-> firewall.sh:

#!/bin/bash

#######################################################
# SCRIPT DE FIREWALL PARA FINS DE APRENDIZADO, MODIFIQUE-O A SEU GOSTO #
# Criado por phrich #
#######################################################

###################
# DECLARANDO VARIÁVEIS #
###################

# Interface de rede que recebe a internet
IFACE_WEB="eth0"

# Interface de rede ligada a rede interna
IFACE_LAN="eth1"

# Rede interna
REDE_INTERNA="10.0.0.0/24"

#####################################################################
# FUNÇÃO STOP #
# Esta função limpa todas as regras e libera todos os acessos, caso necessite de redirecionamentos (NAT) #
# Favor incluir as linhas referentes a nat, que não está incluso neste exemplo #
#####################################################################

# Cria a função

function stop() {

# Limpa todas as regras
iptables -F
iptables -t nat -F
iptables -t mangle -F

# Coloca as políticas padrões como ACCEPT, liberando todo e qualquer acesso
iptables -A INPUT -P ACCEPT
iptables -A OUTPUT -P ACCEPT
iptables -A FORWARD -P ACCEPT

# Habilita o roteamento no kernel #
echo 1 > /proc/sys/net/ipv4/ip_forward

# Compartilha a internet
iptables -t nat -A POSTROUTING -o $IFACE_WEB -j MASQUERADE

# Fecha a função
}

# FIM DA FUNÇÃO STOP #


####################################################################
# FUNÇÃO START #
# Esta função tem por finalidade setar as regras a fim de realizar as liberações, pois trabalharemos com #
# as políticas do iptables como DROP #
####################################################################

# Cria a função
function start () {

# Limpa as regras criadas anteriormente #

# Limpa a tabela filter
iptables -F

# Limpa a tabela nat
iptables -t nat -F

# Limpa a tabela mangle
iptables -t mangle -F


# Coloca as políticas padrões como DROP, ou seja nenhum acesso foi liberado #

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Carrega módulos #

# Em alguns casos esses módulos serão úteis, realize uma pesquisa sobre cada um #
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe nf_conntrack_ipv4
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe nf_nat
/sbin/modprobe nf_conntrack
/sbin/modprobe x_tables
/sbin/modprobe nf_nat_pptp


# Habilita o roteamento no kernel #
echo 1 > /proc/sys/net/ipv4/ip_forward

# Compartilha a internet
iptables -t nat -A POSTROUTING -o $IFACE_WEB -j MASQUERADE

#############
# REGRAS DE NAT #
#############

# Acesso remoto via RDP para um host RWindows
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp --dport 3389 -j REDIRECT --to 10.0.0.2:3389
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 1050 -j DNAT --to-destination 10.0.0.50:1050
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8083 -j DNAT --to-destination 10.0.0.50:8083
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8088 -j DNAT --to-destination 10.0.0.50:8088
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8086 -j DNAT --to-destination 10.0.0.153:8086
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8092 -j DNAT --to-destination 10.0.0.147:8092
iptables -t nat -A PREROUTING -i $IFACE_WEB -p tcp -m tcp --dport 8090 -j DNAT --to-destination 10.0.0.211:8090
iptables -t nat -A PREROUTING -i $IFACE_WEB
-p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.50:22
iptables -t nat -A PREROUTING -d 10.0.0.189 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.103 #IP do Servidor UOL


###############
# REGRAS DE INPUT #
###############

# Libera o squid a partir da rede interna
iptables -A INPUT -p tcp --dport 3128 -s $LAN -j ACCEPT

# Libera SSH Apenas para a rede interna
iptables -A INPUT -p tcp --dport 22 -s $LAN -j ACCEPT

################
# REGRAS DE OUTPUT #
################

# Libera as portas 80 e 443 apenas para localhost
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

# Libera DNS apenas para localhost
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

# Libera FTP para localhost (muito útil para o apt-get, yum, etc)
iptables -A OUTPUT -p tcp -m multiport --dports 20,21 -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dports 20,21 -j ACCEPT

#################
# REGRAS DE FORWARD #
#################

# Libera o acesso a clientes de email, pop e smtp
iptables -A FORWARD -p tcp -m multiport --dports 25,110 -j ACCEPT

# Fecha a função
}

# FIM DA FUNÇÃO START #

############################
# CRIANDO OS PARÂMETROS DO SCRIPT #
############################

#Aqui serão definidos os parâmetros:

# start = Ativa todas as regras, realizando os bloqueios e liberações
# stop = Limpa todoas as regras, "libera geral" ;-)
#restart = Carrega novas regras inseridas posteriormente

case $1 in

start)
start
;;

stop)
stop
;;

restart)
stop
start
;;

*)
echo "Erro, utilize os seguintes parâmetros: start | stop | restart"
exit 0
;;

esac

# FIM DO SCRIPT DE FIREWALL #

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


squid.conf
# Porta em que o squid irá "ouvir"
http_port 3128

# Nome visível do servidor
visible_hostname servidor rede

# Programa que será usado na autenticação, no caso msnt_auth
auth_param basic program /usr/lib/squid3/msnt_auth

# Número de processos filhos usados pelo autenticador, caso seja utilizado em uma rede muito grande
# esse número deve ser aumentado.
auth_param basic children 5

# Mensagem que aparecerá na janela de autenticação
auth_param basic realm "Servidor Proxy/rede"


#######
# ACLS #
#######

# ACLS que não vão passar pela autenticação
# Insira aqui as acls que você não quer que passe pela autenticação
# Nesta artigo não darei exemplos, porém você pode usar para uma atualização de antivírus
# Ou qualquer outra aplicação que não necessite de autenticação

# Insira dentro do arquivo citado abaixo os ips usados pelo seu antivírus
#acl antivirus dst "/etc/squid3/acls/antivirus"

# Torna obrigatório o uso de autenticação (O que for feito desta linha para baixo)
acl internal_lan proxy_auth REQUIRED

# GRUPOS #

# cientistas
acl administrators proxy_auth "/etc/squid3/grupos/cientistas"

# Diretoria
acl diretoria proxy_auth "/etc/squid3/groups/diretoria"

# xbot
acl recepcao proxy_auth "/etc/squid3/groups/xbot"

# visitante
acl recepcao proxy_auth "/etc/squid3/groups/visitante"

#wireless
acl recepcao proxy_auth "/etc/squid3/groups/wireless"




# Arquivos com bloqueios #

# Acl do tipo url_regex (regex de expressão regular - Regular Expression)
# Isira no arquivo as palavras proibidas como sexo, orkut, etc, conforme visto anteriormente
acl palavras_proibidas url_regex "/etc/squid3/acls/palavras_proibidas"

# Acl do tipo url_regex (regex de expressão regular - Regular Expression)
# Insira aqui os sites que foram bloqueados pela acl palavras proibidas, como por exemplo .sexosaude.com*
acl palavras_permitidas url_regex "/etc/squid3/acls/palavras_permitidas"

# Colocar no arquivo /etc/squid3/acls/sites_restritos
# links de sites que são proibidos
# Exemplo: O site uol.com.br está liberado, porém o usuário não consegue acessar a parte do site sexo.uol.com.br
# Portanto adicione no arquivo as sessões dos sites que você não quer que o usuário acesse.
acl sites_restritos dstdomain "/etc/squid3/acls/sites_restritos"

#Recommended minimum configuration:
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl rede_interna 10.0.0.0/24

# Acls padrões do SQUID (Aqui ele faz liberações de algumas portas)
acl SSL_ports port 443
acl SSL_ports port 563
acl SSL_ports port 2095
acl SSL_ports port 2082
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 59
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 445
acl Safe_ports port 901
acl Safe_ports port 3000
acl Safe_ports port 8000-9000
acl Safe_ports port 1025-65535

acl CONNECT method CONNECT

# MANAGER ACLS #

# Acls padrões do SQUID
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports


# PERSONAL MANAGER #

# Insira aqui as regras de liberações para o que não vai passar pela autenticação

# Libera os ips contídos na acl antivirus
http_access allow antivirus
##

# Administradores (Acesso total)
#http_access allow administradores

# Diretoria (Acesso total)
http_access allow diretoria

# cientistas (Acesso com restrições, o que estiver contido em palavras_proibidas e sites_restritos)
#http_access allow cientistas palavras_permitidas !palavras_proibidas !sites_restritos
http_access allow cientistas !sites_restritos

# xbot (Acesso apenas ao que estiver listado em sites_xbot)
http_access allow xbot !sites_restritos

# visitante (Acesso apenas ao que estiver listado em sites_visitante)
http_access allow visitante !sites_restritos

# wireless (Acesso apenas ao que estiver listado em sites_recepcao)
#http_access deny wireless !sites_wireless
http_access allow wireless !sites_restritos


# Nega palavras proibidas exceto o que estiver em palavras_permitidas
http_access deny palavras_proibidas !sites_permitidos

# Libera rede interna, Localhost e nega tudo o que não se enquadrou em nenhuma regra
http_access allow localhost
http_access allow internal_lan
http_access deny all


icp_access deny all
htcp_access deny all

hierarchy_stoplist cgi-bin \?

# Overwrite cache
cache_replacement_policy lru
memory_replacement_policy lru

#Default:
# cache_dir ufs /var/spool/squid3 100 16 256

# Arquivo de log
access_log /var/log/squid3/access.log squid

# Arquivo de cache
cache_log /var/log/squid3/cache.log

# Ajustes do cache, não entrarei em maiores detalhes
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320

icp_port 3130

# Coloca as páginas de erro em português
error_directory /usr/share/squid3/errors/Portuguese

coredump_dir /var/spool/squid3


o que eu tenho que fazer.;.???

esta certo.?
porque não funcionol..?



faltou liberar a porta do squid (3128) na rede (FORWARD)
iptables -A FORWARD -p tcp --dport 3128 -i $ifaceInt -o $ifaceExt -s $LAN -j ACCEPT
$ifaceInt = sua interface externa (internet)
$ifaceExt = sua interface interna (intranet)
$LAN = sua rede IP/Mask


7. Re: squid transparent não esta funcionando! [RESOLVIDO]

caio thimons
caio.thimons

(usa Ubuntu)

Enviado em 11/12/2012 - 09:07h

saitam :

acrescentei essa linha no arquivo do firewall.sh (iptables)
Porém não funiona, eu configuro o navegado para ficar com proxy, coloco o ip do servior e porta 3128, porém não acontece nada, fica a mensagem, proxy não encontrado!

tem mais alguma coisa que tem que configurar no navegador..? ou algum outro meio..? pois queria proxy autenticado, porém não pede login e senha de nada, pesço desculpas pelas perguntas é que sou leigo nessa parte de proxy.
OBS: não funciona tambem o squid (proxy)transparent

Obrigado deis de já.


8. Re: squid transparent não esta funcionando! [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 11/12/2012 - 09:13h

caio.thimons escreveu:

saitam :

acrescentei essa linha no arquivo do firewall.sh (iptables)
Porém não funiona, eu configuro o navegado para ficar com proxy, coloco o ip do servior e porta 3128, porém não acontece nada, fica a mensagem, proxy não encontrado!

tem mais alguma coisa que tem que configurar no navegador..? ou algum outro meio..? pois queria proxy autenticado, porém não pede login e senha de nada, pesço desculpas pelas perguntas é que sou leigo nessa parte de proxy.
OBS: não funciona tambem o squid (proxy)transparent

Obrigado deis de já.


verifique se o daemon do squid esta em execução
poste o resultado dos comandos abaixo

netstat -nat |grep :3128 | grep -v 0.0.0.0:3128 | grep -v 127.0.0.1:3128 | awk ‘{print $5}’ | awk -F\: ‘{print $1}’ | sort | uniq | wc -l

ps axw | grep squid

netstat -a -n | grep -w 3128





9. Re: squid transparent não esta funcionando! [RESOLVIDO]

caio thimons
caio.thimons

(usa Ubuntu)

Enviado em 11/12/2012 - 12:44h

Deu o seguinte retorno:

root@ubuntu:/etc/squid3# netstat -nat |grep :3128 | grep -v 0.0.0.0:3128 | grep -v 127.0.0.1:3128 | awk .{print $5}. | awk -F\: .{print $1}. | sort | uniq | wc -l
awk: 1: unexpected character '.'
awk: 1: unexpected character '.'
0


root@ubuntu:/etc/squid3# ps axw | grep squid
2657 pts/0 S+ 0:00 grep --color=auto squid

root@ubuntu:/etc/squid3# netstat -a -n | grep -w 3128
root@ubuntu:/etc/squid3#




10. Re: squid transparent não esta funcionando! [RESOLVIDO]

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 11/12/2012 - 13:02h

Pela saida do ps axw | grep squid o squid esta parado.


Execute # service squid restart e veja se mostra algum erro.


11. Re: squid transparent não esta funcionando! [RESOLVIDO]

caio thimons
caio.thimons

(usa Ubuntu)

Enviado em 11/12/2012 - 13:13h

Andre deu este erro:

root@ubuntu:/etc/init.d# service squid restart
squid: unrecognized service


o que eu faço..?

não sei mais o que fazer o.0


12. Re: squid transparent não esta funcionando! [RESOLVIDO]

caio thimons
caio.thimons

(usa Ubuntu)

Enviado em 11/12/2012 - 13:16h

eu so precisso de um squid com 3 grupos diferentes (cientistas, xbot e diretoria);
sendo apenas 14 usuarios.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts