Прозрачный прокси

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Silent237
рядовой
Сообщения: 12
Зарегистрирован: 2009-02-08 15:50:41

Прозрачный прокси

Непрочитанное сообщение Silent237 » 2009-02-08 16:00:00

Не получается завернуть траффик на прозрачный прокси, уже весь моск сломал.
xl0 - локальный интерфейс (10.11.100.1)
rl0 - смотрит на АДСЛ-модем (192.168.23.204)
tun0 - PPPoE соединение с провайдером (динамический ип)
настройки фаерволла:

Код: Выделить всё

#!/bin/sh
IPFW="/sbin/ipfw"
NATCMD="/sbin/natd"

INT_IFACE="xl0"
EXT_IFACE="rl0"

${IPFW} -q flush

${IPFW} add 10 check-state

${IPFW} add 15 allow all from me to me

${IPFW} add 23 allow all from any to any via ${INT_IFACE} # разрешаем всё из внутренней сетки
${IPFW} add 24 allow all from me to any out           # разрешаем все исходящие соединения
${IPFW} add 25 allow all from any to any established      # разрешаем все установившиеся соединения

${IPFW} add 27 fwd 127.0.0.1,3129 all from 10.11.100.0/24 to any http,5190,5222 out via tun0  #собственно пытаемся завернуть траффик

### VPN
${IPFW} add 41 allow gre from any to any
${IPFW} add 42 allow tcp from me to any dst-port 1723 via ${EXT_IFACE} setup keep-state
### ssh in host from int lan
${IPFW} add 50 allow tcp from any to me ssh via ${INT_IFACE}
# DNS (если ваш сервер ипользуется как DNS сервер для внутренней сети)
${IPFW} add 172 allow udp from any to 85.15.64.49
${IPFW} add 173 allow udp from 85.15.64.49 to any
### icmp
${IPFW} add 180 allow icmp from any to any
###
${IPFW} add 65000 deny all from any to any
выдержка rc.conf

Код: Выделить всё

firewall_enable="YES"
#firewall_type="open"
firewall_script="/etc/firewall.sh"
firewall_logging="YES"
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="vtk"
natd_enable="YES"
natd_interface="tun0"
Собственно добавляем в фаерволл

Код: Выделить всё

${IPFW} add 26 allow all from 10.11.100.0/24 to any out via tun0
все работает, но, понятно, не через прокси.
Сквид настроен корректно - в настройках браузера указываю 10.11.100.1:3129 и, больше ничего не трогая, все работает.
Помогите, уже сломал весь мозг, пытаясь разобраться.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Прозрачный прокси

Непрочитанное сообщение paradox » 2009-02-08 16:11:37

${IPFW} add 27 fwd 127.0.0.1,3129 all from 10.11.100.0/24 to any http,5190,5222 out via tun0
чтото мне кажеться что out tun0 уже имеет другой src переписаный натом (я так понимаю нат есть)

да и вообще
неумеет что то уже молодежь думать методом исключений и пошагово

Silent237
рядовой
Сообщения: 12
Зарегистрирован: 2009-02-08 15:50:41

Re: Прозрачный прокси

Непрочитанное сообщение Silent237 » 2009-02-08 16:21:59

нат работает даже при открытом фаерволле, за счет того, что описан в rc.conf
я уже исключал все что только можно и неможно, уже сил нет..

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Прозрачный прокси

Непрочитанное сообщение paradox » 2009-02-08 16:32:45

я вообще то имел ввиду совсем другое
ПАКЕТ КОТОРЫЙ ВЫХОДИТ С out tun0 МОЖЕТ ИМЕТЬ УЖЕ ДРУГОЙ SRC КОТОРЫЙ ИМЕЕТ УЖЕ IP/NET НАТА А НЕ ВАШЕЙ СЕТИ
вот как я предполагаю

а насчет всего что можно
ну значит еще недодумались
проверить
1 что пакеты попадают в правило fwd
2 что проксик получает эти пакеты

как минимум
при котором все должно работать
а вы что то крутите угадываете что куда подставить что бы заработало
думать кто будет?
анализировать?

зы
вы геометрию в школе тоже методом угадайди развязывали?

Silent237
рядовой
Сообщения: 12
Зарегистрирован: 2009-02-08 15:50:41

Re: Прозрачный прокси

Непрочитанное сообщение Silent237 » 2009-02-08 17:07:44

Код: Выделить всё

