День добрый!
Нужна помощь!Есть шлюз 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 нужно пробросить. Запутался я((((
>[оверквотинг удален]
> Молчит.
> Проверяю 22 порт - отвечает.
> Я вычитал что для того, что бы порт отвечал, нужно что бы
> какая-либо служба слушала его.
> С 22 все понятно, его слушает ssh.
> А с 1723? У меня этот порт слушает VPN сервер в локальной
> сети, а мне нужно
> только что бы шлюз пробросил его.
> Верно ли я понял?
> И GRE нужно пробросить. Запутался я((((GRE пробрасывайте и разрешайте
>[оверквотинг удален]
>> Проверяю 22 порт - отвечает.
>> Я вычитал что для того, что бы порт отвечал, нужно что бы
>> какая-либо служба слушала его.
>> С 22 все понятно, его слушает ssh.
>> А с 1723? У меня этот порт слушает VPN сервер в локальной
>> сети, а мне нужно
>> только что бы шлюз пробросил его.
>> Верно ли я понял?
>> И GRE нужно пробросить. Запутался я((((
> GRE пробрасывайте и разрешайтеТоесть не хватает только gre пробросить? Могли бы Вы немного подробнее сказать?
>[оверквотинг удален]
>>> Я вычитал что для того, что бы порт отвечал, нужно что бы
>>> какая-либо служба слушала его.
>>> С 22 все понятно, его слушает ssh.
>>> А с 1723? У меня этот порт слушает VPN сервер в локальной
>>> сети, а мне нужно
>>> только что бы шлюз пробросил его.
>>> Верно ли я понял?
>>> И GRE нужно пробросить. Запутался я((((
>> GRE пробрасывайте и разрешайте
> Тоесть не хватает только gre пробросить? Могли бы Вы немного подробнее сказать?до VPN сервера должен дойти и 1723 и GRE
>[оверквотинг удален]
>>>> какая-либо служба слушала его.
>>>> С 22 все понятно, его слушает ssh.
>>>> А с 1723? У меня этот порт слушает VPN сервер в локальной
>>>> сети, а мне нужно
>>>> только что бы шлюз пробросил его.
>>>> Верно ли я понял?
>>>> И GRE нужно пробросить. Запутался я((((
>>> GRE пробрасывайте и разрешайте
>> Тоесть не хватает только gre пробросить? Могли бы Вы немного подробнее сказать?
> до VPN сервера должен дойти и 1723 и GREПонял. А как прописать проброс GRE?
>[оверквотинг удален]
>>>>> С 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
и смотрите что бы и на внутреннем интерфейсе разрешено было проходить пакетам
>[оверквотинг удален]
>>>>>> сети, а мне нужно
>>>>>> только что бы шлюз пробросил его.
>>>>>> Верно ли я понял?
>>>>>> И 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_ifscrub 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.2nat on $ext_if from $localnet to any -> ($ext_if)
antispoof quick for $ext_ifblock all
table < badhosts > persist
block quick on $ext_if from < badhosts > to anypass 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 statepass 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 anypass 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_ippass 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
>[оверквотинг удален]
>>>>>>> Верно ли я понял?
>>>>>>> И 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
Понятно, что ничего не понятно.
Спасибо Игорь, буду больше читать, ничего не понимаю.
Игорь, подскажите.
Если я слушаю 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_ifscrub 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.2block in all
table < badhosts > persist
block quick on $ext_if from < badhosts > to anyantispoof 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 statepass in inet proto tcp from any to $int_if port 22 keep state
pass inet proto icmp allpass 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_ippass 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
> Игорь, подскажите.
> Если я слушаю 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
Я воспользовался tcpdump -n -i fxp0 port 1723 and host 192.168.2.2
Пытался подключаться через vpn, ничего не показывает.
> Я воспользовался tcpdump -n -i fxp0 port 1723 and host 192.168.2.2
> Пытался подключаться через vpn, ничего не показывает.если fxp0 это внешний интерфейс, то 192.168.2.2 там еще не будет