Squid y iptables
Adjunto archivos pdf.
sudo cat /proc/sys/net/ipv4/ip_forward
0
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo cat /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
sudo sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
sudo sysctl -a
sudo cat /proc/sys/net/ipv4/ip_forward
0
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo cat /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
sudo sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
sudo sysctl -a
Squid puede implementar un proxy transparente mediante las directivas de aceleración web con las
opciones siguientes:
• Especificación de la IP del servidor web.
• Asignación como puerto de escucha de peticiones web el 80.
• Activación del servicio proxy (on).
• Activación relativa a la utilización de las cabeceras HTTP/1.1 para el envío de peticiones (on).
Basta con añadir estas líneas en el archivo de configuración de Squid /etc/squid/squid.conf:
httpd_accel_host 192.168.1.1
#se habilita la caché acelerada para el
#puerto 80, es decir, se utiliza la
#caché web como ampliación
http_accel_port 80
http_accel_with_proxy on
http_accel_uses_host_header on
SEGURIDAD CON SQUID:
acl Safe_ports port 80 21
acl SSL_ports port 443 563
acl conexion method CONNECT
http_access deny !Safe_ports
http_access deny conexion !SSL_ports
squid + iptables (transparente) 0 tarjeta de red única eth0
SQUID
sudo service squid stop
[sudo] password for profes:
squid3 stop/waiting
crear sus directorios de caché:
sudo squid -z
sudo gedit /etc/squid/squid.conf
3128 es el puerto de Squid y debemos indicar la dirección IP del servidor
http_port 192.168.1.150:3128
Si nuestra máquina tiene suficiente memoria, le quitamos la
almohadilla a la opción cache_men, y utilizamos un valor coherente a
nuestra máquina.
cache_mem 256 MB
La opción cache_dir y la ajustamos como en la siguiente línea, aunque
aquí los valores de caché dependerán de nuestras preferencias y
máquina.
cache_dir ufs /var/spool/squid 2048 16 256
Y activamos las siguientes opciones, para asegurar que ningún usuario
pueda acceder a los recursos gestionados por Squid.
cache_effective_user proxy
cache_effective_group proxy
Descomentamos la opción half_closed_clients y la dejamos en off, esto
permitirá a Squid cerrar las peticiones de los clientes que se queden
a medias cuando cierran la conexión TCP.
half_closed_clients off
Ahora limitamos el tamaño máximo de los objetos que se guardarán en
memoria, esto puede ahorrarnos problemas con el tamaño de la caché.
Descomentamos la siguiente línea y la dejamos en 1024 KB.
maximum_object_size 1024 KB
También vamos a indicar cuando debe Squid vaciar la caché, esto nos
permitirá un mejor mantenimiento. Descomentamos las siguientes líneas.
cache_swap_low 90
cache_swap_high 95
En mi caso dejo los valores que nos dan por defecto. Como última
modificación en las opciones de configuración de Squid, buscamos la
opción memory_pools, la descomentamos y la ponemos en off.
memory_pools off
Esta opción, hará que Squid libere la memoria RAM que no esté utilizando.
Por último, tras la siguiente línea,
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
Añadiremos la regla para permitir el acceso a Internet de nuestra red interna.
acl ai1 src 192.168.1.0/24
http_access allow ai1
Y con esto ya podemos reiniciar Squid.
sudo service squid start
sudo service squid status
IPTABLES
Con sudo previamente:
# Limpia las reglas anteriores
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
sudo -i
echo 1 > /proc/sys/net/ipv4/ip_forward
exit
# Politica de filtro por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Acceso ilimitado a loop back
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Establece el servidor como router para la red
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -j ACCEPT
# acceso ilimitado a la LAN
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
# Redirige las peticiones de la red interna hacia el proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to
192.168.1.150
# Redirige la entrada al proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT
--to-port 3128
# Redirige la entrada al proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT
--to-port 3128
Guarda y recupera reglas de iptables
sudo iptables-save > transparente150.txt
sudo iptables-restore < transparente150.txt
cat /var/log/squid/access.log
/etc/squid/squid.conf
Squid (3) configuracion
/var/log/squid/access.log
Squid (3) registro de accesos
/var/spool/squid
Squid (3) cache_dir directorio de caché
sudo service squid stop
[sudo] password for profes:
squid3 stop/waiting
crear sus directorios de caché:
sudo squid -z
sudo gedit /etc/squid/squid.conf
3128 es el puerto de Squid y debemos indicar la dirección IP del servidor
http_port 192.168.1.150:3128
Si nuestra máquina tiene suficiente memoria, le quitamos la
almohadilla a la opción cache_men, y utilizamos un valor coherente a
nuestra máquina.
cache_mem 256 MB
La opción cache_dir y la ajustamos como en la siguiente línea, aunque
aquí los valores de caché dependerán de nuestras preferencias y
máquina.
cache_dir ufs /var/spool/squid 2048 16 256
Y activamos las siguientes opciones, para asegurar que ningún usuario
pueda acceder a los recursos gestionados por Squid.
cache_effective_user proxy
cache_effective_group proxy
Descomentamos la opción half_closed_clients y la dejamos en off, esto
permitirá a Squid cerrar las peticiones de los clientes que se queden
a medias cuando cierran la conexión TCP.
half_closed_clients off
Ahora limitamos el tamaño máximo de los objetos que se guardarán en
memoria, esto puede ahorrarnos problemas con el tamaño de la caché.
Descomentamos la siguiente línea y la dejamos en 1024 KB.
maximum_object_size 1024 KB
También vamos a indicar cuando debe Squid vaciar la caché, esto nos
permitirá un mejor mantenimiento. Descomentamos las siguientes líneas.
cache_swap_low 90
cache_swap_high 95
En mi caso dejo los valores que nos dan por defecto. Como última
modificación en las opciones de configuración de Squid, buscamos la
opción memory_pools, la descomentamos y la ponemos en off.
memory_pools off
Esta opción, hará que Squid libere la memoria RAM que no esté utilizando.
Por último, tras la siguiente línea,
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
Añadiremos la regla para permitir el acceso a Internet de nuestra red interna.
acl ai1 src 192.168.1.0/24
http_access allow ai1
Y con esto ya podemos reiniciar Squid.
sudo service squid start
sudo service squid status
IPTABLES
Con sudo previamente:
# Limpia las reglas anteriores
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
sudo -i
echo 1 > /proc/sys/net/ipv4/ip_forward
exit
# Politica de filtro por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Acceso ilimitado a loop back
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Establece el servidor como router para la red
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -j ACCEPT
# acceso ilimitado a la LAN
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
# Redirige las peticiones de la red interna hacia el proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to
192.168.1.150
# Redirige la entrada al proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT
--to-port 3128
# Redirige la entrada al proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT
--to-port 3128
Guarda y recupera reglas de iptables
sudo iptables-save > transparente150.txt
sudo iptables-restore < transparente150.txt
cat /var/log/squid/access.log
/etc/squid/squid.conf
Squid (3) configuracion
/var/log/squid/access.log
Squid (3) registro de accesos
/var/spool/squid
Squid (3) cache_dir directorio de caché
Comentarios
Publicar un comentario