Feb  9 00:04:36 237 kernel: ipfw: 27 Forward to 127.0.0.1:3129 TCP 10.11.100.2:56638 213.180.204.8:80 out via tun0
стало быть пакеты форвардятся, но до сквида недоходят. access.log сквида тоже молчит.
добавление правила

Код: Выделить всё

${IPFW} add 16 allow all from any to any via lo0
проблему не решило.

maradona
сержант
Сообщения: 188
Зарегистрирован: 2007-12-13 1:06:44
Откуда: г. Ровно
Контактная информация:

Re: Прозрачный прокси

Непрочитанное сообщение maradona » 2009-02-08 17:39:06

Чио говорит ipfw show на это правило:

Код: Выделить всё

${IPFW} add 27 fwd 127.0.0.1,3129 all from 10.11.100.0/24 to any http,5190,5222 out via tun0
если прозрачный зачем тогда это:

Код: Выделить всё

Сквид настроен корректно - в настройках браузера указываю 10.11.100.1:3129
попробуй поставить в сквиде вот так:

Код: Выделить всё

http_port  10.11.100.1:3128 transparent

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Прозрачный прокси

Непрочитанное сообщение paradox » 2009-02-08 18:27:20

tcpdump ом посмотри пакеты уходят с интерфейса или нет
и куда идут
а то может фаер стработал
но дальше где то рубонул
мало ли что там у вас накручено

Silent237
рядовой
Сообщения: 12
Зарегистрирован: 2009-02-08 15:50:41

Re: Прозрачный прокси

Непрочитанное сообщение Silent237 » 2009-02-08 19:04:22

maradona писал(а):Чио говорит ipfw show на это правило:

Код: Выделить всё

${IPFW} add 27 fwd 127.0.0.1,3129 all from 10.11.100.0/24 to any http,5190,5222 out via tun0
237# ipfw show
00027 3 156 fwd 127.0.0.1,3129 log logamount 100 ip from 10.11.100.0/24 to any dst-port 80,5190,5222 out via tun0
Правило работает, пакеты форвардятся, это можно понять из приведенных выше логов.
maradona писал(а):если прозрачный зачем тогда это:

Код: Выделить всё

Сквид настроен корректно - в настройках браузера указываю 10.11.100.1:3129
Проверки ради. Вообще, конечно, запускаю с пустыми настройками браузера.
maradona писал(а):попробуй поставить в сквиде вот так:

Код: Выделить всё

http_port  10.11.100.1:3128 transparent
Не помогло..
Но изменение есть: раньше при запросе странички браузер думал секунд 20, потом показывал чистый лист, сейчас мгновенно говорит что страница недоступна.
paradox писал(а):tcpdump ом посмотри пакеты уходят с интерфейса или нет
и куда идут
а то может фаер стработал
но дальше где то рубонул
мало ли что там у вас накручено
Все, что у меня накручено - я привел.
xl0 - смотрящий в локалку интерфейс
237 - hostname моего серванта
diana.vtelecom.ru - ДНС провайдера

Код: Выделить всё

 tcpdump -i xl0
02:04:53.017458 IP 10.11.100.2.37144 > 237.domain: 46013+ AAAA? www.google.com. (32)
02:04:53.017683 IP 237 > 10.11.100.2: ICMP 237 udp port domain unreachable, length 36
02:04:53.028416 IP 10.11.100.2.39088 > diana.vtelecom.ru.domain: 46013+ AAAA? www.google.com. (32)
02:04:53.054188 IP diana.vtelecom.ru.domain > 10.11.100.2.39088: 46013 1/1/0 CNAME www.l.google.com. (100)
02:04:53.054604 IP 10.11.100.2.51434 > 237.domain: 47968+ A? www.google.com. (32)
02:04:53.054753 IP 237 > 10.11.100.2: ICMP 237 udp port domain unreachable, length 36
02:04:53.060402 IP 10.11.100.2.50640 > diana.vtelecom.ru.domain: 47968+ A? www.google.com. (32)
02:04:53.080980 IP diana.vtelecom.ru.domain > 10.11.100.2.50640: 47968 5/7/7 CNAME www.l.google.com.,[|domain]
02:04:53.186532 IP 10.11.100.2.38133 > fx-in-f103.google.com.http: S 1887259886:1887259886(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 6>
02:04:53.187064 IP fx-in-f103.google.com.http > 10.11.100.2.38133: R 0:0(0) ack 1887259887 win 0

Silent237
рядовой
Сообщения: 12
Зарегистрирован: 2009-02-08 15:50:41

Re: Прозрачный прокси

Непрочитанное сообщение Silent237 » 2009-02-08 19:07:53

paradox писал(а):tcpdump ом посмотри пакеты уходят с интерфейса или нет
и куда идут
а то может фаер стработал
но дальше где то рубонул
мало ли что там у вас накручено
Кстати, когда комментирую последнее (оно же единственное) правило содержащее слово deny, то проблема не решается.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Прозрачный прокси

Непрочитанное сообщение paradox » 2009-02-08 19:11:05

тьфу ты нуты
tcpdump ом на lo0 я имел ввиду :cz2:

Silent237
рядовой
Сообщения: 12
Зарегистрирован: 2009-02-08 15:50:41

Re: Прозрачный прокси

Непрочитанное сообщение Silent237 » 2009-02-08 19:22:27

а чистенько там... вывод только какой из этого? логи же говорят, что пакет форвардится и правило срабатывает в счетчиках..

Silent237
рядовой
Сообщения: 12
Зарегистрирован: 2009-02-08 15:50:41

Re: Прозрачный прокси

Непрочитанное сообщение Silent237 » 2009-02-08 19:27:06

кстати, вот еще какой момент присутствует:

Код: Выделить всё

237# ipfw show
00010   0    0 check-state
00015   0    0 allow ip from me to me
[b]00016   0    0 allow log logamount 100 ip from any to any via lo0[/b]
00023  72 6444 allow ip from any to any via xl0
00024   0    0 allow ip from me to any out
00025   0    0 allow ip from any to any established
[b]00027   1   52 fwd 127.0.0.1,3129 log logamount 100 ip from 10.11.100.0/24 to any dst-port 80,5190,5222 out via tun0[/b]
00041   0    0 allow gre from any to any
00042   0    0 allow tcp from me to any dst-port 1723 via rl0 setup keep-state
00050   0    0 allow tcp from any to me dst-port 22 via xl0
00172   2  120 allow udp from any to 85.15.64.49
00173   2  496 allow udp from 85.15.64.49 to any
00180   0    0 allow icmp from any to any
65000   0    0 deny ip from any to any
65535 122 9178 allow ip from any to any
форвард срабатывает, а правило завернутые пакеты не отображает и в tcpdump пусто. чувствую, истина где-то рядом :)

Silent237
рядовой
Сообщения: 12
Зарегистрирован: 2009-02-08 15:50:41

Re: Прозрачный прокси

Непрочитанное сообщение Silent237 » 2009-02-09 7:15:51

а сквид нужно как-то особо настраивать для прозрачной работы?
squid-2.7.5
а то я в нем кроме

Код: Выделить всё

http_port 10.11.100.1:3129 transparent
и настроек доступа больше ничего не выставлял

rezon
проходил мимо

Re: Прозрачный прокси

Непрочитанное сообщение rezon » 2009-02-09 13:18:33

Вот кусок в котором всем разрешено всё.
Попробуй у себя поправить аналогично.
И без точного указания адреса на который он вешается.

Далее советую уже

Код: Выделить всё

acl all src all
acl SSL_ports port 443
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 CONNECT method CONNECT

http_access allow !Safe_ports
http_access allow CONNECT !SSL_ports
http_access allow all

http_port 3128 transparent

rezon
проходил мимо

Re: Прозрачный прокси

Непрочитанное сообщение rezon » 2009-02-09 13:24:38

xl0 - локальный интерфейс (10.11.100.1)
тогад перенеси вот это в самое начало но после
add allow all from any to any via lo0
add 27 fwd 127.0.0.1,3129 all from 10.11.100.0/24 to any http,5190,5222 via xl0

reZon
проходил мимо

Re: Прозрачный прокси

Непрочитанное сообщение reZon » 2009-02-09 13:26:57

1. И как всегда забыл кое-что, проверь что бы правило заворачивающее на сквид заворачило на тот же порт что и в конфе

2. И как ты можешь заворачивать на сквид 127.0.0.1 если он у тебя висит на 10.11.100.1?

Silent237
рядовой
Сообщения: 12
Зарегистрирован: 2009-02-08 15:50:41

Re: Прозрачный прокси

Непрочитанное сообщение Silent237 » 2009-02-09 13:56:26

УРА)))))

Код: Выделить всё

${IPFW} add 17 fwd 127.0.0.1,3129 all from 10.11.100.0/24 to any http via xl0
И все работает))))