TPROXY en CentOS 5.5

bitfrost's picture

(Traduccion de http://www.linuxinfo.com.br/squid_tproxy.htm)

+ Puente + Squid en CentOS 5.5 x86_64 TProxy 06.04.2010 22:43

Después de numerosos intentos, en busca de documentación en Internet a través de Google, llegué a través de piezas de la documentación y las pruebas en mi casa y uno de los proveedores de servicio que hago cuenta de que esta documentación se destina. Mostrar cómo se puede configurar un CentOS 5.5 como puente y, al mismo tiempo sirven como un proxy transparente completamente a través de TProxy. Con esta función la colocación de proxy no afecta a la configuración de la topología de red y al mismo tiempo permite a los usuarios acceso a su lado para ser identificado debido a que el Internet no es la IP del servidor proxy que hace la consulta, pero el período de investigación del usuario. También elimina los problemas como RapidShare no permiten las descargas provenientes de la misma IP que cuentas gratuitas, ya que cada cliente se irá con su propia propiedad intelectual. Nota: Si hay después de la NAT del sistema Proxy N: 1 también conocido como Masquerade no ayudará a la TProxy. Este documento tiene como objetivo ayudar, pero no será responsable por cualquier daño que pueda llegar a suceder.

Para montar nuestro servidor necesita tener el mínimo necesario para su funcionamiento. Requisitos previos a continuación:

- Kernel 2.6.30 o 2.6.31, 2.6.32 no uso porque se trata de un problema en TProxy y por lo tanto su uso no se recomienda hasta que se fijó. Hay nuevas versiones del kernel, pero no he hecho pruebas con .
- IPTables 1.4.3
- Squid 3.1.4
- Libcap2-devel

Debido a que CentOS 5.5 no tiene estos requisitos, tendremos que descargar, compilar e instalar. Otra cosa, este tutorial no le enseñará a instalar un CentOS 5.5, porque hay varias documentaciones ya existen. Lo que necesitamos es un sistema preparado para compilar programas. Necesitas por lo menos lo siguiente:

Yum groupinstall 'Herramientas de desarrollo "
Yum groupinstall "Bibliotecas de desarrollo '

Una buena práctica es utilizar siempre un sistema actualizado con el comando:

# Yum update

Ahora somos como nuestra red de prueba, antes de la topología de nuestro servidor proxy en el puente:

En esta red cada cliente viene con su IP pública y proxy transparente si ponemos uno en ese mismo puente, tendríamos el problema de la propiedad intelectual que van a la navegación, que es el proxy. Mi objetivo aquí es mostrar cómo configurar un proxy transparente% 100 y el puente TProxy usando el kernel, iptables, ebtables y Squid. Ahora vamos a ver cómo nuestra nueva topología. Tenga en cuenta que la puerta de entrada sigue siendo la misma 186.193.x.1 porque el proxy de la red, habrá:

Así que ahora vamos a poner las manos sucias y hacer que funcione una vez. Lol
Descargamos nuestra pre-requisitos:

# Cd / usr / src
# Wget-c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.10.tar.bz2
# Wget-c http://ftp.iitm.ac.in/pub/linux/libs/security/linux-privs/libcap2/libcap-2.19.tar.gz
# Wget-c http://www.netfilter.org/projects/iptables/files/iptables-1.4.3.2.tar.bz2
# Wget-c http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.1.tar.gz

Vamos a descomprimir el kernel, configurarlo con los módulos necesarios, compilarlo e instalarlo:

# Tar-linux-xvjpf 2.6.30.10.tar.bz2
# Ln-sf linux-2.6.30.10 Linux
# Cd / usr / src / linux

Ahora vamos a copiar una configuración para el núcleo y compruebe nuestro lo que necesitamos:

# Cp / boot/config-2.6.18-164.15.1.el5. Config
# Make menuconfig

Ahora en:

Redes de apoyo
Opciones de red
Red del Marco de filtrado de paquetes (Netfilter)
Núcleo de configuración de Netfilter
Con Netfilter seguimiento de apoyo
Proxy transparente apoyo (EXPERIMENTAL)
.
.
"TPROXY" objetivo de apoyo (EXPERIMENTAL) (NUEVO)
.
.
.
"Socket" partido de apoyo (EXPERIMENTAL)

Después de marcar estos soportes, salimos de la configuración del kernel y que los procedimientos para compilar e instalar el nuevo kernel. Es muy difícil que una parte. LOL

# Hacer
# Make modules_install
# Make install

Ahora vamos a convertirlo en el arranque. Editar / boot / grub / menu.lst con el editor de usted opción y cambiar la variable "default" para: default = 0
Eso es porque nuestro nuevo kernel, si cuenta, encabezará la lista de núcleos existentes y "0", dice para cargar la primera lista.
Vamos ahora volver a empezar con nuestro nuevo kernel. Nota: No he hecho optimizaciones en el núcleo ya que este no era el objetivo de este tutorial, o simplemente permitir que lo que yo necesito.

Antes de iniciar el sistema vamos a configurar nuestro puente:

Yum install bridge-utils

Vamos a crear el archivo / etc/sysconfig/network-scripts/ifcfg-br0 con el siguiente contenido:

DEVICE = br0
TYPE = Puente
BOOTPROTO = static
IPADDR = 186.193.x.3
NETMASK = 255255255224
ONBOOT = yes
DELAY = 0

En el ejemplo anterior que utiliza para 186.193.x.3 IP del proxy, no hace falta decir que 'x' es para ocultar la IP real que tengo. Lol Es necesario sustituir la propiedad intelectual en realidad se está utilizando las pruebas.

Ahora vamos a editar las otras interfaces que ya debe existir en el sistema que:

/ Etc/sysconfig/network-scripts/ifcfg-eth0

# Sistemas Integrados de Silicon [SiS] SiS900 PCI Fast Ethernet
DEVICE = eth0
BOOTPROTO = static
HWADDR = 00:01:6 C: B7: 1F: 50
ONBOOT = yes
PUENTE = br0

/ Etc/sysconfig/network-scripts/ifcfg-eth1

# 82543GC Intel Gigabit Ethernet Controller Corporation (de cobre)
DEVICE = eth1
BOOTPROTO = static
HWADDR = 00:03:47:72:97:22
ONBOOT = yes
PUENTE = br0

Mantenga su dirección MAC que ya está en la configuración de ustedes porque el sistema ya los detecta y sólo modificar el resto. Listo para el puente está listo y ahora podemos hacer el reinicio y continuar nuestro maratón. :)

