Как запустить собственный dns-сервер в локальной сети

What Is DNS?

DNS is the system that translates a domain name like to the numerical IP address of its server. This could look like . Whenever you make a network request using a domain name, your system will perform a DNS lookup to determine the server address it should contact.

This adds an overhead to every request you make. Although your device will cache DNS responses, visits to new domains will incur a DNS round-trip before the actual request begins. This occurs at the level of the OS networking stack, invisible to you as the user.

ISPs usually run DNS servers. You’re probably relying on your ISP’s server if you’re using default settings on your router and devices. Other public DNS servers are available from providers such as Cloudflare and .

Настройка клиентской машины

Для того, чтобы клиентская машина начала ходить в сеть интернет через ИКС, его нужно указать в качестве шлюза, в сетевом подключении рабочего компьютера (Сетевые подключение \ Локалка \ Свойства \ IP версии 4 \ Шлюз: 192.168.0.50 \ ДНС: 192.168.0.50 \ ОК)

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

Как вы видите, у нас статистика появилась, но пока она не в особо понятном виде, так как отображаются IP адреса ресурсов, а не их доменные имена. Но, данную тему мы рассмотрим более подробно, когда будем разбирать тему анализа и контроля интернет трафика.

Настройка сети через графический интерфейс

Первый метод, можно назвать классическим, так как он самый простой и подойдет для большинства администратором. Тут мы с вами будем использовать оснастку «Центр управления сетями и общим доступом», настроим статический IP-адрес, маску сети, основной шлюз и DNS-сервера через графический интерфейс. У меня есть сервер RDCB01, для которого я выделил IP-адрес 192.168.31.10. На текущий момент айпишник прилетает от DHCP-сервера. Проверим текущие параметры интерфейса через командную строку, в которой нужно написать команду:

ipconfig /all

Чтобы открыть «Центр управления сетями и общим доступом» со списком сетевых интерфейсов, мы воспользуемся быстрыми командами Windows. Открываем окно выполнить и пишем в нем:

ncpa.cpl

Находим нужный сетевой интерфейс, в моем примере, это единственный Ethernet0 и заходим в его свойства.

Далее находим пункт «IP версии 4 (TCP/Ipv4)»и открываем его свойства, далее мы видим, что выделение сетевых настроек производится в автоматическом режиме, через службу DHCP.

Чтобы вбить статические настройки выбираем пункт «Использовать следующий IP-адрес» и по порядку задаем настройки, подготовленные заранее. В моем случае

  • IP-адрес 192.168.31.10
  • Маска подсети 255.255.255.0
  • Основной шлюз 192.168.31.254
  • Предпочитаемый DNS-сервер 192.168.31.1
  • Альтернативный DNS-сервер 192.168.31.2

Сохраняем все настройки и проверяем через Ipconfig /all, что все видится. Так же можете попробовать пропинговать ваш основной шлюз или DNS-сервер. На этом графическая настройка сети в Windows Server 2019 окончена.

Настройка доступа на компьютере с ОС Windows

Для настройки компьютера нужно на нем открыть порты для входящих соединений. Это делается в программе стандартной поставки «Брандмауэр Windows». Программа запускается из «Панели управления — Система и безопасность — Брандмауэр» или «Пуск — Выполнить — cmd — firewall.cpl».

Открытие портов происходит следующим образом:

  • В программе нужно выбрать пункт меню «Дополнительные параметры».
  • Откроется новое окно, которое позволит настроить расширенные параметры защиты компьютера.
  • При нажатии кнопки «Правила для входящих соединений — Создать правило» открывает модальный диалог «Мастера создания правила».
  • Первый пункт диалога позволяет выбрать тип правила: для конкретной программы (обычно при установке программы самостоятельно добавляют правила для корректно работы), для порта, предустановленные правила и настраиваемые правила.
  • Выбирать нужно переключатель «Для порта».
  • Выбирается тип протокола (TCP или UDP), и в соответствующее поле вносится конкретный порт или диапазон портов через дефис.
  • После выбора порта создается само правило, т.е. разрешается или запрещается подключение. В нашем случае при открытии порта нужно поставить переключатель напротив «Разрешить подключение».
  • Определяется профиль сетевого соединения. Можно проставить галочки напротив всех профилей.
  • На последнем пункте нужно придумать имя для правила и нажать «Готово».

Таким образом открывается порт на компьютере. Аналогично, как и в роутере для каждого порта нужно создавать отдельное правило. Чтобы не добавлять доступ к каждому порту, можно полностью отключить брандмауэр, но делать это категорически не рекомендуется.

