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

Исходное сообщение
"NAT в OpenBSD"

Отправлено Юрий , 28-Апр-04 14:19 
NAT не работает!

Люди!!! Что же я не так делаю???

NAT не работает!
Поставил OpenBSD 3.4 на машину с 2 сетевухами. Одна ( xl0 ) в интернет смотрит с адресом 193.233.ххх.ххх, а другая ( xl1 ) в локалку с адресом 10.33.45.1
На машине установлен squid и через него из локалки доступ в интернет есть.
Для NAT сделал следующее:
в rc.conf прописал pf=YES
в sysctl.conf прописал net.inet.ip.forwarding=1
в pf.conf прописал:
nat on xl0 from 10.33.45.0/30 to any ->193.233.xxx.xxx
pass in all
pass out all

Глухо как в танке. Пинги не идут, соединится без squid с внешним миром не реально.
Читал мануалы 2 недели и так и не понял где неправ.
Что мне еще нужно сделать, прописать и запустить???


Содержание

Сообщения в этом обсуждении
"NAT в OpenBSD"
Отправлено shaman , 28-Апр-04 16:00 
Что-то мне маска не нравиться (/30), т.е. 255.255.255.63? Или я ошибаюсь?

И еще вариант:

nat on xl0 from xl1/30 to any -> xl0


"NAT в OpenBSD"
Отправлено shaman , 28-Апр-04 16:04 
Маска не та.
Дай вывод ifconfig

"NAT в OpenBSD"
Отправлено Юрий , 28-Апр-04 16:22 
>Маска не та.
>Дай вывод ifconfig

Только что снял:
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224
    inet 127.0.0.1 netmask 0xff000000
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
lo1: flags=8008<LOOPBACK,MULTICAST> mtu 33224
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    address: 00:01:02:6f:29:2f
    media: Ethernet autoselect (100baseTX full-duplex)
    status: active
    inet 10.33.44.30 netmask 0xffffff00 broadcast 10.33.44.255
    inet6 fe80::201:2ff:fe6f:292f%xl0 prefixlen 64 scopeid 0x1
xl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    address: 00:10:4b:8f:14:70
    media: Ethernet autoselect (100baseTX full-duplex)
    status: active
    inet 10.33.45.1 netmask 0xffffff00 broadcast 10.33.45.255
    inet6 fe80::210:4bff:fe8f:1470%xl1 prefixlen 64 scopeid 0x2
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33224
pfsync0: flags=0<> mtu 1896
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 296
sl1: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 296
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
ppp1: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
tun0: flags=10<POINTOPOINT> mtu 3000
tun1: flags=10<POINTOPOINT> mtu 3000
enc0: flags=0<> mtu 1536
bridge0: flags=0<> mtu 1500
bridge1: flags=0<> mtu 1500
vlan0: flags=0<> mtu 1500
    address: 00:00:00:00:00:00
vlan1: flags=0<> mtu 1500
    address: 00:00:00:00:00:00
gre0: flags=9010<POINTOPOINT,LINK0,MULTICAST> mtu 1450
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif1: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif2: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif3: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

В общем 10.33.44.1 это выход в инет - там НАТ стоит, но тот сервер у провайдера... Он все без каких либо ограничений пускает... + от них сейчас всю сеть видно. От этого и пытаюсь спастись + трафик считать самому интересно было бы...


"NAT в OpenBSD"
Отправлено shaman , 28-Апр-04 16:22 
>Маска не та.
>Дай вывод ifconfig
А, блин, тормознул с маской, 2 нуля в конце забыл. Все нормально


"NAT в OpenBSD"
Отправлено Antonio , 28-Апр-04 16:18 
>NAT не работает!
>
>Люди!!! Что же я не так делаю???
>
>NAT не работает!
>Поставил OpenBSD 3.4 на машину с 2 сетевухами. Одна ( xl0 )
>в интернет смотрит с адресом 193.233.ххх.ххх, а другая ( xl1 )
>в локалку с адресом 10.33.45.1
>На машине установлен squid и через него из локалки доступ в интернет
>есть.
>Для NAT сделал следующее:
>в rc.conf прописал pf=YES
>в sysctl.conf прописал net.inet.ip.forwarding=1
>в pf.conf прописал:
>nat on xl0 from 10.33.45.0/30 to any ->193.233.xxx.xxx
>pass in all
>pass out all
>
>Глухо как в танке. Пинги не идут, соединится без squid с внешним
>миром не реально.
>Читал мануалы 2 недели и так и не понял где неправ.
>Что мне еще нужно сделать, прописать и запустить???

