Páginas

Mostrando entradas con la etiqueta squid. Mostrar todas las entradas
Mostrando entradas con la etiqueta squid. Mostrar todas las entradas

viernes, 11 de julio de 2014

Privoxy Squid Freebsd

Servidor FreeBSD

Interfaz LAN = em0 (Interna) 192.168.3.0/24
Interfaz WAN = em1 (Internet) 192.168.1.0/24
Sistema Oper = FreeBSD 9.1 RELEASE
Firewall     = IPFilter
Nombre del servidor = freebsdsvr

Privoxy es un proxy web sin almacenamiento en caché con capacidades avanzadas de filtrado para mejorar la privacidad, la modificación de los datos de las páginas web y las cabeceras HTTP, el control de acceso, y la eliminación de los anuncios y otra basura de Internet.

Un proxy caché, como Squid es utilizado para reducir el tráfico externo sobre la red para páginas con frecuencia extravagantes, como Google. Esto también mejora la respuesta de la red local, el tráfico se almacena en la caché local para recuperar páginas utilizadas con frecuencia.

A menudo, el uso de otras cachés de su proveedor ISP en Internet para dar forma al flujo de tráfico y ciertos países utilizan una combinación de firewalls y proxies con Listas de exclusión para limitar el contenido entregado a sus ciudadanos. Esto también se puede utilizar a la inversa, y un usuario competente puede utilizar otro proxy en un no-estándar puerto evitando así el filtro de contenido original. Por tanto, es importante para bloquear la red y vigilar cualquier actividad extraña.

Vamos a usar Privoxy para el contenido de filtrado. Webmin es útil, ya que permite visualizar estadísticas de memoria caché a través de un navegador.

Además de las características principales de bloqueo de anuncios y gestión de cookies, Privoxy proporciona numerosas funciones complementarias, que le dan al usuario final más control, más privacidad y más libertad:

Soporte "Connection: keep-alive". Las conexiones salientes se pueden mantener con vida de forma independiente desde el cliente.

Soporta el etiquetado que permite cambiar el comportamiento basado en cabeceras cliente y servidor.

Se puede ejecutar como un "intercepting" proxy, lo que evita la necesidad de configurar los navegadores de forma individual.

Acciones y filtros sofisticados para manipular el servidor y el cliente.

Configuración y control de la utilidad integrada basada en navegador en http://config.privoxy.org/ (atajo: http://p.p/).

Rastreo basada en navegador de reglas y filtros de efectos. Conmutación remoto.

Filtrado de páginas Web (reemplazos de texto, elimina banners basados ​​en el tamaño, invisibles "web-bugs" y molestias HTML, etc)

Soporte para expresiones regulares de Perl compatibles en los archivos de configuración y una sintaxis de configuración más sofisticada y flexible.

GIF de animación.

Bypass muchos click-tracking (scripts de seguimiento de clics) (evita scripts de redirección).

Auto-detección y relectura de los cambios del archivo de configuración

Si tiene intención de encadenar Privoxy y Squid localmente, entonces el encadenamiento navegador > Squid > Privoxy es la forma recomendada.

Instalar los ports:
# pkg install privoxy squid webmin

Configuración de privoxy:
Copiar el archivo de user.action a la carpeta de privoxy
# cp /usr/local/share/examples/privoxy/user.action /usr/local/etc/privoxy/

Archivo de configuración de privoxy:
# ee /usr/local/etc/privoxy/config

user-manual /usr/local/share/doc/privoxy/user-manual
confdir /usr/local/etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites
actionsfile default.action   # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
logfile logfile
debug     1 # Log the destination for each request Privoxy let through. See also debug 1024.
debug  1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
debug  4096 # Startup banner and warnings.
debug  8192 # Non-fatal errors
toggle  1
enable-remote-toggle  0
enable-remote-http-toggle  0
enable-edit-actions 1
enforce-blocks 0
buffer-limit 4096
enable-proxy-authentication-forwarding 0
listen-address 127.0.0.1:8118
forwarded-connect-retries  0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
tolerate-pipelining 1
socket-timeout 300

Iniciar privoxy:
# echo 'privoxy_enable="YES"' >> /etc/rc.conf

# /usr/local/etc/rc.d/privoxy start
Starting privoxy..

Configurar Squid:
Archivo de configuración de Squid:

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
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 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
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/squid/logs/access.log 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
cache_peer localhost parent 8118 7 no-query
never_direct allow all
always_direct deny all
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
forwarded_for off
coredump_dir /var/squid/cache
# Define ACL for protocol FTP
acl ftp proto FTP
# Do not forward FTP requests to Privoxy
always_direct allow ftp


