LINUX.ORG.RU
ФорумAdmin

Перенаправить на squid


0

1

Есть linux-роутер обслуживающий внутреннюю сеть 10.0.0.0. На внутреннем интерфейсе висит transparent squid (10.0.0.100:3128). Запросы на 80-ый порт перенаправляются на squid, а остальной трафик маскарадится.

Есть наружный интерфейс в сеть провайдера (192.168.0.0) и там еще один клиент использующий linux-роутер. Его трафик тоже маскарадится, но ни как не получается перенаправлять его на transparent squid.

Пробую так:

iptables -t nat -A PREROUTING -s 192.168.0.2 -p tcp --dport 80 -j REDIRECT --to-port 3128

Не работает. Что не так?


нарисуйте - непонятно

guilder
()

Схема:

INET-----provider------------- switch---------- another client
	  	router		                     |          	192.168.0.2
						                |
						                |
					             192.168.0.1
					              linux-router
					              10.0.0.100
						              |
						              |
			clients --------------
			10.0.0.0/24
На linux-router: transparent squid 10.0.0.100:3128

iptables:

$IPT -A FORWARD -s 192.168.0.2 -j ACCEPT
$IPT -A FORWARD -i $LAN -s 10.0.0.0/255.255.0.0 -j ACCEPT
$IPT -t nat -A PREROUTING -i $LAN -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
$IPT -t nat -A PREROUTING -s 192.168.0.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE

У another client стоит default gw 192.168.0.1, но инет через squid не работает. У клиентов из 10.0.0.0 все работает.

bdm88
() автор топика
Ответ на: комментарий от bdm88

Без сквида интернет рабоатет везде. В сквиде доступ для 192.168.0.2 разрешен.

bdm88
() автор топика
Ответ на: комментарий от bdm88

На роутере два сетевых интерфейса?
Сделайте трассировку маршрута от 192.168.0.2 до яндекса и покажите её.

kompas
()
Ответ на: комментарий от kompas

Да, две сетевухи. Трассировку от 0.2 сделать не могу - 0.2 железяка с web-интерфейсом.

-- bdm88

anonymous
()
Ответ на: комментарий от alikhantara

Точно не закрыт, но меня смущает что сквид висит на 10.0.0.100:3128, а запросы another client приходят на 192.168.0.1. Будет ли в таком случае нормально работать redirect?

anonymous
()
Ответ на: комментарий от Nastishka

Не совсем понял. Т.е. трафик идет в обход linux-router?

anonymous
()
Ответ на: комментарий от anonymous

как я понял по схеме,у тебя нет вариантов сотворить прозрачный прокси. у fnother clients должен обязательно прописан прокси в настройках браузера. повторяю,если правильно понял твою схему

alikhantara
()
Ответ на: комментарий от alikhantara

Я не уверен что нет вариантов, пока я не могу придумать причины почему это невозможно. Сейчас схема работает так: клиенты из 10.0.0.0 маскарадятся и http перенаправляется на прозрачный прокси. Another client пока только маскарадится. Так всё работает.

Вопрос: почему не получается перенаправлять http от another client на ту же прозрачную проксю?

-- bdm88

anonymous
()
Ответ на: комментарий от alikhantara

не через роутер? разве, ведь шлюз по умолчанию 192.168.0.1. И как мне кажется проблема в том, что надо сквиду сказать слушать на 192.168.0.1:3128 и добавить правило в iptables для перенаправления.

uspen ★★★★★
()
Ответ на: комментарий от anonymous

но меня смущает что сквид висит на 10.0.0.100:3128

Ну так повесьте на 192.168.0.1 и перенаправляйте туда.

zgen ★★★★★
()
Ответ на: комментарий от zgen

Сквид может биндится на два адреса одновременно?

-- bdm88

anonymous
()
Ответ на: комментарий от Wolfkrone

И схема мне ваша не нравится.
Сделайте так чтобы internet provider router был подключен к сетевому интерфейсу linux-router (нужен третий интерфейс) иначе хосту another client ничего не помешает настроиться , так чтобы ходить в интернет сразу на provider router , минуя linux router

Wolfkrone
()

предлагаю тебе провести эксперимент - повесить на интерфейс с ip 192.168.0.1 дополнительный ip-адрес из другой сети, поменять адрес на другом клиенте, и проверить работоспособность перенаправления. Отсечёшь ICMP-redirect.

spunky ★★
()
Ответ на: комментарий от Wolfkrone

А как же клиенты из 10.0.0.0? Или Вы предлагаете два сквида?

-- bdm88

anonymous
()
Ответ на: комментарий от Wolfkrone

> Сделайте так чтобы internet provider router был подключен к сетевому интерфейсу linux-router (нужен третий интерфейс) иначе хосту another client ничего не помешает настроиться , так чтобы ходить в интернет сразу на provider router , минуя linux router

Схему поменять нельзя. Опасности перенастройки тоже нет.

-- bdm88

anonymous
()
Ответ на: комментарий от spunky

> предлагаю тебе провести эксперимент - повесить на интерфейс с ip 192.168.0.1 дополнительный ip-адрес из другой сети, поменять адрес на другом клиенте, и проверить работоспособность перенаправления. Отсечёшь ICMP-redirect.

Я не уверен что свитч на котором они весят разрешит такое. (Свитч не мой.) Но завтра попробую.

-- bdm88

anonymous
()

Короче, все решилось указанием только порта (без ip-адреса) в конфиге сквида. Все спасибо за помощь.

-- bdm88

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.