Защита сервера

Я буду настраивать , и по вот этому очень хорошему гайду. (еще раз, моя цель не скопипастить все что я нашел, а собрать все в одно место, чтобы не забыть) Я делаю все для Ubuntu Server, но в том гайде есть для CentOS и Red Hat.

Во-первых сделаем еще одного пользователя помимо root (1), зададим ему пароль (2) и разрешим использовать root привелегии через sudo (3):

SSH

Настраивайте по инструкции в статье упомянутой выше. Там мне совсем нечего добавить, кроме подроностей о public и private ключах:

  • генерирует 2 ключа открытый (тот что имеет .) и приватный который (не имеет такого расширения)

  • Открытый ключ отправляется на сервер в файл в папке в домашней директории пользователя ()

    Для этого можно использовать команду:

Закрытый ключ используется для аутентификации, скопируйте его куда-нибудь чтобы не потерять
Использовать ключ для входа можно командой:

Важно отключить аутентификацию по паролю иначе мы все это делали зря

Firewall

Используя проброс портов мы разрешаем доступ к нашему серверу лишь посредством подключений к определенным портам, но DMZ зона допускает почти все типы запросов. Используя DMZ зону нам строит поднять FireWall на сервере, который как раз и ограничит количество портов которые могут принимать внешние запросы.

Разрешим использование SSH (1) и порта 5000 (2) в ufw (Firewall), и запустим Firewall (3):

Подняв FireWall важно не забыть разрешить доступ к порту SSH (22) и порту Flask (5000) (ну или другого ПО, которое мы собираемся использовать). Я забыл и долго не понимал, почему мой сервер не отвечает

На сайте хорошо разобраны команды для управления Firewall-ом.

Fail2ban

Fail2ban ограничивает количество попыток подключения, это сильно усложнит подбор аутентификационных данных SSH.

Для начала установим его (1) и запустим (2, 3):

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

Принцип работы и применение

Работа DNS похожа на работу со списком контактов смартфона. Вы находите требуемый контакт по имени, нажимаете на значок “позвонить”, телефон набирает нужный номер и соединяет с соответствующим абонентом.

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

Рассмотрим подробнее, как работает dns сервер:

  • Пользователь в адресной строке браузера вводит доменное имя сайта, на который хочет перейти.
  • Браузер ищет нужный IP-адрес на локальном компьютере, в файле hosts. Если нужной информации там не находит, то отправляет свой запрос на сервер более высокого уровня. Например, это может быть локальный сервер провайдера.
  • Если и на этом сервере нет данных об IP-адресе сайта, то запрос переправляется на сервис более высокого уровня. Такая переадресация будет длиться, пока нужный адрес не будет найден или корневой DNS-сервер не ответит, что сайта с таким именем не существует.
  • После этого начнётся обратное движение запроса, от высшего уровня до низшего, пока данные не придут на компьютер пользователя.

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

Shutterstock: The Bottom Line

Shutterstock is one of the most popular microstock sites in the world. As a contributor, Shutterstock has several advantages. Their payment percentage is higher than some other microstock sites, their minimum payout amount is less than most, and they offer a few different options to help you earn more money. Shutterstock is also non-exclusive, so you can share the photos you publish on Shutterstock on other non-exclusive microstock sites.

Remember, when submitting to Shutterstock, you should regularly upload new photos, rather than loading them all at once. That allows your images to be displayed in the fresh content area, giving your image increased exposure. 

Best Print Product 2021 Try HDR with your photos Print your photos Sell your lens Save $$ on lens Best Camera Strap Backdrops You Need Camera deals you want

Настройка локальных доменов в Windows

Не всегда есть хорошее, стабильное подключение в интернет (долгое время я ходил в инет через сотовый телефон, кто знает что это такое, тот поймёт) и доступ к веб-серверу хостера. Поэтому в качестве тестового веб-сервера для нужд разработки сайтов у меня на компьютере крутится Apache с настроенным php. Чтобы начать работу с новым сайтом, как правило, мне приходилось делать примерно следующее:

  1. заводить соответствующую запись (например, вида «127.0.0.1 vizr») в файле «C:\Windows\System32\drivers\etc\hosts».
  2. создавать иерархию папок для будущего виртуального хоста. Минимум приходилось создавать папки «C:\InetPub\vizr\» и «C:\InetPub\vizr\logs\». Во вторую, в последствии, пишутся логи веб-сервера для этого vhost-a.
  3. настраивать виртуальный хост в Apache — и править файл конфигурации Апачи. Примерно так:

