Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Банк-клиент + SQUID + IPTABLES  (Прочитано 6380 раз)

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

Оффлайн Дэлфи

  • Автор темы
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • Citysakh.ru
Банк-клиент + SQUID + IPTABLES
« : 07 Апреля 2011, 06:58:08 »
Коллективный разум, помогай! Второй день бьюсь((((
Значит имеем: Ubuntu Server 9.10, SQUID 2.7 непрозрачный, программу банк-клиент (чёрт бы её побрал).
Задача: заставить банк-клиент работать.
Показания к применению: через прокси работать не хочет, не будет и вообще. Нужно НАТить.

Лечение: Имеем такую вот схемку iptables - скрипт rc.local
(Нажмите, чтобы показать/скрыть)

Далее по аналогии с почтовыми портами пытаемся выпустить банк-клиент наружу:
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1 -p tcp --dport 1024 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP2 -p tcp --dport 1024 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1 -p udp --dport 87 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP2 -p udp --dport 87 -j ACCEPT

А так же (банк говорит: "НАДО!"...) пропускаем входящие пакеты:
iptables -A INPUT -p tcp --dport 1024 -j ACCEPT
iptables -A INPUT -p udp --dport 87 -j ACCEPT

и MAPим их внутрь сети:
iptables -t nat -A PREROUTING -p tcp -s $_BANK_IP1 -d $_WAN_IP --dport 1024 -j DNAT --to-destination 192.168.1.6:1024
iptables -t nat -A PREROUTING -p tcp -s $_BANK_IP2 -d $_WAN_IP --dport 1024 -j DNAT --to-destination 192.168.1.6:1024
ptables -A FORWARD -i eth0 -d 192.168.1.6 -p tcp --dport 1024 -j ACCEPT
iptables -t nat -A PREROUTING -p udp -s $_BANK_IP1 -d $_WAN_IP --dport 87 -j DNAT --to-destination 192.168.1.6:87
iptables -t nat -A PREROUTING -p udp -s $_BANK_IP2 -d $_WAN_IP --dport 87 -j DNAT --to-destination 192.168.1.6:87
iptables -A FORWARD -i eth0 -d 192.168.1.6 -p udp --dport 87 -j ACCEPT

Идём проверять... Не работает(((

Диагноз: Либо я заработался, либо ещё не всё догоняю, но в упор не вижу причину, по которой не работает, уже второй день. ((( В общем, взгляните свежим взглядом и посоветуйте чего-нибудь, пожалуйста.
Тяжела и неказиста жизнь простого программиста...

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #1 : 07 Апреля 2011, 07:35:57 »
Я бы на Вашем месте сначала разрешил весь трафик на машину с клиент-банком, и только уже потом пробрасывал порты. Опять же убедился бы ещё раз на каких именно портах эта дрянь работает !
Be root, be different...

Оффлайн Дэлфи

  • Автор темы
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • Citysakh.ru
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #2 : 07 Апреля 2011, 07:51:03 »
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -F
iptables -t nat -F
затем
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I POSTROUTING -s 192.168.1.6 -d $_BANK_IP1 -j SNAT --to-source $_WAN_IP
iptables -t nat -I POSTROUTING -s 192.168.1.6 -d $_BANK_IP2 -j SNAT --to-source $_WAN_IP

Да, вот так он подключился... Но банк ещё раз уверил, что IP-адреса и порты они сказали верно...

netstat -anвыдаёт кучу соединений на кучу портов, но ни нужных нам портов, ни IP-адресов банка там нет... ((((

ОК, давайте по порядку.... Предположим, что данные верны. Так вот, мои цепочки должны работать? Т.е. у меня всё правильно составлено или всё же где-то есть мой косяк? Просто прежде, чем наехать на банк, мне нужно удостовериться в своей правоте...
Тяжела и неказиста жизнь простого программиста...

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #3 : 07 Апреля 2011, 08:35:33 »
В предположении, что на машине, с которой запускается клиент-банк, прописан маршрут в банк через маршрутизатор, на котором ты крутишь правила - да. Должно работать.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #4 : 07 Апреля 2011, 08:36:46 »
Цепочки INPUT и OUTPUT в Вашем случае не работают, потому как траффик в них не попадает.
Если описанные в последнем Вашем сообщении правила достаточны для работы клиент-банка, то и MAP-ить порты на клиентскую машину нет необходимости.
Т.е. нужно обеспечить соединение клиента по портам tcp/1024 и udp/87,а так же разрешить пакеты уже установленного соединения по этим же портам.
Кстати, опция -d позволяет перечисление IP-адресов/сетей через запятую.
Потому вижу правила обеспечивающими работу клиент-банка примерно такими:
iptables -P FORWARD DROP
iptables -A FORWARD -s $_BANK_IP1,$_BANK_IP2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1,$_BANK_IP2 -p tcp --dport 1024 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1,$_BANK_IP2 -p udp --dport 87 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.1.6 -d $_BANK_IP1,$_BANK_IP2 -j SNAT --to-source $_WAN_IP

Как я уже говорил, цепочки INPUT и OUTPUT в этом процессе не участвуют, потому их состояние не имеет значения для сабжа

Коллеги. поправляйте, если где ошибся
« Последнее редактирование: 07 Апреля 2011, 08:39:07 от fisher74 »

Оффлайн Дэлфи

  • Автор темы
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • Citysakh.ru
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #5 : 07 Апреля 2011, 09:10:28 »
В предположении, что на машине, с которой запускается клиент-банк, прописан маршрут в банк через маршрутизатор, на котором ты крутишь правила - да. Должно работать.

ну статических маршрутов там не прописано, но и так весь трафик идёт через шлюз, коим является вышеописанный сервер.

Цепочки INPUT и OUTPUT в Вашем случае не работают, потому как траффик в них не попадает.
Если описанные в последнем Вашем сообщении правила достаточны для работы клиент-банка, то и MAP-ить порты на клиентскую машину нет необходимости.
Т.е. нужно обеспечить соединение клиента по портам tcp/1024 и udp/87,а так же разрешить пакеты уже установленного соединения по этим же портам.
Кстати, опция -d позволяет перечисление IP-адресов/сетей через запятую.
Потому вижу правила обеспечивающими работу клиент-банка примерно такими:
iptables -P FORWARD DROP
iptables -A FORWARD -s $_BANK_IP1,$_BANK_IP2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1,$_BANK_IP2 -p tcp --dport 1024 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1,$_BANK_IP2 -p udp --dport 87 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.1.6 -d $_BANK_IP1,$_BANK_IP2 -j SNAT --to-source $_WAN_IP

Как я уже говорил, цепочки INPUT и OUTPUT в этом процессе не участвуют, потому их состояние не имеет значения для сабжа

Коллеги. поправляйте, если где ошибся

так как в начале используется "iptables -P INPUT DROP", то без явного указания все пакеты отбрасываются, в частности извне.
Тяжела и неказиста жизнь простого программиста...

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #6 : 07 Апреля 2011, 09:11:31 »
Цепочки INPUT и OUTPUT в Вашем случае не работают, потому как траффик в них не попадает.
Если описанные в последнем Вашем сообщении правила достаточны для работы клиент-банка, то и MAP-ить порты на клиентскую машину нет необходимости.
Т.е. нужно обеспечить соединение клиента по портам tcp/1024 и udp/87,а так же разрешить пакеты уже установленного соединения по этим же портам.
Кстати, опция -d позволяет перечисление IP-адресов/сетей через запятую.
Потому вижу правила обеспечивающими работу клиент-банка примерно такими:
iptables -P FORWARD DROP
iptables -A FORWARD -s $_BANK_IP1,$_BANK_IP2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1,$_BANK_IP2 -p tcp --dport 1024 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1,$_BANK_IP2 -p udp --dport 87 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.1.6 -d $_BANK_IP1,$_BANK_IP2 -j SNAT --to-source $_WAN_IP

Как я уже говорил, цепочки INPUT и OUTPUT в этом процессе не участвуют, потому их состояние не имеет значения для сабжа

Коллеги. поправляйте, если где ошибся

Из опыта могу сказать, что был банк, кидающийся назад NEW пакетами на непонятные порты.
Вобщем для начала надо в прероутинге все пакеты от банка пропустить, неважно с какого порта и в каком стэйте, и делать им -j LOG
А потом смотреть.
Шаг за шагом можно достичь цели.

Оффлайн Дэлфи

  • Автор темы
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • Citysakh.ru
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #7 : 07 Апреля 2011, 09:23:09 »
Из опыта могу сказать, что был банк, кидающийся назад NEW пакетами на непонятные порты.
Вобщем для начала надо в прероутинге все пакеты от банка пропустить, неважно с какого порта и в каком стэйте, и делать им -j LOG
А потом смотреть.

ну, в принципе, это можно и банку предъявить. меня как бы интересует пока что только правильность моих настроек. Т.е. банк говорит "надо открыть вот эти порты на входящие и исходящие соединения для IP1 и IP2", я настраиваю по их словам и мои настройки должны работать. Если что-то не работает, то не по моей вине. Вот в чём я должен быть уверен. Просто организация не моя, я всего лишь помогаю. Поэтому если я всё сделаю правильно, а работать не будет, то они таки вытащат поддержку банка на выезд.
Тяжела и неказиста жизнь простого программиста...

Оффлайн NanoGlist

  • Активист
  • *
  • Сообщений: 283
  • Даешь наноглистинг!!!!
    • Просмотр профиля
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #8 : 07 Апреля 2011, 09:31:43 »
Настраивается очень легко. Делаем проброс на прямой IP адрес вашего прокси, затем редиректим порты на IP адрес Банка. У нас так работает все замечательно. Плюс если имеете одинаковую подсеть с банком, как в моем случае 10.0.0.0, то ставим вырезатель в GPO.
P.S. Естественно в правилах указываем это все для  IP ADDRESS_а машины с Клиент-Банк_ом. И еще 20 и 21 порты надо открыть, используются для приема-отправки почты и файлов в клиенте.
« Последнее редактирование: 07 Апреля 2011, 09:37:53 от SpongeBobSquarePants »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #9 : 07 Апреля 2011, 09:44:27 »
так как в начале используется "iptables -P INPUT DROP", то без явного указания все пакеты отбрасываются, в частности извне.
Да, но пакеты отбрасываются те, должны пойдут через  эту цепочку. Изучите где именно стоит эта цепочка работает и поймёте, что в Вашем случае она не повлияет.
По пробросу портов повторюсь: если у Вас клиент-банк работает по правилам озвученным в 2-ом сообщении, то описанная мной схема тоже будет работать.

Пользователь решил продолжить мысль 07 Апреля 2011, 09:48:08:
Если таки Вам хочется пробросить порты на клиента, то добавьте ещё

iptables -t nat -A PREROUTING -p tcp -s $_BANK_IP1,$_BANK_IP2 -d $_WAN_IP --dport 1024 -j DNAT --to-destination 192.168.1.6:1024
iptables -t nat -A PREROUTING -p udp -s $_BANK_IP1,$_BANK_IP2 -d $_WAN_IP --dport 87 -j DNAT --to-destination 192.168.1.6:87

ЗЫ. С podkovyrsty полностью солидарен
« Последнее редактирование: 07 Апреля 2011, 09:48:08 от fisher74 »

Оффлайн Дэлфи

  • Автор темы
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • Citysakh.ru
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #10 : 07 Апреля 2011, 10:00:10 »
Да, но пакеты отбрасываются те, должны пойдут через  эту цепочку. Изучите где именно стоит эта цепочка работает и поймёте, что в Вашем случае она не повлияет.
По пробросу портов повторюсь: если у Вас клиент-банк работает по правилам озвученным в 2-ом сообщении, то описанная мной схема тоже будет работать.

Пользователь решил продолжить мысль 07 Апреля 2011, 09:48:08:
Если таки Вам хочется пробросить порты на клиента, то добавьте ещё

iptables -t nat -A PREROUTING -p tcp -s $_BANK_IP1,$_BANK_IP2 -d $_WAN_IP --dport 1024 -j DNAT --to-destination 192.168.1.6:1024
iptables -t nat -A PREROUTING -p udp -s $_BANK_IP1,$_BANK_IP2 -d $_WAN_IP --dport 87 -j DNAT --to-destination 192.168.1.6:87

ЗЫ. С podkovyrsty полностью солидарен

Значит, выходит, что мои настройки должны работать. Разве что там есть немного лишнего. Значит будем трясти банк по поводу адресов и портов. Ибо, честное слово, в "netstat -an" по поводу имеющихся данных полная пустота.

Всем спасибо за помощь!
Тяжела и неказиста жизнь простого программиста...

Оффлайн drako

  • Старожил
  • *
  • Сообщений: 1422
    • Просмотр профиля
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #11 : 07 Апреля 2011, 11:57:08 »
Моя просто плакать с ТС. Батенька шли бы Вы на курсы повышения квалификации, а не предъявы банку пытались делать. Вам уже дали правильный ответ(4), правда Вы его в силу своего мегаинтелекта отбросили сразу. На 99% уверен что и история про входящие порты из той же оперы( не сладко видимо клиентам банка, сидящим за натами провайдеров где-нить в бизнес-центрах).

Оффлайн Дэлфи

  • Автор темы
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • Citysakh.ru
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #12 : 07 Апреля 2011, 13:09:31 »
О, мудрейший из мудрейших! Благодарю Вас за снисхождение до ответа на мой пост и обязательно прислушаюсь к Вашему совету, как только пойму как запустить программу линукс на windows xp.
Тяжела и неказиста жизнь простого программиста...

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #13 : 07 Апреля 2011, 15:05:46 »
Моя просто плакать с ТС. Батенька шли бы Вы на курсы повышения квалификации, а не предъявы банку пытались делать. Вам уже дали правильный ответ(4), правда Вы его в силу своего мегаинтелекта отбросили сразу. На 99% уверен что и история про входящие порты из той же оперы( не сладко видимо клиентам банка, сидящим за натами провайдеров где-нить в бизнес-центрах).
Нежнее, ещё нежнее.

ну, в принципе, это можно и банку предъявить. меня как бы интересует пока что только правильность моих настроек. Т.е. банк говорит "надо открыть вот эти порты на входящие и исходящие соединения для IP1 и IP2",
А вот с этого места поподробнее, пожалуйста. Зачем банку входящие?... Хотя... для UDP может потребоваться.
Попробуй таки добавить
iptables -t nat -A PREROUTING -p udp -s $_BANK_IP1,$_BANK_IP2 -d $_WAN_IP --dport 87 -j DNAT --to-destination 192.168.1.6:87
iptables -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Дэлфи

  • Автор темы
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • Citysakh.ru
Re: Банк-клиент + SQUID + IPTABLES
« Ответ #14 : 08 Апреля 2011, 10:18:33 »
В общем, кино и немцы)))
Сегодня всё уже работает вот с такими настройками:
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Пропускаем обратную петлю
iptables -A INPUT -d 127.0.0.1 -j ACCEPT

# Пропускаем пакеты уже установленных соединений
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Пускаем локалку
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

# Поднимаем nat
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source $_WAN_IP

# Банк клиент
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP1 -p tcp --dport 1024 -j ACCEPT
iptables -A FORWARD -s 192.168.1.6 -d $_BANK_IP2 -p udp --dport 87 -j ACCEPT
То есть те же, что и были, разве что убрались ненужные, как мне объяснили, цепочки INPUT и решил попробовать без MAP-а пока. Ах, да, и ещё банк сообщил, что TCP 1024 - это для IP1, а UDP 87 - это для IP2. В остальном всё то же самое, но сегодня это работает)) В чём прикол не знаю. ))

Кстати...

...
Кстати, опция -d позволяет перечисление IP-адресов/сетей через запятую.
...

Ошибку выдаёт, типа сеть такая не найдена. Может там должно быть по аналогии с этим?
-m multiport --dport port1,port2,port3
Тяжела и неказиста жизнь простого программиста...

 

Страница сгенерирована за 0.035 секунд. Запросов: 25.