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 недели и так и не понял где неправ.
Что мне еще нужно сделать, прописать и запустить???
Что-то мне маска не нравиться (/30), т.е. 255.255.255.63? Или я ошибаюсь?И еще вариант:
nat on xl0 from xl1/30 to any -> xl0
Маска не та.
Дай вывод ifconfig
>Маска не та.
>Дай вывод 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 это выход в инет - там НАТ стоит, но тот сервер у провайдера... Он все без каких либо ограничений пускает... + от них сейчас всю сеть видно. От этого и пытаюсь спастись + трафик считать самому интересно было бы...
>Маска не та.
>Дай вывод ifconfig
А, блин, тормознул с маской, 2 нуля в конце забыл. Все нормально
>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 -- надеюсь, это временно для отладки (бОльшего идиотизма для боевого файрволла придумать трудно).
>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 -- надеюсь, это временно для
>отладки (бОльшего идиотизма для боевого файрволла придумать трудно).Да это для отладки, чтоб просто пока фильтрация не мешала, а то зафильтрую все нафиг и буду думать где не работает. Потом напишу нормальные правила.
Ты правило с интерфейсами пробовал?
>Ты правило с интерфейсами пробовал?Ага и с тем же результатом..
По прежнему только через squid связь есть.
И масочку менять пробовал...Такое чувство, что я что-то еще не настроил.
Какие программы еще участвуют в процессе передачи пакета от одной сетевухи до другой?? Может я кого-то не запустил?
>>Ты правило с интерфейсами пробовал?
>
>Ага и с тем же результатом..
>По прежнему только через squid связь есть.
>И масочку менять пробовал...
>
>Такое чувство, что я что-то еще не настроил.
>Какие программы еще участвуют в процессе передачи пакета от одной сетевухи до
>другой?? Может я кого-то не запустил?
Странно. Недавно сам настраивал - без проблем, просто раскомментировал строку из pfctl.conf и все.
Ну на всякий случай вот это почитай:
http://www.dreamcatcher.ru/docs/pf.html
>Странно. Недавно сам настраивал - без проблем, просто раскомментировал строку из pfctl.conf
>и все.
>Ну на всякий случай вот это почитай:
>http://www.dreamcatcher.ru/docs/pf.htmlДа в том то и дело что я там и еще в десятке мест читаю мануалы уже 2 недели. Видимо пришла пора переустановить систему и попробовать повторить эксперимент в стерильых условиях...
Или FreeBSD попробовать?
Наскольно Free будет больше(меньше) места в памяти занимать? А то ее 256 мегов всего :-(
>Да в том то и дело что я там и еще в
>десятке мест читаю мануалы уже 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 винт.
>Не виндовоз, однако, чтобы постоянно переставлять...Поздно доктор больной уже скончался. Переставил... Сделал тоже,что и раньше, но не за неделю а за 20 минут и все заработало.
За конфиг спасибо. Буду настраивать фильтрацию - пригодится.>Всё. Если надо пробросить порты для осла, напишу отдельно (для экономии места
>не писал).
Спасибо. Пока мало что нужно. Трафик бы теперь считать и логи какие-нибудь прикрутить к NATу. В идеале тарификация нужна.
Предполагается оказывать услуги доступа в интернет (как в клубах) но только пользователи со своими компами приходить будут :-)>
>>Наскольно Free будет больше(меньше) места в памяти занимать? А то ее 256
>>мегов всего :-(
>
>Оперативки-то? Можете до 64 урезать, опёнку за глаза хватит. У меня вышеописанное
>крутится на P133 64Mb 420Mb винт.Мне машинку дали пошустрее. p3 800/256/15G Я на нее еще сквида навесил. У меня просто связь быстрая и юзеров в перспективе прилично будет.
>
>Мне машинку дали пошустрее. p3 800/256/15G Я на нее еще сквида навесил.
>У меня просто связь быстрая и юзеров в перспективе прилично будет.
>В целом если будешь собирать статистику pfstat'ом и еще добавишь snort , то на канале в 2Мбита с туннелем такая машинка может иногда затыкаться.
После того как сказал что на ней еще сквид стоит - стало понятно почему не работают внутренние сервера - на них нет редиректа.Так как твой пакетный фильтр имеет внешний IP и на этот IP приходят пакеты из инета(адресованные для сквида и которые не надо редиректить) , то сквид работает нормально.
>
>>
>>Мне машинку дали пошустрее. p3 800/256/15G Я на нее еще сквида навесил.
>>У меня просто связь быстрая и юзеров в перспективе прилично будет.
>>
>
>В целом если будешь собирать статистику pfstat'ом и еще добавишь snort ,
>то на канале в 2Мбита с туннелем такая машинка может иногда
>затыкаться.
>После того как сказал что на ней еще сквид стоит - стало
>понятно почему не работают внутренние сервера - на них нет редиректа.Так
>как твой пакетный фильтр имеет внешний IP и на этот IP
>приходят пакеты из инета(адресованные для сквида и которые не надо редиректить)
>, то сквид работает нормально.Собственно сейчас работает все, линия сейчас как раз 2 мегабита, но скоро скорость сбросим - для теста взяли быструю и поняли, что многовато пока.
Вот про pfstat и еще snort интересно. Я так понимаю как раз для статистики вещи. Буду ставить.
>>
>>>
>>>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 не работает!
>
>Люди!!! Что же я не так делаю???
>
>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
А что говорит ps -aux|grep natd ?
>А что говорит ps -aux|grep natd ?Такого процесса нет. Файлов имеющих natd в имени нет на диске.
Еще раз напоминаю это OpenBSD 3.4 она таки от FreeBSD отличается.
При описании настроек OpenBSD natd не упоминался..
Как написать что бы нат делался для всех пакетов адрес назначения которых не фейковые сети.
Я сделал так
table <route_addr> { !10/8, !172.16/12, !192.168/16 }
nat on $ext_if from $internal_net to <route_addr> -> ($ext_if)Но это не сработало.
>Как написать что бы нат делался для всех пакетов адрес назначения которых
>не фейковые сети.
>Я сделал так
>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а там достаточно раскоментировать одну строку....
>>Как написать что бы нат делался для всех пакетов адрес назначения которых
>>не фейковые сети.
>>Я сделал так
>>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
?
да, еще хотел сказать.
никаких natd в Open нет.
а вообще система для фаирвола просто отличная.