Эта идиллия продолжалась до тех пор, пока мне не потребовалось создать сайт, который динамически создавал и обслуживал поддомены третьего уровня. Описанным выше способом поддомены сайта можно организовать, но в очень извращённой форме, а хотелось простого решения. Правильным решением является получение управления над доменной зоной. Но на локальных windows машинах как правило нет dns-сервера в классическом понимании этого слова. Поэтому возникла необходимость найти альтернативный dns сервер. При поиске по самым очевидным запросам везде натыкался на Simple DNS Server. В этой программе действительно всё просто: и установка dns сервера, и настройка dns сервера. Однако он платный, хоть и работает вполне приемлемо. Поэтому — «будем искать… Семён Семёнович Горбунков, к/ф Брильянтовая рука».

Настройка ИКС

С любой клиентской машины из той же сети, подключимся через браузер к серверу ИКС https://192.168.0.50:81 \ Перейти на сайт небезопасно \ root 00000 \ Вот мы и попали в основной интерфейс программы.

И пока мы не забыли, стоит сменить стандартный пароль администратора (Пользователи и статистика \ Пользователи \ Администратор \ Редактировать \ Пароль)

Конечно же полный функционал я не смогу рассказать в рамках одного видео, поэтому разберемся с базовыми настройками, выполнив которые вы сможете уже начать тестировать ИКС.

Какие же функции выполняет ИКС?

Интернет Контроль Сервер является так скажем пограничным блок постом, который решает, кому можно выходить в сеть интернет, а кому нет. И поэтому на нем должно быть два сетевых интерфейса, один из которых смотрит в локальную сеть, другой в сеть Интернет. Так вот как раз процессом взаимодействия между этими двумя сетями и управляет Интернет Контроль Сервер.

Поэтому первым делом нам нужно настроить эти сетевые интерфейсы (Сеть \ Провайдеры и сети \ Добавить \ Название: Локалка \ Интерфейс: em0 \ IP-адрес: 192.168.0.50/24 \ Разрешить управление ИКС через веб \ Разрешить управление ИКС через SSH, для удаленного управления сервером \ Добавить)

Теперь нам нужно настроить сетевой интерфейс для доступа в интернет (Выключаем сервер \ Обслуживание \ Управление питанием \ Выключить ИКС \ Параметры \ Добавить \ Сетевая карта \ Тип подключения: Мост \ Включаем сервер)

Подключаем внешнюю сеть (Сеть \ Провайдеры и сети \ Добавить \ Название: Интернет \ Интерфейс: em1 \ Получить IP-адрес автоматически \ DNS: автоопределение \ Добавить \ Переходим в подключение Интернет и видим сетевые настройки, которые были назначены автоматически, но это у меня, если вам необходимо, то можете указать сетевые параметры вручную)

Проверим, может ли сам ИКС получить доступ в сеть Интернет (Сеть \ Сетевые утилиты \ Пинг \ Запустить)

Теперь нам необходимо создать пользователей, через которых мы и будем распределять права на доступ к различным ресурсам и смотреть аналитику (Пользователи и статистика \ Пользователи \ Добавить \ Пользователь \ Имя: Бухгалтер \ Роль: Пользователь \ Логин \ Пароль)

Теперь нужно определить, каким способом пользователи будет авторизоваться на ИКС? Поэтому переходим в свойства пользователя (IP/MAC-адреса \ Добавить \ 192.168.0.6)

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

Shutterstock Contributor Account Regulation

  • Shutterstock will warn you, and eventually terminate your account, if they see repeated issues related to your account activity or content submissions. Examples include:
  • Resubmitting the same photos that were previously rejected without addressing the rejection reasons.
  • Sharing a Paypal, Payoneer, or Skrill account with another contributor.
  • Submitting photos that they feel is “excessively inspired” by someone else’s work.
  • Copying someone else’s entire description and keywords for their photo(s).
  • Title spamming – i.e., repeating a word in the title
  • Keyword spamming – i.e., using keywords that are irrelevant to the image.
  • Adding keywords back after they were removed by an administrator, modifying a caption that was edited by an administrator, or adding restricted keywords after your content was approved. 
  • Using inappropriate keywords (e.g., sexy, nude, etc.)

Как переключить Network Manager на использование systemd-resolved?¶

Начиная с Fedora 30, в комплект базовой системы входит systemd-resolved, который занимается преобразованием имён DNS в IP-адреса, имеет встроенный DNS-кэш и активирован по умолчанию.

