PDA

Показать полную графическую версию : Интернет-шлюз через родительский прокси


atm_kzn
19-10-2011, 22:21
Добрый день.
Ситуация следующая: провайдер (точнее вышестоящая организация) даёт интернет через свой прокси. Хочу поднять шлюз на ubuntu server 10.04 с прозрачным прокси (https через nat пусть идёт).
Сеть настроена следующим образом:
/etc/network/interfaces
#eth0 - локалка
#eth1 - инет
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.254
netmask 255.255.255.0

auto eth1
iface eth1 inet static
address 192.168.71.30
netmask 255.255.255.252
gateway 192.168.71.29


Собственно, в /etc/systcl.conf раскоментировал "net.ipv4.ip_forward = 1"
Ну и включён маскарад в iptables:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE

DNS-ы форвардятся при помощи dnsmasq.
Если на клиентах в качестве шлюза и днс-сервера указать 192.168.0.254 и убрать в настройках браузера родительский прокси, то инета нет.
Если на сервере поднять прозрачный squid, настроенный на родительский прокси и завернуть 80 порт на 3128, то инет на клиентах появляется, но без явного указания прокси в браузере не работает https.
Я так понимаю, что серверу нужно как-то указать, чтобы он работал через родительский прокси (вопрос - КАК?). wget и apt на сервере работают, но для них указан прокси.
Редактировать сообщение

El Scorpio
20-10-2011, 09:22
Если на сервере поднять прозрачный squid, настроенный на родительский прокси и завернуть 80 порт на 3128, то инет на клиентах появляется, но без явного указания прокси в браузере не работает https. »
Потому что HTTPS по-умолчанию использует другой порт (443-й), для которого "заворачивание" не настраивали

dmitryst
20-10-2011, 12:28
Потому что HTTPS по-умолчанию использует другой порт (443-й), для которого "заворачивание" не настраивали »
А Squid https протокол вроде как не обрабатывает:
Squid can accept regular proxy traffic using https_port in the same way Squid does it using an http_port directive. Unfortunately, popular modern browsers do not permit configuration of TLS/SSL encrypted proxy connections. There are open bug reports against most of those browsers now, waiting for support to appear. If you have any interest, please assist browser teams with getting that to happen. Meanwhile, tricks using stunnel or SSH tunnels are required to encrypt the browser-to-proxy connection before it leaves the client machine. These are somewhat heavy on the network and can be slow as a result. (отсюда - http://wiki.squid-cache.org/Features/HTTPS). Лучше весь шифрованый трафик пускать напрямую, не через сквид

vadblm
20-10-2011, 12:59
SSL (да и вообще всё) можно пускать через SOCKS5 прокси, но ессно нужен и парент SOCKS5.

atm_kzn
20-10-2011, 13:32
Потому что HTTPS по-умолчанию использует другой порт (443-й), для которого "заворачивание" не настраивали »
Пробовал, без толку.
А Squid https протокол вроде как не обрабатывает: »
Именно.

Проблема в том, что если сквид остановить и оставить только правило для ната - инета всё равно нет. Непонятно, как сказать серверу, чтобы он работал через родительский прокси.

dmitryst
20-10-2011, 13:44
Проблема в том, что если сквид остановить и оставить только правило для ната - инета всё равно нет. Непонятно, как сказать серверу, чтобы он работал через родительский прокси. »
что значит- "нет интернета"? Недоступен порт 80 или 443? Для 443-го надо делать свое правило, чтобы в обход сквида шел траффик.

atm_kzn
20-10-2011, 14:35
что значит- "нет интернета"? »
Это значит, что если просто сделать нат, то на пользовательских компах никакие страницы не грузятся (ни по http, ни по https), хотя по идее
net.ipv4.ip_forward = 1
и
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
достаточно для того, чтобы интернет в локалке был.
Для 443-го надо делать свое правило, чтобы в обход сквида шел траффик. »
Я так понимаю, что 443 нужно заворачивать не на eth1, а на порт родительского прокси? Я правильно понимаю?

dmitryst
20-10-2011, 21:20
Я так понимаю, что 443 нужно заворачивать не на eth1, а на порт родительского прокси? Я правильно понимаю? »
трафик от локальной сети заворачиваем на тот порт, который выходит в интернет.

если просто сделать нат, то на пользовательских компах никакие страницы не грузятся »
я в линуксах не разбираюсь, но по идее должно работать. Проверьте, на каком этапе исчезает пинг.

El Scorpio
21-10-2011, 01:03
А Squid https протокол вроде как не обрабатывает: »
Прокси-сервера HTTPS не могут кэшировать, потому что не могут расшифровать. Однако перенаправлять - перенаправляют

atm_kzn
21-10-2011, 16:42
Проверьте, на каком этапе исчезает пинг. »
Пинги и трасировка не работают. Трасировка обрывается на одном из родительских маршрутизаторов, видимо, запрещено.
Однако перенаправлять - перенаправляют »
Ага, в двух организациях настраивал squid и всё работало, а в своей не могу с https разобраться. Да и просто NAT не работает, только через squid.

Ладно, пока оставлю непрозрачный прокси (а так хотелось не прописывать руками настройки у пользователей, хотя можно попробовать с файлом автоматической конфигурации прокси поиграться).

dmitryst
21-10-2011, 18:50
Однако перенаправлять - перенаправляют »
со сквидом мне договориться не удалось - не работало.

Пинги и трасировка не работают »
это как?

El Scorpio
24-10-2011, 09:17
Да и просто NAT не работает, только через squid. »
Значит, в чём-то неправильно настроен.
Но это уже второй вопрос




© OSzone.net 2001-2012