Установка SQUID с опцией enable-htcp для организации работы дочернего прокси через родительский по GRE-тоннелюНа родительском прокси:
1. Скачал src пакет с той же версией squid что и стояла на проксике по ссылке
http://www.rpmfind.net/linux/rpm2html/search.php?query=squid&submit=Search+...&system=&arch=

2. Установил этот пакет: #rpm –ivh squid-.2.4.STABLE6-1.7.2.src.rpm
3. Поправил spec-файл в /usr/src/asplinux/SPECS. Дописал опцию вручную.

4. #rpmbuild –ba squid.spec -прошло оk
5. #rpm –Uvh –force squid-.2.4.STABLE6-1.7.2.src.rpm
6. Поправил симлинк на /etc/squid/~errors /usr/lib/squid/errors/English
7. Разремарил в /etc/squid/squid.conf следующие строки:
icp_port 3130
htcp_port 4827
8. В самом начале секции ACCESS CONTROL файла squid.conf добавил следующее:
acl admnet1 src 192.168.1.0/24
acl admnet2 src 192.168.135.0/24 #Здесь указываем сети, которые будут ходить в инет через дочерний прокси чтобы родительский пропускал клиентов из этих сетей без вторичной авторизации
http_access allow admnet1
http_access allow admnet2
9. #service squid restart –ok
10. Чтобы исключить подсеть из подсчета статистики в etc/sarg/sarg.conf отредактировал:
# TAG: exclude_hosts file
# Hosts, domains or subnets will be excluded from reports.
#
# Eg.: 192.168.10.10 - exclude ip address only
# 192.168.10.0 - exclude full C class
# s1.acme.foo - exclude hostname only
# acme.foo - exclude full domain name
#
#2008#exclude_hosts none
exclude_hosts 192.168.135.0
exclude_hosts 192.168.1.0
11. Отредактировал /etc/sysconfig/iptables
……
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 3128 -j ACCEPT ……
-A INPUT -s 192.168.135.0/30 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 192.168.135.0/30 -p udp -m udp --dport 3128 -j ACCEPT
-A INPUT -s 192.168.135.0/30 -p udp -m udp --dport 3130 -j ACCEPT
-A INPUT -s 192.168.135.0/30 -p tcp -m tcp --dport 3130 -j ACCEPT
-A INPUT -s 192.168.135.0/30 -p icmp -j ACCEPT
……..
Применяем новые правила:
#service iptables reload
12. Поднимаем тоннель скриптом /etc/init.d/tun_mat следующего содержания
#!/bin/sh
modprobe ip_gre
ip tunnel add mat mode gre remote 10.16.16.2 local 81.81.81.100 ttl 255 #Имя тоннеля mat носит произвольный характер
#здесь 10.16.16.2 - адрес дочернего прокси, 81.81.81.100 - собственный адрес родительского прокси
ip link set mat up
ip addr add 192.168.135.1/30 dev mat
ip route add 192.168.1.0/24 dev mat
13. Проверяем маршрутизацию #route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface ................
81.81.81.98 * 255.255.255.252 U 0 0 0 eth0
192.168.135.0 * 255.255.255.0 U 0 0 0 mat
192.168.1.0 * 255.255.255.0 U 0 0 0 mat ...............
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 81.81.81.99 0.0.0.0 UG 0 0 0 eth0
На дочернем прокси:
1. Отредактировал /etc/squid/squid.conf следующим образом:
icp_port 3130
#htcp_port 4827
cache_peer 10.10.10.100 parent 3128 3130 no-query default
#Здесь 10.10.10.100 - внутренний интерфейс родительского прокси, то есть интерфейс смотрящий не
#в сторону провайдера, а в локальную сеть
#cache_peer proxy.mydomen.ru parent 3128 3130
…….
…….
# ACCESS CONTROLS
#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
never_direct allow all
2. #service squid restart –ok
3. Отредактировал /etc/sysconfig/iptables
# Generated by iptables-save v1.2.7a on Fri Nov 2 15:09:25 2007
*filter
:INPUT ACCEPT [28319544:14880855455]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [34180030:29275487880]
-A INPUT -s 81.81.81.100 -j ACCEPT
-A INPUT -s 192.168.135.0/30 -j ACCEPT -A FORWARD -s 192.168.135.0/30 -d 192.168.1.0/24 -j ACCEPT
-A FORWARD -s 192.168.1.0/24 -d 192.168.135.0/30 -j ACCEPT ......................
4.Поднимаем тоннель скриптом /etc/init.d/tun_mat следующего содержания
#!/bin/sh
modprobe ip_gre
ip tunnel add mat mode gre remote 81.81.81.100 0 local 10.16.16.2 ttl 255
ip link set mat up
ip addr add 192.168.135.2/30 dev mat
ip route add 10.10.10.0/24 dev mat
5. Проверяем маршрутизацию
#route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.135.0 * 255.255.255.0 U 0 0 0 mat
10.10.10.0 * 255.255.255.0 U 0 0 0 mat
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
10.16.16.0 * 255.255.255.0 U 0 0 0 eth2
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 10.16.16.1 0.0.0.0 UG 0 0 0 eth2
|