Настройка прозрачного проксирования на Squid 2.7

Автор anarych7, 01 августа 2012, 06:24:16

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

anarych7

Доброго дня!
Задача.
Дано:
Две машины под Debian 6.0.5 x64: debian1, debian2;
На debian2 стоит одна сетевая карта с интерфейсами:
eth0 - смотрящий в сеть института(192.168.42.0/24)
eth0:local - смотрящий в локальную сеть(10.10.10.0)
На debian1 стоит одна сетевая карта с интерфейсами:
eth0 - смотрящий в локальную сеть(10.10.10.0/24)
ip адреса
debian1: ip_eth0 10.10.10.11 mask 255.255.255.0
debian2: ip_eth0 192.168.42.242 mask 255.255.255.0
debian2: ip_eth0:local 10.10.10.1 mask 255.255.255.0

Доступ в инернет идет через прокси института: 192.168.21.2:8080.
Каскадное проксирование сделано.
Конфиги ниже.

Конфиг iptables:

# !/bin/sh
IPTABLES="/sbin/iptables"
echo 1 > /proc/sys/net/ipv4/ip_forward

## Old version. Stable. Restore if new will not work.
$IPTABLES -F
$IPTABLES -A INPUT -i lo -j ACCEPT

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

$IPTABLES -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT

# Разрешаем трафик на loopback-интерфейсе
$IPTABLES -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
$IPTABLES -A FORWARD -i eth0:local -o eth0 -j ACCEPT

# Включаем NAT (для того чтобы пользователи смогли выходить в Интернет)
$IPTABLES -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.42.242
$IPTABLES -t nat -A POSTROUTING -p tcp -s 10.10.10.11 --dst 10.10.10.0/24 --dport 80 -j SNAT --to-source 192.168.42.242

# Разрешаем ответы из внешней сети
$IPTABLES -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
$IPTABLES -A FORWARD -i eth0 -o eth0:local -j REJECT

#for squid
$IPTABLES -t nat -A PREROUTING -p tcp -m multiport --dport 80,443 -j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3128

## It is using for OPENVPN. Something have to be delete. SOLVE IT LATER!
#$IPTABLES -t nat -A POSTROUTING -p tcp -s 11.11.11.11 ! --dst 11.11.11.0/24 --dport 8080 -j SNAT --to-source 192.168.42.242
#$IPTABLES -t nat -A POSTROUTING -p tcp -s 11.11.11.6 ! --dst 11.11.11.0/24 --dport 8080 -j SNAT --to-source 192.168.42.242
#$IPTABLES -A INPUT -p udp -m udp --dport 11194 -j ACCEPT
#$IPTABLES -A OUTPUT -p udp -m udp --sport 11194 -j ACCEPT
#$IPTABLES -A FORWARD -s 11.11.1.0/24 -d 192.168.42.0/24 -i tun+ -o eth0:local -p icmp  -j ACCEPT
#$IPTABLES -A FORWARD -s 192.168.42.0/24 -d 11.11.11.0/24 -i eth0:local -o tun+ -p icmp  -j ACCEPT
#$IPTABLES -A FORWARD -s 11.11.1.0/24 -d 192.168.42.0/24 -i tun+ -o eth0:local -p tcp -m tcp -m multiport --dports 22,3389,8080  -j ACCEPT
#$IPTABLES -A FORWARD -s 192.168.42.0/24 -d 11.11.11.0/24 -i eth0:local -o tun+ -p tcp -m tcp -m multiport --sports 22,3389,8080  -j ACCEPT


Конфиг squid:

#Recommended minimum configuration:

acl manager proto cache_object

acl loop src 127.0.0.0/24
acl local_net src 10.10.10.0/24
acl isem_net src 192.168.42.0/24
acl debian2_server src 192.168.42.242/32
acl all src all
acl block dstdomain "/etc/squid/block.acl"

http_access allow loop
http_access allow local_net
http_access allow isem_net
http_access allow debian2_server
http_access allow all
http_access deny block

acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager debian2_server
http_access deny manager
http_access allow purge debian2_server
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow debian2_server
http_access allow all

icp_access allow all

cache_peer 192.168.21.2 parent 8080 0
http_port 192.168.42.242:3128 transparent
http_port 127.0.0.1:3128
http_port 10.10.10.1:3128

never_direct allow all
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$       0       20%     2880
refresh_pattern .               0       20%     4320

acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
hosts_file /etc/hosts
coredump_dir /var/spool/squid


Собственно проблема в том, что прозрачность не работает. Доступа в интернет нет, если настройки прокси убраны из диалога настройки прокси-службы.
Помогите советом, решением.

PS. Конфиги наверняка корывые, ибо было много экспериментов. Но прокси таки работает, но не прозрачно.
Спасибо.

kobzar

 У вас в конфиге сквида стит слушат порт 3128 а в настройках клиенто 8080
как то не сходиться....
Ты дорого мой друг, заплатишь за ошибку,..
Когда оскал мой милый, ты приймешь за улыбку.

anarych7

Не совсем понял вашу идею.
Если вы об этом:
cache_peer 192.168.21.2 parent 8080 0
то тут все нормально. Это прокси института. И тут делаю каскадное проксирование.

kobzar

извините я немного запутался в вашем описании...
Ты дорого мой друг, заплатишь за ошибку,..
Когда оскал мой милый, ты приймешь за улыбку.

fry

#4
http_port 10.10.10.1:3128 transparent
на машине debian1 в качестве default gateway должен быть указан 10.10.10.1
и еще: 443 порт не проксируется прозрачно.
Товарищи призывники! Надо понимать всю глубину наших глубин!

Руководство по добавлению изображений на форум