Страница 1 из 1

Как в NW5.1 сделать Port Mapping

СообщениеДобавлено: 09 июн 2003, 13:28
Алексей Рогозин
Добрый день.

Как можно сделать статический NAT с использованием портов?

Поясню: мне нужно сделать чтобы сервер, находящийся на границе сетей (LAN и интернет), переправлял все пакеты приходящие на определенный порт внешнего интерфейса на тот же порт, но компьютера внутри LAN (сервер почты).

На пограничном компьютере установленны NW5.1 + BM3.6

В TID' ах нашел рекомендации по поводу настройки правил (для случая когда почтовый сервер, стоит внутри LAN), однако насчет настроек NAT там не указанно (может плохо искал?).

Заранее спасибо за помощь.

СообщениеДобавлено: 09 июн 2003, 14:16
Alex-M
Дык, это...

а) Обычный "Статик НАТ". А порты разрулить пакетными фильтрами. Если не нравится, что всё на одном адресе - сделать "секондари ИП" по вкусу...
б) "Generic TCP proxy". Настроить форвард портов. При этом не забыть нужные фильтры из пункта "а" и нужные прокси-рулесы...
в) "Transparent Telnet proxy". Почти тоже, что и "б", но прозрачно для сервера...

Все три варианта прекрасно работают.

СообщениеДобавлено: 09 июн 2003, 14:32
Алексей Рогозин
Alex-M писал(а):Дык, это...

а) Обычный "Статик НАТ". А порты разрулить пакетными фильтрами. Если не нравится, что всё на одном адресе - сделать "секондари ИП" по вкусу...


Если рассмотреть вариант a) , то я должен создать в Static NAT table запись вида: внешний_адрес_шлюза - адрес_сервера_почты?
При таком варианте, у меня весь трафик приходящий на шлюз извне будет переадресовываться на сервер почты. А как быть с ответами внешних (интернетовских) вэб серверов, к которым будет обращаться прокси сервер BM? Ответы от них будут "уходить" место proxy к серверу почты или нет?

СообщениеДобавлено: 09 июн 2003, 16:42
Владимир Горяев

Сам задавал такой же вопрос...

СообщениеДобавлено: 09 июн 2003, 18:03
Лебедев Виктор
Практически все можно сделать без статического NAT. Ибо есть:
1) Фильтры
2) Generic Proxy
3) Правила.
Все гладко и изящно. Инструментария, как выяснилось, вполне достаточно.

СообщениеДобавлено: 10 июн 2003, 17:33
Alex-M
Алексей Рогозин писал(а):Если рассмотреть вариант a) , то я должен создать в Static NAT table запись вида: внешний_адрес_шлюза - адрес_сервера_почты?
При таком варианте, у меня весь трафик приходящий на шлюз извне будет переадресовываться на сервер почты. А как быть с ответами внешних (интернетовских) вэб серверов, к которым будет обращаться прокси сервер BM? Ответы от них будут "уходить" место proxy к серверу почты или нет?


Я ж сказал - разрулить трафик на почту фильтрами. Типа - "с любого внешнего на внутренний почтовый разрешено только SMTP". И обратно также.
И причём здесь внешние веб-сервера? Они же по другому порту работают... Не боись - всё будет нормально! :-)

Лебедев Виктор писал(а):Практически все можно сделать без статического NAT. Ибо есть:
1) Фильтры
2) Generic Proxy
3) Правила.
Все гладко и изящно. Инструментария, как выяснилось, вполне достаточно.


Всё так, за исключением одного "НО" - на SMTP не получается сделать Generic TCP proxy - сервер грит, мол он для этого не предназначен. Юзайте, мол, Mail proxy! :evil: Умный, блин! Как будто это его дело - что я и как юзаю! :-)
Так что - либо НАТ, либо Transparent Telnet...

СообщениеДобавлено: 10 июн 2003, 23:22
Алексей Рогозин
Alex-M писал(а):
Я ж сказал - разрулить трафик на почту фильтрами. Типа - "с любого внешнего на внутренний почтовый разрешено только SMTP". И обратно также.
И причём здесь внешние веб-сервера? Они же по другому порту работают... Не боись - всё будет нормально! :-)


Заранее прошу прощение, если вдруг вызыву у вас гнев своими вопросами (действиями), но я с BM сталкнулся впервые - изучаю, так сказать в боевых условиях.

Сделал как вы сказали - создал запись в Static NAT. Создал фильтры согласно ("NAT Filter Exception: GWIA on BorderManager. - TID10009647"). Включил их. Всё супер - почта как приходит на внутренний почтовик, так и улетает с него (со свистом) :D

Однако усе остальное (http-proxy, dns-proxy и т.д.) работать отказываются. Создал правила согласно ("Filter Exception: Private HTTP Client - TID10023043" и "Filter Exception: DNS Client (UDP) - TID2942499"). Эфект нулевой.

