Страница 1 из 2

Статья: шлюз на OpenBSD

Добавлено: 2010-03-02 0:58:05
BlackCat
На ваш суд представлен материал, по настройке шлюза на базе OpenBSD от PPPoE-соединения до NTP-сервера и DynDNS.org клиента.

Часть 1 - Простейший маршрутизатор
Часть 2 - Более функциональная настройка pf(4)
Часть 3 - Тонкая настройка: DNS, DHCP, Dynamic DNS
Часть 4 - Установка мелких сервисов

Хотелось бы услышать ваше мнение.
=====
Небольшая просьба: не пишите, что проверяя во FreeBSD получили другой результат - это только отвлекает. Подобные коментарии будут просто проигнорированы.

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-02 13:57:47
ADRE
круто =)

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-04 9:55:31
Alex Keda
судя по тишине - публикуем в новости?

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-04 15:26:01
BlackCat
lissyara писал(а):судя по тишине - публикуем в новости?
Хотелось бы услышать некоторый объем критики. Не бывает, что бы все хорошо и сразу. Сейчас опубликую на сайте - может в комментариях ответят.

P.S. Или, просто, ОСь не профильная.

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-09 10:22:32
BlackCat
По результатам публикации на сайте, замечания:
- одна грамматическая ошибка;
- одна неопределенная ошибка/опечатка;
- одно предложение по дополнению.
Итого - ОС не профильный народу не интересно.

Теперь можно и в новости.

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-09 10:27:55
Alex Keda
ушло

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-09 10:52:12
gonzo111
неплохо
настройка сервисов катит на любую версию фряхи

ИМХО во всех статейках, возможно, полезно было бы, в начале статьи писать оглавление с переходами, чтобы легче было ориенироватся что и где в этой части труда описано.
пример http://www.lissyara.su/articles/freebsd ... quid_sams/

