The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"NAT in PF OpenBSD"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Информационная безопасность (OpenBSD PF / OpenBSD)
Изначальное сообщение [ Отслеживать ]

"NAT in PF OpenBSD"  +/
Сообщение от PaulEr (ok) on 09-Июн-10, 13:14 
Добрый день, уважаемые коллеги!
Возникла проблема с NAT. До этого настраивал на другой машине, перенес оттуда конфиги, все вроде бы делаю также, но что-то пока не взлетит. Что есть: машина( centos), шлюз (openbsd). В шлюзе 2 сетевухи, одна смотрит в локалку, к другой подключена другая сеть(в которую надо попасть с машины centos).
Прописал маршрут с машины centos в другую сеть:

[root@master]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.111.0   0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0
172.16.0.0      192.168.0.155   255.255.0.0     UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
224.0.0.0       0.0.0.0         240.0.0.0       U         0 0          0 eth1
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 eth0


Сама машина имеет адрес 192.168.0.200.

На шлюзе:
192.168.0.155 - локальная сетевуха (ste0), 172.16.6.2(xl0) - сетевуха внешняя.

# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
127/8              127.0.0.1          UGRS       0        0 33200     8 lo0
127.0.0.1          127.0.0.1          UH         0        0 33200     4 lo0
172.16/16          172.16.6.1         UGS        0        3     -     8 xl0
172.16.6.0/28      link#2             UC         2        0     -     4 xl0
172.16.6.0/28      172.16.6.2         UGS        0        0     -     8 xl0
172.16.6.1         00:19:2f:a1:d7:1a  UHLc       2      585     -     4 xl0
172.16.6.2         00:04:79:66:41:d3  UHLc       0        2     -     4 lo0
172.16.52.2        172.16.6.1         UGHS       0     1012     -     8 xl0
192.168.0/24       link#3             UC         3        0     -     4 ste0
192.168.0.1        00:22:57:61:b8:d2  UHLc       0        6     -     4 ste0
192.168.0.200      00:1f:29:c4:79:de  UHLc       0        9     -     4 ste0
192.168.0.212      00:0c:6e:dd:e6:9f  UHLc       1    80993     -     4 ste0
224/4              127.0.0.1          URS        0        0 33200     8 lo0

Форвардинг включен:

# sysctl net.inet.ip.forwarding
net.inet.ip.forwarding=1
#


PF:
# cat /etc/pf.conf
# $OpenBSD: pf.conf,v 1.44 2009/06/10 15:29:34 sobrado Exp $
#
# See pf.conf(5) for syntax and examples; this sample ruleset uses
# require-order to permit mixing of NAT/RDR and filter rules.
# Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1
# in /etc/sysctl.conf if packets are to be forwarded between interfaces.

ext_if="xl0"
int_if="ste0"

set skip on lo
nat pass on $ext_if inet proto {tcp,udp} from ($int_if:network) port > 1024 to any ->($ext_if:0)

pass out on $ext_if inet proto tcp from any to any keep state

pass quick inet proto icmp
block log all
block log quick on $int_if inet proto tcp from ($int_if:network) to any port 25

pass out quick on $ext_if inet proto {tcp,udp,icmp} from ($ext_if:0) to any flags S/SAFR
pass in on $int_if inet proto {tcp,udp} from ($int_if:network) port > 1024 to any flags S/SAFR
#

tcpdump-ом вижу, что не натится локальный адрес 192.168.0.200 на 172.16.6.2.

17:48:56.593546 802.1d STP config root=0.0:15:c7:9b:e8:a rootcost=8 bridge=800a.0:d:65:da:5b:0 port=6 ifcost=128 age=2/0 max=20/0 hello=2/0 fwdelay=15/0
17:48:57.527308 192.168.0.200 > 172.16.6.1: icmp: echo request (id:0250 seq:3) (DF) (ttl 63, id 0, len 84)
17:48:58.527317 192.168.0.200 > 172.16.6.1: icmp: echo request (id:0250 seq:4) (DF) (ttl 63, id 0, len 84)
17:48:58.597908 802.1d STP config root=0.0:15:c7:9b:e8:a rootcost=8 bridge=800a.0:d:65:da:5b:0 port=6 ifcost=128 age=2/0 max=20/0 hello=2/0 fwdelay=15/0
17:48:59.527322 192.168.0.200 > 172.16.6.1: icmp: echo request (id:0250 seq:5) (DF) (ttl 63, id 0, len 84)
17:49:00.527329 192.168.0.200 > 172.16.6.1: icmp: echo request (id:0250 seq:6) (DF) (ttl 63, id 0, len 84)
17:49:01.527329 192.168.0.200 > 172.16.6.1: icmp: echo request (id:0250 seq:7) (DF) (ttl 63, id 0, len 84)

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "NAT in PF OpenBSD"  +/
Сообщение от sage444 (ok) on 09-Июн-10, 13:30 
покажи
pfctl -s r
pfctl -s n
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "NAT in PF OpenBSD"  +/
Сообщение от PaulEr (ok) on 09-Июн-10, 14:15 
>покажи
>pfctl -s r
>pfctl -s n