В то же время, Network Manager с настройками по умолчанию использует собственный виртуальный файл конфигурации , игнорирующий присутствие systemd-resolved.

Для исправления этой ситуации, убедимся, что systemd-neworkd запущен и функционирует:

sudo systemctl enable --now systemd-resolved.service

Создадим в каталоге файл следующего содержания:

dns=systemd-resolved

Убедимся, что файл является символической ссылкой на :

file /etc/resolv.conf

Если по какой-то причине это не так, то внесём соответствующие правки:

sudo rm -f /etc/resolv.conf
sudo ln -sf /run/NetworkManager/resolv.conf /etc/resolv.conf

Перезапустим затронутые сервисы:

sudo systemctl restart NetworkManager.service
sudo systemctl restart systemd-resolved.service

Проверим, что в качестве основного сервера DNS применяется виртуальная заглушка:

cat /etc/resolv.conf

Настройка DNS-клиентов

Прежде чем все ваши серверы в доверенном ACL смогут отправлять запросы на ваши DNS-серверы, вы должны настроить для каждого из них использование ns1 и ns2 в качестве сервера имен. Этот процесс варьируется в зависимости от операционной системы, но для большинства дистрибутивов Linux он подразумевает добавление ваших серверов доменных имен в файл .

Клиенты Ubuntu 18.04

На Ubuntu 18.04 настройка сетевого взаимодействия выполняется с помощью Netplan, абстракции, которая позволяет вам записывать стандартную конфигурацию сети и применять ее к несовместимому сетевому ПО, отвечающему за бекэнд. Для настройки DNS нам потребуется записать файл конфигурации Netplan.

Во-первых, найдите устройство, связанное с вашей частной сетью, отправив частной подсети команду :

В этом примере используется частный интерфейс .

Далее необходимо создать новый файл в с именем :

Вставьте в файл следующее содержимое. Вам потребуется изменить интерфейс частной сети, адреса ваших DNS-серверов ns1 и ns2, а также зону DNS:

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

/etc/netplan 00-private-nameservers.yaml

Сохраните файл и закройте его после завершения.

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

Если счетчик в нижней части обновляется корректно, это значит, что новой конфигурации удалось по крайней мере не повредить ваше соединение SSH. Нажмите ENTER, чтобы принять изменения в конфигурации.

Теперь проверьте DNS-преобразователь системы, чтобы определить, применены ли изменения в конфигурацию DNS:

Прокрутите вниз, пока не увидите раздел для вашего интерфейса частной сети. Вы должны увидеть частные IP-адреса ваших DNS-серверов, которые будут перечислены в первую очередь, а за ними идут резервные значения. Ваш домен должен находиться в строке DNS Domain:

Ваш клиент должен быть настроен на использование ваших внутренних DNS-серверов.

Клиенты Ubuntu 16.04 и Debian

В серверах Ubuntu 16.04 и Debian вы можете изменить файл :

Внутри найдите строку и добавьте ваши серверы доменных имен в начало списка, который уже добавлен в файл. Под этой строкой добавьте опцию , указывающую на базовый домен вашей инфраструктуры. В нашем случае это будет “nyc3.example.com”:

/etc/network/interfaces

Сохраните файл и закройте его после завершения.

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

В результате будет выполнен перезапуск вашей сети без отключения текущего подключения. Если все работает корректно, вы должны увидеть примерно следующее:

Еще раз проверьте, что ваши настройки были применены, введя следующую команду:

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

Ваш клиент настроен для использования ваших DNS-серверов.

Клиенты CentOS

В CentOS, RedHat и Fedora Linux отредактируйте файл . Возможно, вам придется заменить на имя вашего основного сетевого интерфейса:

Найдите опции и и задайте для них частные IP-адреса ваших основного и дополнительного серверов доменных имен. Добавьте параметр , используя базовый домен вашей инфраструктуры. В этом руководстве это будет “nyc3.example.com”:

/etc/sysconfig/network-scripts/ifcfg-eth0

Сохраните файл и закройте его после завершения.

Перезапустите сетевую службу с помощью следующей команды:

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

Убедитесь, что изменения вступили в силу, введя следующую команду:

Вы должны увидеть ваши серверы доменных имен и домена поиска в списке:

/etc/resolv.conf

Ваш клиент теперь может подключиться и использовать ваши DNS-серверы.

Локальные и глобальные IP адреса

Чтобы не запутаться в терминологии, глобальный IP адрес ещё называют «внешним», «белым» — это разные обозначения одного и того же.

