- Linux bind что это такое
- ОПИСАНИЕ
- ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
- ОШИБКИ
- Установка и настройка DNS-сервера BIND в Linux
- Установка сервера bind
- Создание файла зоны DNS
- Настройка обратной зоны
- Настройка файла конфигурации bind
- Проверка файлов зоны и конфигурации
- Проверка обратной зоны
- Запуск и перезапуск сервера bind
- Тестирование сервера bind
- команда связывания в Linux с примерами
- Linux bind что это такое
- Contents
- Installation
- Configuration
- Restrict access to localhost
- Set up DNS forwarding
- A configuration template for running a domain
- Creating a zonefile
- Configuring master server
- Allow recursion
- Configuring BIND to serve DNSSEC signed zones
- See also
- Automatically listen on new interfaces
- Running BIND in a chrooted environment
- Creating the jail house
- Service unit
Linux bind что это такое
int bind(int sockfd , struct sockaddr * my_addr , socklen_t addrlen );
ОПИСАНИЕ
Обычно сокету типа SOCK_STREAM требуется назначить локальный адрес с помощью bind , перед тем, как он сможет принимать соединения (см. accept (2)).
Правила, используемые при привязке имён, разные в разных семействах адресов. Обратитесь к соответствующему руководству в секции 7 за дальнейшей информацией. Для AF_INET смотри ip (7), для AF_UNIX смотри unix (7), для AF_APPLETALK смотри ddp (7), для AF_PACKET смотри packet (7), для AF_X25 смотри x25 (7), а для AF_NETLINK смотри netlink (7).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
EBADF sockfd не является правильным дескриптором. EINVAL Сокет уже привязан к какому-то адресу. Эта ошибка в будущем может не выдаваться, смотри linux/unix/sock.c , где описаны детали. EACCES Адрес защищен, или пользователь не является суперпользователем. ENOTSOCK Аргумент системного вызова является дескриптором файла, а не сокета.
Нижеследующие ошибки специфичны для сокетов домена UNIX ( AF_UNIX ): EINVAL Параметр addrlen неверен, или сокет не был найден в семействе адресов AF_UNIX . EROFS Попытка создания inode сокета на файловой системе «только для чтения». EFAULT my_addr указывает за пределы доступного адресного пространства. ENAMETOOLONG my_addr слишком длинно. ENOENT Файл не существует. ENOMEM Ядру не хватило памяти. ENOTDIR
Компонент пути, использованный как каталог, в действительности таковым не является.
EACCES Не разрешен поиск в одном из компонентов пути. ELOOP my_addr является зацикленной символической ссылкой, то есть при подстановке возникает ссылка на неё саму.
Источник
Установка и настройка DNS-сервера BIND в Linux
BIND – наиболее распространенное open-source приложение, в котором реализованы протоколы DNS, предоставляющие возможность преобразования доменных имен в IP-адреса и наоборот.
Данная статья представляет собой руководство по быстрой настройке DNS-сервера в Linux при помощи BIND. Мы не будем подробно разбирать, что такое система DNS и как она работает, а сосредоточимся на примере настройки своей зоны и файла конфигурации для домена/узла с поддержкой сервисов www и электронной почты.
В нашем примере мы будем использовать следующие параметры:
IP-адрес, на котором будет установлен сервер имен: 172.31.0.122
имя домена/узла: itproffi.ru
авторитативные сервера имен для зоны itproffi.ru: ns1.itproffi.ru (172.31.1.10) и ns2. itproffi.ru (172.31.1.11)
службы www и электронной почты для itproffi.ru будут использовать адрес 172.31.1.10
Установка сервера bind
Установка bind очень проста – нужно воспользоваться менеджером пакетов. В Debian и Ubuntu выполните следующую команду:
В CentOS или Fedora:
Пакет dnsutils необязателен для запуска сервера bind, но для тестирования конфигурации мы будем пользоваться командой dig из этого пакета.
Создание файла зоны DNS
Дальнейшие примеры будут для Ubuntu/Debian, но также подходят и для Centos/RedHat, только директория с настройками зон в CentOS будет находиться в /etc/named/ , а основной файл конфигурации /etc/named.conf . Для начала нам потребуется создать новый файл зоны для домена itproffi.ru. Перейдите в директорию /etc/bind/ . создайте в ней поддиректорию zones/master/ и перейдите в нее, выполнив следующую последовательность команд:
Директория /etc/bind/zones/master будет содержать файл зоны для домена itproffi.ru. При желании можно использовать другую директорию. Файл зоны db.itproffi.ru будет содержать запись DNS, которая поможет серверу имен установить соответствие полного доменного имени IP-адресу. Создайте этот файл со следующим содержимым:
Рассмотрим ключевые строки этого файла:
- Запись SOA: авторитативный сервер имен для itproffi.ru – это ns1.itproffi.ru, адрес ответственного за зону DNS администратора – admin@itproffi.ru
- Записи NS: два сервера имен для зоны itproffi.ru – ns[1,2].itproffi.ru
- Запись MX: почтовый сервер для itproffi.ru. Число 10 означает уровень приоритета
- Записи A: A означает «адрес» (address). Другими словами, ns1 в зоне itproffi.ru будет иметь адрес 172.31.1.10
- Запись CNAME (Canonical Name – каноническое имя): привязывает одно доменное имя к другому (каноническому), например, устанавливает соответствие mail.itproffi.ru и itproffi.ru.
Настройка обратной зоны
На данном этапе DNS-сервер bind может выдать IP-адрес, связанный с узлом itproffi.ru. Теперь нам нужно научить наш сервер имен обратному процессу, то есть устанавливать соответствие имени IP-адресу. Для этого создадим еще один файл db.172.31.1 со следующим содержимым:
Запись PTR: DNS-запись, используемая для определения соответствия IP-адреса имени узла.
Настройка файла конфигурации bind
На данный момент у нас должно быть два файла:
Теперь требуется вставить имена обоих файлов зоны в файл конфигурации bind /etc/bind/named.conf.local . Для этого добавьте в файл следующие строки:
Последний момент перед проверкой конфигурации – внести в файл named.conf.options IP-адрес стабильного DNS-сервера. Он будет использоваться, если локальный DNS-сервер не будет знать ответ на запрос разрешения имени. Часто этот адрес предоставляется интернет-провайдером, но если вы поклонник Google, можно указать адрес 8.8.8.8 или 8.8.4.4.
Замените следующий блок текста в файле named.conf.options:
на блок текста с адресом стабильного DNS-сервера
Если вы планируйте что к вашему серверу будут подключаться другие компьютеры, то нужно разрешить в опциях внешние подключения. Для этого в основном файле конфигурации, в секции options добавьте или замените следующие правила
А лучше, для безопасности вместо any пропишите ваши сети с которых разрешено подключение
Если этого не сделать, то при попытке обращения к серверу с другого компьютера вы получите ошибку
Проверка файлов зоны и конфигурации
Прежде чем попытаться запустить сервер имен с новой зоной и конфигурацией, можно воспользоваться некоторыми инструментами, чтобы проверить, что конфигурация корректна и не содержит ошибок.
Для проверки файлов конфигурации выполните следующую команду:
С этой командой работает простое правило: отсутствие результата – это хороший результат. Если команда ничего не возвращает, значит ошибок в ваших файлах конфигурации не обнаружено.
Для проверки файлов зоны DNS можно воспользоваться командой named-checkzone:
Проверка обратной зоны
Запуск и перезапуск сервера bind
Теперь мы можем запускать сервер bind:
Если сервер уже был запущен, его можно перезапустить командой restart:
Для того что бы перечитать конфигурацию не перезапуская сервер, используйте команду
Тестирование сервера bind
Для тестирования новой конфигурации сервера имен bind нам пригодится команда dig из пакета dnsutils. Эту команду можно запустить на любом компьютере с сетевым доступом к вашему DNS-серверу, но лучше всего начать тестирование с локального узла. В рассматриваемом нами примере IP-адрес сервера имен 172.31.0.122. Сначала проверим прямое разрешение имени (получение IP-адреса по доменному имени):
dig @172.31.0.122 www.itproffi.ru
Теперь проверим обратную зону:
dig @172.31.0.122 -x 172.31.1.10
Если вы получили аналогичные результаты, то зона DNS настроена правильно. Вместо команды dig для тестирования можно также использовать команду nslookup.
nslookup 172.31.1.10 172.31.0.122
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
команда связывания в Linux с примерами
Команда bind — это встроенная команда оболочки Bash. Он используется для установки привязок клавиш и переменных Readline. Привязки клавиш — это действия клавиатуры, связанные с функцией. Таким образом, его можно использовать для изменения реакции bash на клавиши или комбинации клавиш, нажимаемых на клавиатуре.
Синтаксис:
Параметры:
- -m keymap: он использует KEYMAP в качестве схемы сопоставления клавиш на время текущей последовательности команд. Допустимые имена таблиц ключей: emacs, стандарт emacs, emacs-meta, emacs-ctlx, vi, vi-move, vi-command и vi-insert.
- -l: список имен функций.
- -P: список функций и привязок.
- -p: список функций и привязок в форме, которую можно использовать в качестве входных данных.
- -S: список ключевых последовательностей, которые вызывают макросы и их значения.
- -s: перечисляет последовательности клавиш, которые вызывают макросы и их значения, в форме, которую можно повторно использовать в качестве входных данных.
- -V: список имен и значений переменных.
- -v: список имен и значений переменных в форме, которую можно использовать в качестве входных данных.
- -q имя-функции: это запрос о том, какие ключи вызывают названную функцию.
- -u имя-функции: оно отменяет привязку всех клавиш, которые связаны с указанной функцией.
- -r keyseq: удаляет привязку для KEYSEQ.
- -f имя файла: он читает привязки клавиш из FILENAME.
- -x keyseq: shell-command: при вводе KEYSEQ выполняется SHELL-COMMAND.
- -X В нем перечислены последовательности клавиш, связанные с -x, и связанные с ними команды в форме, которую можно повторно использовать в качестве входных данных.
Примеры:
- -m: он использует KEYMAP в качестве раскладки клавиатуры для выполнения этой команды. Здесь мы используем отображение ключей vi в bash, что позволяет нам манипулировать текстом в командной строке, как в vi.
-l: список всех имен функций readline. В этом списке по умолчанию доступно около 150 функций.
-p: он будет отображать как сочетания клавиш, так и соответствующие имена функций.
-P: список всех функций вместе с привязками, в которых они появляются. Чуть проще читать, когда нравится просматривать все сочетания клавиш для определенного имени функции.
-f: он читает привязки клавиш из FILENAME. Прежде всего, создайте файл, содержащий сочетания клавиш.
и затем напишите в нем связку клавиш, например «/ Ci»: yank. Теперь для загрузки сочетаний клавиш из FILENAME.
-q: используется для просмотра сочетаний клавиш только для определенной функции.
-r: удалить все привязки для определенной последовательности клавиш.
-u: Он также отменяет привязку клавиш. Это удалит комбинации клавиш, назначенные определенной функции.
-v: используется для просмотра всех переменных readline.
Примечание. Чтобы проверить страницу справки команды bind, используйте следующую команду:
Источник
Linux bind что это такое
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
BIND (or named) is the most widely used Domain Name System (DNS) server.
Contents
Installation
Start/enable the named.service systemd unit.
To use the DNS server locally, use the 127.0.0.1 nameserver (meaning clients like Firefox resolve via 127.0.0.1), see Domain name resolution. This will however require you to #Allow recursion while a firewall might block outside queries to your local named.
Configuration
BIND is configured in /etc/named.conf . The available options are documented in named.conf(5) .
Reload the named.service unit to apply configuration changes.
Restrict access to localhost
BIND by defaults listens on port 53 of all interfaces and IP addresses. To only allow connections from localhost add the following line to the options section in /etc/named.conf :
Set up DNS forwarding
To make BIND forward DNS queries to another DNS server add the forwarders clause to the options section.
Example to make BIND forward to the Google DNS servers:
A configuration template for running a domain
Following is a simple home nameserver being set up, using domain.tld as the domain being served world-wide like this wiki’s archlinux.org domain is.
A more elaborate example is DNS server with BIND9, while this shows how to set up internal network name resolution.
Creating a zonefile
$TTL defines the default time-to-live in seconds for all record types. Here it is 2 hours.
Serial must be incremented manually before restarting named every time you change a resource record for the zone. Otherwise slaves will not re-transfer the zone: they only do it if the serial is greater than that of the last time they transferred the zone.
Configuring master server
Add your zone to /etc/named.conf :
Reload the named.service unit to apply the configuration change.
Allow recursion
If you are running your own DNS server, you might as well use it for all DNS lookups, or even locally serve the root-zone yourself following RFC:7706. The former will require the ability to do recursive lookups. In order to prevent DNS Amplification Attacks, recursion is turned off by default for most resolvers. The default Arch /etc/named.conf file allows for recursion only on the loopback interface:
The factual accuracy of this article or section is disputed.
If you want to provide name service for your local network; e.g. 192.168.0.0/24, you must add the appropriate range of IP addresses to /etc/named.conf :
Configuring BIND to serve DNSSEC signed zones
DNSSEC validation is enabled by default. Do not forget to check that «edns» is not disabled.
On master DNS server:
- generate KSK and ZSK keys:
- change zone configuration:
Now bind will sign zone automatically. (This example assumes that all required files are in /var/named/master/)
Then you should pass DS records (from dsset-example.com. file) to parent zone owner probably using your registrar website. It glues parent zone with your KSK.
KSK (and corresponding DS records) should be changed rarely because it needs manual intervention, ZSK can be changed more often because this key is usually shorter to be faster in signature checking.
You can schedule old ZSK key expiration and generate new one using:
Bind should automatically use new ZSK key at appropriate time.
See also
There are external mechanisms such as OpenDNSSEC with fully-automatic key rollover available.
Automatically listen on new interfaces
By default bind scan for new interfaces and stop listening on interfaces which no longer exist every hour. You can tune this value by adding :
parameter into named.conf options section. Max value is 28 days. (40320 min)
You can disable this feature by setting its value to 0.
Then restart the service.
Running BIND in a chrooted environment
Running in a chroot environment is not required but improves security.
This article or section needs expansion.
Creating the jail house
In order to do this, we first need to create a place to keep the jail, we shall use /srv/named , and then put the required files into the jail.
Copy over required system files:
Set up required dev nodes:
Set ownership of the files:
This should create the required file system for the jail.
Service unit
Next we need to create the new service file which will allow force bind into the chroot
we need to edit how the service calls bind.
Источник