SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Instalação do Squid3 através da
compilação do código fonte no Ubuntu
12.04/14.04 64 bits
Escrito por: Aécio Pires
E-mail: aeciopires@gmail.com site: aeciopires.com
Data da última modificação: 29 de julho de 2014
O cenário de uso deste tutorial é um firewall com três placas de rede mostrado nesta
imagem: http://derp.co.uk/6418c e na Figura 1.
Figura 1 - Cenário de uso para o Squid num firewall com três placas de rede.
ETAPA 0- Instalando as dependências da compilação.
$ sudo apt-get update
$ sudo apt-get install gawk g++ cpp gpp acl lsb-cxx openssl libssl-dev
ETAPA 1- Baixando o código fonte da versão 3.4.6.
$ cd ~
$ wget http://www.squid-cache.org/Versions/v3/3.4/squid-3.4.6.tar.bz2
ETAPA 2- Descompactando o código fonte da versão 3.4.6.
$ tar xjvf squid-3.4.6.tar.bz2
ETAPA 3- Dando permissão de execução aos arquivos do diretório squid-3.4.6.
$ sudo chmod -R +x squid-3.4.6
ETAPA 4- Acessando o diretório squid-3.4.6.
$ cd squid-3.4.6
ETAPA 5- Compilando o Squid3.
$ sudo su
# ./configure --prefix=/usr --includedir=${prefix}/include --
mandir=${prefix}/share/man --infodir=${prefix}/share/info --
sysconfdir=/etc --localstatedir=/var --libexecdir=${prefix}/lib/squid3 --
srcdir=. --disable-maintainer-mode --datadir=/usr/share/squid3 --
sysconfdir=/etc/squid3 --mandir=/usr/share/man --with-
logdir=/var/log/squid3 --with-pidfile=/var/run/squid3.pid --enable-
removal-policies="lru,heap" --enable-digest-auth-helpers="password" --
enable-basic-auth-helpers="getpwnam,YP,NCSA,MSNT" --enable-external-acl-
helpers="unix_group,wbinfo_group" --enable-ntlm-auth-
helpers="fakeauth,no_check" --enable-removal-policies --enable-linux-
netfilter --enable-ident-lookups --enable-useragent-log --enable-cache-
digests --enable-delay-pools --enable-referer-log --enable-underscores --
enable-async-io --enable-truncate --enable-arp-acl --with-pthreads --
enable-icmp --enable-htcp --enable-carp --enable-poll --enable-snmp --
enable-wccp --enable-ssl --with-default-user=proxy
# make all
# make install
# chown -R proxy:proxy /var/log/squid3
# chmod -R 755 /var/log/squid3
ETAPA 6- Foi deito um backup do arquivo de configuração /etc/squid3/squid.conf.
# cp /etc/squid3/squid.conf /etc/squid3/squid.conf.original
ETAPA 7- O arquivo ficou com a seguinte configuração para funcionar apenas como
um proxy-cache transparente.
#-------------------------------------------------------#
Link para baixar o conteúdo de /etc/squid3/squid.conf
http://pastebin.com/6248t7kH
#------------------- BEGIN FILE -------------------------------#
#
# Recommended minimum configuration:
#
# 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 localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src 192.168.0.0/24
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged)
machines
acl SSL_ports port 443
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 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 CONNECT method CONNECT
#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager
# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
# Squid normally listens to port 3128
http_port 192.168.0.1:3128 intercept
# OPTIONS WHICH AFFECT THE CACHE SIZE
# ==============================
#--A cache sera de 8 MB
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir aufs /home/squid/cache 10000 14 256
maximum_object_size 128000 KB
cache_swap_low 95
cache_swap_high 99
# TIMEOUTS
# =======
#
forward_timeout 240 second
connect_timeout 30 second
peer_connect_timeout 5 second
read_timeout 600 second
request_timeout 60 second
shutdown_lifetime 10 second
# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# ==================================
#
access_log /home/squid/log/access.log squid
cache_log /home/squid/cache/cache.log
cache_store_log /home/squid/cache/store.log
logfile_rotate 5
log_icp_queries off
# ADMINISTRATIVE PARAMETERS
# =====================
#
cache_mgr ninja
cache_effective_user proxy
cache_effective_group proxy
#MUDE PARA off PARA OMITIR INFORMACOES DO SQUID
httpd_suppress_version_string off
#COMENTE ESSA LINHA PARA OMITIR O NOME DO HOST
#visible_hostname ninja
#
ftp_passive on
ftp_sanitycheck on
#
# DNS OPTIONS
# ==========
#
dns_timeout 5 seconds
dns_defnames on
#--DNS Servers
dns_nameservers 8.8.8.8 8.8.4.4
# Leave coredumps in the first cache dir
coredump_dir /var/cache/squid
#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|?) 0 0% 0
refresh_pattern . 0 20% 4320
#------------------- END FILE -------------------------------#
192.168.0.1 é o IP do firewall referente a placa de rede que se comunica com a rede
interna.
ETAPA 8- Crie o script de inicialização do Squid /etc/init.d/squid3 com o seguinte
conteúdo.
#-------------------------------------------------------#
Link para baixar o conteúdo de /etc/init.d/squid3
http://pastebin.com/YvW6iv3Z
#!/bin/bash
#------------------------------------------------------------------#
# Start/stop/restart/reload the Squid Internet Object Cache (squid)
# To make Squid start automatically at boot at Ubuntu 14.04, make this
# file executable:
# sudo chmod 755 /etc/init.d/squid3
# sudo update-rc.d -f squid3 defaults
#------------------------------------------------------------------#
#----------------------------------------------------
isroot(){
MYUID=$(id | cut -d= -f2 | cut -d( -f1)
[ $MYUID -eq 0 ] && echo YES || echo NO
}
#--------------------------------
getSquidPID(){
# Method 1: Getting the PID through the file.
AUX2=$(cat $PIDFILE 2> /dev/null)
if [ ! -z $AUX2 ] ; then
echo $AUX2
else
#Indicates that the PID file is empty or does not exist, then the
process never existed.
#Showing a very large ID not only to generate runtime error.
echo 700000
fi
# Method 2: Getting the PID by process name
#ps ax | pgrep -fl squid | sed "s/^ *//" | cut --field=1 --delimiter=" "
> /dev/null 2>&1
}
#--------------------------------
status(){
PID=$(getSquidPID)
AUX=`ps h -p $PID 2> /dev/null` # Pesquisando se o processo esta ou nao
em execucao
if [ -z "$AUX" ] ; then
echo "[STATUS]: Squid3 version=$SQUIDVERSION is not running..."
return 1
else
echo "[STATUS]: Squid3 version=$SQUIDVERSION is running: PID=$PID"
return 0
fi
}
#--------------------------------
start() {
PID=$(getSquidPID)
AUX=`ps h -p $PID 2> /dev/null` # Pesquisando se o processo esta ou nao
em execucao
if [ ! -z "$AUX" ] ; then
echo "[START]: Squid3 version=$SQUIDVERSION is already running
PID=$PID. Use "restart""
exit 1
fi
# Create cache directory hierarchy if needed
ALL_DIRS=$(awk '/^cache_dir/ {print $3}' $SQUIDCFG)
[ -z "$ALL_DIRS" ] && ALL_DIRS=/var/cache/squid
for CACHE_DIR in $ALL_DIRS ; do
if [ ! -d $CACHE_DIR/00 ] ; then
echo "[INFO]: Creating swap directories: $SQUIDCMD -z"
$SQUIDCMD -z 2> /dev/null
break
fi
done
echo "[START]: Starting Squid3 version=$SQUIDVERSION ..."
$SQUIDCMD -F
}
#--------------------------------
stop() {
COUNTDOWN=$(awk '/^shutdown_lifetime/ {print $2}' $SQUIDCFG)
[ -z "$COUNTDOWN" ] && COUNTDOWN=30
echo -n "[STOP]: Shutting down Squid in $COUNTDOWN seconds: "
$SQUIDCMD -k shutdown 2> /dev/null
while $SQUIDCMD -k check 2> /dev/null ; do
sleep 1
echo -n .
COUNTDOWN=$[ $COUNTDOWN - 1 ]
if [ $COUNTDOWN -le 0 ] ; then
$SQUIDCMD -k interrupt 2> /dev/null
sleep 1
break
fi
done
echo
}
#--------------------------------
reload() {
$SQUIDCMD -k reconfigure 2> /dev/null
}
#-----------------------------#
#---------- MAIN -------------#
#-----------------------------#
if [ $(isroot) = NO ] ; then
echo "[ERROR]: You must be root to run this command.."
echo "Run the command "sudo $CMDLINE""
exit 1
fi
#----------- Declaration of Variables -------------------------
SQUIDCFG=/etc/squid3/squid.conf
PIDFILE=/var/run/squid3.pid
SQUIDCMD=/usr/sbin/squid
SQUIDVERSION=$($SQUIDCMD -version | grep "Cache" | cut -d" " -f4)
#---------------------------------------------------------------
if [ ! -r $SQUIDCFG ]; then
echo "[ERROR]: Please set the correct path to $SQUIDCFG"
exit 1
fi
if [ ! -x $SQUIDCMD ]; then
echo "[ERROR]: $SQUIDCMD not found"
exit 1
fi
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 3
start
;;
status)
status
;;
reload)
reload
;;
*)
echo "[ERROR]: Type $0 {start|stop|restart|status|reload} "
exit 1
;;
esac
#------------------- END FILE -------------------------------#
ETAPA 9- Dê permissão de execução ao script e habilite a execução do mesmo no
boot do sistema operacional.
# chmod 755 /etc/init.d/squid3
# update-rc.d -f squid3 defaults
ETAPA 10- O squid pode ser iniciado/parado ou verificado o status da execução da
seguinte forma, respectivamente.
# /etc/init.d/squid3 start
# /etc/init.d/squid3 stop
# /etc/init.d/squid3 status
ETAPA 11- Para poder fazer proxy transparente adicione essa regra no seu script de
firewall.
iptables -t nat -A PREROUTING -i PLACA_REDE_INTERNA -p tcp --dport 80 -j
REDIRECT --to-port 3128
iptables -A INPUT -p tcp -i PLACA_REDE_INTERNA --dport 3128 -j ACCEPT
O termo PLACA_REDE_INTERNA deve ser substituído pelo nome da interface (placa
da rede do firewall que se comunica com a rede local). É nessa placa que o proxy
receberá as requisições dos clientes e o 3128 indica a porta usada pelo Squid.
Verifique o log do Squid de acessos no arquivo /var/log/squid3/access.log
ETAPA 12- O roteamento de pacotes entre as placas de rede do firewall também
deve estar habilitado com o comando abaixo.
# echo 1 > /proc/sys/net/ipv4/ip_forward
ETAPA FINAL- Teste o acesso a Internet através dos clientes. Se não funcionar.
Desabilite a regra de redirecionamento das requisições que vão da porta 80 para a
3128.
Revise com muita calma tudo o que foi feito até aqui.
Cadastre-se na lista Squid-BR https://br.groups.yahoo.com/neo/groups/squid-br e
informe o maior nível de detalhes possível para que as pessoas possam lhe ajudar
com mais precisão.
Sugestão. Cole o conteúdo dos arquivos access.log, cache.log, squid.conf, sendo um
por vez, no site http://pastebin.com para que ele gere três página diferentes um por
vez e no email, ao invés de informar o longo conteúdos dos arquivos, informe as URLs
destas páginas para que as pessoas possam ver como está o seu ambiente de forma
elegante. :-)
Exemplo de um squid.conf usando o pastebin: http://pastebin.com/vw2uCHzu
Também informe no email o resultado dos comandos abaixo.
squid3 -version
squid3 -k parse
Também use o site http://pastebin.com para colar os resultados dos comandos e
gerar mais duas URLs, uma para cada resultado do comando.
Fonte de consulta:
Mundo da Computação Integral - Configurando servidor proxy transparent com
Squid. Disponível em:
http://mundodacomputacaointegral.blogspot.com.br/2011/11/configurando-servidor-
proxy-com-squid.html
Acessado em: 29 de julho de 2014.
Ubuntu Server Guide - How to Install and Configure Proxy Server with Squid3 on
Ubuntu Server 12.04 LTS. Disponível em:
http://ubuntuserverguide.com/2012/05/how-to-install-and-configure-proxy-server-with-
squid3-on-ubuntu-server-12-04-lts.html e
Acessado em: 29 de julho de 2014.
Porque Deus amou o mundo de tal maneira que deu o seu Filho
unigênito, para que todo aquele que nele crê não pereça, mas tenha a vida
eterna. João 3:16
Eis que estou à porta, e bato; se alguém ouvir a minha voz, e abrir a
porta, entrarei em sua casa, e com ele cearei, e ele comigo. Apocalipse 3:20
Carta de Deus para você
http://blog.aeciopires.com/wp-content/uploads/2014/06/a.png

