Страница 1 из 1
Проброс порта в обратную сторону
Добавлено: 2009-03-10 23:07:47
gortum
Здравствуйте, помогите решить проблему, нужно пробросить порт(25->1525), схема выглядит так
Loca_Comp(соединение через 25 порт)
-->Server_Gate(FreeBSD-шлюз, конвертация 25 в 1525)-->Server_Provider(25 порт закрыт)-->Server_MX(слушает 1525 порт).
Надеюсь понятно, задача заключается в том, что бы сервер с FreeBSD менял(конверировал) порт. Пробовал redirect_port но работает только в сторону к клиенту (Loca_Comp). Пользуюсь IPFW.
PS изначально соединятся по 1525 нельзя

Re: Проброс порта в обратную сторону
Добавлено: 2009-03-11 17:44:28
Sadok123
Доступ к ssh на Server_Gate есть?
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-11 18:14:50
Burn_
Если доступ к Server_Gate есть то сделай редирект, средствами ipfw или например rinetd (
http://www.lissyara.su/?id=1736).
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-11 18:59:45
terminus
Я такого не делал, но думаю надо смотреть в сторону ipfw nat с опцией proxy_only
Код: Выделить всё
ipfw add nat 1 config proxy_only proxy_rule port 25 server Server_MX:1525
по идее синтаксис этого правила должен быть такой же как у natd
http://www.freebsd.org/cgi/man.cgi?quer ... .1-RELEASE
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-11 19:51:33
Sadok123
не мучайте человека. если доступ к фре есть - тупо пробросить порт через ssh -L
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 0:55:06
gortum
Задача немножко в другом, Local_Comp при соединении указывает адрес Server_MX(А не адрес Server_Gate)
и 25 порт, а Server_Gate уже меняет 25 порт на 1525. Другими словами Local_Comp не должен подозревать,
что соединяется по 1525 порту.
Т.е. Server_Gate должен сообразить, что если от Local_Comp идет соединение по 25 порту к Server_MX то поменять 25 порт на 1525.
К Server_Gate есть полный доступ.
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 1:04:26
paradox
ipfw fwd
а если будет мало то еще и хитрый divert
експериментировать надо
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 1:10:09
gortum
paradox писал(а):ipfw fwd
а если будет мало то еще и хитрый divert
експериментировать надо
мне тут порекомендовали правило для pf
Код: Выделить всё
rdr on $внутр.int proto tcp from $local.comp to $внеш.сервер port 25 -> $внеш.сервер port 1525
вроде это то, что мне нужно(слабоват в PF), но вот только у меня IPFW
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 1:16:06
paradox
я тебе уже сказал и показал
екпериментируй)
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 10:46:38
terminus
ipfw fwd не отработает в этой ситуации.
fwd | forward ipaddr | tablearg[,port]
Change the next-hop on matching packets to ipaddr, which can be
an IP address or a host name. The next hop can also be supplied
by the last table looked up for the packet by using the tablearg
keyword instead of an explicit address. The search terminates if
this rule matches.
If ipaddr is a local address, then matching packets will be for-
warded to port (or the port number in the packet if one is not
specified in the rule) on the local machine.
If ipaddr is not a local address, then the port number (if speci-
fied) is ignored, and the packet will be forwarded to the remote
address, using the route as found in the local routing table for
that IP.
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 12:10:00
gortum
И как теперь быть

ставить PF?
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 17:14:05
NN
я пользуюсь
portfwd
если надо вот
1 после установки создай в /usr/local/etc/rc.d/ , файл с названием portfwd.sh
вот его содержание
Код: Выделить всё
#!/bin/sh
# PROVIDE portfwd
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: FreeBSD shutdown
#
# Add the following lines to /etc/rc.conf to enable portfwd:
#
# portfwd_enable="YES"
#
. /etc/rc.subr
name=portfwd
rcvar=`set_rcvar`
command=/usr/local/sbin/portfwd
portfwd_config=${portfwd_config:-"/usr/local/etc/portfwd.cfg"}
portfwd_flags=${portfwd_flags-""}
required_files=${portfwd_config}
# pidfile=/var/run/portfwd/portfwd.pid
# --transparent-proxy
portfwd_enable=${portfwd_enable:-"NO"}
start_precmd="${portfwd_start_precmd}"
load_rc_config $name
run_rc_command "$1"
2 потом chmod +x /usr/local/etc/rc.d/portfwd.sh
и добавь в rc.conf ---> portfwd_enable="YES"
3 далее в директории /usr/local/etc/,создай файл с названием portfwd.cfg
Код: Выделить всё
user nobody
group nobody
tcp { 7763 { => 192.168.1.5:3389 } }
Дерзай, если хочеш к серверу терминалов подключится, имеющего в локалки IP 192.168.1.5, в окне терминала указывай:
IP прокси:7763, ну остальное в томже духе
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 17:20:14
paradox
да у топика совершенно другая задача
говорю же ipfw fwd + хитрый диверт
ну или другие хитрые решения...
в виде проксика и опять тогоже fwd
ps
топик а тебя там все белые адресса или есть и серые?
потому как это очень критично
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 17:26:43
NN
paradox писал(а):да у топика совершенно другая задача
говорю же ipfw fwd + хитрый диверт
ну или другие хитрые решения...
в виде проксика и опять тогоже fwd
ps
топик а тебя там все белые адресса или есть и серые?
потому как это очень критично
Ну так у меня тоже IPFW стоит, открывай порт как и каму тебе надо и все.
У меня вообще несколько сетей, зачет статических маршрутов я маршрутизирую в ту или другую сеть, допустим в 192 и 10 сеть, как угодно.
а конфиг пиши так, если надо 25->1525
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 17:29:19
paradox
та вообще то это не мне надо....
а топикстартеру
зы
прочитайте еще раз тему
о том как идет пакет
и что там таргет не промежуточный роутер а конечная машина
а на промежуточном роутере оно токо "пролетает"
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-12 18:09:20
terminus
Давайте конкурс объявим на самое-самое завернутое решение и чтобы работало...
У меня сначала был вариант - ipfw + ntegrapf (ng_ksocket), но я не знаю как на уровне netrgaph менять номера портов в пакете (иначе выйдет тенелирование что как я понял неприемлемо и лучше делать через ssh).
Второй вариант - ipfw fwd + nginx (smtp proxy) - вроде можно так?
Кто еще чего предложит чтобы сделать это на ipfw и не использовать pf (если pf сам это поддерживает)

Re: Проброс порта в обратную сторону
Добавлено: 2009-03-13 0:08:29
gortum
поставил
PF 
, это просто ЧУДО какое-то!!!!

все работает!!!

Re: Проброс порта в обратную сторону
Добавлено: 2009-03-13 0:11:46
paradox
а что сложно было сделать kld*
не думаю
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-13 10:01:53
gortum
paradox писал(а):а что сложно было сделать kld*
а что это такое?

Re: Проброс порта в обратную сторону
Добавлено: 2009-03-13 10:13:49
gortum
а что это такое?
кажется понял, только причем тут это?
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-13 14:45:35
paradox
ты так грустно сказал
прийдеться pf ставить
типа это пол дня нужно потратить на команду kld*
)))
Re: Проброс порта в обратную сторону
Добавлено: 2009-03-13 16:25:14
gortum
paradox писал(а):ты так грустно сказал
прийдеться pf ставить
типа это пол дня нужно потратить на команду kld*
)))
а мне все равно нужно было ядро пересобирать
