PF и проброс портов

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
beeka
проходил мимо
Сообщения: 6
Зарегистрирован: 2011-03-18 18:58:03

PF и проброс портов

Непрочитанное сообщение beeka » 2011-03-18 19:07:05

в общем долго гулял по интернетам, но так и не пришел к рабочему варианту(( решил спросить здесь, у знающих людей
надо пробросить пару портов на машинку внутри сети, допустим это 27016 и 5004 порты
в /etc/rc.conf:

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

beeka# cat /etc/rc.conf
defaultrouter="188.231.218.1"
hostname="beeka.localhost"
ifconfig_fxp0="inet 192.168.1.1  netmask 255.255.255.0"
ifconfig_vr0="ether 00:1d:60:93:be:1d"
ifconfig_vr0_alias0="inet 188.231.218.186 netmask 255.255.255.0"
sshd_enable="YES"
gateway_enable="YES"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
в /etc/pf.conf

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

beeka# cat /etc/pf.conf
int_if="fxp0"
ext_if="vr0"
scrub in all

rdr pass on $ext_if proto { tcp, udp } from any to any port 5004 -> 192.168.1.10
rdr pass on $ext_if proto { tcp, udp } from any to any port 27016 -> 192.168.1.10
nat on $ext_if from 192.168.1.0/24 to any -> ($ext_if)
в логах такое:

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

beeka# tcpdump -n -e -ttt -r /var/log/pflog
reading from file /var/log/pflog, link-type PFLOG (OpenBSD pflog file)
00:00:00.000000 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
01:20:17.826175 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.99.3.2: igmp query v2 [max resp time 10] [gaddr 239.99.3.2]
00:16:55.202479 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.99.3.2: igmp query v2 [max resp time 10] [gaddr 239.99.3.2]
00:19:00.812796 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
00:00:00.995824 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
00:27:50.413625 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
00:13:56.537183 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
13:54:50.406582 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.14 > 224.0.0.2: igmp leave 224.0.0.252
00:00:00.038068 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.14 > 224.0.0.2: igmp leave 239.255.255.250
00:00:00.321754 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.14 > 224.0.0.2: igmp leave 224.0.0.252
00:00:00.031012 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.14 > 224.0.0.2: igmp leave 239.255.255.250
00:00:11.239184 rule 4294967295/8(ip-option): pass in on vr0: 94.76.110.149 > 224.0.0.2: igmp leave 224.0.0.252
02:19:23.117176 rule 4294967295/8(ip-option): pass in on vr0: 89.252.10.184 > 224.0.0.2: igmp leave 239.255.255.250
00:19:08.363275 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
00:00:00.999937 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
00:09:36.907174 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.39 > 224.0.0.22: igmp v3 report, 1 group record(s)
00:00:05.590748 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.89 > 224.0.0.2: igmp leave 239.255.255.250
00:00:01.630452 rule 4294967295/8(ip-option): pass in on vr0: 94.76.110.25 > 224.0.0.2: igmp leave 224.0.0.252
00:00:00.032669 rule 4294967295/8(ip-option): pass in on vr0: 94.76.110.25 > 224.0.0.2: igmp leave 224.0.0.252
01:20:28.234439 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
02:17:11.287066 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.104 > 224.0.0.22: igmp v3 report, 1 group record(s)
00:00:00.556870 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.104 > 224.0.0.22: igmp v3 report, 1 group record(s)
00:00:02.422566 rule 4294967295/8(ip-option): pass in on vr0: 89.252.10.4 > 224.0.0.2: igmp leave 239.255.255.250
00:00:06.843025 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.104 > 224.0.0.22: igmp v3 report, 1 group record(s)
00:01:16.489209 rule 4294967295/8(ip-option): pass in on vr0: 94.76.110.212 > 224.0.0.22: igmp v3 report, 1 group record(s)
00:00:00.851331 rule 4294967295/8(ip-option): pass in on vr0: 94.76.110.212 > 224.0.0.22: igmp v3 report, 1 group record(s)
00:17:30.566447 rule 4294967295/8(ip-option): pass in on vr0: 89.252.49.76 > 224.0.0.2: igmp leave 239.255.255.250
00:00:08.451175 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.9: igmp query v2 [max resp time 10] [gaddr 239.100.1.9]
00:00:05.165841 rule 4294967295/8(ip-option): pass in on vr0: 94.76.110.52 > 224.0.0.22: igmp v3 report, 1 group record(s)
00:00:00.860870 rule 4294967295/8(ip-option): pass in on vr0: 94.76.110.52 > 224.0.0.22: igmp v3 report, 1 group record(s)
00:11:04.220383 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.0.3: igmp query v2 [max resp time 10] [gaddr 239.100.0.3]
00:02:05.386893 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
00:00:00.991751 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
00:40:26.959332 rule 4294967295/8(ip-option): pass in on vr0: 10.11.13.6 > 239.100.1.12: igmp query v2 [max resp time 10] [gaddr 239.100.1.12]
ткните носом в ошибки, пожалуйста

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
unix-admin
ст. сержант
Сообщения: 324
Зарегистрирован: 2010-11-26 12:43:04
Откуда: Cornucopia

Re: PF и проброс портов

Непрочитанное сообщение unix-admin » 2011-03-21 10:16:12

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

rdr on $ext_if proto tcp from any to  $ext_if port 5004 -> 192.168.1.10 5004

beeka
проходил мимо
Сообщения: 6
Зарегистрирован: 2011-03-18 18:58:03

Re: PF и проброс портов

Непрочитанное сообщение beeka » 2011-03-21 17:08:33

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

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

ext_if="vr0"
int_if="fxp0"
lan="192.168.1.0/24"
server="192.168.1.10"
scrub in all
rdr on $ext_if inet proto udp from any to $ext_if port 27016 -> 192.168.1.10 port 27016
nat on $ext_if from $lan to any -> ($ext_if)
pass in on $ext_if proto udp from any to $server port 27016 keep state
pass out on $int_if proto udp from any to $server port 27016
pass out on $int_if keep state
как бы мне не хотелось и как бы я не крутил конфиг, у меня ничего не получается... несколько дней живу в консоли уже... =(
помогите разобраться, пожалуйста

Гость
проходил мимо

Re: PF и проброс портов

Непрочитанное сообщение Гость » 2011-03-22 23:37:20

nat on $ext_if from $lan to any -> ($ext_if)
rdr pass on $ext_if inet proto udp from any to $ext_if (or ip) port 27016 -> 192.168.1.10 port 27016

or
rdr on $ext_if inet proto udp from any to $ext_if (or ip) port 27016 -> 192.168.1.10 port 27016
pass in on $ext_if proto udp from any to $ext_if port 27016 keep state

Учим матчасть

beeka
проходил мимо
Сообщения: 6
Зарегистрирован: 2011-03-18 18:58:03

Re: PF и проброс портов

Непрочитанное сообщение beeka » 2011-03-23 13:48:51

пробовал и так... без успеха =\

Аватара пользователя
unix-admin
ст. сержант
Сообщения: 324
Зарегистрирован: 2010-11-26 12:43:04
Откуда: Cornucopia

Re: PF и проброс портов

Непрочитанное сообщение unix-admin » 2011-03-23 14:09:09

У ТС какой-то специфичный pf :shock:
У всех работает, а у него "без успеха =\"

beeka
проходил мимо
Сообщения: 6
Зарегистрирован: 2011-03-18 18:58:03

Re: PF и проброс портов

Непрочитанное сообщение beeka » 2011-03-23 15:13:50

я тоже диву даюсь... как так, епт
net.inet.ip.forwarding=1 добавил в sysctl.conf, в rc.conf gateway_enable="YES" дописал тоже... может еще какие-то нюансы есть ?

beeka
проходил мимо
Сообщения: 6
Зарегистрирован: 2011-03-18 18:58:03

Re: PF и проброс портов

Непрочитанное сообщение beeka » 2011-03-23 15:17:17

могу дать доступ по ssh тому, кто может разобраться и кому не лень помочь новичку в данной проблеме... помогите, а ? :)

beeka
проходил мимо
Сообщения: 6
Зарегистрирован: 2011-03-18 18:58:03

Re: PF и проброс портов

Непрочитанное сообщение beeka » 2011-03-28 17:27:02

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

вот такие "правила" в конфиге пф:

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

ee /etc/pf.conf

ext_if="vr0"
int_if="fxp0"

lan="192.168.1.0/24"
ext_ip="188.231.218.186/32"
server="192.168.1.10/32"

ports="{ 21, 22, 25, 80, 27016, 27015, 27005 }"

set skip on lo0
scrub in all

nat on $ext_if inet from $lan to any -> $ext_if

pass in on $int_if proto tcp from any to $server
pass out on $int_if proto tcp from $server to any

pass in on $ext_if proto tcp from any to any
pass out on $ext_if proto tcp from any to any 
ммм... как быть ?