Mais conteúdo relacionado

Mais procurados

Trabalho Configuração de Servidores Unix
Trabalho Configuração de Servidores UnixTrabalho Configuração de Servidores Unix
Trabalho Configuração de Servidores UnixVitor Savicki
 
Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Sandro Custodio
 
Gabarito simulado lpi-1
Gabarito simulado lpi-1Gabarito simulado lpi-1
Gabarito simulado lpi-1paradamonstro
 
Gentoo por marcelo rocha
Gentoo por marcelo rochaGentoo por marcelo rocha
Gentoo por marcelo rochaSENAC RIO
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e HardeningBruna Griebeler
 
Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com OpenstackDalton Valadares
 
Roteamento avançado utilizando Debian
Roteamento avançado utilizando DebianRoteamento avançado utilizando Debian
Roteamento avançado utilizando DebianHelio Loureiro
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Hugo Maia Vieira
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e SphinxElton Minetto
 
Soa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shellSoa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shellportal_Do_estudante
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - AmbientesDirceu Belém
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valorKinn Julião
 

Mais procurados (20)

Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Trabalho Configuração de Servidores Unix
Trabalho Configuração de Servidores UnixTrabalho Configuração de Servidores Unix
Trabalho Configuração de Servidores Unix
 
Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017
 
Gabarito simulado lpi-1
Gabarito simulado lpi-1Gabarito simulado lpi-1
Gabarito simulado lpi-1
 
Gentoo por marcelo rocha
Gentoo por marcelo rochaGentoo por marcelo rocha
Gentoo por marcelo rocha
 
03 testando a configuração de uma rede
03   testando a configuração de uma rede03   testando a configuração de uma rede
03 testando a configuração de uma rede
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e Hardening
 
Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com Openstack
 
Hacking Linux
Hacking LinuxHacking Linux
Hacking Linux
 
Linux - Network
Linux - NetworkLinux - Network
Linux - Network
 
Roteamento avançado utilizando Debian
Roteamento avançado utilizando DebianRoteamento avançado utilizando Debian
Roteamento avançado utilizando Debian
 
PostgreSQL 8.4
PostgreSQL 8.4PostgreSQL 8.4
PostgreSQL 8.4
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e Sphinx
 
Soa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shellSoa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shell
 
Tunneling
TunnelingTunneling
Tunneling
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - Ambientes
 
Redis na Prática
Redis na PráticaRedis na Prática
Redis na Prática
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Aprofunde se no php 5.3
Aprofunde se no php 5.3Aprofunde se no php 5.3
Aprofunde se no php 5.3
 

Semelhante a Instalação do Squid3 no Ubuntu

Docker na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Felipe Blini
 
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 
Project HA
Project HAProject HA
Project HAKarpv
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Fabrízio Mello
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxThiago Paes
 
Ferramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterFerramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterWilson Lopes
 
Ferramentas para Automação de Datacenter - GTER 37
Ferramentas para Automação de Datacenter - GTER 37Ferramentas para Automação de Datacenter - GTER 37
Ferramentas para Automação de Datacenter - GTER 37Wilson Lopes
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosFernando Mercês
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Danilo Filitto
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiFrancisco Gonçalves
 
instalação do expresso br
instalação do expresso brinstalação do expresso br
instalação do expresso brCarlos Veiga
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanElton Minetto
 

Semelhante a Instalação do Squid3 no Ubuntu (20)

Aula 2
Aula 2Aula 2
Aula 2
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
 
Project HA
Project HAProject HA
Project HA
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010
 
4. cloud ninja rede para faixa preta
4. cloud ninja rede para faixa preta4. cloud ninja rede para faixa preta
4. cloud ninja rede para faixa preta
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
 
Servidor Proxy Squid
Servidor Proxy SquidServidor Proxy Squid
Servidor Proxy Squid
 
Ferramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterFerramentas para Automação de Datacenter
Ferramentas para Automação de Datacenter
 
Ferramentas para Automação de Datacenter - GTER 37
Ferramentas para Automação de Datacenter - GTER 37Ferramentas para Automação de Datacenter - GTER 37
Ferramentas para Automação de Datacenter - GTER 37
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutos
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
instalação do expresso br
instalação do expresso brinstalação do expresso br
instalação do expresso br
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando Gearman
 