Iniciar Squid:
# echo 'squid_enable="YES"' >> /etc/rc.conf

# /usr/local/etc/rc.d/squid start
Starting squid.

Perfecto!.
Establecer la IP y puerto del proxy de la red en un pc cliente freebsd:


Configurar servidor proxy en Opera:

Configurar proxy en Chromium:




Entramos en una página que contiene mucha publicidad, por ejemplo, thepiratebay.se. Previamente hemos desactivado Adblock:



Listas de sockets abiertos (servidor):
# root@freebsdsvr: / # sockstat -4



Iniciar webmin:
# echo 'enable_webmin="YES"' >> /etc/rc.conf

Tiene que ejecutar /usr/local/lib/webmin/setup.sh script con el fin de configurar los distintos ficheros de configuración, escriba:
# /usr/local/lib/webmin/setup.sh
...

Web server port (default 10000):  [Press Enter]
Login name (default admin):  [Press Enter]
Login password: [type password]
Password again:
Use SSL (y/n): y

...

# /usr/local/etc/rc.d/webmin start
Starting webmin.
Pre-loaded WebminCore

Desde un navegador cliente de la red:
https://192.168.3.1:10000


BSD Magazine. - Rob Somerville
http://body0r.wordpress.com/2009/06/24/tor-privoxy-squid-a-little-howto/
http://www.privoxy.org/user-manual/index.html
http://www.privoxy.org/user-manual/introduction.html

Unix es genial!.

domingo, 17 de noviembre de 2013

FreeBSD server NAT IPFW dhcp-server dnsmasq squid

 Me encanta FreeBSD. Este servidor local es una pequeña máquina con un consumo muy bajo e incluye nat, firewall, dhcp-server, dnsmasq y squid y será el intermediario entre la red local e Internet. El sistema perfecto para esta tarea es FreeBSD.

Nuestro servidor FreeBSD está dotado con dos tarjetas de red.

em0 interface LAN IP 192.168.3.1/24
em1 interface WAN (internet) 192.168.1.254/24

Compilar kernel personalizado. Habilitar NAT + FIREWALL

Todo lo que existe dentro de un directorio de una arquitectura en particular, es específico para dicha arquitectura, el resto del código es común para todas las plataformas en las que FreeBSD funciona.

Si el dirctorio /usr/src/sys no existe quiere decir que las fuentes del kernel no están instaladas.

Es necesario tener el codigo fuente completo de FreeBSD para poder compilar el kernel.

Descargar las fuentes del kernel 9.1-RELEASE:

Instalar wget
# pkg_add -r wget

$ cd ~/descargas
$ fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/9.1-RELEASE/src.txz

Descomprimir el archivo a /usr/src:
# tar -C / -xzvf src.txz

Ahora desde el directorio arch/conf copiar el archivo de configuración GENERIC utilizando cualquier nombre:

# cp /usr/src/sys/amd64/conf/GENERIC /usr/src/amd64/conf/NEWGENERIC

Añadir las siguientes opciones a /usr/src/sys/amd64/conf/NEWGENERIC
# ee /usr/src/sys/amd64/conf/NEWGENERIC
...
options IPFIREWALL
options IPDIVERT

options IPFIREWALL_VERBOSE
...

# cd /usr/src
# make buildkernel KERNCONF=NEWGENERIC

# make installkernel KERNCONF=NEWGENERIC

El nuevo kernel se copiará al directorio raíz como /kernel y el viejo kernel tendrá de nombre kernel.old.

Reiniciar el sistema con el nuevo kernel.

Archivos de configuración:

$ cat /boot/loader.conf
ipfw_load="YES"
ipdivert_load="YES"
autoboot_delay="2"

$ cat /etc/rc.conf
hostname="freebsdsvr.linux.bcn"
keymap="spanish.iso.kbd"

# interface con acceso a Internet
ifconfig_em1="DHCP"
defaultrouter="192.168.1.1"
sshd_enable="YES"

# interface LAN
ifconfig_em0="inet 192.168.3.1 netmask 255.255.255.0"
moused_enable="NO"

# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"

gateway_enable="YES"
firewall_enable="YES"
firewall_logging="YES"
natd_enable="YES"
natd_interface="em1"
natd_flags="-f /etc/natd.conf"

# reglas personalizadas
# firewall_script="/etc/ipfw.rules"

# activer reglas dinamicas protegiendo LAN
firewall_script="/etc/rc.firewall"
firewall_type="simple"

