Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> OpenBSD —> Настройка —> Шлюз: Часть 4

Часть 4 - Установка мелких сервисов

Автор: BlackCat.


Оглавление

  • 1. Централизованная синхронизация времени - ntpd(8)
  • 2. Поддержка DynDNS (dyndns.org)
  • 3. Список литературы

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

    1. Централизованная синхронизация времени - ntpd(8)

    Почему важно правильное время на серверах и прочем оборудовании написано много статей, версию авторов OpenBSD читать в [3] - так что без лишних предисловий. Конфигурация по-умолчанию проста и достаточна, необходимо только добавить опцию ожидания входящих соединений из локальной сети, что бы все узлы сети были синхронизированы с одним источником.

    Листинг 1.1. Включение ожидания входящих соединений
    # echo listen on 192.168.0.254 >> /etc/ntpd.conf


    Первый раз ntpd(8) лучше запустить с опцией "-s", что бы он сразу установил точное время, т.к. по-умолчанию время подводиться плавно и этот процесс может затянуться на долго (часы и, даже, дни).

    Листинг 1.2. Первый запуск ntpd(8)
    # ntpd -s -d


    Использование опции "-d" предотвращает переход в режим демона, это сделано для того, что бы контролировать процесс синхронизации и с легкостью остановить процесс, по завершении начальной установки. После выполнения данной манипуляции указываем, что ntpd(8) должен запускаться вместе с системой и запускаем его в рабочем режиме.

    Листинг 1.3. Автоматический запуск ntpd(8)
    # echo ntpd_flags="" >> /etc/rc.conf.local


    Листинг 1.4. Запуск ntpd(8) в штатном режиме
    # ntpd


    После того, как в /var/log/daemon появится сообщение "clock is now synced" ntpd(8) начнет обслуживать входящие соединения, можно переходить к настройке узлов внутри сети для синхронизации с единым источником.

    2. Поддержка DynDNS (dyndns.org)

    Незаменимая штука, при отсутствии статического IP-адреса. После регистрации на сервисе у вас, как минимум, должны быть следующие реквизиты:

  • доменное имя (вида chosen-name.dyndns.org);
  • имя пользователя;
  • пароль доступа.

    Т.к. в стандартной поставке клиента для обновления записи об IP-адресе доменого имени нет, то ставим вручную. Для обновления записи используется скрипт ipcheck.py[1]. Ставить лучше из пакетов, т.к. при установке из портов клиент потянет за собой интерпретатор языка Python, а тот, в свою очередь требует наличия X11R6. С пакетами подобных проблем не возникнет. Как уже было сказано, для работы клиента потребуется установить python(1).

    Листинг 2.1. Установка интерпретатора python
    # pkg_add -v ftp://mirror.corbina.net/pub/OpenBSD/4.6/packages/i386/python-2.5.4p1


    Теперь устанавливаем сам клиент.

    Листинг 2.2. Установка ipcheck.py
    # pkg_add -v ftp://mirror.corbina.net/pub/OpenBSD/4.6/packages/i386/ipcheck


    Далее, как сказано в [1], необходимо запустить ipcheck с дополнительным параметром "--makedat", для того, что бы он создал начальный файл установок. Т.к. файл настроек будет создан в директории, из которой произошёл запуск, то запускать лучше всего из /etc.

    Листинг 2.3. Первый запуск ipcheck
    # cd /etc/
    # /usr/local/bin/ipcheck.py --makedat -i <iface> <username> <password> <domain>


    Где:

  • <iface> - адрес внешнего интерфейса;
  • <username> - имя пользователя (login), для доступа к dyndns.org;
  • <password> - пароль;
  • <domain> - доменное имя, для которого обновляется запись.

    Подсказка: не забудьте почистить журнал введенных команд, если таковой ведется.

    ipcheck не умеет работать в фоновом режиме, поэтому для регулярного выполнения обновлений создадим скрипт-оболочку для запуска клиента, и настроим его запуск по расписанию (через 20 минут) с помощью cron(8).

    Листинг 2.4. Скрипт для обновления IP-адреса
    # cat /usr/local/sbin/dyndns_update
    #!/bin/sh
    /usr/local/bin/ipcheck.py -q -d /etc -i <iface> <username> <password> <domain>
    


    Листинг 2.5. Установка прав доступа
    # chmod 500 /usr/local/sbin/dyndns_update


    Листинг 2.6. Запуск по расписанию (через 20 минут)
    # grep "dyndns" /var/cron/tabs/root
    */20 * * * * /usr/local/sbin/dyndns_update


    Вот и все, особое внимание следует уделить очистке журнала команд, если таковой ведется, и установке корректных прав на скрипт запуска, т.к. он содержит данные аутентификации ("sensitive information" как сказано в [2]).

    3. Список литературы

    1. ipcheck.py homepage // http://ipcheck.sourceforge.net/
    2. DynDNS - OpenBSD wiki // http://openbsd-wiki.org/index.php?title=DynDNS
    3. OpenBSD FAQ Part 6 - Networking. Using OpenNTPD // http://www.openbsd.org/faq/faq6.html#OpenNTPD



    размещено: 2010-03-02,
    последнее обновление: 2011-11-23,
    автор: BlackCat


    SkyNet, 2010-03-05 в 15:14:05

    Можно ещё довесить серию статей установкой почтовика, прокси сервера, как обычные функции шлюза

    BlackCat, 2010-03-07 в 4:01:14

    Почтовик - это не совсем функция шлюза.
    Прокси - полезная штука, но больше для средних и больших корпоративных сетей чем для небольших или домашних сетей.
    Это уже темы отдельных статей, есть идея дополнить SNMP сервисом, но это планы далекого будующего.

    Alex, 2010-03-09 в 18:21:15

    хороший цикл статей Спасибо за шпаргалку

    9lex, 2010-03-26 в 10:26:49

    Зачем ipcheck с DynDNS , который тянет питона, и не умеет быть службой?))).
    Проще и лучше noip2 (no-ip.com) . Тут даже статья про него есть.

    DarkAGeS, 2010-03-26 в 11:32:36

    неплохо было добавить про разрешающие правила на файрволе для dyndns update:
    ${fwcmd} add pass tcp from ${ext_ip} to checkip.dyndns.org 8245 out via ${ext_if} setup keep-state
    ${fwcmd} add pass tcp from ${ext_ip} to any 443 out via ${ext_if} setup keep-state

    BlackCat, 2010-03-26 в 15:39:17

    2 9lex: no-ip.com выпал из рассмотрения, разберусь с ним - допишу еще одним разделом. Но по срокам это может растянуться надолго.
    2 DarkAGeS: во первых, в OpenBSD межсетевой экран - pf и синтаксис у него немного другой. Во вторых, настройка МСЭ вынесена в отдельную часть.

    DarkAGeS, 2010-03-26 в 16:30:26

    2 BlackCat: сабж имеет место быть и на Freebsd. правила - для примера. суть - открыть исходящие на порт 443 и в случае использования web based ip detection (опция -r checkip.dyndns.org:8245) - соответственно порт 8245. и кстати в этом случае разроботчики просят не использовать скрипт чаще 15 минут, чтоб не перегружать dyddns :)

    BlackCat, 2011-11-23 в 23:38:05

    DarkAGeS: подтверждений ваших слов не нашёл, но пофиксил интервал обновления на 20 минут. Иначе действительно DDoS получается.

    kredo1, 2012-05-07 в 13:31:03

    Статья и в самом деле хорошая только динднс требует заходить к нему периоддически, иначе аккаунт удаляется. Я сейчас пробую новый сайт с таким сервисом, вроде все работает и бесплатно. Ставиш клиента на вынь и радуешся. Если кому надо вот ссылка _аплинк.рф_ Да простят меня Админы за почти рекламу, но все по теме!



  •  

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.032 секунд
    Из них PHP: 21%; SQL: 79%; Число SQL-запросов: 61 шт.
    Исходный размер: 27536; Сжатая: 7493