Как я понимаю (мож конечно и загнул), но в этой ситуации запрос от прокси сервера к внешнему web уходит (хотя не факт - могу ошибаться), а вот ответ от него, приходя на внешний интерфейс proxy сервера, переправляется на почтовый сервер (из-за наличия записи в стат. НАТ'е). Хотя туда он не попадает из-за отсутствия разрешающего фильтра.

Как я понимаю схема обслуживания приходящего на интерфейс сервера пакета следущая: NAT -> Filters -> Service. Я не ошибаюсь?

Что делать? - я запутался :(

P.S.
Если нужно - могу по шагам расписать что делал.

СообщениеДобавлено: 11 июн 2003, 07:46
Лебедев Виктор
А наружный адрес один? Если есть в распоряжении сеть (блок адресов), то м.б. на второй адрес повесить "почтарь", чтоб пакеты с GWIA подписывать...

СообщениеДобавлено: 11 июн 2003, 10:09
Алексей Рогозин
Лебедев Виктор писал(а):А наружный адрес один? Если есть в распоряжении сеть (блок адресов), то м.б. на второй адрес повесить "почтарь", чтоб пакеты с GWIA подписывать...


Наружный - один.

Делается !

СообщениеДобавлено: 11 июн 2003, 13:20
Андрей Троценко
Это делается, я сам в таком режиме работал примерно неделю, пока коммуникацию меняли. Предлагаю такой сценарий:

1. Исходящие (ваш SMTP -> внешние): для SMTP-сервера, создайте правило в фильтрах, чтобы исходящие с него уходили на любой хост, через Public-интерфейс, на 25 порт. Ну, и обратный фильтр, ес-но, хотя можно использовать и Statefull-фильтр. NAT работает в динамическом режиме. Даже для "ушлых проверок соответствия домена адреса отправителя с DNS-адресом отправляющего сервера" все будет работать.
2. Входящие (внешние SMTP -> Ваш): здесь, используем комбинацию фильтров и MailProxy (кстати, в этом режиме, он приемлемо работает, несмотря на отдельные заявления в форуме):
2а. Настройте фильтр (2 фильтра), для входящих запросов на Ваш Public-адрес [BM сервер], 25й порт (2й фильтр - обратный ответ).
2б. Включите Mail-proxy на Вашем BM сервере, установив параметры:
Primary Mail Domain Name = ваш домен
Internal Mail Server Name = DNS вашего SMTP
POP3 Mail Server Name = "x" (это значит - НЭ_НАДА)
остальные параметры - по себе
2в. Повторите конфигурацию п. 2б в файл sys:\etc\proxy\PROXY.CFG того же сервера (увы, это нужно сделать, без этого не работало :( ):
[BM Mail Proxy]
BM_Domain=ваш домен
BM_Incoming_Relay=0
BM_Proxy_Domain=ваш домен
2г. Не помню насчет ACL, на всякий случай, создайте запись, разрешающую соединение с Mail-proxy с любого адреса.
2д. Опять-таки не помню, но по-моему, здесь я перезагружал BM-сервер, чтобы изменения пункта 2в вошли в силу. Увы, при отгрузке работающего PROXY.NLM в BM35, сервер выпадает в ABEND. Так, что, перезапустить только BM не получалось. На стенде, с BM37 таких проблем не было, очевидно можно будет BRDSTOP, BRDSTART.

СообщениеДобавлено: 11 июн 2003, 14:22
Alex-M
Андрей Троценко
Mail Proxy зело крив - не стоит его рекомендовать начинающим. ;-) Я сам бодался с ним год, но по причине постоянных абендов отказался от него и перешёл на статик НАТ. Хотя, да, в Mail Proxy рулить почтой можно круче... Но, если б они его пофиксили... Эххх! :-(

Алексей Рогозин
Возможно...
Надо попробовать следующее:

1) сделать 2 исключения типа:
"src. int.=public, src. addr.=any, dst. int.=private, dst. addr.=<int. mail server IP>, protocol=TCP, src. port=all, dst. port=25, stateful filtering=on"
и
"src. int.=private, src. addr.=<int. mail server IP>, dst. int.=public, dst. addr.=any, protocol=TCP, src. port=all, dst. port=25, stateful filtering=on"
(это для почты туда и обратно);

2) сделать 2 исключения типа:
"src. int.=public, src. addr.=<BM public IP>, dst. int.=public, dst. addr.=any, protocol=TCP, src. port=all, dst. port=all, stateful filtering=on"
и
"src. int.=public, src. addr.=<BM public IP>, dst. int.=public, dst. addr.=any, protocol=UDP, src. port=all, dst. port=all, stateful filtering=on"
(это для прокси - TCP и UDP);

3) сделать правило для HTTP proxy:
"action=allow, access type=app. proxy, proxy=HTTP, origin server port=80 to 89 (а также 20-21 для FTP over HTTP, 443 для SSL, 8000-8999 для альт. портов, ну и далее по вкусу :-) ), source=any (или контекст, если нужна авторизация), dest.=any"

4) сделать правило для ресолва проксёй имён хостов:
"action=allow, access type=port, service=DNS, origin server port=53, transport=TCP & UDP, source=<BM public IP>, dest.=any"

И не забыть включить HTTP proxy... ;-) Ну и попробовать!
Потом бум думать далее...

СообщениеДобавлено: 11 июн 2003, 16:31
Алексей Рогозин
Alex-M
Я конечно попробою, но все же:
если пакет (на пример ответ от web сервера - проксе) приходящий на интерфейс обслуживается по этой схеме (inbound packet -> NAT -> Filters -> Service (proxy, gwia) ), то на мой взгляд все разрешения и исключения будут обрабатываться на стадии Filters, после NAT. А там уже обрабатывать нечего будет :( , т.к. пакет уже будет передан серверу GWIA согласно записи в Static NAT.

Это всего лишь мои домыслы, я обязательно поэксперемнтирую с вашими рекомендациями. О результате отпишу.

ПЫС:
"TID2954184 -Does BorderManager support PAT?"