Поиск по сайту:
Простота не предшествует сложности, а вытекает из нее. (Алан.Дж.Перлис)

Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов. Часть 2

13.12.2019
Настройка Linux-шлюза/маршрутизатора, руководство для не сетевых администраторов

Начало здесь.

 

Настройка Linux GW: Настройка DNS с помощью bind9

Давайте попробуем сделать ping домена вместо IP. Что-то вроде этого:

ping google.com

 

Вы должны получить сообщение о том, что хост неизвестен. Вы можете догадаться, почему? Да, нет DNS.

 

Настройка DNS

DNS будет необходим для разрешения доменов на IP-адреса. bind9 — опция по умолчанию для серверов на основе Debian.

sudo apt-get install bind9

 

Это заставит ваш DNS-сервер работать, но вам все равно нужно будет вручную добавить этот сервер к вашему клиенту (опять же, потому что не работает DHCP):

sudo echo "nameserver 192.168.25.1" > /etc/resolv.conf

 

И сейчас:

ping google.com

 

Волшебство снова, это (может) работать. Если этого не произойдет, вам может потребоваться открыть файл /etc/bind/named.conf и настроить маршрутизатор (192.168.0.1) в качестве сервера пересылки, а затем перезапустить сервер.

Конечно, это довольно скучно. Если вы собираетесь установить DNS, вы также можете создать собственный TLD для своей локальной сети.

 

Настройка собственного TLD с помощью bind9 для вашей локальной сети

До сих пор в серии о том, как установить маршрутизатор на основе Linux, мы настроили маршрутизатор Linux с NAT и базовым DNS. Теперь мы настроим пользовательский TLD, чтобы вы могли иметь собственные домены для вашей локальной сети. Например, если вы хотите, чтобы у вашего маршрутизатора было удобное имя, а не просто IP.

Давайте начнем с добавления локальной зоны в файл /etc/bind/named.conf.local для домена, который мы назовем «lan»:

zone "lan" {
type master;
file "/home/router/named/lan.db";
};

 

Читать  Причины, по которым Kill не работает в Linux, как это решить?

Теперь нам нужно добавить обратную зону. Обратите внимание, как имя меняется на IP:

zone "10.168.192.in-addr.arpa" {
type master;
file "/home/router/named/rev.10.168.192.in-addr.arpa";
};

 

Нам все еще нужно создать оба файла (lan.db и rev.10.168.192.in-addr.arpa), но мы сделаем это позже. Давайте установим место для регистрации всех запросов DNS (необязательно):

logging {
channel query.log {
file "/home/router/named/dns.log";
severity debug 3;
print-time yes;
};

category queries { query.log; };
};

 

Для записи журнала мы выбрали /home/router/named в качестве каталога журнала, просто потому, что для этого проекта мы храним все вместе (config и logs), так что людям, не привыкшим администрировать Linux, легко, но, конечно, это означает, что apparmor должен быть настроен на чтение и запись для привязки в этом каталоге. Мы вернемся к этому через секунду, во-первых, давайте создадим необходимые файлы зон для нашего нового TLD.

Помните наши два файла зоны? Мы помещаем их в /home/router/named, но обычно они находятся в/etc/bind. Опять же, сделали это, чтобы смогли собрать все файлы конфигурации вместе. Это наши два файла:

Для lan.db

<

lan.      IN      SOA     ns1.lan. admin.lan. (
2006081401
28800
3600
604800
38400
)

lan.      IN      NS              ns1.lan.

wiki             IN      A       192.168.0.66
ns1              IN      A       192.168.0.1
router           IN      A       192.168.0.1

 

Для rev.10.168.192.in-addr.arpa

@ IN SOA ns1.lan. admin.example.com. (
2006081401;
28800;
604800;
604800;
86400
)

IN    NS     ns1.lan.
1                    IN    PTR    lan

 

