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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: и снова squid, iptables и банк-клиент  (Прочитано 606 раз)

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

Оффлайн osi777

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Доброго времени суток господа.
Хочу вновь задать уже «заезжанный вопрос», да простят меня модераторы чёткого (пошагового) алгоритма действий с объёяснениями не нашёл.
Ситуация такая:
имеем проксисервер (squid+sams) раздающий инет в локалку (eth1 -192.168.1.1) порт 3128. На eth0 (11.22.33.44) приходит инет от провайдера. Всё у всех работает, трафик учитывается... Но есть одна машина на которой стоит банк-клиент её адрес 192.168.1.20 работающий через порт 3904. Всем понятно что через прокси не работает. Если машину подключить к инету минуя прокси банк-клиент пашет.
В описанной ситуации я так понимаю встает вопрос проброса (перенаправленя) портов. Для этого необходимо указать правила iptables. Скажу сразу в этом я не спец но не большое изучение темы провёл и всё же в голове каша. Предлагаю провести пошаговое решение проблемы дабы занющие посетители сего ресурса подсказали необходимый набор правил без отсылания в мануалам по iptables.

запросил существующие наборы правил:

root@alex-desktop:~# iptables -L -n -v -t nat
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Как видно их нет.

далее подменяем ip приёмника на внутренний ip:
sudo iptables -t nat -A PREROUTING -p tcp -d 11.22.33.44 --dport 3904 -j DNAT --to-destination 192.168.1.20:3904

   видел и другой вариант:

sudo iptables -t nat -A PREROUTING -d 192.168.1.20 -p tcp -m tcp --dport 3904 -j DNAT --to-destination 11.22.33.44:3904
   Какой из вариантов правельный?


   - далее подменяем ip отправителя на внешний:
sudo iptables -t nat -A POSTROUTING -p tcp --dst 192.168.1.20 --dport 3904 -j SNAT --to-source 11.22.33.44
   так же видел и другой вариант:

sudo iptables -t nat -A POSTROUTING -d 11.22.33.44 -p tcp -m tcp --dport 3904 -j SNAT --to-source 192.168.1.20
   Какой из вариантов правельный?


   - Так же ещё в одном посте увидел что надо указывать ещё два правила, хотя есть мнение что это не обязательно:

-A FORWARD -d 11.22.33.44 -p tcp -m tcp --dport 30583 -j LOG

-A FORWARD -d 11.22.33.44 -p tcp -m tcp --dport 30583 -j ACCEPT
   Ещё вопрос что перед -A FORWARD тут указывается.

Затем включаем маршрутизацию:
 sudo echo 1 > /proc/sys/net/ipv4/ip_forward

Вопрос: какие из правил верные а какие нет? Если можно знатоки укажите последовательность правил.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: и снова squid, iptables и банк-клиент
« Ответ #1 : 05 Мая 2013, 23:00:00 »
Но есть одна машина на которой стоит банк-клиент её адрес 192.168.1.20 работающий через порт 3904.
Соединение идёт с некоторого порта клиента (SPT) на некоторый порт сервера (DPT).
Это можно узнать, включив логирование iptables.
Разберитесь, что там к чему, и показывайте
sudo iptables-save

Оффлайн osi777

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: и снова squid, iptables и банк-клиент
« Ответ #2 : 05 Мая 2013, 23:07:05 »
Но есть одна машина на которой стоит банк-клиент её адрес 192.168.1.20 работающий через порт 3904.
Соединение идёт с некоторого порта клиента (SPT) на некоторый порт сервера (DPT).
Это можно узнать, включив логирование iptables.
Разберитесь, что там к чему, и показывайте
sudo iptables-save
это можно сделать...
там старая немного переделанная программа аля MS-DOS. В настройках прорт прописан четко и в банке сказали этот же порт + netstat смотрел когда банк-клиент обменивается инфой с сервером: 3904.
Знаю бывают качели с портами приходит на один, уходит с другого тут такого нет - я так понял.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: и снова squid, iptables и банк-клиент
« Ответ #3 : 07 Мая 2013, 21:51:33 »
Правильно писать правИльный. Но это касается грамматики.
А вот работа клиент-банка и проброса портов (в том ракурсе в каком обычно рассматривается на данном форуме) в данном случае совершенно не связаны. Вам нужно просто выпустить клиент-банк мимо прокси, что фактически делается одним правилом
sudo iptables -t nat -A POSTROUTING -s 192.168.0.20 -p tcp --dport 3409 -o eth0 -j SNAT --to-source 11.22.33.44или, если отвязать от внешнего IP
sudo iptables -t nat -A POSTROUTING -s 192.168.0.20 -p tcp --dport 3409 -o eth0 -j MASQUERADE
Немного вульгарно, но работать будет.

ЗЫ форвардинг всё равно надо включать
sudo su -c "echo -e 1 > /proc/sys/net/ipv4/ip_forward"или более правильно для Ubuntu
sudo sysctl -w net.ipv4.ip_forward=1

 

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