$ ee /etc/natd.conf
use_sockets yes
same_ports yes
unregistered_only yes
dynamic yes

redirect_port tcp 192.168.3.60:80 8080
redirect_port tcp 192.168.3.60:22 2222

Guardar y salir

Reiniciar el servidor para comprobar que no tenemos mensajes de error.

# shutdown -r now

Todo perfecto. Seguimos con dhcp-server dnsmasq y squid:

Intalar y configurar dhcp-server

# pkg_add -r isc-dhcp41-server
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/isc-dhcp41-server.tbz... Done.
===> Creating users and/or groups.
Creating group 'dhcpd' with gid '136'.
Creating user 'dhcpd' with uid '136'.

Así quedará el archivo dhcpd.conf:

# sed -e '/^[ ]*#/d' -e '/^$/d' /usr/local/etc/dhcpd.conf
option domain-name "linux.bcn";
option domain-name-servers 192.168.3.1, 192.168.1.1;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.3.0 netmask 255.255.255.0 {
 range 192.168.3.40 192.168.3.50;
 option routers 192.168.3.1;

}
Para iniciar dhcp-server con el sistema

agregar al archivo rc.conf:
dhcpd_enable="YES" # dhcpd enabled?
dhcpd_flags="-q" # command option(s)
dhcpd_conf="/usr/local/etc/dhcpd.conf" # configuration file
dhcpd_ifaces="em0"    # ethernet interface(s)
dhcpd_withumask="022"   # file creation mask

Iniciar el servidor dhcp:
# /usr/local/etc/rc.d/isc-dhcpd start
Starting dhcpd.

Dnsmasq

Instalar dnsmasq
$cd /usr/ports
$ make search name=dnsmasq
$ cd /usr/ports/dns/dnsmasq/
# make install clean

cp /usr/local/etc/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf

Archivo de configuración dnsmasq.conf
Filtrando dnsmasq.conf con sed para eliminar líneas que empiezan con un espacio, líneas que comienzan con almohadilla y líneas vacías.

sed -e '/^[ ]*#/d' -e '/^$/d' /etc/dnsmasq.conf
port=53
domain-needed
bogus-priv
strict-order
interface=em0
listen-address=127.0.0.1
expand-hosts
domain=linux.bcn