# Reiniciar

Después del arranque comprobar si el nuevo kernel se ha cargado con el mismo comando:

# Uname-a
Linux 2.6.30.10 proxy.localdomain # 1 SMP Mar Abr 20 03:43:59 EDT 2010 i686 athlon i386 GNU / Linux

Ahora vamos a compilar e instalar iptables para descargar:

# Cd / usr / src /
# Tar-xvjpf iptables-1.4.3.2.tar.bz2
Cd # iptables-1.4.3.2 /
#. / Configure - prefix = /

Debido a que estamos usando un 64-bit (x86_64) utilizará los siguientes comandos:
# Hacer BINDIR = / sbin libdir = / lib64 KERNEL_DIR = / usr / src / linux
# Hacer BINDIR = / sbin libdir = / lib64 KERNEL_DIR = / usr / src / linux instalar

Para confirmar que usted está usando iptables acaba de instalar:

# Iptables-v
iptables v1.4.3.2: no hay comando especificado
Pruebe `iptables-h 'o' iptables - help 'para más información.

¡Perfecto! Ahora tenemos la última versión del núcleo con soporte para nuevas TProxy habilitado e iptables compilado e instalado. No necesitamos a iptables parche instalado ya que esta versión viene con soporte TProxy.

Ahora sal del calamar, pero esta necesidad que bajar el libcap2. IMPORTANTE! Sin libcap2 o una versión 2.09 o superior, el TProxy no funcionará porque el calamar no se compila con el apoyo adecuado. Esto realmente es muy, muy importante!

# Cd / usr / src
# Libcap Tar-xvzpf-2.19.tar.gz
Libcap-2.19 # cd /
# Make & & make install

Tan simple como eso. Ahora que podemos dejar para el calamar:

# Cd / usr / src
# Tar-xvzpf calamar-3.1.1.tar.gz
# Cd calamar-3.1.1 /
# -. / Configure exec_prefix = / usr - bindir = / usr / sbin - libexecdir = / usr/lib64/squid - localstatedir = / var - datadir = / usr / share / squid - sysconfdir = / etc / squid - enable-arp-acl - enable-epoll - enable-snmp - enable-eliminación de las políticas = "montón, LRU - enable-storeio =" aufs, diskd, UFS - enable-ssl - with-openssl = / usr / kerberos - enable-delay-pools - enable-linux-netfilter - with-pthreads - enable-NTLM-auth-ayudantes = "fakeauth" - enable-external-acl- ayudantes = "ip_user, ldap_group, unix_group, wbinfo_group" - enable-auth = "básica, implícita, NTLM, negociar" - enable-negociar-auth-ayudantes = "squid_kerb_auth" - enable-resumen-auth-ayudantes = " contraseña "- with-winbind-auth-desafío - enable-user-agent-log - enable-referer-registro - disable-dependencia de seguimiento - enable-host = localhost-cachemgr - enable-subraya - enable- básica-auth-ayudantes = "LDAP, MSNT, NCSA, PAM, SMB, YP, getpwnam, multi-dominio-NTLM, SASL" - enable-cache-digiere - enable-ident-búsquedas - con archivos grandes - enable-seguir-x-forwarded-de - enable-WCCPv2 - enable-fd-config - with-maxfd = 16384
# Hacer
# Make install

anteriormente, los parámetros. El / Configurar, la cosa más importante es la labor de la --linux-netfilter. active la opción No entraré en detalles de cada parámetro anterior, lo que costaría un montón de posibilidades de este tutorial.

Vamos a crear el grupo de usuarios y el calamar:

# Groupadd-g 23 calamares
# Useradd-u 23-g 23-d / var / spool / squid-s / sbin / nologin calamar

Tendremos que ajustar el squid.conf, que por defecto para tener una idea, pero las mejoras de voluntad de cada uno. Vamos a editar el archivo / etc / squid.conf y dejarlo como esta a continuación:

cache_mem 100 MB
cache_effective_user calamar
cache_effective calamar
access_log / var / log / squid / access.log squid
cache_store_log / var / log / squid / Store.log
cache_log / var / log / squid / cache.log
Error_directory / usr / share / squid / error / es
maximum_object_size 40960 KB
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl localhost src: 1 / 128
dst to_localhost acl 127.0.0.0 / 8 0.0.0.0/32
dst to_localhost acl: 1 / 128

# Si la red es una prueba de estas abajo, y luego elimine la correcta o lo que sea que utilice.
# Acl RFC1918 localnet src 10.0.0.0 / 8 # red interna Posible
# Acl src 172.16.0.0/12 localnet # RFC1918 red interna Posible
# Acl localnet src 192.168.0.0/16 # RFC1918 red interna Posible

# A continuación pongo las redes de prueba como el estado en mis dibujos, pero para alterar el probar
localnet acl src 186.194.x.0/24
localnet acl src 186.193.x.0/27

acl src localnet FC00:: / 7 # RFC 4193 red de sitios rango privado
localnet acl src fe80:: / 10 # RFC 4291 locales (-directamente conectado a) las máquinas de enlace

SSL_ports puerto 443 acl
Safe_ports acl el puerto 80 # http
Safe_ports acl el puerto 21 # ftp
Safe_ports acl el puerto 443 # https
puerto acl Safe_ports 70 # gopher
Safe_ports acl puerto 210 # wais
Safe_ports acl puerto # 1025-65535 puertos no registrados
Safe_ports acl puerto http # 280-Admin
Safe_ports acl puerto 488 # gss-http
Safe_ports acl puerto 591 # filemaker
Safe_ports acl puerto 777 # http multilingüe
CONEXIÓN método CONNECT acl

http_access allow localhost gerente
http_access deny manager

http_access deny! Safe_ports

CONEXIÓN http_access deny! SSL_ports

http_access allow localnet
http_access allow localhost
http_access deny all

http_port 3128
http_port 3129 tproxy

hierarchy_stoplist cgi-bin?

cache_dir ufs / var / spool / squid 30000 64 256

coredump_dir / var / spool / squid

# Agregar a cualquiera de sus propias entradas refresh_pattern por encima de estos.
^ Refresh_pattern ftp:1440 20% 10.080
gopher ^ refresh_pattern: 1440 0% 1440
refresh_pattern-i (/ cgi-bin / |? \) 0 0% 0
refresh_pattern. 0 20% 4320

Aviso de la acumulación: una línea roja (tproxy http_port 3129), ya que es muy importante!

Ahora crea un directorio con sus permisos:

# Mkdir-p / var / spool / squid
# Chown squid: squid / var / spool / squid
# Mkdir-p / var / log / squid
# Chown squid: squid / var / log / squid

Tendremos que inicializar el calamar y el prestar atención a tiempo para ver si muestra algún mensaje de error:

# Squid-z

Vamos a necesitar una secuencia de comandos para iniciar y detener el calamar cuando lo necesitamos. Así que vamos a crear uno en / etc / init.d / squid llamado con el siguiente contenido:

# / Bin / bash
Squid # Este script se encarga de iniciar y detener
# Caché de Internet de objetos de Squid
#
# Chkconfig: - 90 25
# Descripción: Calamar - Caché de Internet de objetos. objeto de almacenamiento en caché de Internet \
# Una forma de almacenar los objetos solicitados de Internet (es decir, los datos disponibles \
# A través de HTTP, FTP, Gopher y protocolos) en un sistema más cercano a la \
# Solicitud de sitio que a la fuente. navegadores web a continuación, utilizar el Can \
# Caché local Squid como un servidor proxy HTTP, reduciendo el tiempo de acceso como \
# Bueno como el consumo de ancho de banda.
# Pidfile: / var / run / squid.pid
# De configuración: / etc / squid / squid.conf

PATH = / usr / bin: / sbin: / bin: / usr / sbin
export PATH

# Biblioteca Fuente función.
. / Etc / rc.d / init.d / funciones

# Fuente de configuración de redes.
. / Etc / sysconfig / network

# No se producirá un error si el archivo de configuración es incompleto
# Establezca opciones por defecto:
SQUID_OPTS = $ {SQUID_OPTS: - "-D"}
SQUID_PIDFILE_TIMEOUT = $ {SQUID_PIDFILE_TIMEOUT: -20}
SQUID_SHUTDOWN_TIMEOUT = $ {SQUID_SHUTDOWN_TIMEOUT: -100}

# Determinar el nombre del calamar binario
[F / usr / sbin / squid] & & SQUID = calamares

prog = "$ SQUID"

# Determinar cuál es el directorio cache_swap
CACHE_SWAP = `sed-e 's /#.*// g' / etc / squid / squid.conf | \
cache_dir grep | awk '{print $ 3}' `
[-Z "$ CACHE_SWAP"] & & CACHE_SWAP = / var / spool / squid

Retval = 0

start () {

# Comprobar si el archivo de configuración del calamar está presente
if [! -F / etc / squid /] squid.conf, a continuación,
echo "El archivo de configuración / etc / squid / squid.conf perdido" 1> & 2
la salida 6
fi

# No se producirá un error si el archivo de configuración es incompleto.
# Establezca opciones por defecto:
SQUID_OPTS = $ {SQUID_OPTS: - "-D"}
SQUID_PIDFILE_TIMEOUT = $ {SQUID_PIDFILE_TIMEOUT: -20}
SQUID_SHUTDOWN_TIMEOUT = $ {SQUID_SHUTDOWN_TIMEOUT: -100}

if [-z "$ SQUID"], ENTONCES
echo "insuficiente privilegio" 1> & 2
la salida 4
fi

está en $ ADIR CACHE_SWAP; de
if [! -D $ adir/00], entonces
echo-n "$ ADIR init_cache_dir ..."
$ SQUID-z-F-D>> / var / log / squid / squid.out 2> & 1
fi
hecho
echo-n $ "A partir de $ prog"
$ SQUID $ SQUID_OPTS>> / var / log / squid / squid.out 2> & 1
Retval = $?
if [$ retval-eq 0]; a continuación,
tiempo de espera = 0;
al mismo tiempo:, el
[! -F / var / run /] squid.pid | | descanso
if [$ tiempo de espera-ge $ SQUID_PIDFILE_TIMEOUT], entonces
Retval = 1
UPS
fi
sleep 1 & & echo-n "."
tiempo de espera = $ ((tiempo de espera de uno))
hecho
fi
[$ Retval-eq 0] y el tacto y / var / lock / subsistemas / $ SQUID
[$ Retval-eq 0] & & echo_success
[$ Retval-ne 0] & & echo_failure
eco
return $ retval
}

stop () {

# No se producirá un error si el archivo de configuración es incompleto.
# Establezca opciones por defecto:
SQUID_SHUTDOWN_TIMEOUT = $ {SQUID_SHUTDOWN_TIMEOUT: -100}

$ echo-n "Deteniendo $ prog"
$ SQUID-k> cheque / var / log / squid / squid.out 2> & 1
Retval = $?
if [$ retval-eq 0]; a continuación,
$ SQUID-k y apagado
rm-f / var / lock / subsistemas / $ SQUID
tiempo de espera = 0
al mismo tiempo:, el
[-F / var / run / squid.pid] | | descanso
if [$ tiempo de espera-ge $ SQUID_SHUTDOWN_TIMEOUT], entonces
eco
devuelve 1
fi
capacidad para 2 & & echo-n "."
tiempo de espera = $ ((tiempo de espera de 2))
hecho
echo_success
eco
más
echo_failure
if [! -E / var / lock / subsistemas / $ SQUID], entonces
Retval = 0
fi
eco
fi
return $ retval
}

reload () {
# No se producirá un error si el archivo de configuración es incompleto.
# Establezca opciones por defecto:
SQUID_OPTS = $ {SQUID_OPTS: - "-D"}

$ $ SQUID-k reconfigure SQUID_OPTS
}

restart () {
parada
inicio
}

condrestart () {
[E / var / lock / subsistemas / squid] & & reiniciar | |:
}

rhstatus () {
estado de $ SQUID $ SQUID-& & ver k
}

punta de prueba () {
return 0
}

case "$ 1" en
de inicio)
inicio
;;

parada)
parada
;;

reload)
Actualizar
;;

reinicio del sistema)
reinicie
;;

condrestart)
condrestart
;;

de estado)
rhstatus
;;

sonda)
exit 0
;;

*)
echo $ "Usage: $ 0 {start | stop | Estado | cargar | reinicie |} condrestart"
la salida 2
esac

exit $?

Vamos a poner para que se inicie en el arranque:

# Chmod + x / etc / init.d / squid
# Chkconfig - 235 niveles de calamar en

Ahora que casi hemos terminado nuestro entorno tenemos que hacer caso vuelve a dirigir y por lo que necesitará la ebtables y no se encuentra en los repositorios de CentOS. El ebtables es muy importante para el funcionamiento de nuestro servidor en Bridge. Si alguien está usando este tutorial, pero no querer hacer un puente, entonces puede saltarse esta parte de la ebtables y sus reglas. Para instalar el repositorio EPEL ebtables'll añadir, la clase de Fedora para CentOS / RHEL. Antes de instalar yum-las prioridades de prioridad para los delegados y los depósitos de los que no ensuciar nuestro medio ambiente.

Yum install yum-prioridades

Ahora vamos a los repositorios en / etc / yum.repos.d / CentOS-Base.repo editar y hacer que se vea como el de abajo. Aviso de la variable "priority =":

[Base]
name = CentOS-$ releasever - Base
mirrorlist http://mirrorlist.centos.org/?release = = $ releasever y arco = $ basearch y repo = el
# Baseurl = http://mirror.centos.org/centos/ $ releasever / os / $ basearch /
gpgcheck = 1
gpgkey = file: / / / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
prioridad "1"

# Actualizaciones de lanzamiento
[Actualización]
name = CentOS-$ releasever - Actualizaciones
mirrorlist http://mirrorlist.centos.org/?release = = $ releasever y arco = $ basearch y repo = actualizaciones
# Baseurl = http://mirror.centos.org/centos/ $ releasever / actualizaciones / $ basearch /
gpgcheck = 1
gpgkey = file: / / / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
prioridad "1"

# Los paquetes utilizados / producidos en la construcción, pero no liberado
[Extensiones]
name = CentOS-$ releasever - Addons
mirrorlist http://mirrorlist.centos.org/?release = = $ releasever y arco = $ basearch y repo = addons
# Baseurl = http://mirror.centos.org/centos/ $ releasever / addons / $ basearch /
gpgcheck = 1
gpgkey = file: / / / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
prioridad "1"

# Paquetes adicionales que pueden ser útiles
[Detalles]
name = CentOS-$ releasever - Extras
mirrorlist http://mirrorlist.centos.org/?release = = $ releasever y arco = $ basearch y repo = extras
# Baseurl = http://mirror.centos.org/centos/ $ releasever / extras / $ basearch /
gpgcheck = 1
gpgkey = file: / / / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
prioridad "1"

# Paquetes adicionales que extienden la funcionalidad de paquetes existentes
[Centosplus]
name = CentOS-$ releasever - Plus
mirrorlist http://mirrorlist.centos.org/?release = = $ releasever y arco = $ basearch y repo = centosplus
# Baseurl = http://mirror.centos.org/centos/ $ releasever / centosplus / $ basearch /
gpgcheck = 1
habilitado = 1
gpgkey = file: / / / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority = 2

# Contrib - paquetes por los Usuarios Centos
[Contrib]
name = CentOS-$ releasever - Contrib
mirrorlist http://mirrorlist.centos.org/?release = = $ releasever y arco = $ basearch y repos contrib =
# Baseurl = http://mirror.centos.org/centos/ $ releasever / contrib / $ basearch /
gpgcheck = 1
habilitado = 1
gpgkey = file: / / / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority = 2

Ahora vamos a instalar el repositorio EPEL de 64 bits:

# Rpm-Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm

Incluso en los repositorios de ahora editará el epel.repo y dejarlo así:

[Epel]
name = Extra Paquetes para Enterprise Linux 5 - $ basearch
# $ Baseurl Basearch = http://download.fedoraproject.org/pub/epel/5/
mirrorlist http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch = = $ basearch
failovermethod = prioridad
habilitado = 1
gpgcheck = 1
gpgkey = file: / / / etc / pki / rpm-gpg / RPM-GPG-KEY-EPEL
prioridad = 12

[Epel-debuginfo]
name = Extra Paquetes para Enterprise Linux 5 - $ basearch - Depuración
# Baseurl = $ http://download.fedoraproject.org/pub/epel/5/ basearch / debug
mirrorlist http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch = = $ basearch
failovermethod = prioridad
enabled = 0
gpgkey = file: / / / etc / pki / rpm-gpg / RPM-GPG-KEY-EPEL
gpgcheck = 1
prioridad = 12

[Epel-source]
name = Extra Paquetes para Enterprise Linux 5 - $ basearch - Fuente
# Baseurl = http://download.fedoraproject.org/pub/epel/5/SRPMS
mirrorlist http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch = = $ basearch
failovermethod = prioridad
enabled = 0
gpgkey = file: / / / etc / pki / rpm-gpg / RPM-GPG-KEY-EPEL
gpgcheck = 1
prioridad = 12

Cuanto más alto sea el valor de prioridad, menor es la prioridad de los paquetes para que los paquetes tienen dos iguales, un repositorio para CentOS y EPEL en otro, el paquete será instalado el CentOS y no de la EPEL.

Ahora podemos instalar ebtables:

Yum install ebtables

Listo! Ahora tenemos todo lo que necesitamos en el sistema. Sólo tenemos que hacer algunos golpes más y listo pocas secuencias de comandos y tenemos nuestro puente con Squid corriendo TProxy +. Vamos a modificar la variable net.ipv4.ip_forward / etc / sysctl.conf y añadir otras dos nuevas. Esto:

net.ipv4.ip_forward = 1
net.netfilter.nf_conntrack_acct = 1
net.ipv4.conf.lo.rp_filter = 0

Para terminar vamos a crear dos scripts en / root / y ponerlos en / etc / rc.local para ejecutar en el arranque del sistema:

/ Root/frw1.sh

# / Bin / bash
iptables-t mangle-F
iptables-t mangle-X
iptables-t mangle-N DIVERSIÓN
iptables-t mangle-A PREROUTING-p tcp-m-j toma DIVERSIÓN

iptables-t mangle-para divertir j MARK - set-mark 1
mangle-j ACCEPT iptables-t para divertir

iptables-t mangle-A PREROUTING-p tcp - dport 80-j TPROXY - tproxy-marca 0x1/0x1 - en el puerto 3129

/ Root/frw2.sh

# / Bin / bash
-T-A brouter BROUTING ebtables-i-p ipv4 eth1 - proto tcp-ip - ip-dport 80-j REDIRECT - redirect-objetivo DROP

-T-A brouter BROUTING ebtables-i eth0-p ipv4 - proto tcp-ip - ip-sport 80-j REDIRECT - redirect-objetivo DROP

cd / proc / sys / net / puente /
for i in *
de
echo 0> $ i
hecho
unset i

Atención en una cosa, la notificación de los dos interfaces de red en rojo arriba. El, primero eth1 es la interfaz de red interna que se aplica a los clientes y la interfaz es eth0 que está conectada con el lado de Internet. Si su conexión es diferente, cambia la secuencia de comandos.

# Chmod + x / root/frw1.sh / root/frw2.sh

Ahora ponga las secuencias de comandos para ejecutar en el arranque. Para ello editar el archivo / etc / rc.local y agregar las 4 líneas de abajo:

ip rule añadir búsqueda FWMARK 1 100
ip route add locales 0.0.0.0 / 0 mesa dev al 100
/ Root/frw1.sh
/ Root/frw2.sh

Bueno, hecho. Ahora sólo para probar.

A continuación las referencias que he utilizado:

% # Http://wiki.squid-cache.org/ConfigExamples/Intercept/CentOsTproxy4?action=show&redirect=ConfigExamples 2FTPROXYPatchingCentOS TPROXY_v4_with_CentOS_5.3

http://wiki.squid-cache.org/Features/Tproxy4

http://techfree.com.br/wordpress/2009/01/18/tuning-no-squid/

Bueno, me han ayudado:)

Fuente Original:

Marcelo Gondim @ linuxinfo.com.br>

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
bitfrost's picture

BUGFIX

BUGFIX: En este tutorial falta agregar la puerta de enlace por defecto que sera la de nuestro router