Dynamic dns server linux

Удаленный доступ при динамическом IP или Настраиваем DynDNS в Linux

Оговорки:
— писалось как пособие для начинающих.
— способ не подходит для «серых» IP.

Удаленно управлять рабочим столом можно с помощью TeamViewer. Однако, например, для управления домашним ПК с Linux на борту, если необходима только правка конфигов или работа с файлами, а не с X-приложениями, проще всего использовать ssh. Но как быть, если IP удаленной машины постоянно меняется? В таком случае поможет сервис DynDNS. Принцип его действия прост: сервис создает для вас определенный домен, а ваш компьютер с помощью этого сервиса присваивает домену текущий IP-адрес.

Регистрация аккаунта и домена

DynDNS предусматривает несколько тарифных планов, однако, мы рассмотрим бесплатный вариант его использования. Для создания доменного имени достаточно зарегистрироваться на сервисе и заполнить небольшую форму на сайте Dyn.com. Итак, переходим по ссылке регистрации и заполняем форму:

image

Нажимаем Create Account для создания аккаунта. Проверяем почту, переходим по ссылке в письме, вводим свой пароль и завершаем регистрацию, кликнув на Confirm Account:

image

Аккаунт создан, теперь нам предлагают выбрать тариф из предложенных. По всей странице красочно расписаны платные тарифы, но мы хотим пользоваться сервисом бесплатно, для этого выбираем ссылку «free Dynamic DNS» в самом низу страницы:

image

Переходим к созданию доменного имени. Заполняем форму, выбрав имя своего поддомена, домен, в котором он будет расположен (я выбрал dyndns.org), а также заполняем текущий IP нашего компьютера, который хотим подключить к сервису:

image

Нажимаем Add To Cart, подтверждаем свой выбор, нажимая Proceed to checkout:

image

Домен создан, активируем его работу кнопкой Activate Services:

image

image

Теперь мы можем приступить к настройке самого компьютера.

Читайте также:  Функциональные особенности операционной системы linux

Настройка сервиса

Для того, чтобы сервис знал наш текущий IP, необходимо предоставлять ему такие данные. Настроим на компьютере клиент. Переходим в консоль и устанавливаем ddclient (команда приводится для Ubuntu, для не deb-based дистрибутивов можно скачать ddclient и установить вручную):

sudo apt-get install ddclient

Теперь необходимо настроить клиент:

sudo gedit /etc/ddclient.conf

В конфигурационном файле уже присутствует множество параметров настроек, однако, раскомментируем и настроим только самое необходимое:

daemon=300
syslog=yes
mail=root
mail-failure=root
pid=/var/run/ddclient.pid
ssl=yes

server=members.dyndns.org, \
protocol=dyndns2 \
linux-easy.dyndns.org

Очевидно, что вместо астериксов (звездочек) необходимо указать пароль от своего DynDNS-аккаунта. Сохраняем файл конфигурации и перезапускаем ddclient:

sudo /etc/init.d/ddclient restart

После этого компьютер будет сам посылать текущий IP сервису DynDNS, который будет применять его к нашему домену linux-easy.dyndns.org. Теперь мы можем подключиться к нему по ssh или даже по ftp (предварительно настроив ftp-сервер).

Источник

Динамический днс своими руками

Иногда необходимо иметь доступ к своей машине, или машине клиента, которые имеют динамический IP адрес. Для этих целей существует масса сервисов, но бесплатных становится все меньше и меньше. Вот для этого и предназначена данная статья. Если у вас есть под рукой сервер (VDS, VPS или дедик), из которого можно сделать ДНС сервер, то с помощью данной статьи вы сможете сделать для себя такой сервис и пользоваться им как вам удобно и сколько вам хочется. В ходе создания сервиса было перерыто множество страниц в интернете, зачастую противоречащих друг другу. Поэтому, ссылки на исходники указаны не будут. Это статья как бы компиляция всех сведений, нарытых в сети.

Начало работы