Mais de Aécio Pires

Pipeconf no CoffeOps Campinas
Pipeconf no CoffeOps CampinasPipeconf no CoffeOps Campinas
Pipeconf no CoffeOps CampinasAécio Pires
 
Configuração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeConfiguração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeAécio Pires
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackAécio Pires
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com JenkinsAécio Pires
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com JenkinsAécio Pires
 
Zabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres DockerZabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres DockerAécio Pires
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackAécio Pires
 
Management Zabbix with Terraform
Management Zabbix with TerraformManagement Zabbix with Terraform
Management Zabbix with TerraformAécio Pires
 
Salada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerSalada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerAécio Pires
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Monitoring Cast 1: Puppet & Zabbix
Monitoring Cast 1: Puppet & ZabbixMonitoring Cast 1: Puppet & Zabbix
Monitoring Cast 1: Puppet & ZabbixAécio Pires
 
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com PuppetGerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com PuppetAécio Pires
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com GrafanaAécio Pires
 
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IZabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IAécio Pires
 
Lançamento do livro "De A a Zabbix" no IFPB
Lançamento do livro "De A a Zabbix" no IFPBLançamento do livro "De A a Zabbix" no IFPB
Lançamento do livro "De A a Zabbix" no IFPBAécio Pires
 
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixArtigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixAécio Pires
 
Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Aécio Pires
 
Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Aécio Pires
 

Mais de Aécio Pires (20)

Pipeconf no CoffeOps Campinas
Pipeconf no CoffeOps CampinasPipeconf no CoffeOps Campinas
Pipeconf no CoffeOps Campinas
 
Configuração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeConfiguração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as code
 
Zabbix BR 2020
Zabbix BR 2020Zabbix BR 2020
Zabbix BR 2020
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStack
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com Jenkins
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com Jenkins
 
Zabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres DockerZabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres Docker
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStack
 
Management Zabbix with Terraform
Management Zabbix with TerraformManagement Zabbix with Terraform
Management Zabbix with Terraform
 
Salada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerSalada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e Docker
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Monitoring Cast 1: Puppet & Zabbix
Monitoring Cast 1: Puppet & ZabbixMonitoring Cast 1: Puppet & Zabbix
Monitoring Cast 1: Puppet & Zabbix
 
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com PuppetGerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com Grafana
 
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IZabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
 
Lançamento do livro "De A a Zabbix" no IFPB
Lançamento do livro "De A a Zabbix" no IFPBLançamento do livro "De A a Zabbix" no IFPB
Lançamento do livro "De A a Zabbix" no IFPB
 
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixArtigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
 
Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?
 
Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012
 

Instalação do Squid3 no Ubuntu

  • 1. Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14.04 64 bits Escrito por: Aécio Pires E-mail: aeciopires@gmail.com site: aeciopires.com Data da última modificação: 29 de julho de 2014 O cenário de uso deste tutorial é um firewall com três placas de rede mostrado nesta imagem: http://derp.co.uk/6418c e na Figura 1. Figura 1 - Cenário de uso para o Squid num firewall com três placas de rede.
  • 2. ETAPA 0- Instalando as dependências da compilação. $ sudo apt-get update $ sudo apt-get install gawk g++ cpp gpp acl lsb-cxx openssl libssl-dev ETAPA 1- Baixando o código fonte da versão 3.4.6. $ cd ~ $ wget http://www.squid-cache.org/Versions/v3/3.4/squid-3.4.6.tar.bz2 ETAPA 2- Descompactando o código fonte da versão 3.4.6. $ tar xjvf squid-3.4.6.tar.bz2 ETAPA 3- Dando permissão de execução aos arquivos do diretório squid-3.4.6. $ sudo chmod -R +x squid-3.4.6 ETAPA 4- Acessando o diretório squid-3.4.6. $ cd squid-3.4.6 ETAPA 5- Compilando o Squid3. $ sudo su # ./configure --prefix=/usr --includedir=${prefix}/include -- mandir=${prefix}/share/man --infodir=${prefix}/share/info -- sysconfdir=/etc --localstatedir=/var --libexecdir=${prefix}/lib/squid3 -- srcdir=. --disable-maintainer-mode --datadir=/usr/share/squid3 -- sysconfdir=/etc/squid3 --mandir=/usr/share/man --with- logdir=/var/log/squid3 --with-pidfile=/var/run/squid3.pid --enable- removal-policies="lru,heap" --enable-digest-auth-helpers="password" -- enable-basic-auth-helpers="getpwnam,YP,NCSA,MSNT" --enable-external-acl- helpers="unix_group,wbinfo_group" --enable-ntlm-auth- helpers="fakeauth,no_check" --enable-removal-policies --enable-linux- netfilter --enable-ident-lookups --enable-useragent-log --enable-cache- digests --enable-delay-pools --enable-referer-log --enable-underscores -- enable-async-io --enable-truncate --enable-arp-acl --with-pthreads -- enable-icmp --enable-htcp --enable-carp --enable-poll --enable-snmp -- enable-wccp --enable-ssl --with-default-user=proxy # make all # make install # chown -R proxy:proxy /var/log/squid3 # chmod -R 755 /var/log/squid3 ETAPA 6- Foi deito um backup do arquivo de configuração /etc/squid3/squid.conf. # cp /etc/squid3/squid.conf /etc/squid3/squid.conf.original ETAPA 7- O arquivo ficou com a seguinte configuração para funcionar apenas como um proxy-cache transparente. #-------------------------------------------------------# Link para baixar o conteúdo de /etc/squid3/squid.conf http://pastebin.com/6248t7kH
  • 3. #------------------- BEGIN FILE -------------------------------# # # Recommended minimum configuration: # # 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 localnet src 172.16.0.0/12 # RFC1918 possible internal network #acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl localnet src 192.168.0.0/24 acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 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 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 CONNECT method CONNECT # # Recommended minimum Access Permission configuration: # # Deny requests to certain unsafe ports http_access deny !Safe_ports # Deny CONNECT to other than secure SSL ports http_access deny CONNECT !SSL_ports # Only allow cachemgr access from localhost http_access allow localhost manager http_access deny manager # We strongly recommend the following be uncommented to protect innocent # web applications running on the proxy server who think the only # one who can access services on "localhost" is a local user #http_access deny to_localhost # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # # Example rule allowing access from your local networks. # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed http_access allow localnet http_access allow localhost
  • 4. # And finally deny all other access to this proxy http_access deny all # Squid normally listens to port 3128 http_port 192.168.0.1:3128 intercept # OPTIONS WHICH AFFECT THE CACHE SIZE # ============================== #--A cache sera de 8 MB cache_mem 8 MB maximum_object_size_in_memory 32 KB memory_replacement_policy heap GDSF cache_replacement_policy heap LFUDA cache_dir aufs /home/squid/cache 10000 14 256 maximum_object_size 128000 KB cache_swap_low 95 cache_swap_high 99 # TIMEOUTS # ======= # forward_timeout 240 second connect_timeout 30 second peer_connect_timeout 5 second read_timeout 600 second request_timeout 60 second shutdown_lifetime 10 second # LOGFILE PATHNAMES AND CACHE DIRECTORIES # ================================== # access_log /home/squid/log/access.log squid cache_log /home/squid/cache/cache.log cache_store_log /home/squid/cache/store.log logfile_rotate 5 log_icp_queries off # ADMINISTRATIVE PARAMETERS # ===================== # cache_mgr ninja cache_effective_user proxy cache_effective_group proxy #MUDE PARA off PARA OMITIR INFORMACOES DO SQUID httpd_suppress_version_string off #COMENTE ESSA LINHA PARA OMITIR O NOME DO HOST #visible_hostname ninja # ftp_passive on ftp_sanitycheck on # # DNS OPTIONS # ========== # dns_timeout 5 seconds dns_defnames on #--DNS Servers
  • 5. dns_nameservers 8.8.8.8 8.8.4.4 # Leave coredumps in the first cache dir coredump_dir /var/cache/squid # # Add any of your own refresh_pattern entries above these. # refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|?) 0 0% 0 refresh_pattern . 0 20% 4320 #------------------- END FILE -------------------------------# 192.168.0.1 é o IP do firewall referente a placa de rede que se comunica com a rede interna. ETAPA 8- Crie o script de inicialização do Squid /etc/init.d/squid3 com o seguinte conteúdo. #-------------------------------------------------------# Link para baixar o conteúdo de /etc/init.d/squid3 http://pastebin.com/YvW6iv3Z #!/bin/bash #------------------------------------------------------------------# # Start/stop/restart/reload the Squid Internet Object Cache (squid) # To make Squid start automatically at boot at Ubuntu 14.04, make this # file executable: # sudo chmod 755 /etc/init.d/squid3 # sudo update-rc.d -f squid3 defaults #------------------------------------------------------------------# #---------------------------------------------------- isroot(){ MYUID=$(id | cut -d= -f2 | cut -d( -f1) [ $MYUID -eq 0 ] && echo YES || echo NO } #-------------------------------- getSquidPID(){ # Method 1: Getting the PID through the file. AUX2=$(cat $PIDFILE 2> /dev/null) if [ ! -z $AUX2 ] ; then echo $AUX2 else #Indicates that the PID file is empty or does not exist, then the process never existed. #Showing a very large ID not only to generate runtime error. echo 700000 fi
  • 6. # Method 2: Getting the PID by process name #ps ax | pgrep -fl squid | sed "s/^ *//" | cut --field=1 --delimiter=" " > /dev/null 2>&1 } #-------------------------------- status(){ PID=$(getSquidPID) AUX=`ps h -p $PID 2> /dev/null` # Pesquisando se o processo esta ou nao em execucao if [ -z "$AUX" ] ; then echo "[STATUS]: Squid3 version=$SQUIDVERSION is not running..." return 1 else echo "[STATUS]: Squid3 version=$SQUIDVERSION is running: PID=$PID" return 0 fi } #-------------------------------- start() { PID=$(getSquidPID) AUX=`ps h -p $PID 2> /dev/null` # Pesquisando se o processo esta ou nao em execucao if [ ! -z "$AUX" ] ; then echo "[START]: Squid3 version=$SQUIDVERSION is already running PID=$PID. Use "restart"" exit 1 fi # Create cache directory hierarchy if needed ALL_DIRS=$(awk '/^cache_dir/ {print $3}' $SQUIDCFG) [ -z "$ALL_DIRS" ] && ALL_DIRS=/var/cache/squid for CACHE_DIR in $ALL_DIRS ; do if [ ! -d $CACHE_DIR/00 ] ; then echo "[INFO]: Creating swap directories: $SQUIDCMD -z" $SQUIDCMD -z 2> /dev/null break fi done echo "[START]: Starting Squid3 version=$SQUIDVERSION ..." $SQUIDCMD -F } #-------------------------------- stop() { COUNTDOWN=$(awk '/^shutdown_lifetime/ {print $2}' $SQUIDCFG) [ -z "$COUNTDOWN" ] && COUNTDOWN=30 echo -n "[STOP]: Shutting down Squid in $COUNTDOWN seconds: " $SQUIDCMD -k shutdown 2> /dev/null while $SQUIDCMD -k check 2> /dev/null ; do sleep 1 echo -n . COUNTDOWN=$[ $COUNTDOWN - 1 ]
  • 7. if [ $COUNTDOWN -le 0 ] ; then $SQUIDCMD -k interrupt 2> /dev/null sleep 1 break fi done echo } #-------------------------------- reload() { $SQUIDCMD -k reconfigure 2> /dev/null } #-----------------------------# #---------- MAIN -------------# #-----------------------------# if [ $(isroot) = NO ] ; then echo "[ERROR]: You must be root to run this command.." echo "Run the command "sudo $CMDLINE"" exit 1 fi #----------- Declaration of Variables ------------------------- SQUIDCFG=/etc/squid3/squid.conf PIDFILE=/var/run/squid3.pid SQUIDCMD=/usr/sbin/squid SQUIDVERSION=$($SQUIDCMD -version | grep "Cache" | cut -d" " -f4) #--------------------------------------------------------------- if [ ! -r $SQUIDCFG ]; then echo "[ERROR]: Please set the correct path to $SQUIDCFG" exit 1 fi if [ ! -x $SQUIDCMD ]; then echo "[ERROR]: $SQUIDCMD not found" exit 1 fi case $1 in start) start ;; stop) stop ;; restart) stop sleep 3 start ;; status) status ;;
  • 8. reload) reload ;; *) echo "[ERROR]: Type $0 {start|stop|restart|status|reload} " exit 1 ;; esac #------------------- END FILE -------------------------------# ETAPA 9- Dê permissão de execução ao script e habilite a execução do mesmo no boot do sistema operacional. # chmod 755 /etc/init.d/squid3 # update-rc.d -f squid3 defaults ETAPA 10- O squid pode ser iniciado/parado ou verificado o status da execução da seguinte forma, respectivamente. # /etc/init.d/squid3 start # /etc/init.d/squid3 stop # /etc/init.d/squid3 status ETAPA 11- Para poder fazer proxy transparente adicione essa regra no seu script de firewall. iptables -t nat -A PREROUTING -i PLACA_REDE_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128 iptables -A INPUT -p tcp -i PLACA_REDE_INTERNA --dport 3128 -j ACCEPT O termo PLACA_REDE_INTERNA deve ser substituído pelo nome da interface (placa da rede do firewall que se comunica com a rede local). É nessa placa que o proxy receberá as requisições dos clientes e o 3128 indica a porta usada pelo Squid. Verifique o log do Squid de acessos no arquivo /var/log/squid3/access.log ETAPA 12- O roteamento de pacotes entre as placas de rede do firewall também deve estar habilitado com o comando abaixo. # echo 1 > /proc/sys/net/ipv4/ip_forward ETAPA FINAL- Teste o acesso a Internet através dos clientes. Se não funcionar. Desabilite a regra de redirecionamento das requisições que vão da porta 80 para a 3128. Revise com muita calma tudo o que foi feito até aqui. Cadastre-se na lista Squid-BR https://br.groups.yahoo.com/neo/groups/squid-br e informe o maior nível de detalhes possível para que as pessoas possam lhe ajudar com mais precisão.
  • 9. Sugestão. Cole o conteúdo dos arquivos access.log, cache.log, squid.conf, sendo um por vez, no site http://pastebin.com para que ele gere três página diferentes um por vez e no email, ao invés de informar o longo conteúdos dos arquivos, informe as URLs destas páginas para que as pessoas possam ver como está o seu ambiente de forma elegante. :-) Exemplo de um squid.conf usando o pastebin: http://pastebin.com/vw2uCHzu Também informe no email o resultado dos comandos abaixo. squid3 -version squid3 -k parse Também use o site http://pastebin.com para colar os resultados dos comandos e gerar mais duas URLs, uma para cada resultado do comando. Fonte de consulta: Mundo da Computação Integral - Configurando servidor proxy transparent com Squid. Disponível em: http://mundodacomputacaointegral.blogspot.com.br/2011/11/configurando-servidor- proxy-com-squid.html Acessado em: 29 de julho de 2014. Ubuntu Server Guide - How to Install and Configure Proxy Server with Squid3 on Ubuntu Server 12.04 LTS. Disponível em: http://ubuntuserverguide.com/2012/05/how-to-install-and-configure-proxy-server-with- squid3-on-ubuntu-server-12-04-lts.html e Acessado em: 29 de julho de 2014. Porque Deus amou o mundo de tal maneira que deu o seu Filho unigênito, para que todo aquele que nele crê não pereça, mas tenha a vida eterna. João 3:16 Eis que estou à porta, e bato; se alguém ouvir a minha voz, e abrir a porta, entrarei em sua casa, e com ele cearei, e ele comigo. Apocalipse 3:20 Carta de Deus para você http://blog.aeciopires.com/wp-content/uploads/2014/06/a.png