Настройка PTR записи на DNS сервере

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

Допустим наш домен mail.example.com находящийся на IP адресе 192.168.1.100, а 192.168.1.1 — сервер интернет провайдера.

Проверить из Windows можно командами (где 192.168.1.100 например адрес нашего почтового сервера, а 192.168.1.1 DNS на который шлем запрос):

nslookup mail.example.com
nslookup 192.168.1.100
nslookup 192.168.1.100 192.168.1.1

В ответ первой команды будет 192.168.1.100, а в ответ второй ничего (должно mail.example.com), так как в DNS не настроена PTR запись.

Из Linux проверять можно так:

dig -x 192.168.1.100

У регистратора доменных имен в DNS добавим дочерний NS-сервер интернет провайдера ns1.example.com 192.168.1.1.

На сервере провайдера (на тесте использую Bind9 на Ubuntu Server) откроем конфигурационный файл DNS сервера например в редакторе nano (CTRL+X для выхода, y/x и Enter для сохранения или отмены изменений):

sudo nano /etc/bind/named.conf

И добавим следующие строки:

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/1.168.192.in-addr.arpa";
};

Первая строка указывает какой зоной будем управлять, вторая тип — главный (этот DNS и будет ею управлять), третья — в каком файле будет прописана конфигурация для этой зоны.

Откроем новый файл для настроек зоны:

sudo nano /etc/bind/1.168.192.in-addr.arpa

И добавим в него:

$TTL 3600
@          IN SOA ns1.example.com. admin.example.com. (
              2016112301       ; Serial
              21600             ; refresh
              3600              ; retry
              3600000           ; expire
              86400 )           ; minimum

        IN  NS ns1.hosting.com.
        IN  NS ns2.hosting.com.

$ORIGIN 1.168.192.in-addr.arpa.
100      IN PTR  mail.example.com.

admin.example.com — контактный адрес человека отвечающего за зону, символ @ не указывается.
Serial это серийный номер версии файла зоны, должен изменяться в большую сторону при каждом изменении, обычно пишется в виде год месяц число номер изменения, по нему другие DNS определяют что нужно обновить у себя информацию.
Refresh — интервал времени в секундах, через который вторичный сервер будет проверять необходимость обновления информации.
Retry — интервал времени в секундах, через который вторичный сервер будет повторять обращения при неудаче.
Expire — интервал времени в секундах, через который вторичный сервер будет считать имеющуюся у него информацию устаревшей.
Minimum — интервал времени жизни информации на кэширующих серверах.
ns1.hosting.com и ns2.hosting.com это DNS домена.
Цифра 100 в последней строке означает окончание IP адреса 192.168.1, аналогично можно указывать записи для других доменов, например 101 IN PTR … для 192.168.1.101 и т.д.

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

sudo /etc/init.d/bind9 restart

Смотрите также:
Настройка Reverse DNS (PTR) в Hetzner

Настройка логов Bind9

По умолчанию логи Bind9 записываются в системный журнал /var/log/syslog и чтобы отделить их, выполним действия которые я укажу ниже.

Читать далее «Настройка логов Bind9»

Решение ошибки Minicom «Устройство /dev/ttyS0 заблокировано»

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

Устройство /dev/ttyS0 заблокировано.

Имя /dev/ttyS0 может быть другим, в зависимости под каким у вас COM порт.
Чтобы не было такой ошибки, необходимо правильно завершать работу с Minicom клавишами CTRL-A потом клавиша Q.

Решить проблему можно убив процесс от root пользователя командой:

killall -9 minicom

В Ubuntu можно командой:

sudo killall -9 minicom

Либо можно просто удалить файл «LCK..ttyS0» в директории /var/lock/.

После этого ошибка не будет отображаться.

Решение проблемы с черным экраном в Ubuntu Server 16

Заметил как-то после установки Ubuntu Server 16.04 LTS, что при загрузке системы на мониторе не отображается строка ввода логина и пароля, причем так каждый раз, черный экран, система на нажатия клавиш не реагирует, а сама система загрузилась и к ней можно подключиться по SSH.

Читать далее «Решение проблемы с черным экраном в Ubuntu Server 16»

Как узнать размер папки в Linux

Приведу ниже примеры команд которыми можно посмотреть размер папок в Linux.

Например используя команду du (отобразится размер подпапок и в конце общий размер, команда sudo используется для повышения привилегий, чтобы получить доступ ко всем папкам):

Читать далее «Как узнать размер папки в Linux»

Запись телефонных разговоров в Asterisk

Опишу пример настройки записи телефонных разговоров в Asterisk, первым делом убедимся что загружены необходимые модули.

