jueves, 13 de junio de 2013

Debian + squid


Siendo la 3era vez que instalo Debian + SQUID me animo a crear este tutorial
Primero Instalar Debian 
En este caso instale la version 6.0
Luego Actualizar nuestro Sistema Operativo (Debian)
apt-get update
apt-get upgrade
squid-cache

Como estamos instalando Squid Transparente debemos de tener:
2 Tarjetas de Red.
Por defecto cuando instalas Debian te configura la tarjeta de Red que recibe el Internet: eth0
debemos de agregar la Segunda Tarjeta de Red.
Para eso escribimos:
nano /etc/network/interfaces
y agregamos la Segunda Interface
allow-hotplug eth1
iface eth1 inet static
address 192.168.25.1
netmask 255.255.255.0
network 192.168.25.0
broadcast 192.168.25.255
y reiniciamos el servicio:
/etc/init.d/networking restart
o reiniciamos el sistema:
Ahora instalamos el SQUID
apt-get install squid
y borramos el /etc/squid/squid.conf
ya que ese tiene muchos comentarios
y con nano /etc/squid/squid.conf
Y copiamos este texto .. obvio sustituyendo la IP 192.168.25.10/24 por la de tu Red Local
http_port 3128 transparent
cache_mem 100 MB
cache_dir ufs /var/spool/squid 150 16 256
acl red_local src 192.168.25.10/24
acl localhost src 127.0.0.1/32
acl all src all
http_access allow localhost
http_access allow red_local
access_log /var/log/squid/access.log squid
Ahora para hacer el proxy transparente creamos un script
nano /etc/init.d/fw.proxy
#!/bin/bash
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $portmap
# Should-Stop:       $portmap
# X-Start-Before:    nis
# X-Stop-After:      nis
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d/juego_et.sh
### END INIT INFO
# squid server IP
SQUID_SERVER=”192.168.1.50″
# Interface connected to Internet
INTERNET=”eth0″
# Interface connected to LAN
LAN_IN=”eth1″
# 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
y finalizando en consola dar los permisos y agregar el scritps para que se inicie junto con el sistema
chmod a+x /etc/init.d/fw.proxycp /etc/init.d/fw.proxy /etc/init.d
update-rc.d /etc/init.d/fw.proxy defautls
Siendo la 3era vez que instalo Debian + SQUID me animo a crear este tutorial

Primero Instalar Debian  

En este caso instale la version 6.0

Luego Actualizar nuestro Sistema Operativo (Debian)

apt-get update
apt-get upgrade


Como estamos instalando Squid Transparente debemos de tener:
2 Tarjetas de Red.
Por defecto cuando instalas Debian te configura la tarjeta de Red que recibe el Internet: eth0
debemos de agregar la Segunda Tarjeta de Red.
Para eso escribimos:
nano /etc/network/interfaces
y agregamos la Segunda Interface
allow-hotplug eth1
iface eth1 inet static
address 192.168.25.1
netmask 255.255.255.0
network 192.168.25.0
broadcast 192.168.25.255

y reiniciamos el servicio:
/etc/init.d/networking restart
o reiniciamos el sistema:
Ahora instalamos el SQUID
apt-get install squid
y borramos el /etc/squid/squid.conf
ya que ese tiene muchos comentarios
y con nano /etc/squid/squid.conf
Y copiamos este texto .. obvio sustituyendo la IP 192.168.25.10/24 por la de tu Red Local

http_port 3128 transparent
cache_mem 100 MB
cache_dir ufs /var/spool/squid 150 16 256
acl red_local src 192.168.25.10/24
acl localhost src 127.0.0.1/32
acl all src all
http_access allow localhost
http_access allow red_local
access_log /var/log/squid/access.log squid

Ahora para hacer el proxy transparente creamos un script

nano /etc/init.d/fw.proxy

#!/bin/bash
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $portmap
# Should-Stop:       $portmap
# X-Start-Before:    nis
# X-Stop-After:      nis
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d/juego_et.sh
### END INIT INFO

# squid server IP
SQUID_SERVER=”192.168.1.50″
# Interface connected to Internet
INTERNET=”eth0″
# Interface connected to LAN
LAN_IN=”eth1″
# 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

y finalizando en consola dar los permisos y agregar el scritps para que se inicie junto con el sistema

chmod a+x /etc/init.d/fw.proxy
cp /etc/init.d/fw.proxy /etc/init.d
update-rc.d /etc/init.d/fw.proxy defautls

No hay comentarios:

Publicar un comentario en la entrada