Как открыть порт на прокси?

DELETED
7/7/2008, 6:05:27 PM
Люди!, помогите, кто чем может! (сами мы не местные:)
Для корректной работы клиент-банка надо открыть на прокси порт 27493. Настроил проброс сигнала по этому порту с помощью проги "3proxy". Т.е. сигнал с программы идёт по этому порту на прокси-сервер, который, с помощью проги 3proxy, пробрасывает сигнал на тот же порт но уже на сайт банка. Тест коннекта (который прилагается к программе клиент-банка), показывает, что всё хорошо. То же самое происходит при telnet`е. Но при попытке запустить транспорт клиент-банка связь каждый раз заканчивается неудачно. В службе поддержки банка говорят, что неправильно открыт порт, значит. При выведении компьютера с клиент-банком в интернет в обход прокси-сервера, всё работает так, как надо. Но надо, чтобы компьютер всё-таки был в локальной.
Подскажите - как быть?! cry_1.gif

P.S. Если не там создал тему, прошу добрых модераторов меня не ругать, а послать, куда надо)
do-do
7/7/2008, 7:49:16 PM
а если SOCKS5 использовать ? 3proxy имеет его

А вообще надо бы БОЛЕЕ подробно отписать требования софта к каналу
DELETED
7/7/2008, 10:54:23 PM
(do-do @ 07.07.2008 - время: 15:49) А вообще надо бы БОЛЕЕ подробно отписать требования софта к каналу
В правилах установки программы написано, что для её установки на компьютер находящийся в локальной сети и выходящий в интернет через прокси-сервер необходимо открыть порт 27493 для свободного входа и выхода по нему.
В службе поддержки банка говорят, что я его де неправильно открыл. Как открыть "правильно" они объяснить не хотят/не могут...
DELETED
7/7/2008, 11:11:17 PM
Какой стоит прокси (ПО, железка роутер, et cetera)? Может просто забыли открыть порт на железке?
do-do
7/7/2008, 11:22:33 PM
Давай на пальцах для понимания, кая я представляю ситуацию

Есть некая прога - ну пусть это будет Soft
Есть локальная сеть Lan1 - например 192.168.0.0
Имеем хост в этой сети Host с адресом, например 192.168.0.10 - имеем гейт с двумя сетевыми интерфейсами Lan2 - 192.168.0.1 - глядящим в локальную сеть и Lan3 - с реальным адресом xxx.xxx.xxx.xxx и сервер банка Bank с адресом yyy.yyy.yyy.yyy


Суть (как я понял) Soft установленный на Lan1 должен обратиться к yyy.yyy.yyy.yyy:27493 по TCP (хотя может и быть свой протокол прикладного уровня) передать инфу какую ни будь BANK в свою очередь обращается к xxx.xxx.xxx.xxx:27493 (из и-нета ток этот адрес виден) с ответным посланием (предполагается, что SOFT открывает этот порт на прослушку) и понятно обламывается?

Т.е. фактически нужно сделать проброс xxx.xxx.xxx.xxx:27493 <-> 192.168.0.10:27493
Решается такая задача портмаппингом

Так я понял задачу - нужно уточнить прав ли я (уточнить у службы поддержки лучше) прямо письмом с этим постом


DELETED
7/8/2008, 12:03:57 AM
Зачет.
Давайте теперь спрашивать:
- У меня есть софт. Как мне сделать его русским?
- У меня есть софт. Последнее время он начал игнорировать железку в соседнем здании. В чем дело?
- У меня есть софт. Перестал работать. Что делать?
- У меня есть софт. Вчера не открылось окно. Слышал, что нужно в настройках изменить настройки роутинга к софту на сервере, а найти не могу. Подскажите!

Может таки для начала будем узнавать, что именно мы собираемся конфигурировать и что стоит между последней милей и клиентским компьютером?
DELETED
7/8/2008, 7:19:12 PM
(JeyLo)  Зачет.
Давайте теперь спрашивать:
- У меня есть софт. Как мне сделать его русским?
...
Может таки для начала будем узнавать, что именно мы собираемся конфигурировать и что стоит между последней милей и клиентским компьютером?
ну вот только ногами не надо пинать bleh.gif
Я не говорил, что у меня есть софт и надо открыть порт, а постарался довольно подробно изложить суть, если не получилось сразу.... то, ведь, никто сразу генералом не становится...

Итак, между последней милей и клиентским компьютером стоит (по порядку):
1. Роутер (если подключить клиентский компьютер к нему, то все работает, как надо).
2. Прокси-сервер (Win 2000). (когда клиентский компьютер подключен к нему, коннект показывает, но транспорт не хочет работать).

На клиентском компьютере стоит программа клиент-банк, которую дали в мастербанке.

(do-do) Давай на пальцах для понимания, кая я представляю ситуацию
...
Так я понял задачу - нужно уточнить прав ли я (уточнить у службы поддержки лучше) прямо письмом с этим постом

В службе поддержки сказали, что так всё и есть - надо открыть порт на прослушку.
А как этот портмаппинг поставить и где взять?) pardon.gif
do-do
7/8/2008, 7:26:57 PM
на роутере нужно ... правила создать ...причем тут даже без прокси все должно работать

Роутер то как зовется?

Вообщем, я бы сделал примерно так

ххх.ххх.ххх.ххх - Это адрес хоста с программой (внутренняя сеть)

zzz.zzz.zzz.zzz - адрес внутреннего интерфейса роутера
yyy.yyy.yyy.yyy - адрес внешнего интерфейса роутера
bbb.bbb.bbb.bbb - адрес Банковского сервера


В настройках роутера сделал бы 2а правила

1) для zzz.zzz.zzz.zzz - отправлять ВЕСЬ выходящий траффик идущий с xxx.xxx.xxx.xxx на zzz.zzz.zzz.zzz:27493 на bbb.bbb.bbb.bbb:27493
2) для yyy.yyy.yyy.yyy - входящий траффик идущий на yyy.yyy.yyy.yyy:27493 отправлять на xxx.xxx.xxx.xxx:27493

В проге - пункт назначения определить как zzz.zzz.zzz.zzz:27493 (если это можно сделать) т.е. вместо адреса bbb.bbb.bbb.bbb записать zzz.zzz.zzz.zzz:27493

Конечно же БЕЗ всяких проксей (т.е. в проге прокси не указан)

Ну и понятно файрволу надо объяснить шо открытые порты легитимны
do-do
7/9/2008, 11:25:32 PM
Хочу уточнить.... прога ломится по тому забавному порту? или вполне легитимно по 80 например лезет (я предполагал, что лезет по спец порту (что странно) - тут важно... какой порт в правилах прописывать)
DELETED
7/10/2008, 4:00:26 AM
Да, прога лезет по порту 27493...
Роутер зовётся "3сом".... или точная модель нужна?
Проблема в том, что у нас два компа с этой прогой будут, поэтому нельзя все сигналы на порт 27493 на один комп скидывать...
do-do
7/10/2008, 11:37:35 AM
нда ... тут вот проблема на входящий траффик...коли у нас Nat работает и образуется внешний канал....как разделить их? ведь на гейт будут приходить (с наружи) сообщения НА один адрес (реальный, тут не разделишь)


Гм... попробуй хотя бы для одной проги сделать..для проверки

P.S. если доступен еще ОДИН ГЛОБАЛЬНЫЙ IP адрес то решается проблема с помощью алиасов
DELETED
7/10/2008, 2:13:26 PM
Хехе....


Роутер не трогаем, раз работает. И вообще, ничего не трогаем. Пусть работает. Прокси тоже не трогаем. Тоже пусть работает.

При условии, что роутер живет сам по себе (не прицеплен к public network interface на сервере): На клиентском компьютере заходим администратором и в консоли пишем: route -p add bank.ip router.ip . Для полного счастья разносим роутер и локальную сеть на разные подсети. Ну, к примеру, локальную сеть на 192.168.0.x FF.FF.FF.0, а роутер на 172.16.1.x FF.FF.FF.0 . Клиенту даем два IP адреса. По умолчанию шлюз в 192.168.0. , а для банка гейт в 172.16.1.x.

Если роутер воткнут в сервер, то можно тупо ходить bypass proxy. Очень удобно, если не надо фильтровать трафик от фрагментирования и прочей байды. Впрочем, 3proxy этого не умеет. Фильтровать в смысле. Еще не знаю, умеет ли он делать bypass. Ну да ладно. Допишем конфиг:

# МАСТЕРБАНК
flush
auth iponly
allow * XXX.XXX.XXX.XXX,YYY.YYY.YYY.YYY * 27493 * 1-7 00:00:00-23:59:59
tcppm -iZZZ.ZZZ.ZZZ.ZZZ 27493 WWW.WWW.WWW.WWW 27493

где X, Y - клиенты
Z - адрес внутреннего интерфейса прокси
W - адрес (или FQDN) банковского сервера

Теперь на клиенте указываем адрес банковского сервера как ZZZ.ZZZ.ZZZ.ZZZ, а не WWW.WWW.WWW.WWW.

А вот порт на прослушку - это совет чайника. Клиент - это не сервер. Слушать вызова банка.. Бугагага... Смишно.
do-do
7/10/2008, 8:39:38 PM
(JeyLo @ 10.07.2008 - время: 10:13) Клиент - это не сервер. а... Смишно.
Ага :)

Любой клиент может быть сервером ...и наоборот
DELETED
7/10/2008, 9:07:11 PM
(do-do @ 10.07.2008 - время: 16:39) Ага :)

Любой клиент может быть сервером ...и наоборот
М-да. Два куска. Без имплементации приема и отправки. Чиста создание.

Сервер (ужато):
CODE if (bind(m_iSocket, reinterpret_cast<sockaddr*>(&oLocalAddr), sizeof(oLocalAddr)) == SOCKET_ERROR) {
closesocket(m_iSocket);
} else {
BOOL bEnable = true;
if (setsockopt(m_iSocket, SOL_SOCKET, SO_REUSEADDR, reinterpret_cast<char*>(&bEnable), sizeof(bEnable)) == SOCKET_ERROR) {
 closesocket(m_iSocket);
} else {
 if (listen(m_iSocket, 10 )) {
  closesocket(m_iSocket);
 } else {
  fd_set oReadFDs;
  FD_ZERO(&oReadFDs);

  timeval oTimeout = { 0, m_uWaitTimeout - 10000 };

  try {
   while (!ShouldTerminate() ) {
    FD_SET(m_iSocket, &oReadFDs);
    switch(select(1, &oReadFDs, NULL, NULL, &oTimeout)) {
    case SOCKET_ERROR:
     throw CSocketException();
    case 0:
     break;
    default:
     if (FD_ISSET(m_iSocket, &oReadFDs)) {
      SOCKET iNewSocket = accept(m_iSocket, NULL, NULL);
      if (iNewSocket != INVALID_SOCKET) {
блаблабла


Клиент: CODE
     connect(socket(...), reinterpret_cast<sockaddr*>(&RemoteAddr), sizeof(RemoteAddr));
do-do
7/10/2008, 11:47:09 PM
Сервер и клиент в смысле предоставления услуг :)

Скажем прожка запросила ключик у базы - она клиент. База захотела узнать та ли эта прожка - запросила у той что то.... теперь она сервер.
Терминология в смысле клиент-серверных приложений...
Впрочем не суть.

Мне больше интересуют ....как 2торя программа будет работать :) снаружи же СЕТЬ видна ТОЛЬКО КАК ОДИН открытый сокет :) И если банковский сервер прется по этому порту на роутер (я так понимаю он высунут в и-нет) то как различить кому.... немного ситуация напоминает ftp прокси. Т.е. должно быть создано 2а соединения (видимо взад и вперед :) ). В случае сети с NAT ом поджидает косяк...
коли порты жестко фиксированы... без алиасов...гм...
Изнутрей ...тут не проблема....проблема наружный канал от Банка к клиенту

DELETED
7/11/2008, 1:56:46 AM
(do-do @ 10.07.2008 - время: 19:47)Терминология в смысле клиент-серверных приложений... Впрочем не суть.
Очень даже суть. Клиент-серверная схема взаимодействия процессов предполагает, что серверный процесс может обслуживать множество клиентских процессов. В частности по Вашему объяснению, примером единения клиента и сервера может служить клиент сети eMule, что, однако не является опровержением моей первой фразы. В случае автора топика - это классический случай клиентского процесса.

(do-do @ 10.07.2008 - время: 19:47)Мне больше интересуют ....как 2торя программа будет работать :) снаружи же СЕТЬ видна ТОЛЬКО КАК ОДИН открытый сокет :)
Сокет - это простой идентификатор (или дескриптор, если угодно), действительный только в исполняемом процессе. Как, по Вашему, один несчастный 80-й порт обслуживает тысячи клиентов?

(do-do @ 10.07.2008 - время: 19:47)И если банковский сервер прется по этому порту на роутер (я так понимаю он высунут  в и-нет) то как различить кому....
Идеология Клиент-Банк не предусматривает использование PUSH технологий, поскольку подавляющее большинство клиентов используют динамические адреса.

(do-do @ 10.07.2008 - время: 19:47)немного ситуация напоминает ftp прокси.
Чем прокси на 21 порт отличается от прокси на 80 или любой другой? Одна фигня: state-based протоколы.

(do-do @ 10.07.2008 - время: 19:47)Т.е. должно быть создано 2а соединения (видимо взад и вперед :) ). В случае сети с NAT ом поджидает косяк... коли порты жестко фиксированы... без алиасов...гм...
Изнутрей ...тут не проблема....проблема наружный канал от Банка к клиенту
М-дя. RTFM, мой друг, RTFM.

У нас тут оффтопик намечается, так что вопрос: завязываем или отделяемся в отдельный топик? wink.gif
do-do
7/11/2008, 11:21:28 AM
(JeyLo @ 10.07.2008 - время: 21:56)
Сокет - это простой идентификатор (или дескриптор, если угодно), действительный только в исполняемом процессе. Как, по Вашему, один несчастный 80-й порт обслуживает тысячи клиентов?


Разумеется :) Пара IP адресов- протокол да порт.

Я знаю как несчастный работает :) знаю в чем различие портов до 1024 и выше :)

Но ведь не о том спросил.
Сокет для сеанса открыт. Но ведь вначале должно рукопожатие пройти (TCP сегмент). Сокет открыться. А снаружи сети виден только один адрес - это уж с помощью маршрутной инфы, внутри (и на границе) сети решение принимается.
Хотя конечно (задумался) сокеты уже открыты... порта разные....? но тогда непонятно значение этого волшебного порта открытого на прием на клиенте....вот что сбивает с толку. Если из банка независимо (!? что странно) по IP (а он будет роутера) начинают устанавливать соединение с прогой - то как быть.

Впрочем интерес представляет, помогло ли обсуждение :)
do-do
7/12/2008, 2:03:18 PM
Подумалось.
Для проброса можно ведь использовать и putty с ключами -L, -D, -R