Локальный IP адрес называют «внутренним», «серым», «приватным» — это всё одно и то же.

Работа домашней (локальной) сети, в которой присутствует роутер и несколько устройств, подключённых к роутеру, обычно выглядит следующим образом:

  1. Роутер подключается к Интернет-провайдеру. Интернет-провайдер назначает роутеру внешний IP адрес, который позволяет устанавливать соединения с глобальной сетью Интернет.
  2. Компьютеры по кабелю или Wi-Fi, а также мобильные телефоны через Wi-Fi подключаются к роутеру. Роутер раздаёт им локальные IP адреса.
  3. Если два устройства в локальной сети хотят обменяться данными, то они это делают через роутер, но сетевые пакеты не отправляются в глобальную сеть.
  4. Если какому-либо устройству понадобиться «выйти в Интернет», то он передаст соответствующий запрос роутеру, роутер подключится к нужному узлу в глобальной сети, роутер же получит ответ от узла в глобальной сети и передаст этот ответ устройству в локальной сети, которое сделало первоначальный запрос.

2 ответа

Решение

Вы можете сделать это с ,

Установка это просто случай использования apt-get.

Настройте dnsmasq как DNS DHCP

Глядя на файл первый. В списке указаны те строки, которые я изменил по умолчанию. Просто раскомментируйте и исправьте их при необходимости. (Удалите «#» из начала строки).

Что эти строки сделают для вас.

  • Это необходимо для домена никогда не передавать короткие имена вышестоящим DNS-серверам. Если имя не в местном файл затем «не найден» будет возвращен.

  • bogus-priv Все поиски обратного IP (192.168.xx), которые не найдены в будет возвращено как «нет такого домена» и не будет переадресовано вышестоящим серверам.

  • no-resolv Не читать найти серверы, где искать днс.

  • no-poll Не опрашивать для изменений

  • сервер =8.8.8.8 Установите один или несколько серверы для использования, когда адреса не являются локальными. Они открыты сервера.

  • local = / example.com / Наш локальный домен, на запросы в этих доменах отвечают или файлы static-hosts.

  • address = / doubleclick.net / 127.0.0.1 Используйте эту принудительную адресацию для указанных доменов. например, чтобы блокировать силу рекламы в

  • no-hosts Эта опция останавливается используя местный файл в качестве источника для поиска.

  • addn-hosts = / etc / dnsmasq_static_hosts.conf Force использовать этот файл для поиска. Это в том же формате, что и ,

  • expand_hosts Таким образом, мы можем видеть наши локальные хосты через наш домашний домен без необходимости повторно указывать домен в нашем файл.

  • домен Это ваше локальное доменное имя. Это скажет сервер, для которого выдается IP-адрес.

  • dhcp-range Это диапазон IP-адресов, которые будет служить: в , со сроком аренды 72 часа. Время аренды — это как долго этот IP будет связан с хостом.

  • dhcp-host = mylaptop, 192.168.0.199,36h Любая машина, говорящая, что они получает это адрес

  • dhcp-option=option:router,192.168.0.1 Когда хост запрашивает адрес через и скажите ему, какой шлюз использовать.

  • dhcp-option = option: ntp-server, 192.168.0.5 Когда хост запрашивает IP-адрес через и скажи это использовать.

В файле Вы можете добавить список локальных компьютеров со статическими IP-адресами в том же формате, что и файл hosts. Это также простой способ создания псевдонимов или записей CNAME.

Запуск и остановка службы

И еще одна вещь, чтобы сделать. Прекратить все другие серверы в локальной сети. Ваш Сервер должен быть только один.

1

2017-06-01 19:57

Настройка локального DNS-сервера кажется большой работой и излишним для вашей проблемы. То же самое для создания DHCP-сервера. Оба подхода, вероятно, сработают, но сколько времени вы хотите инвестировать в это упражнение?

Я думаю, что самый простой и чистый способ сделать то, что вы хотите, — это чтобы каждый пользователь добавил строку в свой локальный файл /etc/host:

имя хоста IP_Address

Затем, после завершения упражнения, эту строку можно удалить или закомментировать.

Исходя из ваших отзывов, это звучит как создание частной ЛВС, которую вы полностью контролируете, с вашим собственным DHCP и DNS-сервером. Очевидно, что здесь нет необходимости объяснять, как это сделать, поскольку это сложный процесс, который вы, похоже, способны продать.

2017-06-01 17:30

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
3D-тест
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: