¿Te gustaría aprender a instalar un proxy transparente Squid en Ubuntu Linux? En este tutorial, vamos a mostrarle cómo instalar y configurar un servidor Proxy transparente utilizando el software Squid en Ubuntu Linux versión 17.
Lista de Hardware:
La siguiente sección presenta la lista de equipos utilizados para crear este tutorial de Ubuntu Linux.
Cada pieza de hardware enumerada anteriormente se puede encontrar en el sitio web de Amazon.
Ubuntu Playlist:
En esta página, ofrecemos acceso rápido a una lista de videos relacionados con Ubuntu Linux.
No te olvides de suscribirte a nuestro canal de youtube llamado FKIT.
Tutoriales Relacionados con Squid:
En esta página, ofrecemos acceso rápido a una lista de tutoriales relacionados con Squid.
Tutorial – Squid en Ubuntu Linux
En la consola de Linux, use los siguientes comandos para configurar la zona horaria correcta.
# dpkg-reconfigure tzdata
Instale el paquete Ntpdate y configure la fecha y hora correctas de inmediato.
# apt-get install ntpdate
# ntpdate pool.ntp.br
En nuestro ejemplo, el comando Ntpdate se usó para establecer la fecha y hora correctas utilizando el servidor brasileño pool.ntp.br
Instalemos el servicio NTP.
# apt-get install ntp
NTP es el servicio que mantendrá nuestro servidor actualizado.
Use la fecha del comando para verificar la fecha y la hora configuradas en su Ubuntu Linux.
# date
Si el sistema muestra la fecha y hora correctas, esto significa que siguió todos los pasos correctamente.
Use los siguientes comandos para instalar los paquetes requeridos.
# apt-get update
# apt-get install build-essential openssl libssl-dev
Descargue, compile e instale el paquete Squid.
# mkdir /downloads
# cd /downloads
# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.27.tar.gz
# tar -zxvf squid-3.5.27.tar.gz
# cd squid-3.5.27
# ./configure –with-default-user=proxy
# make
# make install
Aquí está el archivo de configuración original de Squid instalado por el paquete Squid.
# vi /usr/local/squid/etc/squid.conf
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /usr/local/squid/var/cache/squid
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
Aquí está el nuevo archivo con nuestra configuración.
Las directivas modificadas se resaltaron en negrita.
# vi /usr/local/squid/etc/squid.conf
acl localnet src 192.168.0.0/24 # My internal Network
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128 intercept # TRANSPARENT PROXY
coredump_dir /usr/local/squid/var/cache/squid
cache_dir ufs /usr/local/squid/var/cache/squid 1000 16 256 # 1GB as Cache
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
Mi configuración es simplemente básica.
Es muy recomendable que estudie este archivo de configuración para mejorar su configuración.
Use el siguiente comando para Crear las carpetas de caché necesarias.
# chown -R proxy:proxy /usr/local/squid -R
# /usr/local/squid/sbin/squid -z
Use el siguiente comando para iniciar el servicio de Squid.
# /usr/local/squid/sbin/squid -d 10
Si todo funcionó correctamente, debería ver los siguientes mensajes en la pantalla:
Starting Squid Cache version 3.5.27 for x86_64-pc-linux-gnu…
Service Name: squid
Process ID 19569
Process Roles: worker
With 1024 file descriptors available
Initializing IP Cache…
DNS Socket created at [::], FD 6
DNS Socket created at 0.0.0.0, FD 8
Adding nameserver 172.31.0.2 from /etc/resolv.conf
Adding domain us-west-2.compute.internal from /etc/resolv.conf
Logfile: opening log daemon:/usr/local/squid/var/logs/access.log
Logfile Daemon: opening log /usr/local/squid/var/logs/access.log
Unlinkd pipe opened on FD 14
Store logging disabled
Swap maxSize 1024000 + 262144 KB, estimated 98934 objects
Target number of buckets: 4946
Using 8192 Store buckets
Max Mem size: 262144 KB
Max Swap size: 1024000 KB
Rebuilding storage in /usr/local/squid/var/cache/squid (no log)
Using Least Load store dir selection
Set Current Directory to /usr/local/squid/var/cache/squid
Finished loading MIME types and icons.
HTCP Disabled.
Squid plugin modules loaded: 0
Adaptation support is off.
Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 16 flags=9
Done scanning /usr/local/squid/var/cache/squid dir (0 entries)
Finished rebuilding storage from disk.
0 Entries scanned
0 Invalid entries.
0 With invalid flags.
0 Objects loaded.
0 Objects expired.
0 Objects cancelled.
0 Duplicate URLs purged.
0 Swapfile clashes avoided.
Took 0.04 seconds ( 0.00 objects/sec).
Beginning Validation Procedure
Completed Validation Procedure
Validated 0 Entries
store_swap_size = 0.00 KB
storeLateRelease: released 0 objects
Su solución proxy transparente está instalada.
Ahora, debe redirigir todas las conexiones desde la red interna tratando de llegar a un sitio web HTTP para forzar la utilización de su servidor proxy.
Utilice el siguiente comando para redirigir cada paquete de la red interna que intenta llegar a un sitio web HTTP al puerto TCP 3128 de su proxy Squid.
# iptables -t nat -I PREROUTING -p tcp -s 192.168.0.0/24 –dport 80 -j REDIRECT –to-port 3128
Para probar la instalación, vaya a una computadora ubicada en su red interna y abra su navegador e intente acceder a un sitio web HTTP.