Для начала работы по созданию сервиса предполагается, что у вас настроен на сервере BIND, установлены пакет dnsutils и программа Curl. Если обнаружилось вдруг, что у вас этого нет, почитайте, что написано в этой статье. Для простоты сразу договоримся, что оперировать будем доменом dyndns.my и поддоменом с динамическим IP dhost. Полный адрес получится dhost.dyndns.my. В домене должна быть запись A ns с IP вашего сервера. Или не ns, тут кому как нравится, но в этом примере дело обстоит именно так. Ну и для полной ясности, и сервер, и клиент — компы с Ubuntu. Версия уже принципиального значения не имеет.

Читайте также:  Linux как поменять имя пользователя

Он сказал, поехали!

Настройка клиентской части

Раздел идет впереди настройки сервера потому, что ключи авторизации необходимо генерировать на клиенте.

Создадим отдельный каталог в /etc.

Генерируем пару ключей для обмена информацией между клиентом и сервером.

sudo dnssec-keygen -b 512 -a HMAC-MD5 -v 2 -n HOST dyndns.my

В результате этой операции в каталоге появляются два файлика — Kdyndns.my.+157+48025.key и Kdyndns.my.+157+48025.private. Из первого файла нам будет необходим только набор символов после «157 ». Именно после пробела начинается тело ключа. Создаем скрипт обновления доменных зон.

#!/bin/bash TTL=3600 SERVER=ns.dyndns.my HOSTNAME=dhost.dyndns.my ZONE=dyndns.my KEYFILE=Kdyndns.my.+157+48025.private new_ip_address=`curl http://dyndns.my/ip.php` #Этот файлик создадим позднее на сервере! cd /etc/ddns nsupdate -v -k $KEYFILE 

Сохраняем. Затем даем права на исполнение.

Создаем символическую ссылку в каталог /usr/sbin, чтобы не добавлять в пути скрипт обновления зон. Это не обязательно, будет просто не лишним для того, чтобы из консоли набирать команду без путей.

sudo ln -s /etc/ddns/ddns.sh /usr/sbin/ddns_update

Раз добавили, то в /etc/crontab будем использовать его.

Настройка серверной части

Настройка сервера имен заключается в прописывании домена и установке разрешения на обновления записей A доменных имен с динамическими IP. Переходим в каталог bind.

Вставляем туда текст и тело ключа, о котором упоминалось в предыдущем разделе.

key "dyndns.my" { algorithm hmac-md5; secret "тут тело ключа"; };

Добавляем в файл /etc/bind/named.conf строчку с указанием файла, где определен ключ.

include "/etc/bind/dnskeys.conf";

Следующим шагом необходимо в файл /etc/bind/named.conf.local прописать доменную зону, которой мы оперируем.

zone "dyndns.my" { type master; allow-update {key dyndns.my;}; file "/etc/bind/pri.dyndns.my"; };

Необходимо будет создать и файл /etc/bind/pri.dyndns.my с различными записями для домена. Он обычный, с минимально необходимым набором записей для функционирования домена, потому и нет необходимости рассматривать его в данной статье. Рестартуем сервер имен для завершения и применения настроек.

sudo service bind9 restart

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

Если вы обратитесь к этому файлу через веб, к примеру, http://dyndns.my/ip.php, то, кроме своего IP адреса ничего не увидите. Что нам и требовалось. Клиент, с помощью curl, его и получает и обновляет информацию на сервере.

Вот и все телодвижения по настройке серверной части.

Настройка заключительная

*/15 * * * * root /usr/sbin/ddns_update

Это означает, что раз в 15 минут скрипт будет запускаться. На этом настройка клиентской части закончена. Можно подождать 15 минут и убедиться, что наш хости работает пингом со стороннего сервера. А можно и выполнить команду.

Для чего, собственно, мы и делали симлинк в /usr/sbin. Если вы не получили в ответ выхлоп со словом REFUSED, значит вы все сделали правильно и можете быть счастливы.

Выводы

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

Большая просьба, при перепечатке данной статьи, указывать источник, в частности, этот ресурс.

Источник

Оцените статью
Adblock
detector