Configuración

Proxy (squid3)

Instalacion

sudo apt-get install -y squid3

Consideraciones previas:

La tarjeta con conexion a internet :

enp0s8
ip : 192.168.1.210
mascara : 255.255.255.0

Tarjeta que servira de red local :

enp0s3
ip : 192.168.0.2
mascara : 255.255.255.0

Los usuarios se conectaran a la red local (enp0s3) que filtrara el proxy y saldran hacia internet (enp0s8), haciendo uso de iptables se gestionaran las peticiones entre las tarjetas de red.

Configuracion

sudo cp /etc/squid/squid.conf{,.bak}
sudo nano /etc/squid/squid.conf

Se recomienda eliminar el archivo anterior, para trabajar sobre uno simple y estructurado.

Agregar las siguientes lineas:

# 3128, puerto del servidor proxy transparente
http_port 3128 transparent

#la ip de la red que filtrara el proxy
acl mired src 192.168.0.0/24

# Ip de la red con conexion a internet
acl redlocal src 192.168.1.0/255.255.255.255 

cache_dir ufs /var/spool/squid 100 16 256 
http_access allow redlocal

http_access allow all

# Reglas de acceso
acl dominios-denegados dstdomain "/etc/squid/url-denegado"
http_access deny dominios-denegados

acl bloquearip src "/etc/squid/ipbloqueado"
http_access deny bloquearip

acl expreg-denegadas url_regex "/etc/squid/expre-denegadas"
http_access deny expreg-denegadas

http_port : Indica el puerto del proxy transparete mired : Indica la ip de la red que tendra el proxy redlocal :Indica la red que tiene conexion a internet http_access : Permite o bloquea las conexiones. cache_dir : Tamaño maximo de cache y directorio. acl : Reglas de acceso

Es necesario crear los archivos que tendrar las ip's o direcciones a bloquear, agregando las restricciones en forma de lista.

sudo touch /etc/squid/url-denegado
sudo touch /etc/squid/ipbloqueado
sudo touch /etc/squid/expre-denegadas

Redireccionar el trafico entre las tarjetas de red

Iptables

 sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp0s8 -j SNAT --to 192.168.1.210
 iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to 192.168.1.210:3128
iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j REDIRECT --to-port 3128

Recomendable ejecutar este script que lo realizara automaticamente : Solo editar las primeras lineas:

 #!/bin/sh
# squid server IP
SQUID_SERVER="192.168.0.2"

# Interface connected to Internet
INTERNET="enp0s3"

# Interface connected to LAN
LAN_IN="enp0s8"

# Squid port
SQUID_PORT="3128"

# DO NOT MODIFY BELOW
# Clean old firewall
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# Load IPTABLES modules for NAT and IP conntrack support
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# For win xp ftp client
#modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
# Setting default filter policy
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Unlimited access to loop back
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Allow UDP, DNS and Passive FTP
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
# set this system as a router for Rest of LAN
iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE
iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT
# unlimited access to LAN
iptables -A INPUT -i $LAN_IN -j ACCEPT
iptables -A OUTPUT -o $LAN_IN -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
# if it is same system
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
# DROP everything and Log it
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP

Guardar en un archivo y ejecutar:

 sudo chmod +x proxy_squid.sh
 sudo ./proxy_squid.sh

results matching ""

    No results matching ""