Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   [решено] Перенаправление портов во FreeBSD (http://forum.oszone.net/showthread.php?t=208512)

JaRule 08-06-2011 12:49 1690587

Перенаправление портов во FreeBSD
 
Всем доброе время суток! Большое спасибо за консультацию в моих предыдущих топиках, очень помогло! Теперь у меня вот такая задача: имеется сервер фрибсд у которого имеется выход в интернет и внешний айпи, все остальные машины выходят в инет через него как через прокси. Кроме него есть другой сервер, на котором установлена виндовс сервер 2003, но он, разумеется, не имеет отдельного внешнего айпи-адреса. Бывают такие ситуации, что на работе происходит какая-нибудь хрень в послерабочее время, а то и в выходной день, в общем когда я дома. Из дома могу соединиться с сервером только через внешний айпи. Подскажите пожалуйста, как на фрибсд сделать перенаправление, чтоб соединяясь, допустим, через удаленный рабочий стол по внешнему айпи, я соединялся со вторым сервером, на котором стоит винда? Всем заранее большое спасибо!

vadblm 08-06-2011 13:11 1690594

Какой из реализаций NAT пользуетесь (я так понимаю, под "как через прокси" имелся в виду именно NAT)? pf, ipnat, ipfw+natd, kernel ipfw-nat? У них у всех есть механизмы перенаправления портов, соответственно RTFM.
А впрочем, можно перенаправлять универсальным и простым в настройке rinetd.

contoso.com 08-06-2011 13:27 1690611

я бы в таком случае настроил на машине с freebsd vpn server (mpd).
Варианты настройки гуглятся на раз-два . Плюсы очевидны: шифрование трафика, можно подключаться не только к серверу 2003 (да и вообще доступ ко всем ресурсам удаленной сети будет), остальное сами придумайте :))

JaRule 08-06-2011 13:38 1690628

Ну я полный чайник в фрибсд, знаю что NAT используется, но какой именно я не знаю, подскажите как это посмотреть, я посмотрю и отпишусь сразу.

vadblm 08-06-2011 13:42 1690633

Цитата:

Цитата JaRule
Ну я полный чайник в фрибсд, знаю что NAT используется, но какой именно я не знаю »

Тогда, чтобы не плодить энтропию (здесь не курсы по FreeBSD), пользуйтесь
Цитата:

Цитата vadblm
универсальным и простым в настройке rinetd. »


contoso.com 08-06-2011 13:42 1690634

что в /etc/rc.conf ?

JaRule 09-06-2011 10:28 1691277

Ребят, короче с rinetd разобрался, по локалке перенаправление работает, а вот из дома все равно не получилось зайти по внешнему айпишнику, выдает ошибку. Я писал в конфиге так: внешний_айпи_сервака_фрибсд 3389 внутренний_айпи_сервака_винды 3389. Может надо использовать не 3389 а другой порт? только какой? или айпишники как-то по другому надо прописать?

contoso.com 09-06-2011 10:51 1691292

угу и твою ошибку все должны телепатировать....

JaRule 09-06-2011 11:12 1691303

тю, ну ошибка обычная "Невозможно связаться с удаленным компьютером, возможно он отключен или не поддерживает удаленное соединение", по-моему других ошибок удаленный рабочий стол и не выдает если не может сконнектиться

Telepuzik 09-06-2011 11:18 1691306

JaRule,
На Брандмауэре FreeBSD порт 3389 открыли ???

JaRule 09-06-2011 11:40 1691320

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

contoso.com 09-06-2011 11:53 1691329

из дома:
telnet $external_ip 3389

Telepuzik 09-06-2011 11:57 1691333

Цитата:

Цитата JaRule
Я думаю, если б тот порт был закрыт у меня б и с рабочего компа не получался бы коннект... »

Смотря какие правила в брандмауэре записаны (он у вас вообще настроен ??), если например у вас есть правило разрешающее исходящий трафик из локальной сети в интернет то соотвествено соединение дойдет до rinetd и тот переправит его на хост в локальной сети. А вот соединения приходящие на внешнюю карту обычно заблокированы и следовательно соединения до rinetd не доходят. Надо смотреть правила брандмауэра если он у вас вообще используется.

JaRule 09-06-2011 12:17 1691346

а как посмотреть настройки брэндмауэра? какой там конфигурационный файл? И, кстати на сам сервак фрибсд через putty я из дома спокойно захожу по внешнему айпи.

Telepuzik 09-06-2011 15:32 1691460

Покажите что у Вас rc.conf написано.

JaRule 09-06-2011 16:14 1691506

все, я сам посмотрел этот файл, нашел в нем ссылку на файл настроек файервола, туда зашел, там строки вида
add 49 allow ip from any to any via lo0
add 50 allow ip from any to any via lo0 from (какой-то айпишник)
короче несоклько подобных строк, там с айпишник ана айпишник и т.д., в конце
add 54 allow gre from any to any
add 55 allow ip from any to any via gif0
в конце закомментированная строка # add 65000 allow all from any to any
эту строку разкомментировал, файл сохранил, но все равно не помогло. Может надо перезапустить файервол?

contoso.com 09-06-2011 16:35 1691515

ipfw list покажите

JaRule 09-06-2011 16:41 1691519

в каком файле он находится? бо по поиску налшось очень много файлов с именем ipfw

vadblm 09-06-2011 16:45 1691524

Это команда.

JaRule 09-06-2011 16:48 1691526

00030 allow ip from 109.167.33.0/24 to any
00032 allow ip from any to 109.167.33.0/24
00038 allow ip from 77.222.138.182 to any
00039 allow ip from any to 77.222.138.182
00040 allow tcp from any to any dst-port 22
00041 allow tcp from any 22 to any
00042 allow ip from any to any via gif0
00043 allow esp from 194.125.249.166 to any
00044 allow esp from any to 194.125.249.166
00045 allow icmp from any to any
00046 allow tcp from any 80,21,20,443 to me
00047 allow tcp from me to any dst-port 80,21,20,443
00048 allow udp from me to any dst-port 53
00049 allow ip from any to any via lo0
00049 allow udp from any 53 to any
00050 allow ip from 89.162.155.154 to any
00050 allow ip from 89.162.155.154 to any
00051 allow ip from any to 89.162.155.154
00051 allow ip from any to 89.162.155.154
00052 allow ip from 194.125.249.166 to any
00052 allow esp from 89.162.155.154 to any
00053 allow ip from any to 194.125.249.166
00053 allow esp from any to 89.162.155.154
00054 allow gre from any to any
00055 allow ip from any to any via gif0
00080 allow ip from any to any via rl1
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00229 deny log logamount 200 ip from any to any
00300 deny ip from 127.0.0.0/8 to any
65535 deny ip from any to any

Telepuzik 09-06-2011 17:12 1691539

Цитата:

Цитата JaRule
Может надо перезапустить файервол? »

Да нужно перезагрузить правила файрвола, выполните команду с консоли сервера(не через SSH) sh /путь_к_файлу/файл_настроек_файрвола но перед этим закоментируйте правило номер 229. И вывод ifconfig покажите.

JaRule 09-06-2011 17:30 1691547

а где находится и как называется файл в котором весь этот список? Че-то не могу найти, все файлы с именем ipfw - это скрипты, в файле firewall.conf есть тока то что я приводил выше, списка этого (ipfw list) там нет...

Telepuzik 09-06-2011 17:40 1691556

Цитата:

Цитата JaRule
а где находится и как называется файл в котором весь этот список? »

Этот список и есть в файле firewall.conf. У вас в rc.conf параметр firewall_type присутствует??

JaRule 09-06-2011 17:53 1691563

firewall_type="/etc/firewall.conf", а в файле /etc/firewall.conf есть только то, что я писал пару сообщений назад

это все что есть в файле /firewall.conf

add 49 allow ip from any to any via lo0
add 50 allow ip from 89.162.155.154 to any
add 51 allow ip from any to 89.162.155.154
add 52 allow ip from 194.125.249.166 to any
add 53 allow ip from any to 194.125.249.166
add 54 allow gre from any to any
add 55 allow ip from any to any via gif0

#add 65000 allow all from any to any

Telepuzik 09-06-2011 18:04 1691571

Покажите вывод команды cat /etc/rc.conf | grep firewall

JaRule 09-06-2011 18:09 1691574

firewall_enable="YES"
firewall_type="/etc/firewall.conf"

Telepuzik 10-06-2011 09:50 1691908

Цитата:

Цитата JaRule
firewall_enable="YES"
firewall_type="/etc/firewall.conf" »

Странно. В файле firewall.conf точно только это:
Цитата:

