URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95962
[ Назад ]

Исходное сообщение
"FreeBSD 10 проброс портов"

Отправлено yokon , 29-Янв-15 12:59 
День добрый!
Нужна помощь!

Есть шлюз freeBSD 10.
За ним локалка.
Нужно пробросить порт 1723 и GRE на VPN сервер в локальной сети.

rdr on $ext_if proto tcp from any to ($ext_if) port 1723 -> 192.168.2.2 port 1723
pass in inet proto tcp from any to $ext_if port 1723 keep state

Достаточно ли этого?
С помощью tcping я проверяю доступность 1723 порта на внешнем интерфейсе шлюза.
Молчит.
Проверяю 22 порт - отвечает.
Я вычитал что для того, что бы порт отвечал, нужно что бы какая-либо служба слушала его.
С 22 все понятно, его слушает ssh.
А с 1723? У меня этот порт слушает VPN сервер в локальной сети, а мне нужно
только что бы шлюз пробросил его.
Верно ли я понял?
И GRE нужно пробросить. Запутался я((((


Содержание

Сообщения в этом обсуждении
"FreeBSD 10 проброс портов"
Отправлено reader , 29-Янв-15 13:05 
>[оверквотинг удален]
> Молчит.
> Проверяю 22 порт - отвечает.
> Я вычитал что для того, что бы порт отвечал, нужно что бы
> какая-либо служба слушала его.
> С 22 все понятно, его слушает ssh.
> А с 1723? У меня этот порт слушает VPN сервер в локальной
> сети, а мне нужно
> только что бы шлюз пробросил его.
> Верно ли я понял?
> И GRE нужно пробросить. Запутался я((((

GRE пробрасывайте и разрешайте


"FreeBSD 10 проброс портов"
Отправлено yokon , 29-Янв-15 13:09 
>[оверквотинг удален]
>> Проверяю 22 порт - отвечает.
>> Я вычитал что для того, что бы порт отвечал, нужно что бы
>> какая-либо служба слушала его.
>> С 22 все понятно, его слушает ssh.
>> А с 1723? У меня этот порт слушает VPN сервер в локальной
>> сети, а мне нужно
>> только что бы шлюз пробросил его.
>> Верно ли я понял?
>> И GRE нужно пробросить. Запутался я((((
> GRE пробрасывайте и разрешайте

Тоесть не хватает только gre пробросить? Могли бы Вы немного подробнее сказать?


"FreeBSD 10 проброс портов"
Отправлено reader , 29-Янв-15 13:11 
>[оверквотинг удален]
>>> Я вычитал что для того, что бы порт отвечал, нужно что бы
>>> какая-либо служба слушала его.
>>> С 22 все понятно, его слушает ssh.
>>> А с 1723? У меня этот порт слушает VPN сервер в локальной
>>> сети, а мне нужно
>>> только что бы шлюз пробросил его.
>>> Верно ли я понял?
>>> И GRE нужно пробросить. Запутался я((((
>> GRE пробрасывайте и разрешайте
> Тоесть не хватает только gre пробросить? Могли бы Вы немного подробнее сказать?

до VPN сервера должен дойти и 1723 и GRE


"FreeBSD 10 проброс портов"
Отправлено yokon , 29-Янв-15 13:19 
>[оверквотинг удален]
>>>> какая-либо служба слушала его.
>>>> С 22 все понятно, его слушает ssh.
>>>> А с 1723? У меня этот порт слушает VPN сервер в локальной
>>>> сети, а мне нужно
>>>> только что бы шлюз пробросил его.
>>>> Верно ли я понял?
>>>> И GRE нужно пробросить. Запутался я((((
>>> GRE пробрасывайте и разрешайте
>> Тоесть не хватает только gre пробросить? Могли бы Вы немного подробнее сказать?
> до VPN сервера должен дойти и 1723 и GRE

Понял. А как прописать проброс GRE?


"FreeBSD 10 проброс портов"
Отправлено reader , 29-Янв-15 13:28 
>[оверквотинг удален]
>>>>> С 22 все понятно, его слушает ssh.
>>>>> А с 1723? У меня этот порт слушает VPN сервер в локальной
>>>>> сети, а мне нужно
>>>>> только что бы шлюз пробросил его.
>>>>> Верно ли я понял?
>>>>> И GRE нужно пробросить. Запутался я((((
>>>> GRE пробрасывайте и разрешайте
>>> Тоесть не хватает только gre пробросить? Могли бы Вы немного подробнее сказать?
>> до VPN сервера должен дойти и 1723 и GRE
> Понял. А как прописать проброс GRE?

rdr on $ext_if proto gre from any to ($ext_if) -> 192.168.2.2

и смотрите что бы и на внутреннем интерфейсе разрешено было проходить пакетам


"FreeBSD 10 проброс портов"
Отправлено yokon , 29-Янв-15 13:44 
>[оверквотинг удален]
>>>>>> сети, а мне нужно
>>>>>> только что бы шлюз пробросил его.
>>>>>> Верно ли я понял?
>>>>>> И GRE нужно пробросить. Запутался я((((
>>>>> GRE пробрасывайте и разрешайте
>>>> Тоесть не хватает только gre пробросить? Могли бы Вы немного подробнее сказать?
>>> до VPN сервера должен дойти и 1723 и GRE
>> Понял. А как прописать проброс GRE?
> rdr on $ext_if proto gre from any to ($ext_if) -> 192.168.2.2
> и смотрите что бы и на внутреннем интерфейсе разрешено было проходить пакетам

Да, так уже прописал. Я пока плохо разбираюсь с Freebsd. Как понять проходят ли пакеты на внутреннем интерфейсе?
Я на всякий случай конфиг pf выложу.

int_if="vr0"
ext_if="re0"

office1_ip=".........."
office2_ip=".........."

localnet="192.168.1.0/24"
tcp_ports="{22,80,443,25,110,465,995,5190,3389,5900,5400,17443,59273,9150,2710}"
udp_ports="{53,500}"

set skip on lo0
set skip on $int_if

scrub in all
rdr on $ext_if proto tcp from any to ($ext_if) port 1723 -> 192.168.2.2 port 1823
rdr on $ext_if proto gre from any to ($ext_if) -> 192.168.2.2

nat on $ext_if from $localnet to any -> ($ext_if)
antispoof quick for $ext_if

block all
table < badhosts > persist
block quick on $ext_if from < badhosts > to any

pass out on $ext_if proto tcp to any port $tcp_ports keep state
pass out on $ext_if proto udp to any port $udp_ports keep state

pass in inet proto tcp from any to $int_if port 22 keep state
pass in inet proto tcp from any to $ext_if port 1723 keep state
pass quick proto gre from any to any

pass inet proto icmp all

pass out quick on $ext_if proto udp from $office1_ip port = isakmp to $office2_ip
pass out quick on $ext_if proto esp from $office1_ip to $office2_ip
pass out quick on $ext_if proto ipencap from $office1_ip to $office2_ip
pass out quick on $ext_if proto ah from $office1_ip to $office2_ip

pass in quick on $ext_if proto udp from $office2_ip port = isakmp to $office1_ip
pass in quick on $ext_if proto esp from $office2_ip to $office1_ip
pass in quick on $ext_if proto ipencap from $office2_ip to $office1_ip
pass in quick on $ext_if proto ah from $office2_ip to $office1_ip


"FreeBSD 10 проброс портов"
Отправлено reader , 29-Янв-15 13:55 
>[оверквотинг удален]
>>>>>>> Верно ли я понял?
>>>>>>> И GRE нужно пробросить. Запутался я((((
>>>>>> GRE пробрасывайте и разрешайте
>>>>> Тоесть не хватает только gre пробросить? Могли бы Вы немного подробнее сказать?
>>>> до VPN сервера должен дойти и 1723 и GRE
>>> Понял. А как прописать проброс GRE?
>> rdr on $ext_if proto gre from any to ($ext_if) -> 192.168.2.2
>> и смотрите что бы и на внутреннем интерфейсе разрешено было проходить пакетам
> Да, так уже прописал. Я пока плохо разбираюсь с Freebsd. Как понять
> проходят ли пакеты на внутреннем интерфейсе?

tcpdump на внутреннем интерфейсе

>[оверквотинг удален]
> antispoof quick for $ext_if
> block all
> table < badhosts > persist
> block quick on $ext_if from < badhosts > to any
> pass out on $ext_if proto tcp to any port $tcp_ports keep state
> pass out on $ext_if proto udp to any port $udp_ports keep state
> pass in inet proto tcp from any to $int_if port 22 keep
> state
> pass in inet proto tcp from any to $ext_if port 1723 keep
> state

тут ip уже будет изменен и под to $ext_if не попадет
>[оверквотинг удален]
> pass out quick on $ext_if proto udp from $office1_ip port = isakmp
> to $office2_ip
> pass out quick on $ext_if proto esp from $office1_ip to $office2_ip
> pass out quick on $ext_if proto ipencap from $office1_ip to $office2_ip
> pass out quick on $ext_if proto ah from $office1_ip to $office2_ip
> pass in quick on $ext_if proto udp from $office2_ip port = isakmp
> to $office1_ip
> pass in quick on $ext_if proto esp from $office2_ip to $office1_ip
> pass in quick on $ext_if proto ipencap from $office2_ip to $office1_ip
> pass in quick on $ext_if proto ah from $office2_ip to $office1_ip


"FreeBSD 10 проброс портов"
Отправлено yokon , 29-Янв-15 14:05 
Понятно, что ничего не понятно.
Спасибо Игорь, буду больше читать, ничего не понимаю.

"FreeBSD 10 проброс портов"
Отправлено yokon , 29-Янв-15 17:51 
Игорь, подскажите.
Если я слушаю tcpdump порт 1723 на внешнем интерфейсе и tcping этот порт из вне, должен ли я получать данные в tcpdump?
Или нужно вначале добиться проброса данного порта на локальную машину?
Я уже мозг себе сломал.
Уже перечитал почти весь man по pf.
Переделал немного конфиг. Посмотрите пожалуйста, что неправильно?

int_if="hn0"
ext_if="hn1"

office1_ip="...."
office2_ip="...."

localnet="192.168.2.0/24"
tcp_ports="{22,80,443,25,110,465,995,5190,3389,5900,5400,1723}"
udp_ports="{53,500}"

set skip on lo0
set skip on $int_if

scrub in all

nat on $ext_if from $localnet to any -> ($ext_if)

rdr pass on $ext_if proto tcp from any to any port 1723 -> 192.168.2.2
rdr pass on $ext_if proto gre from any to any -> 192.168.2.2

block in  all

table < badhosts > persist
block quick on $ext_if from < badhosts > to any

antispoof quick for $ext_if

pass out on $ext_if proto tcp to any port $tcp_ports keep state
pass out on $ext_if proto udp to any port $udp_ports keep state

pass in inet proto tcp from any to $int_if port 22 keep state
pass inet proto icmp all

pass out quick on $ext_if proto udp from $office2_ip port = isakmp to $office1_i
pass out quick on $ext_if proto esp from $office2_ip to $office1_ip
pass out quick on $ext_if proto ipencap from $office2_ip to $office1_ip
pass out quick on $ext_if proto ah from $office2_ip to $office1_ip

pass in quick on $ext_if proto udp from $office1_ip port = isakmp to $office2_ip
pass in quick on $ext_if proto esp from $office1_ip to $office2_ip
pass in quick on $ext_if proto ipencap from $office1_ip to $office2_ip
pass in quick on $ext_if proto ah from $office1_ip to $office2_ip


"FreeBSD 10 проброс портов"
Отправлено reader , 30-Янв-15 09:03 
> Игорь, подскажите.
> Если я слушаю tcpdump порт 1723 на внешнем интерфейсе и tcping этот
> порт из вне, должен ли я получать данные в tcpdump?
> Или нужно вначале добиться проброса данного порта на локальную машину?

tcpdump должен показать хотя бы один пакет от клиента на внешнем интерфейсе, если пакета нет то ненужно пока pf мучать

tcpdump -n -i ext_if port 1723
и пробуете подключиться с клиента, если пакета нет смотрите на клиенте ушел ли пакет.
если пакет есть, то смотрите на внутреннем интерфейсе
tcpdump -n -i int_if port 1723
должны увидеть хотя бы один пакет в сторону 192.168.2.2

>[оверквотинг удален]
> pass out quick on $ext_if proto udp from $office2_ip port = isakmp
> to $office1_i
> pass out quick on $ext_if proto esp from $office2_ip to $office1_ip
> pass out quick on $ext_if proto ipencap from $office2_ip to $office1_ip
> pass out quick on $ext_if proto ah from $office2_ip to $office1_ip
> pass in quick on $ext_if proto udp from $office1_ip port = isakmp
> to $office2_ip
> pass in quick on $ext_if proto esp from $office1_ip to $office2_ip
> pass in quick on $ext_if proto ipencap from $office1_ip to $office2_ip
> pass in quick on $ext_if proto ah from $office1_ip to $office2_ip


"FreeBSD 10 проброс портов"
Отправлено yokon , 29-Янв-15 13:07 
Я воспользовался tcpdump -n -i fxp0 port 1723 and host 192.168.2.2
Пытался подключаться через vpn, ничего не показывает.



"FreeBSD 10 проброс портов"
Отправлено reader , 29-Янв-15 13:09 
> Я воспользовался tcpdump -n -i fxp0 port 1723 and host 192.168.2.2
> Пытался подключаться через vpn, ничего не показывает.

если fxp0 это внешний интерфейс, то 192.168.2.2 там еще не будет