может вообще все части обьеденить в одну книгу с оглавлением? :smile:

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-09 11:02:02
BlackCat
gonzo111 писал(а):ИМХО во всех статейках, возможно, полезно было бы, в начале статьи писать оглавление с переходами, чтобы легче было ориенироватся что и где в этой части труда описано.
пример http://www.lissyara.su/articles/freebsd ... quid_sams/
А как вы якоря по странице расставили, что бы на них ссылаться?

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-09 11:06:34
Alex Keda
в справочке всё описано вроде =))

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-09 11:19:02
BlackCat
lissyara писал(а):в справочке всё описано вроде =))
Хм (с) Золотой теленок
В течении пары дней добавлю оглавление ко всем частям.

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-09 13:07:05
mastertron
Мне помагают подобные статьи. Спасибо!

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-09 23:47:28
torki
Всем привет!!!
Если шлюз средней как говорится ноги, то надо-бы рассмотреть и почту(с MYSQL) и трафик с подсчетом как у волшебника Lissyar-ы, и иии... А вообще мысль правильная автор начинает с простого и обычного. Респект ему и уважуха!!! :smile:

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-12 15:47:55
_Попов
1. зачем в конце правил PF писать keep state?
2. set skip on lo, не lo0? хотя если это OpenBSD, то я хз....
3. ftp-proxy(8) во фре автоматом стартует по умолчанию rcorder /etc/rc.d/* | grep ftp-proxy
4. неплохо было бы написать как посмотреть правила, которые заносятся в якоря (и фильтра и ната) при старте ftp-proxy

щас еще почитаю

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-12 18:01:15
_Сатана
1. вот здесь: Часть 1 - Простейший маршрутизатор
надо убрать про DNS ибо там оно нафиг не надо, потому как если уж это простейший маршрутизатор и все рассчитано для начинающего, то пользоваться он будет провайдеровскими ДНСами, а грузить голову всякой херней не правильно.

2. Запускать bind просто командойочень не желательно, если уж упоминать то запускать надо

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

named -u bind
3.
Запуск dhcpd(8) на интерфейсе rl1

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

dhcpd rl1 
попробовал на фре

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

dhcpd vr0
Internet Systems Consortium DHCP Server V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 8 leases to leases file.
Listening on BPF/vr0/00:21:91:92:75:ab/192.168.1/24
Sending on   BPF/vr0/00:21:91:92:75:ab/192.168.1/24
Sending on   Socket/fallback/fallback-net
потом смотрю

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

sockstat -l
root     dhcpd      1388  5  udp4   *:67                  *:*
кароче нифига. на конкретном интерфейсе не запускается, слушает все.

4. здесь: Часть 3 - Тонкая настройка: DNS, DHCP, Dynamic DNS
не расскрыта тема "а что за такая команда rndc?", т.е. команда rndc reload есть, а че это? а почему у меня не работает? а как сделать чтобы работало?

5. теперь про динамическое обновление зон. крайне не правильно класть динамические зоны в папку master. Цитирую сам себя же
В /etc/defaults/rc.conf есть параметр named_chroot_autoupdate="YES", т.е. если ничего не менять, то при запуске вместе с системой будет произведена автоматическая установка/обновление chroot компонентов для процесса named. По умолчанию старт named производится скриптом /etc/rc.d/named, в частности интересует функция chroot_autoupdate(), так вот если файл /etc/mtree/BIND.chroot.dist (в их определениях это спецификация) существует и доступен на чтение, то выполнится команда:

mtree -deU -f /etc/mtree/BIND.chroot.dist -p /var/named, которая начиная с каталога /var/named изменит владельца, группу, права и время модификации папок/файлов согласно спецификации /etc/mtree/BIND.chroot.dist, а также создаст отсутствующие папки или символические ссылки. Надо отметить, что если в /etc/rc.conf внести параметр: named_chroot_autoupdate="NO" - то функция chroot_autoupdate() выполняться не будет.

Вся идея сосотоит в том, что сущесвуют предопределенные папки (master, slave, dynamic) для хранения файлов данных зон в зависимости от роли(лей) DNS сервера BIND.
и не надо изобретать велосипед.

==================
резюмирую (если то кому-то интересно)
Часть 3 - Тонкая настройка: DNS, DHCP, Dynamic DNS - каша-малаша, неструктурировано. Я перестал конкретно вдумываться не дойдя до середины, тюжело читая понимать.
все остальное - хз - написано как и везде.

Вообще автор молодец, но если уже браться, то делать надо качественно, читай, для баранов, потому что только они и будут читать твои рукописи, всем остальным класть.

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-12 22:39:28
Alex Keda
сайт у вас ужасный.
в плане дизайна... слишком мрачно - я бы ничё не доверил из своего оборудования =)

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-12 22:57:52
_Менделеев
насчет ftp-proxy и правил, которые подгружаются в якоря.
Че-то вроде пантанулся... "надо показать", а сам щас решил попробовать и нифига не могу глянуть на правила....
подход:

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

pfctl -a ftp-proxy/* -s rules
или

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

pfctl -a ftp-proxy -s rules
или если вместо rules ставить nat
не пашут....
вот уроды
они еще делают именованный поднабор правил, типо, "ftp-proxy/tatata", а как узнать какое там имя поднабора? (не надо слать в исходники, я там ничего не понимаю)
или я опять загоняюсь......

да, и погорячился насчет автостарта, вроде он стартует, но нифига не слушает интерфейс... надо проводить доп. манипуляции
lissyara писал(а):сайт у вас ужасный.
в плане дизайна... слишком мрачно - я бы ничё не доверил из своего оборудования =)
это кому?

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-13 10:04:58
Alex Keda
ракете СС20 в простонародье

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-14 5:50:14
BlackCat
Добавил оглавление и ссылки на литературу, спасибо gonzo111 за замечание.
В описании полезных настроек pf добавил ограничение максимального размера сегмента (MSS).
=====
torki писал(а):Если шлюз средней как говорится ноги, то надо-бы рассмотреть и почту(с MYSQL) и трафик с подсчетом как у волшебника Lissyar-ы
Если буду добавлять, то обязательно отпишусь, пока нет необходимости.
=====
_Попов писал(а):1. зачем в конце правил PF писать keep state?
Обратная совместимость и меньше неявных моментов.
_Попов писал(а):2. set skip on lo, не lo0? хотя если это OpenBSD, то я хз....
lo - это не один интерфейс, это группа интерфейсов.
_Попов писал(а):4. неплохо было бы написать как посмотреть правила, которые заносятся в якоря (и фильтра и ната) при старте ftp-proxy
Добавил в раздел "Полезные комманды".

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-14 6:15:16
BlackCat
_Сатана писал(а):надо убрать про DNS ибо там оно нафиг не надо, потому как если уж это простейший маршрутизатор и все рассчитано для начинающего, то пользоваться он будет провайдеровскими ДНСами, а грузить голову всякой херней не правильно.
Использование DNS-серверов провайдера допустимо для одного узла, но для целой сети предпочтительнее использовать свой сервер для обслуживания клиентских узлов. Это позволяет локализовать потенциальный источник проблем в контролируемой зоне.
=====
_Сатана писал(а):

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

sockstat -l
root     dhcpd      1388  5  udp4   *:67                  *:*
кароче нифига. на конкретном интерфейсе не запускается, слушает все.
Адрес и интерфейс - это разные понятия, и для привязки к каждому из них используются свои системные вызовы. В частности, в OpenBSD для привязки к заданому интерфейсу в dhcpd используется bpf(4).
После запуска на rl1 под OpenBSD:

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

# netstat -an | grep "67"
udp        0      0  *.67                   *.*
, и тем не менее работает только с интерфейсом rl1.

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-14 11:27:43
_Попов
Если вы используете (планируете использовать) сервер имен, запущенный на шлюзе (на том же самом узле) и никаких хитрых настроек производить не собираетесь, то файл /etc/resolv.conf можно оставить пустым - по умолчанию, если не указан ни один DNS-сервер, обращение идет к серверу по адресу 127.0.0.1.
А почему, если не указан ни один DNS-сервер в resolv.conf, обращение идет к DNS серверу по адресу 127.0.0.1? И как узнается конкретный адрес 127.0.0.1?
Правильнее было бы упомянуть о nsswitch.conf(5) и строчке:

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

hosts: files dns
Также надо поменять местами главы:
4. Поддержка DNS
5. Настройка узлов внутренней сети
потому что в (4) ты уже "Теперь можно проверить доступность и работоспособность DNS-сервера на одном из узлов внутренней сети", хотя узел сам настривается в (5). Не логично правда?

и еще раз повторюсь расскрывать тему DNS сервера не надо в простейшем маршрутизаторе, ты переинформируешь людей, достаточно только resolv.conf и DNS прова.

BlackCat писал(а):
_Попов писал(а):1. зачем в конце правил PF писать keep state?
Обратная совместимость и меньше неявных моментов.
ну, напиши это в тексте, а то черти так и будут некоторое (все?) время вставлять keep state пока не допрут, что это нахер не надо.

BlackCat писал(а):
_Сатана писал(а):

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

sockstat -l
root     dhcpd      1388  5  udp4   *:67                  *:*
кароче нифига. на конкретном интерфейсе не запускается, слушает все.
Адрес и интерфейс - это разные понятия, и для привязки к каждому из них используются свои системные вызовы. В частности, в OpenBSD для привязки к заданому интерфейсу в dhcpd используется bpf(4).
После запуска на rl1 под OpenBSD:

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

# netstat -an | grep "67"
udp        0      0  *.67                   *.*
, и тем не менее работает только с интерфейсом rl1.
видимо из-за недоходивости я нифига не понял...

я хочу чтобы dhcpd слушал только один интерфейс, че надо сделать?

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-03-24 16:39:14
AndreyK
По пунтку "Связка ppp(8) и pppoe(8)" все понятно и прекрасно заработало. За что автору спасибо, т.к. приперло неожиданно настроить pppoe имеено на шлюзе с OpenBSD 4.6. Раньше все настройки были на модеме, а шлюз по LAN'у все получал. Еще раз спасибо. А вот по пункту "1.2. Использование интерфейса pppoe(4)" вроде бы все сделал как надо, но ничего не заработало. Непонятно указание IP-адресов 0.0.0.0 и 0.0.0.1 почему именно такие?

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-04-23 1:50:21
BlackCat
AndreyK писал(а):По пунтку "Связка ppp(8) и pppoe(8)" все понятно и прекрасно заработало. За что автору спасибо, т.к. приперло неожиданно настроить pppoe имеено на шлюзе с OpenBSD 4.6. Раньше все настройки были на модеме, а шлюз по LAN'у все получал.
Спасибо за приятный отзыв :Yahoo!:
AndreyK писал(а):А вот по пункту "1.2. Использование интерфейса pppoe(4)" вроде бы все сделал как надо, но ничего не заработало.
Ничего не заработало - это не диагноз. Если актуально, создавайте тему в подфоруме OpenBSD - попробуем решить.
AndreyK писал(а):Непонятно указание IP-адресов 0.0.0.0 и 0.0.0.1 почему именно такие?
Это не совсем адреса, это такие хитрые значения вместо которых будут подставлены IP-адрес, выданый провайдером, и вторая сторона туннеля (шлюз провайдера) соответственно. Всё написано в man 4 pppoe, в нём эти "адреса" называются wildcard.

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-09-26 20:21:45
kabaliero
Спасибо за статью!
Но в 4.7 изменен формат в PF -пришлось ман ковырять :) может нужно статью поправить?

Re: Статья: шлюз на OpenBSD

Добавлено: 2010-09-28 8:58:38
BlackCat
kabaliero писал(а):может нужно статью поправить?
Нужно, не спорю. Обновлюсь (теперь уже, наверное, до 4.8) и за одно исправлю статью.

Re: Статья: шлюз на OpenBSD

Добавлено: 2011-01-11 11:56:02
Skripach
Приветствую всех. По конфигу из статьи настроил pppoe (ppp.conf)
pppoe подключается:
host# ppp -ddial Internet
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
Working in ddial mode
Using interface: tun0
host#
host# ifconfig
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80009<RXCSUM,VLAN_MTU,LINKSTATE>
ether 00:50:04:d9:86:52
inet 192.168.100.112 netmask 0xffffff00 broadcast 192.168.100.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
sk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
ether 00:17:31:83:26:b9
inet 10.0.17.11 netmask 0xffff8000 broadcast 10.0.127.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
options=80000<LINKSTATE>
inet 192.168.41.99 --> 195.177.238.29 netmask 0xffffffff
Opened by PID 22737
host#
sk0 - интерфейс смотрящий на провайдера, через него идет ррррое
xl0 - внутренняя сеть, машина НЕ должна быть шлюзом, NAT не нужен.
Адреса локальной сети при подключеном рррое пингуются, мир не пингуется не трассеруется. Что дальше?