iptables REDIRECT (как перенаправить на разные порты в зависимости от направления?)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

iptables REDIRECT

Сообщение Poor Fred »

Так уж получилось, что на сервере крутится два прокси на разных портах - Squid (порт 3128) и ускоритель спутникового провайдера (3130). Хотелось бы в зависимости от направления отправлять запросы на разные проксики. Написал правило:

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

    ${IPT} -t nat -A PREROUTING  -p tcp -d xx.xx.xx.xx/24   --dport 80 -j REDIRECT --to-ports 3128
    ${IPT} -t nat -A PREROUTING -p tcp -d yy.yy.yy.yy/24 --dport 80 -j REDIRECT --to-ports 3128
    ${IPT} -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3130

где xx.xx.xx.xx/24 и yy.yy.yy.yy/24 пул адресов провайдера, т.е. почти бесплатный для меня.

Однако похоже, что правило PREROUTING не знает опции направления или источника, поэтому отправляет только на один порт, первый встретившийся.

Можно ли реализовать такое средствами iptables или чем-нибудь еще? Пока в браузере установил вручную прокси для всех адресов кроме некоторых, но хотелось бы, чтобы это делал сервер, чтобы wget и прочие сетевые проги ходили по наиболее дешевому маршруту.
Убить всех человеков!
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: iptables REDIRECT

Сообщение d_n_k »

кидай в отдельные цепочки, а из них уже на порты
все сказанное есть имхо...
Спасибо сказали:
kvs
Сообщения: 84

Re: iptables REDIRECT

Сообщение kvs »

Poor Fred писал(а):
20.01.2007 13:57
${IPT} -t nat -A PREROUTING -p tcp -d xx.xx.xx.xx/24 --dport 80 -j REDIRECT --to-ports 3128
${IPT} -t nat -A PREROUTING -p tcp -d yy.yy.yy.yy/24 --dport 80 -j REDIRECT --to-ports 3128
${IPT} -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3130

Ихмо это маразм, -d это адрес хоста куда клиент стучиться например майл.ру, причем здесь пул адресов.
Конкретнее что ты хочеш.
Спасибо сказали:
Аватара пользователя
WarlorD
Сообщения: 728
Статус: хочешь пропатчить KDE под FreeBSD - спроси меня как!
ОС: FreeBSD, Debian GNU\Linux

Re: iptables REDIRECT

Сообщение WarlorD »

я думаю что все должно работать, --dst вроде нормально воспринимается в этой цепочке.
FreeBSD
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: iptables REDIRECT

Сообщение Poor Fred »

kvs писал(а):
22.01.2007 12:56
Ихмо это маразм, -d это адрес хоста куда клиент стучиться например майл.ру, причем здесь пул адресов.
Конкретнее что ты хочеш.

А первое сообщение читал? Куда конкретней?

d_n_k писал(а):
22.01.2007 08:18
кидай в отдельные цепочки, а из них уже на порты

Блин. Это я еще не умею. Можно пример?

Приятней было с ipfw работать. Там куда как проще все. :huh:
Убить всех человеков!
Спасибо сказали:
kvs
Сообщения: 84

Re: iptables REDIRECT

Сообщение kvs »

Ты хочеш разделить инет на две половинки, или это не так, какой приоритет каналов.???
Самое простое что можно сделать, с 1 до 128 идет на один прокси, все что выше по умолчанию на другой прокси. Хотя неизвестно куда больше твои юзера будут ходить


-t nat -A PREROUTING -p tcp -d 1.0.00/255.0.0.0 --dport 80 -j REDIRECT --to-ports 3128
.....
-t nat -A PREROUTING -p tcp -d 128.0.00/255.0.0.0 --dport 80 -j REDIRECT --to-ports 3128
-t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3130
Спасибо сказали: