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

PF проброс портов с незашлюзованной машины

Добавлено: 2014-04-04 17:40:56
igor_st26
Добрый вечер! С окончанием трудовой недели коллеги!! ))
Очень нужна ваша помощь в решении банальной задачи, но с небольшой поправкой.
Есть машинка с FreeBSD + PF на этой машине имеется белый ип в интернете и так же сетевая карта которая смотрит в сеть 192.168.10.0/24. Так вот в сети 192.168.10.0/24 есть вин сервер ,у которого шлюзом по умолчанию стоит НЕ адрес FreeBSD сервера, КАК СРЕДСТВАМИ PF ПРОКИНУТЬ ПОРТ RDP ЭТОГО СЕРВЕРА НАРУЖУ(т.е. что бы попадать на нее по rdp через белый ип FreeBSD )????

Конструкция типа

Код: Выделить всё

rdr on $out_ip proto tcp from any to $out_ip port 3389 -> 192.168.10.XX port 3389
не работает и насколько я понимаю не должна т.к. вин. сервер будет отвечать обратно через дефолтный шлюз коим не является адрес FreeBSD в сети 192.168.10.0/24.

Заранее благодарен :) :smile: :smile: :smile:

Re: PF проброс портов с незашлюзованной машины

Добавлено: 2014-04-06 12:12:49
Dmitriy_3206
Нат в помощь ;) что бы win машинка думала что это FreeBSD к ней по RDP подключается

Вот мой пример
nat on $int_if inet from <trust_ip> to $video_server -> $int_if
В таблице <trust_ip> у меня ай пи видеонаблюдателей ;) - читается из файла

Вот есть еще такой синтаксис объединяющий rdr и pass - но он у меня не работает :( (в книге по PF для openbsd вычитал)
pass in quick on $ext_if from <trust_ip> to port $video rdr-to $video)server
match out on $int_if from <trust_ip> to $video_server nat-to $int_if

Re: PF проброс портов с незашлюзованной машины

Добавлено: 2014-04-06 15:20:17
igor_st26
Извините я до конца не понял.
Можно пример 1 1й конструкции с натом для моей ситуации

Re: PF проброс портов с незашлюзованной машины

Добавлено: 2014-04-06 19:08:50
alex3
nat поднимаешь не наружу, как обычно, а внутрь (спецом для твоего виндячьего серва.) и ограничения в правилах соответственные.

Re: PF проброс портов с незашлюзованной машины

Добавлено: 2014-04-06 19:13:04
Dmitriy_3206
Предположим:

Код: Выделить всё

ext_if = "ИМЯ_ВАШЕГО_ИНЕТ_ИНТЕРФЕЙСА"  #у вас в макросе out_ip
int_if = "ИМЯ_ВАШЕГО_ВНУТРЕННЕГО_ИНТЕРФЕЙСА"
rdp_server = "192.168.10.XX"

#Если ТОЛЬКО для определенных ip из вне пустить на RDP
#Список храним на диске в файле /usr/local/etc/pf/trust_ip
#где каждая новая строка либо адрес либо сеть с маской 222.111.333.0/24
#вам маску противопоказана, указывайте конкретные адреса 
 
table <trust_ip> persist file "/usr/local/etc/pf/trust_ip"

rdr on $ext_if  proto tcp from any to $ext_if  port 3389 -> $rdp_server port 3389
nat on $int_if inet from <trust_ip> to $rdp_server -> $int_if
Ну а если вам все равно кто ломится на ваш RDP

Код: Выделить всё

nat on $int_if inet to $rdp_server -> $int_if

Re: PF проброс портов с незашлюзованной машины

Добавлено: 2014-04-06 19:16:41
Dmitriy_3206
Прочитал своё художество :) Если уж использовать trust_ip то и в правило RDR добавить. Или только в RDR. Или в оба.....
В общем как мне кажется результат будет одинаковым во всех случаях. Лично у меня RDR используется только внутри VPN сетей где и так все доверенные адреса :)

Re: PF проброс портов с незашлюзованной машины

Добавлено: 2014-04-07 9:28:30
igor_st26
Ай, спасибо щас буду пробовать..))) насчет того ,откуда пускать на RDP я понимаю что надо или в форвардинге или в NATshe указывать :smile:

Re: PF проброс портов с незашлюзованной машины

Добавлено: 2014-04-07 10:27:00
igor_st26
Все пучком, заработало!! Спасибо ребята, буду еще раз читать читать теорию....