Большинство этих строк — чёрная магия, и поскольку объяснение DNS и Bind выходит за рамки (не стесняйтесь читать RFC, если вам нужна дополнительная информация), давайте просто скажем, что вы можете добавлять новые записи DNS, добавляя такие строки:

NICE_NAME           IN      A       REAL_IP

 

Читать  Как создать перечисления. Использование объектов Enum в Python

Это заставит bind перевести NICE_NAME.lan в REAL_IP. Конечно, это будет зависеть от TLD, который вы определили. Теперь перезапустите bind, чтобы получить массу ошибок. Он будет жаловаться на невозможность загрузить мастер-файл в/home/router/named. Помните ту вещь, которую мы упомянули?

 

Настройка Linux GW: Настройка apparmor

Apparmor — это сервис, который работает в фоновом режиме, проверяя, что другие двоичные файлы могут и не могут делать. Например, это позволит bind9 открыть прослушивающий сокет на порту 53 (DNS), но запретит попытку открытия прослушивающего сокета на порту 64. Это мера безопасности для ограничения ущерба скомпрометированному двоичному файлу bind9, работающему от имени root может сделать. И поскольку мы собираемся использовать нестандартную конфигурацию, нам нужно сообщить apparmor, что все в порядке.

После установки bind9 мы должны получить новый файл в /etc/apparmor.d/usr.sbin.named. Добавьте следующие строки внизу:

/home/router/named/** rw,
/home/router/named/ rw,

 

И перезапустите сервис apparmor:

/./etc/init.d/apparmor restart

 

Поскольку мы модифицировали apparmor, чтобы разрешить нестандартную установку bind, теперь перезапустите bind. На этот раз он запустится без каких-либо ошибок, и вы сможете подключить -f /home/router/named/dns.log для просмотра DNS-запросов в режиме реального времени. Если это не так, проверьте, что/home/router/named доступен для записи пользователю bind (мы сделали chgrp -R bind named).

 

Настройка Linux GW: DCHP

В нашем пользовательском маршрутизаторе Linux у нас пока есть DNS и NAT, но конфигурация клиента была абсолютно ручной. У нас не может быть много клиентов с такой настройкой, поэтому давайте автоматизируем настройку клиента с помощью DHCP-сервера. Начните с установки isc-dhcp-server.

Читать  Как добавить открытый ключ SSH на сервер

Отредактируйте /etc/dhcp/dhcpd.conf, установите доменное имя и серверы доменных имен, например, так:

option domain-name "lan";
option domain-name-servers 192.168.25.1 192.168.0.1;

default-lease-time 86400;
max-lease-time 172800;

authoritative;

 

Два других установят DNS-серверы для ваших клиентов. Кроме того, рекомендуется увеличить время аренды, мы использовали один день для аренды по умолчанию. Установили DHCP-сервер в качестве приоритетного сервера. Если это ваш роутер, это, вероятно, то, что вы хотите.

Теперь нам нужно определить топологию сети:

# Это сеть WAN, и мы не будем предоставлять услуги здесь
subnet 192.168.0.0 netmask 255.255.255.0 {
}

# Определите услугу, которую мы предоставляем для локальной сети
subnet 192.168.25.1 netmask 255.255.255.0 {
range 192.168.25.100 192.168.25.200;
option routers 192.168.25.1;
}

 

Теперь нам нужно перезапустить ISC:

sudo /./etc/init.d/isc-dhcp-server restart

 

И теперь нам нужно проверить, все ли работает в клиенте. В этот раз легко, мы просто просим IP:

sudo dhclient
ifconfig

 

Если все прошло хорошо, теперь у нас должен быть IP в диапазоне 100-200, а также DNS-сервер в /etc/resolv.conf. Сейчас мы настроили очень простой маршрутизатор и должны иметь возможность обслуживать несколько клиентов для базовых возможностей просмотра.

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

 

Другие части:

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
По состоянию на этот год 51% покупателей обращаются к поисковым системам в поисках вдохновения…

Спасибо!

Теперь редакторы в курсе.