1. Согласно такой маске, в сети всего две машины -- 10.33.45.1 и 10.33.45.2. Это так?

2. На моей памяти правила для NAT пишутся в /etc/nat.conf. В 3.4 это поменяли?

3. pfctl -R /etc/pf.conf; pfctl -N /etc/nat.conf -- это чтобы без перезагрузки поднять правила.

4. pass in all; pass out all -- надеюсь, это временно для отладки (бОльшего идиотизма для боевого файрволла придумать трудно).


"NAT в OpenBSD"
Отправлено Юрий , 28-Апр-04 16:28 
>1. Согласно такой маске, в сети всего две машины -- 10.33.45.1 и
>10.33.45.2. Это так?

Машин пока действительно 2 это моя 45.1 и собственно клиент 45.2,
только маска такая случайно вышла...

>2. На моей памяти правила для NAT пишутся в /etc/nat.conf. В 3.4
>это поменяли?

Там в pf.conf про правила NAT строки были коментированные, а файла nat.conf вообще нет в /etc и man nat.conf ругается что нет  такого...

>3. pfctl -R /etc/pf.conf; pfctl -N /etc/nat.conf -- это чтобы без перезагрузки
>поднять правила.

Пока и с перезагрузкой можно, опять же nat.conf не нашел...

>4. pass in all; pass out all -- надеюсь, это временно для
>отладки (бОльшего идиотизма для боевого файрволла придумать трудно).

Да это для отладки, чтоб просто пока фильтрация не мешала, а то зафильтрую все нафиг и буду думать где не работает. Потом напишу нормальные правила.


"NAT в OpenBSD"
Отправлено shaman , 28-Апр-04 16:41 
Ты правило с интерфейсами пробовал?

"NAT в OpenBSD"
Отправлено Юрий , 28-Апр-04 16:48 
>Ты правило с интерфейсами пробовал?

Ага и с тем же результатом..
По прежнему только через squid связь есть.
И масочку менять пробовал...

Такое чувство, что я что-то еще не настроил.
Какие программы еще участвуют в процессе передачи пакета от одной сетевухи до другой?? Может я кого-то не запустил?


"NAT в OpenBSD"
Отправлено shaman , 28-Апр-04 16:52 
>>Ты правило с интерфейсами пробовал?
>
>Ага и с тем же результатом..
>По прежнему только через squid связь есть.
>И масочку менять пробовал...
>
>Такое чувство, что я что-то еще не настроил.
>Какие программы еще участвуют в процессе передачи пакета от одной сетевухи до
>другой?? Может я кого-то не запустил?
Странно. Недавно сам настраивал - без проблем, просто раскомментировал строку из pfctl.conf и все.
Ну на всякий случай вот это почитай:
http://www.dreamcatcher.ru/docs/pf.html


"NAT в OpenBSD"
Отправлено Юрий , 28-Апр-04 16:58 
>Странно. Недавно сам настраивал - без проблем, просто раскомментировал строку из pfctl.conf
>и все.
>Ну на всякий случай вот это почитай:
>http://www.dreamcatcher.ru/docs/pf.html