También podemos utilizar dnsmasq como dns  + dhcp y prescindir del servidor isc-dhcp; en cuyo caso el archivo /usr/local/etc/dnsmasq.conf quedaría más o menos como sigue: (Acto seguido se detiene el servidor dhcd # killall dhcpd, comentar las líneas que hacen referencia a dchp en el archivo /etc/rc.conf y reiniciar el servicio dnsmasq:

port=53
domain-needed
bogus-priv
strict-order
interface=em0
listen-address=127.0.0.1
expand-hosts
domain=linux.bcn
dhcp-range=192.168.3.40,192.168.3.50,12h
dhcp-host= 00:21:9b:e2:cd:44,192.168.0.60,infinite

Iniciar dnsmasq
# /usr/local/etc/rc.d/dnsmasq start
Starting dnsmasq.

Iniciar dnsmasq con el sistema
agregar esta línea al archivo /etc/rc.conf
dnsmasq_enable="YES"

Archivo resolv.conf del servidor

#permite a las maquinas locales obtener información DNS.
nameserver 127.0.0.1

#OpenDNS
nameserver 208.67.222.222
nameserver 208.67.220.220

# Otra opcion es utilizar los DNS del proveedor ISP.
# nameserver 192.168.1.1

Impedir cambios en el fichero resolv.conf
Añadir esta línea al archivo de configuración de resolv.conf (resolvconf.conf)
# ee /etc/resolvconf.conf
resolv_conf="/dev/null"

Archivo resolv.conf de las máquinas cliente: $ cat /etc/resolv.conf
# Archivo inmutable resolv.conf
search linux.bcn
nameserver 192.168.3.1

Realizar consultas desde un cliente, comprobar que dnsmasq funciona:
$ nslookup # sustituido por drill en FreeBSD 10
> freebsdsvr
Server:        192.168.3.1
Address:    192.168.3.1#53

Non-authoritative answer:
Name:    freebsdsvr.linux.bcn
Address: 67.215.65.132

Squid

Instalar squid como paquete
# pkg_add -r squid
# squid -v
Version 2.7.STABLE9

Archivo de configuración squid.conf
Copiar archivo squid.conf
# cp /usr/local/etc/squid/squid.conf.default /usr/local/etc/squid/squid.conf

Filtrando el archivo /usr/local/etc/squid/squid.conf para ver las opciones del archivo de configuración de squid.:
Utilizando las opciones por defecto squid en freebsd funcionará a la primera.

# sed -e '/^[ ]*#/d' -e '/^$/d' /usr/local/etc/squid/squid.conf
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
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 SSL_ports port 443
acl Safe_ports port 80  # http
acl Safe_ports port 8080  # also 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
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/squid/logs/access.log 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
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
coredump_dir /var/squid/cache
cache_log /var/squid/logs/cache.log
logfile_rotate 10
minimum_object_size 0 KB
maximum_object_size 1024 MB
request_body_max_size 0
cache_dir ufs /var/squid/cache 5000 16 256
cache_mem 32 MB
visible_hostname freebsdserver

Crear los directorios swap
# squid -z

Desactivar test DNS inicial
# squid -D

Iniciar con el sistema.
Agregar al archivo /etc/rc.conf
squid_enable="YES"

El proxy ha sido configurado como transparent de manera que no hace falta configurar el navegador de los clientes:
Comprobar puertos abiertos:
# sockstat -4
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS     
carlos   sshd       1572  3  tcp4   192.168.3.1:2222      192.168.3.60:41422
root     sshd       1569  3  tcp4   192.168.3.1:2222      192.168.3.60:41422
root     sendmail   1496  3  tcp4   127.0.0.1:25          *:*
root     sshd       1493  4  tcp4   *:2222                *:*
squid    squid      1483  6  udp4   *:14091               *:*
squid    squid      1483  13 tcp4   192.168.3.1:3128      *:*
squid    squid      1483  14 tcp4   192.168.3.1:8080      *:*
squid    squid      1483  15 udp4   *:3130                *:*
dhcpd    dhcpd      1470  7  udp4   *:67                  *:*
nobody   dnsmasq    1368  3  udp4   *:53                  *:*
nobody   dnsmasq    1368  4  tcp4   *:53                  *:*
root     syslogd    1356  7  udp4   *:514                 *:*
root     natd       1318  3  div4   *:8668                *:*

Descargar e instalar parches de seguridad:

# freebsd-update fetch
# freebsd-update install

Si al kernel se ha aplicado algún parche tendrá que reiniciar. A partir de este momento el sistema está parcheado. freebsd-update puede ejecutarse utilizando cron con una entrada en /etc/crontab:

@daily  root  freebsd-update cron

Esta línea hará que una vez al día se ejecutr freebsd-update. El argumento cron pasado a freebsd-update intentará saber si existen actualizaciones. Si hay parches disponibles automáticamente los descargará al disco local sin instalarlos. El usuario root recibirá un mail informándole que puede aplicarlos.

Si algo ha fallado freebsd-update puede dar marcha atrás (roolback) hasta el último conjunto de cambios con la siguiente orden:

# freebsd-update rollback

Instalar portaudit

# pkg_add -r portaudit
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/portaudit.tbz... Done.

===>  To check your installed ports for known vulnerabilities now, do:

      /usr/local/sbin/portaudit -Fda

# portaudit -Fda                     auditfile.tbz                                   0% of   90 kB    0  Bpauditfile.tbz                                 100% of   90 kB  222 kBps
New database installed.
Database created: Sat Nov 16 20:10:00 CET 2013
Affected package: perl-5.14.2_2
Type of problem: perl -- denial of service via algorithmic complexity attack on hashing routines.
Reference: http://portaudit.FreeBSD.org/68c1f75b-8824-11e2-9996-c48508086173.html

Affected package: squid-2.7.9_1
Type of problem: squid -- denial of service.
Reference: http://portaudit.FreeBSD.org/c37de843-488e-11e2-a5c9-0019996bc1f7.html

2 problem(s) in your installed packages found.

You are advised to update or deinstall the affected package(s) immediately.

Para una lista de todas las reglas de funcionamiento de ipfw en secuencia:
# ipfw list




Para una lista de reglas dinámicas, además de reglas estáticas:
 


Unix es genial!.

martes, 6 de agosto de 2013

dhcp-server dnsmasq squid FreeBSD

Créditos:  freebsd faq
 how to dnsmasq

Las máquinas cliente:
1 - Portatil de trabajo Ip fija = 192.168.3.60
2 - Pc sobremesa Ip obtenida mediante DHCP
ip servidor freebsd 192.168.3.1
En la parte final se comprobarán los puertos abiertos
y los clientes conectados con el comando sockstat
El servidor freebsd dispone de dos tarjetas de red.
Lan - red interna = em0
Wan - externa = em1
Ip Lan - 192.168.3.1 (router default Lan)
Ip Wan - 192.168.1.250
Firewall servidor - ipfw
sshd habilitado en el servidor
Entrar por sshd como user normal desde Lan
$ ssh -l carlos -p 2222 192.168.3.1
$ hostname
$ freebsdserver.linux.bcn
$ su
Password:
#

Intalar y configurar dhcp-server

# pkg_add -r isc-dhcp41-server
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/isc-dhcp41-server.tbz... Done.
===> Creating users and/or groups.
Creating group 'dhcpd' with gid '136'.
Creating user 'dhcpd' with uid '136'.

Así quedará el archivo dhcpd.conf:

# sed -e '/^[ ]*#/d' -e '/^$/d' /usr/local/etc/dhcpd.conf
option domain-name "linux.bcn";
option domain-name-servers 192.168.3.1;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.3.0 netmask 255.255.255.0 { 
 range 192.168.3.40 192.168.3.50;
 option routers 192.168.3.1;

}
Para iniciar dhcp-server con el sistema
agregar al archivo rc.conf:
dhcpd_enable="YES" # dhcpd enabled?
dhcpd_flags="-q" # command option(s)
dhcpd_conf="/usr/local/etc/dhcpd.conf" # configuration file
dhcpd_ifaces="em0"    # ethernet interface(s)
dhcpd_withumask="022"   # file creation mask 
 
Iniciar el servidor dhcp:
# /usr/local/etc/rc.d/isc-dhcpd start
Starting dhcpd.

Instalar dnsmasq

$cd /usr/ports
$ make search name=dnsmasq
$ cd /usr/ports/dns/dnsmasq/
# make install clean

Archivo de configuración dnsmasq.conf

Filtrando dnsmasq.conf con grep para eliminar líneas que empiezan con un espacio, líneas que comienzan con almohadilla y líneas vacías.
grep -v '#' /etc/dnsmasq.conf
port=53
domain-needed
bogus-priv
strict-order
interface=em0
listen-address=127.0.0.1
expand-hosts
domain=linux.bcn

Iniciar dnsmasq con el sistema

 agregar esta línea al archivo /etc/rc.conf
dnsmasq_enable="YES"


Archivo resolv.conf del servidor

#permite a las maquinas locales obtener información DNS.
nameserver 127.0.0.1
 
#OpenDNS
nameserver 208.67.222.222
nameserver 208.67.220.220
 
# Otra opcion es utilizar los DNS del proveedor ISP.
 
# nameserver 192.168.1.1

Impedir cambios en el fichero resolv.conf

Añadir esta línea al archivo de configuración de resolv.conf (resolvconf.conf)
# ee /etc/resolvconf.conf
resolv_conf="/dev/null"

Archivo resolv.conf de las máquinas cliente: $ cat /etc/resolv.conf
# Archivo inmutable resolv.conf
search linux.bcn
nameserver 192.168.3.1

Realizar consultas desde un cliente

Instalar squid como paquete

# pkg_add -r squid
# squid -v
Version 2.7.STABLE9

Archivo de configuración squid.conf

Copiar archivo squid.conf
# cp /usr/local/etc/squid/squid.conf.default /usr/local/etc/squid/squid.conf Filtrando el archivo /usr/local/etc/squid/squid.conf para ver las opciones del archivo de configuración de squid.:
# sed -e '/^[ ]*#/d' -e '/^$/d' /usr/local/etc/squid/squid.conf
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
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 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
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 192.168.3.1:3128 transparent
hierarchy_stoplist cgi-bin ?
access_log /var/squid/logs/access.log 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
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
coredump_dir /var/squid/cache
cache_log /var/squid/logs/cache.log
logfile_rotate 10
minimum_object_size 0 KB
maximum_object_size 1024 MB
request_body_max_size 0
cache_dir ufs /var/squid/cache 200 16 256
cache_mem 32 MB
visible_hostname freebsdserver.linux.bcn
acl ips src 192.168.3.0/255.255.255.0
acl hora time MTWHF 8:00-22:00
acl todas src 0.0.0.0/0.0.0.0
http_access allow ips
http_access deny !hora
http_access deny todas


Crear los directorios swap

# squid -z


Desactivar test DNS inicial

# squid -D


Iniciar con el sistema.

Agregar al archivo /etc/rc.conf
squid_enable="YES"

El proxy ha sido configurado como transparent de manera que no hace falta configurar el navegador de los clientes:
Comprobar puertos abiertos:
# sockstat -4


FreeBSD es genial!