Читать далее «Запись телефонных разговоров в Asterisk»

Резервное копирование на Yandex диск

Приведу пример скрипта для создания резервных копий на Yandex диск.

Читать далее «Резервное копирование на Yandex диск»

Как изменить порт SSH в Ubuntu

На тесте изменю порт SSH в Ubuntu Server 14.0.4 LTS и Ubuntu Server 16.0.4 LTS.

Откроем конфигурацию SSH например в текстовом редакторе nano (в nano клавиши Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/ssh/sshd_config

Найдем строчку «Port 22» и изменим её например на «Port 58222«.

Чтобы применить изменения перезапустим ssh (на разных системах он может перезагружаться по разному, по этому приведу список возможных команд):

sudo service ssh restart
sudo /etc/init.d/ssh restart
sudo /etc/init.d/sshd restart

После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной, по этому не отключаясь для проверки попробуем подключиться по новому порту, если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 58222 наш новый порт):

sudo iptables -A INPUT -p tcp --dport 58222 -j ACCEPT

Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:

sudo iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 58222 -j ACCEPT

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

sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT

Пример команды для подключения из Linux к SSH по нестандартному порту:

ssh -p 58222 user@192.168.0.2

Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно так:

netstat -tulpan | grep ssh

Установка и использование Partclone

Partclone — утилита для клонирования и восстановления разделов диска.

Выполним установку Partclone в Ubuntu:

sudo apt-get update
sudo apt-get install partclone

Partclone может работать со многими файловыми системами, при его запуске через точку обязательно указывается тип файловой системы, например:

partclone.btrfs (btrfs)
partclone.ext2/ext3/ext4 (ext2, ext3, ext4)
partclone.reiserfs (reiserfs 3.5)
partclone.reiser4 (reiser 4)
partclone.xfs (xfs)
partclone.ufs (ufs/ufs2)
partclone.jfs (jfs)
partclone.hfs+/hfsplus (hfs plusfs)
partclone.vmfs (vmfs)
partclone.ntfs (ntfs)
partclone.fat12/fat16/fat32 (fat12, fat16, fat32)
partclone.exfat (exfat)
partclone.minix (minix)
partclone.f2fs (f2fs)
partclone.nilfs2 (nilfs2)

Приведу возможные опции запуска:

-s ФАЙЛ, --source ФАЙЛ

Источник данных, указывается файл или раздел который будет клонироваться или из которого будут восстанавливаться данные.

-o ФАЙЛ, --output ФАЙЛ

Выходной файл в который будут сохраняться данные или раздел на который будут восстанавливаться данные.

-O ФАЙЛ, --overwrite ФАЙЛ

Перезаписать файл если он существует.

-c, --clone

Сохранение

-r, --restore

Восстановление

-b, --dev-to-dev

Режим копирования с устройства на устройство

-l ФАЙЛ, --logfile ФАЙЛ

Путь к файлу логов (стандартно /var/log/partclone.log)

-R, --rescue

Продолжить после ошибок чтения диска

-C, --no_check

Не проверять размер диска и количество свободного пространства

-N, --ncurse

Ncurses текстовый пользовательский интерфейс

-X, --dialog

Вывод сообщений в формате диалога

-I, --ignore_fschk

Игнорировать проверку файловой системы

--ignore_crc

Игнорировать crc ошибки

-F, --force

Принудительный режим

-f СЕКУНДЫ, --UI-fresh СЕКУНДЫ

Изменение интервала

-z РАЗМЕР, --buffer_size РАЗМЕР

Размер буфера чтения/записи (стандартно: 1048576)

-q, --quiet

Краткий режим, не будет отображаться информации о процессе выполнения

-dlevel, --debug level

Уровень режима отладки 1/2/3

-h, --help

Отображение справки

-v, --version

Отображение версии программы

Приведу примеры запуска partclone.
Сначала посмотрим какие диски в системе используются:

sudo fdisk -l | grep '/dev/'

Пример клонирования раздела в файл:

sudo partclone.ext3 -c -d -s /dev/sda1 -o sda1.img

Пример клонирования раздела в архив:

sudo partclone.ext3 -c -d -s /dev/sda1 | gzip -c > /dev/sdb2/sda1.gz

Восстанавливаем из файла раздел:

sudo partclone.ext3 -r -d -s sda1.img -o /dev/sda1

Восстановление раздела их архива:

sudo gzip -d /dev/sdb2/sda1.gz | partclone.ext3 -d -r -o /dev/sda1

Клонируем раздел в раздел другого диска:

sudo partclone.ext3 -b -d -s /dev/sda1 -o /dev/sdb2