Да в том то и дело что я там и еще в десятке мест читаю мануалы уже 2 недели. Видимо пришла пора переустановить систему и попробовать повторить эксперимент в стерильых условиях...
Или FreeBSD попробовать?
Наскольно Free будет больше(меньше) места в памяти занимать? А то ее 256 мегов всего :-(


"NAT в OpenBSD"
Отправлено Antonio , 29-Апр-04 09:58 
>Да в том то и дело что я там и еще в
>десятке мест читаю мануалы уже 2 недели. Видимо пришла пора переустановить
>систему и попробовать повторить эксперимент в стерильых условиях...

Не виндовоз, однако, чтобы постоянно переставлять... Как сделано у меня (локалка выходит в инет).

/etc/pf.conf:

ExtIF="de0" # интерфейс в мир
PrivIF="de1" # интерфейс в локалку

NoGoIP="{ 192.168.0.0/16, 172.16.0.0/12, 127.0.0.0/8, 10.0.0.0/8, 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 204.152.64.0/23, 224.0.0.0/3 }"

scrub in all

# IPv6 лично мне пока не нужен, значит, запрещаем
block in quick inet6 all
block out quick inet6 all

# На loopback все должно ходить без вопросов
pass in quick on lo0 all
pass out quick on lo0 all

# Пакетам от "левых" адресов нечего делать на внешнем интерфейсе
block in quick on $ExtIF from $NoGoIP to any
block out quick on $ExtIF from any to $NoGoIP

# Запрещаем выход с внешнего интерфейса в мир любых пакетов. Но разрешаем
# tcp-пакеты, имеющие флаги S/SA, причем используем modulate state для повышения
# надежности генерации ISN. Также разрешаем выход в мир udp и icmp пакетов
# с сохранением состояния.
block out on $ExtIF all
pass out on $ExtIF inet proto tcp all flags S/SA modulate state
pass out on $ExtIF inet proto { udp, icmp } all keep state

# На внутреннем же интерфейсе у нас можно все. Народ у меня в
# локалке хороший. ;-)

/etc/nat.conf (если нет -- создать):

ExtIF="de0" # Интерфейс в мир
PrivIF="de1" # Интерфейс в локалку
ExtIP="XXX.XXX.XXX.XXX" # Наш внешний IP
PrivNet="192.168.1.0/24" # Диапазон адресов локалки

# Выполнить NAT для локалки
nat on $ExtIF from $PrivNet to any -> $ExtIP

Всё. Если надо пробросить порты для осла, напишу отдельно (для экономии места не писал).

>Или FreeBSD попробовать?

Ваше право.

>Наскольно Free будет больше(меньше) места в памяти занимать? А то ее 256
>мегов всего :-(

Оперативки-то? Можете до 64 урезать, опёнку за глаза хватит. У меня вышеописанное крутится на P133 64Mb 420Mb винт.


"NAT в OpenBSD"
Отправлено Юрий , 29-Апр-04 10:20 
>Не виндовоз, однако, чтобы постоянно переставлять...

Поздно доктор больной уже скончался. Переставил... Сделал тоже,что и раньше, но не за неделю а за 20 минут и все заработало.
За конфиг спасибо. Буду настраивать фильтрацию - пригодится.

>Всё. Если надо пробросить порты для осла, напишу отдельно (для экономии места
>не писал).
Спасибо. Пока мало что нужно. Трафик бы теперь считать и логи какие-нибудь прикрутить к NATу. В идеале тарификация нужна.
Предполагается оказывать услуги доступа в интернет (как в клубах) но только пользователи со своими компами приходить будут :-)

>
>>Наскольно Free будет больше(меньше) места в памяти занимать? А то ее 256
>>мегов всего :-(
>
>Оперативки-то? Можете до 64 урезать, опёнку за глаза хватит. У меня вышеописанное
>крутится на P133 64Mb 420Mb винт.

Мне машинку дали пошустрее. p3 800/256/15G Я на нее еще сквида навесил. У меня просто связь быстрая и юзеров в перспективе прилично будет.


"NAT в OpenBSD"
Отправлено Varyag , 29-Апр-04 13:03 

>
>Мне машинку дали пошустрее. p3 800/256/15G Я на нее еще сквида навесил.
>У меня просто связь быстрая и юзеров в перспективе прилично будет.
>

В целом если будешь собирать статистику pfstat'ом и еще добавишь snort , то на канале в 2Мбита с туннелем такая машинка может иногда затыкаться.
После того как сказал что на ней еще сквид стоит - стало понятно почему не работают внутренние сервера - на них нет редиректа.Так как твой пакетный фильтр имеет внешний IP и на этот IP приходят пакеты из инета(адресованные для сквида и которые не надо редиректить) , то сквид работает нормально.



"NAT в OpenBSD"
Отправлено Юрий , 29-Апр-04 14:51 
>
>>
>>Мне машинку дали пошустрее. p3 800/256/15G Я на нее еще сквида навесил.
>>У меня просто связь быстрая и юзеров в перспективе прилично будет.
>>
>
>В целом если будешь собирать статистику pfstat'ом и еще добавишь snort ,
>то на канале в 2Мбита с туннелем такая машинка может иногда
>затыкаться.
>После того как сказал что на ней еще сквид стоит - стало
>понятно почему не работают внутренние сервера - на них нет редиректа.Так
>как твой пакетный фильтр имеет внешний IP и на этот IP
>приходят пакеты из инета(адресованные для сквида и которые не надо редиректить)
>, то сквид работает нормально.

Собственно сейчас работает все, линия сейчас как раз 2 мегабита, но скоро скорость сбросим - для теста взяли быструю и поняли, что многовато пока.
Вот про pfstat и еще snort интересно. Я так понимаю как раз для статистики вещи. Буду ставить.



"NAT v OpenBSD"
Отправлено Brainbug , 29-Апр-04 16:01 
>>
>>>
>>>Mne mashinku dali poshustree. p3 800/256/15G YA na nee esche skvida navesil.
>>>U menya prosto svyaz' bystraya i yuzerov v perspektive prilichno budet.
>>>
>>
>>V celom esli budesh' sobirat' statistiku pfstat'om i esche dobavish' snort ,
>>to na kanale v 2Mbita s tunnelem takaya mashinka mozhet inogda
>>zatykat'sya.
>>Posle togo kak skazal chto na nej esche skvid stoit - stalo
>>ponyatno pochemu ne rabotayut vnutrennie servera - na nih net redirekta.Tak
>>kak tvoj paketnyj fil'tr imeet vneshnij IP i na `etot IP
>>prihodyat pakety iz ineta(adresovannye dlya skvida i kotorye ne nado redirektit')
>>, to skvid rabotaet normal'no.
>
>Sobstvenno sejchas rabotaet vse, liniya sejchas kak raz 2 megabita, no skoro
>skorost' sbrosim - dlya testa vzyali bystruyu i ponyali, chto mnogovato
>poka.
>Vot pro pfstat i esche snort interesno. YA tak ponimayu kak raz
>dlya statistiki veschi. Budu stavit'.

Snort v storonu statistiki daze i ne tjanet. pfstat drugoje delo.


"NAT в OpenBSD"
Отправлено Varyag , 29-Апр-04 00:55 
>NAT не работает!
>
>Люди!!! Что же я не так делаю???
>
>NAT не работает!
>Поставил OpenBSD 3.4 на машину с 2 сетевухами. Одна ( xl0 )
>в интернет смотрит с адресом 193.233.ххх.ххх, а другая ( xl1 )
>в локалку с адресом 10.33.45.1
>На машине установлен squid и через него из локалки доступ в интернет
>есть.
>Для NAT сделал следующее:
>в rc.conf прописал pf=YES
>в sysctl.conf прописал net.inet.ip.forwarding=1
>в pf.conf прописал:
>nat on xl0 from 10.33.45.0/30 to any ->193.233.xxx.xxx
>pass in all
>pass out all
>
>Глухо как в танке. Пинги не идут, соединится без squid с внешним
>миром не реально.
>Читал мануалы 2 недели и так и не понял где неправ.
>Что мне еще нужно сделать, прописать и запустить???

rdr on xl0 from any to 193.233.xxx.xxx -> 10.33.45.0/30



"NAT в OpenBSD"
Отправлено Xeon , 29-Апр-04 07:04 
А что говорит ps -aux|grep natd ?

"NAT в OpenBSD"
Отправлено Юрий , 29-Апр-04 08:32 
>А что говорит ps -aux|grep natd ?

Такого процесса нет. Файлов имеющих natd в имени нет на диске.
Еще раз напоминаю это OpenBSD 3.4 она таки от FreeBSD отличается.
При описании настроек OpenBSD natd не упоминался..


"NAT в OpenBSD"
Отправлено A Clockwork Orange , 30-Апр-04 09:33 
Как написать что бы нат делался для всех пакетов адрес назначения которых не фейковые сети.
Я сделал так
table <route_addr> { !10/8, !172.16/12, !192.168/16 }
nat on $ext_if from $internal_net to <route_addr> -> ($ext_if)

Но это не сработало.


"NAT в OpenBSD"
Отправлено Oleg_Msk , 05-Май-04 11:57 
>Как написать что бы нат делался для всех пакетов адрес назначения которых
>не фейковые сети.
>Я сделал так
>table <route_addr> { !10/8, !172.16/12, !192.168/16 }
>nat on $ext_if from $internal_net to <route_addr> -> ($ext_if)
>
>Но это не сработало.


Да о чем вы говорите,какой nat.conf???? От него отказались еще начиная с третьей версии........все прописывается (и NAT) в /etc/pf.conf...для NATа там достаточно раскоментировать одну строку....


"NAT в OpenBSD"
Отправлено Red , 12-Май-04 15:47 
>>Как написать что бы нат делался для всех пакетов адрес назначения которых
>>не фейковые сети.
>>Я сделал так
>>table <route_addr> { !10/8, !172.16/12, !192.168/16 }
>>nat on $ext_if from $internal_net to <route_addr> -> ($ext_if)
>>
>>Но это не сработало.
>
nat on $ext_if from $internal_net to !192.168.x.x -> $ext_IP
так у меня работает
может
table <route_addr> { 10.0.0.0/8, 1172.16.0.0/12, 1192.168.0.0/16 }
nat on $ext_if from $internal_net to ! <route_addr> -> $ext_if
?


"NAT в OpenBSD"
Отправлено Red , 12-Май-04 15:49 
да, еще хотел сказать.
никаких natd в Open нет.
а вообще система для фаирвола просто отличная.