Цитата JaRule
add 49 allow ip from any to any via lo0
add 50 allow ip from 89.162.155.154 to any
add 51 allow ip from any to 89.162.155.154
add 52 allow ip from 194.125.249.166 to any
add 53 allow ip from any to 194.125.249.166
add 54 allow gre from any to any
add 55 allow ip from any to any via gif0
#add 65000 allow all from any to any »

Всего 8 строк??

JaRule 10-06-2011 10:38 1691943

да! Я уже сто раз его открывал, даже через разные SSH-клиенты, но ничего другого там нет!

contoso.com 10-06-2011 11:23 1691976

:D
ну как видите он не совсем соответствует выводу команды ipfw list. Возможно правила добавлялись из командной строки.
а можете привести пример содержимого всего /etc/rc.conf ?

JaRule 10-06-2011 11:46 1691998

defaultrouter="193.110.74.*"
gateway_enable="YES"
ifconfig_rl0="193.110.74.* netmask 255.255.255.252"
ifconfig_rl1="192.168.38.6 netmask 255.255.255.0"
firewall_enable="YES"
firewall_type="/etc/firewall.conf"
hostname="don"
keymap="ua.koi8-u"
linux_enable="YES"
moused_enable="YES"
moused_flags="3"
moused_port="/dev/psm0"
moused_type="auto"
sshd_enable="YES"
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
racoon_enable="YES"

Telepuzik 10-06-2011 13:23 1692051

JaRule,
А вы систему давно перезагружали?? Покажите вывод history | grep ipfw.
Пропишите следующее правило файрвола:
ipfw add 150 allow ip from any to 193.110.74.* dst-port 3389 где 193.110.74.* - ip адрес сетевой смотрящей в интернет.

JaRule 10-06-2011 13:56 1692075

Цитата:

Цитата Telepuzik
Покажите вывод history | grep ipfw »

Там ничего нет, кроме моих поисков файлов с именами ipfw

Цитата:

Цитата Telepuzik
где 193.110.74.* - ip адрес сетевой смотрящей в интернет »

Тобиш внешний айпи-адрес?

Цитата:

Цитата Telepuzik
ipfw add 150 allow ip from any to 193.110.74.* dst-port 3389 »

ок, ща попробую добавить эту строчку в firewall.conf а затем перезагружу сервер, как раз рабочий перерыв

Telepuzik 10-06-2011 14:42 1692100

Цитата:

Цитата JaRule
Тобиш внешний айпи-адрес? »

Да.

JaRule 10-06-2011 15:04 1692114

все, правило файервола я добавил, в списке ipfw list оно присутсвует. Надо теперь перезагружать сервак? Есть ли возможность сделать чтоб оно вошло в силу без перезагрузки?

contoso.com 10-06-2011 15:22 1692128

Цитата:

Цитата Telepuzik
А вы систему давно перезагружали?? »

не стал бы я этого делать..... по крайней мере пока не придет понимание работы ipfw
Цитата:

Цитата JaRule
все, правило файервола я добавил, в списке ipfw list оно присутсвует. Надо теперь перезагружать сервак? Есть ли возможность сделать чтоб оно вошло в силу без перезагрузки? »

зачем? правило добавлено. в списке присутствует.

Telepuzik 10-06-2011 15:23 1692130

Цитата:

Цитата JaRule
в списке ipfw list оно присутсвует. Надо теперь перезагружать сервак? »

Нет не надо, если оно есть в выводе ipfw list то значит оно уже действует, пробуйте снаружи подключиться по RDP.

Цитата:

Цитата contoso.com
не стал бы я этого делать..... по крайней мере пока не придет понимание работы ipfw »

Да я как бы и не советовал его перезагружать, просто интересно откуда берутся остальные правила файрвола.

vadblm 10-06-2011 16:40 1692189

Цитата:

Цитата Telepuzik
откуда берутся остальные правила файрвола. »

Можно ещё в rc.local заглянуть. Или, совсем бредово, но возможно - в crontab. Бред конечно, но раз настраивавший сей сервер человек, судя по всему, любитель правой ногой левое ухо чесать, то всё может быть...

JaRule 10-06-2011 22:32 1692358

вобщем, все сделал, но не работает(( может это правило добавить последним в списке?

contoso.com 11-06-2011 20:22 1692793

для ipfw последним в списке идет правило "по умолчанию".
не работает что? порт не открылся или по РДП на сервер не коннектит? Если первое, то как проверяли? Если второе, то убедится что выполняется первое условие (порт открыт) и затем смотреть как настроен rinetd. Кстати, м.б. на 2003 сервере тоже фаервол настроен?

JaRule 12-06-2011 15:28 1693155

Как проверить открыт ли порт? На 2003-м файрвол я вроде бы отключал... Через комп с локалки все работает, с внешки нет. Более того, с сервером фрибсд через SSH-клиент я так же спокойно соединяюсь с внешнки... А вот с внешки на 2003, не хочет и хоть убей, мне уже начинает казаться что это в принципе невозможно

vadblm 12-06-2011 15:32 1693159

Цитата:

Цитата JaRule
Как проверить открыт ли порт? »

nmap -p 3389 <server>

http://nmap.org/download.html

contoso.com 13-06-2011 14:11 1693575

Цитата:

Цитата JaRule
На 2003-м файрвол я вроде бы отключал...»

этого не стоит делать. разве что временно в качестве теста.
Цитата:

Цитата JaRule
Через комп с локалки все работает, с внешки нет. Более того, с сервером фрибсд через SSH-клиент я так же спокойно соединяюсь с внешнки... А вот с внешки на 2003, не хочет и хоть убей, мне уже начинает казаться что это в принципе невозможно »

Через ПК с локалки вы соединяетесь потому что машины находятся в одном адресном пространстве, ваш_пк <---> сервер_2003. В случае доступа из дома у вас появляется прослойка ввиде маршрутизатора freebsd. То, что вы соединяетесь по ссш из дома на машину фрибсд, всего лишь говорит о том, что на машине с freebsd запущен сервис sshd и он слушает 22 порт (22 ли?). При этом, этот порт открыт в ipfw. Я вижу 2 варианта развития событий:
1 Выкладываете настройки rinetd и правил ipfw.
2. Пробросить порты с помощью ipf, добавив правила. Примерно они будут выглядеть так:
Код:

nat 1 config log if $ext_if log same_ports  redirect_port tcp ip_server_2003:3389 3389
add 1000 nat 1 ip from any to any via $ext_if


Telepuzik 14-06-2011 08:24 1694031

JaRule,
Цитата:

Цитата JaRule
инет через него как через прокси »

Вот тут возникла мысль, а прописан ли у Вас на 2003 сервере GW. Вывод ipconfig /all с сервера покажите.

JaRule 14-06-2011 11:58 1694141

Цитата:

Цитата contoso.com
nat 1 config log if $ext_if log same_ports redirect_port tcp ip_server_2003:3389 3389 add 1000 nat 1 ip from any to any via $ext_if »

в обоих случаях пишет ext_if:Underfined variable

Цитата:

Цитата Telepuzik
Вот тут возникла мысль, а прописан ли у Вас на 2003 сервере GW. Вывод ipconfig /all с сервера покажите. »

Имеется ввиду Default Gateway? На сервере две сетевухи и впн, так что айпишников там полно, но конфиге одной из сетевух в Default Gateway стоит айпишник сервака фрибсд

contoso.com 14-06-2011 12:50 1694174

Цитата:

Цитата JaRule
в обоих случаях пишет ext_if:Underfined variable »

гм, уважаемый, это переменная :) определяется в начале конфигурационного файла rc.firewall (или как он там у вас). носит значение внешнего интерфейса. ext_if - external_interface - внешний интерфейс. Вам надо либо определить ее перед использованием, как то ext_if="fxp0", где fxp0 - имя интерфейса в системе, либо вместо нее в правиле использовать реальное имя интерфейса.
Цитата:

Цитата JaRule
Имеется ввиду Default Gateway? На сервере две сетевухи и впн, так что айпишников там полно, но конфиге одной из сетевух в Default Gateway стоит айпишник сервака фрибсд »

да лучше просто запостить вывод ипконфиг /олл и подписать что-есть-что, а народ уже разберется.

Telepuzik 14-06-2011 13:17 1694200

JaRule,
Пропишите еще одно правило:
ipfw add 160 allow ip from 193.110.74.* to any src-port 3389 где 193.110.74.* - ip внешней сетевой.

JaRule 18-06-2011 21:59 1697233

УРА-УРА-УРА!!!! Получилось!!! Большое спасибо!!!!


Время: 09:28.

Время: 09:28.
© OSzone.net 2001-