Страница 1 из 1
FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 9:47:09
pakitan
Имеем FreeBSD 7.1
с роутера пингуется внешняя и внутренняя сеть
из внутренней сети не видно внешнюю, но пингуются оба ip роутера
походу какая-то проблема с nat (((
Господа, есть мысли?
Код: Выделить всё
router# ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=2808<VLAN_MTU,WOL_UCAST,WOL_MAGIC>
ether 00:13:46:ec:b6:63
inet 91.197.xxx.xxx netmask 0xfffffe00 broadcast 91.197.xxx.xxx
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:13:20:28:96:17
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33204
[cut все что не относится к делу]
Код: Выделить всё
router# more /etc/rc.conf
gateway_enable="YES"
router="/sbin/routed"
router_enable="YES"
router_flags="-q"
pf_flags=""
pflog_enable="YES"
pf_rules="/etc/pf.conf"
pflog_logfile="/var/log/pflog"
pflog_flags=""
defaultrouter="91.197.xxx.xxx"
Упрощенный до предела pf
Код: Выделить всё
router# more /etc/pf.conf
ext_if = "vr0"
int_if = "fxp0"
lo_if = "lo0"
Код: Выделить всё
nat on $ext_if from !($ext_if) to any -> ($ext_if)
pass in on $ext_if proto tcp from any to $ext_if port 22
pass from { lo, $int_if:network } to any keep state
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 10:35:54
tom.cat
А зачем использовать эти настройки?
Код: Выделить всё
router="/sbin/routed"
router_enable="YES"
router_flags="-q"
Я так понял у Вас обычный шлюз в инет. И смысл использовать "lo0" в настройках pf.conf
? Вот здесь
http://www.openbsd.org/faq/pf/index.html расписано все до мелочей
Код: Выделить всё
ext_if="fxp0"
int_if="xl0"
nat on $ext_if from !($ext_if) -> ($ext_if:0)
Вот простой пример NAT. Остальные правила и фильтрацию пакетов допишите сами.
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 11:11:46
Гость
tom.cat писал(а):А зачем использовать эти настройки?
Код: Выделить всё
router="/sbin/routed"
router_enable="YES"
router_flags="-q"
Ну, предположим, при наличии gateway_enable="YES" в них особого смысла и нет, но pf.conf взят как раз из нижеуказанного мануала.
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 11:41:53
pakitan
добавляем в pf.conf
Код: Выделить всё
rdr pass on $ext_if proto tcp from any to ($ext_if) port 3389 tag RDP -> 192.168.0.5 port 3389
nat on $int_if tagged RDP -> 192.168.0.1
на внешнем интерфейсе запускаем tshark
Код: Выделить всё
router# tshark -i vr0 -V port 3389
Capturing on vr0
Из внешней сети делаем:
Код: Выделить всё
[root@router /etc]# telnet 91.197.xxx.xxx 3389
Trying 91.197.213.4...
telnet: connect to address 91.197.xxx.xxx: Connection refused
telnet: Unable to connect to remote host
и видим что думает по этому поводу tshark:
Код: Выделить всё
Frame 1 (74 bytes on wire, 74 bytes captured)
Arrival Time: Apr 4, 2009 11:28:02.196371000
[Time delta from previous captured frame: 0.000000000 seconds]
[Time delta from previous displayed frame: 0.000000000 seconds]
[Time since reference or first frame: 0.000000000 seconds]
Frame Number: 1
Frame Length: 74 bytes
Capture Length: 74 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:tcp]
Ethernet II, Src: Cisco_d2:fd:01 (00:1c:58:d2:fd:01), Dst: D-Link_ec:b6:63 (00:13:46:ec:b6:63)
Destination: D-Link_ec:b6:63 (00:13:46:ec:b6:63)
Address: D-Link_ec:b6:63 (00:13:46:ec:b6:63)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: Cisco_d2:fd:01 (00:1c:58:d2:fd:01)
Address: Cisco_d2:fd:01 (00:1c:58:d2:fd:01)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 81.222.xxx.xxx (81.222.xxx.xxx), Dst: 91.197.xxx.xxx (91.197.xxx.xxx)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 60
Identification: 0xd733 (55091)
Flags: 0x04 (Don't Fragment)
0... = Reserved bit: Not set
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 57
Protocol: TCP (0x06)
Header checksum: 0xfcbc [correct]
[Good: True]
[Bad : False]
Source: 81.222.xxx.xxx (81.222.xxx.xxx)
Destination: 91.197.xxx.xxx (91.197.xxx.xxx)
Transmission Control Protocol, Src Port: 53536 (53536), Dst Port: ms-wbt-server (3389), Seq: 0, Len: 0
Source port: 53536 (53536)
Destination port: ms-wbt-server (3389)
Sequence number: 0 (relative sequence number)
Header length: 40 bytes
Flags: 0x02 (SYN)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...0 .... = Acknowledgment: Not set
.... 0... = Push: Not set
.... .0.. = Reset: Not set
.... ..1. = Syn: Set
.... ...0 = Fin: Not set
Window size: 65535
Checksum: 0x8b53 [correct]
[Good Checksum: True]
[Bad Checksum: False]
Options: (20 bytes)
Maximum segment size: 1420 bytes
NOP
Window scale: 3 (multiply by 8)
SACK permitted
Timestamps: TSval 5572585, TSecr 0
Frame 2 (60 bytes on wire, 60 bytes captured)
Arrival Time: Apr 4, 2009 11:28:02.196395000
[Time delta from previous captured frame: 0.000024000 seconds]
[Time delta from previous displayed frame: 0.000024000 seconds]
[Time since reference or first frame: 0.000024000 seconds]
Frame Number: 2
Frame Length: 60 bytes
Capture Length: 60 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:tcp]
Ethernet II, Src: D-Link_ec:b6:63 (00:13:46:ec:b6:63), Dst: Cisco_d2:fd:01 (00:1c:58:d2:fd:01)
Destination: Cisco_d2:fd:01 (00:1c:58:d2:fd:01)
Address: Cisco_d2:fd:01 (00:1c:58:d2:fd:01)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: D-Link_ec:b6:63 (00:13:46:ec:b6:63)
Address: D-Link_ec:b6:63 (00:13:46:ec:b6:63)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Trailer: 000000000000
Internet Protocol, Src: 91.197.xxx.xxx (91.197.xxx.xxx), Dst: 81.222.xxx.xxx (81.222.xxx.xxx)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 40
Identification: 0xac86 (44166)
Flags: 0x04 (Don't Fragment)
0... = Reserved bit: Not set
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0x207e [correct]
[Good: True]
[Bad : False]
Source: 91.197.xxx.xxx (91.197.xxx.xxx)
Destination: 81.222.xxx.xxx (81.222.xxx.xxx)
Transmission Control Protocol, Src Port: ms-wbt-server (3389), Dst Port: 53536 (53536), Seq: 1, Ack: 1, Len: 0
Source port: ms-wbt-server (3389)
Destination port: 53536 (53536)
Sequence number: 1 (relative sequence number)
Acknowledgement number: 1 (relative ack number)
Acknowledgement number: 1 (relative ack number)
Header length: 20 bytes
Flags: 0x14 (RST, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgment: Set
.... 0... = Push: Not set
.... .1.. = Reset: Set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 0
Checksum: 0xfb34 [correct]
[Good Checksum: True]
[Bad Checksum: False]
[SEQ/ACK analysis]
[This is an ACK to the segment in frame: 1]
[The RTT to ACK the segment was: 0.000024000 seconds]
На внутреннем интерфейсе tshark молчит. ((
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 15:14:18
pakitan
еще более странно....
на внешнем интерфейсе
Internet Protocol, Src: 192.168.0.5 (192.168.0.5), Dst: 195.242.2.2 (195.242.2.2)
Version: 4
Header length: 20 bytes
это походу винда из внутренней сети куда-то ломится
что странно, разве при прохождении через NAT 192.168.0.5 не должен меняться на ip роутера?
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 15:27:08
paradox
айпи должен меняться
но вы бы сделали по нормальному без тага
сначала нормальный нат - что бы нормально в серой сети видно было белые адресса
а потом просто добавили rdr для rdp
а вы там слишком закрутили
есть предположение что обратный пакет не попадает под нат
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 15:39:06
pakitan
paradox писал(а):айпи должен меняться
но вы бы сделали по нормальному без тага
сначала нормальный нат - что бы нормально в серой сети видно было белые адресса
а потом просто добавили rdr для rdp
а вы там слишком закрутили
есть предположение что обратный пакет не попадает под нат
убрал rdr - ситуация та же ((
а под nat он наверное не попадает, потому что к dst приходит пакет с серым ip -- кому он отвечать-то будет?
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 16:01:04
paradox
что вы голову морочите
настройте нат нормально
что бы оно меняло src айпи
и возращалось на роутер
а потом уже будете rdr крутить
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 16:18:22
Гость
paradox писал(а):
что вы голову морочите
настройте нат нормально
что значит НОРМАЛЬНО?
Вверху все есть. Разве что-то не так?
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 16:22:25
paradox
Имеем FreeBSD 7.1
с роутера пингуется внешняя и внутренняя сеть
из внутренней сети не видно внешнюю, но пингуются оба ip роутера
походу какая-то проблема с nat (((
а что тут нормального?
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 16:30:36
pakitan
paradox писал(а):
а что тут нормального?
Ну вот как бы в этом и вопрос (((
Вроде все настроено, но через NAT походу ни один пакет не проходит (
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 16:47:24
paradox
отож
сначала вы нат пытались настраивать в первом сообщении
а во тором уже редирект пытались завести при нерабочем нате
)
вы уж определитесь
и pflog у вас для чего?
что бы смотреть что попадает или не попадает в нат и как отрабатывает фаервол
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 16:58:42
pakitan
paradox писал(а):
и pflog у вас для чего?
что бы смотреть что попадает или не попадает в нат и как отрабатывает фаервол
pflog пустой
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-04 18:59:08
pakitan
Все оказалось прозаично, господа:
в запарках забыл в rc.conf pf_enable="YES"
Спасибо всем за участие! )
Re: FreeBSD 7.1+PF = не работает NAT
Добавлено: 2009-04-05 0:08:26
tom.cat
это издевательство.