К сожалению до сервера сейчас нет доступа. Только завтра вечером смогу добраться. :(

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "NAT in PF OpenBSD"  +/
Сообщение от guest email(??) on 09-Июн-10, 14:36 
>nat pass on $ext_if inet proto {tcp,udp} from ($int_if:network) port > 1024 to any ->$ext_if:0)
>tcpdump-ом вижу, что не натится локальный адрес 192.168.0.200 на 172.16.6.2.
>17:48:57.527308 192.168.0.200 > 172.16.6.1: icmp: echo request (id:0250 seq:3) (DF) (ttl 63, id 0, len 84)

вы настроили nat для tcp и udp, но тестируете почемуто icmp

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "NAT in PF OpenBSD"  +/
Сообщение от PaulEr (ok) on 09-Июн-10, 15:05 
>>nat pass on $ext_if inet proto {tcp,udp} from ($int_if:network) port > 1024 to any ->$ext_if:0)
>>tcpdump-ом вижу, что не натится локальный адрес 192.168.0.200 на 172.16.6.2.
>>17:48:57.527308 192.168.0.200 > 172.16.6.1: icmp: echo request (id:0250 seq:3) (DF) (ttl 63, id 0, len 84)
>
>вы настроили nat для tcp и udp, но тестируете почемуто icmp

Разве этого правила не хватает: pass quick inet proto icmp

Или должно быть такое:  pass on xlo proto icmp all keep state

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "NAT in PF OpenBSD"  +/
Сообщение от guest email(??) on 09-Июн-10, 15:16 
>>вы настроили nat для tcp и udp, но тестируете почемуто icmp
>
>Разве этого правила не хватает: pass quick inet proto icmp

хватает для чего?
Если по русски:
пропускать не глядя на последующие правила весь icmp
Про то, что нужно делать NAT тут не слова нет.

>Или должно быть такое:  pass on xlo proto icmp all keep
>state

смотря чего хотите получить)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "NAT in PF OpenBSD"  +/
Сообщение от PaulEr (ok) on 09-Июн-10, 15:29 
>[оверквотинг удален]
>
>хватает для чего?
>Если по русски:
>пропускать не глядя на последующие правила весь icmp
>Про то, что нужно делать NAT тут не слова нет.
>
>>Или должно быть такое:  pass on xlo proto icmp all keep
>>state
>
>смотря чего хотите получить)

Я хотел бы увидеть, что с машины(centos) вижу шлюз 172.16.6.1 и другие компьютеры сети. Что сейчас неправильно в конфиге? Спасибо за помощь!

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "NAT in PF OpenBSD"  +/
Сообщение от guest email(??) on 09-Июн-10, 15:37 
>Я хотел бы увидеть, что с машины(centos) вижу шлюз 172.16.6.1 и другие
>компьютеры сети. Что сейчас неправильно в конфиге? Спасибо за помощь!

Еще раз, вы делаете NAT только для протоколов TCP и UDP, и удивляетесь почему не NATится протокол ICMP.
Добавьте
nat pass on $ext_if inet proto icmp from ($int_if:network) to any ->($ext_if:0)
и будет счастье с пингом)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "NAT in PF OpenBSD"  +/
Сообщение от PaulEr (ok) on 09-Июн-10, 15:59 
>>Я хотел бы увидеть, что с машины(centos) вижу шлюз 172.16.6.1 и другие
>>компьютеры сети. Что сейчас неправильно в конфиге? Спасибо за помощь!
>
>Еще раз, вы делаете NAT только для протоколов TCP и UDP, и
>удивляетесь почему не NATится протокол ICMP.
>Добавьте
>nat pass on $ext_if inet proto icmp from ($int_if:network) to any ->($ext_if:0)
>и будет счастье с пингом)

Ок, завтра все сделаю. Я так понимаю, больше никаких проблем быть не должно по данному конфигу pf?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "NAT in PF OpenBSD"  +/
Сообщение от guest email(??) on 09-Июн-10, 16:08 
>Ок, завтра все сделаю. Я так понимаю, больше никаких проблем быть не
>должно по данному конфигу pf?

Могут быть) Например с DNS через NAT.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "NAT in PF OpenBSD"  +/
Сообщение от sage444 (ok) on 09-Июн-10, 15:29 
>[оверквотинг удален]
>
>хватает для чего?
>Если по русски:
>пропускать не глядя на последующие правила весь icmp
>Про то, что нужно делать NAT тут не слова нет.
>
>>Или должно быть такое:  pass on xlo proto icmp all keep
>>state
>
>смотря чего хотите получить)

+1
я не внимательно читал

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру