По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
На самом деле поиск DNS это не то, что требует частого внимания. Но иногда приходится заботиться об этом. Например, если у вашего провайдера слабые сервера или же в вашей сети часто происходят DNS обращения, то нужно настроить локальный кэширующий DNS сервер.
Как кэширующий DNS-сервер может пригодиться?
Кэширующий DNS-сервер занимается обработкой DNS запросов, которые выполняет ваша система, затем сохраняет результаты в памяти или кэширует их. В следующий раз, когда система посылает DNS запрос для того же адреса, то локальный сервер почти мгновенно выдает результат.
Эта идея может показаться бесполезной. Подумаешь, какие-то там секунды. Но если DNS сервера провайдера тратят много времени на разрешение имени, то в результате падает скорость Интернет серфинга. Например, домашняя страница новостного канала MSNBC для корректной работы обращается более чем к 100 уникальным доменам. Даже если на запрос тратится одна десятая секунды, в итоге получается 10 секунд ожидания, что по нынешним меркам слишком много.
Локальный кэширующий DNS увеличивает скорость не только дома или в офисе, он также помогает работе серверов. Например, у вас есть почтовый сервер с анти-спам фильтром, который выполняет очень много DNS запросов. Локальный кэш намного увеличить скорость его работы.
И наконец, system-resolved поддерживает новейшие стандарты вроде DNSSEC и DNSoverTLS или DoT. Эти технологии увеличивают безопасность при работе в Интренет.
Какой локальный кэширующий сервер выбрать?
В этом руководстве будет использован сервер systemd-resolved. Эта утилита является частью набора управления системой systemd. Если в вашей системе используется systemd, а большинство дистрибутивов Linux используют это, то в системе уже установлен systemd-resolved, но не запущен. Большинство систем не используют эту утилиту.
systemd-resolved запускает небольшой локальный кэширующий DNS-сервер, который мы настроим на запуск при загрузке системы. Затем мы изменим конфигурацию всей системы так, чтобы DNS запросы шли на локальный сервер.
Как проверить используется ли systemd-resolved?
В некоторых дистрибутивах, например Ubuntu 19.04, по умолчанию используется systemd-resolved.
Если у вас уже запущен systemd-resolved, тогда не нужно что-то настраивать в системе. Но нужно проверить на корректность утилит управления сетевыми настройками, такие как NetworkManager, так как они могут игнорировать системные настройки сети.
Перед тем как перейти к следующему разделу проверьте запущен ли в вашей системе systemd-resolved:
$ resolvectl status
Если в ответ получите сообщение ниже, значит в системе не настроен systemd-resolved:
$ resolvectl status
Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
И наоборот, если на выходе видите что-то подобное, то systemd-resolved уже работает:
Global
LLMNR setting: yes
MulticastDNS setting: yes
DNSOverTLS setting: opportunistic
DNSSEC setting: allow-downgrade
DNSSEC supported: no
Current DNS Server: 1.1.1.1
DNS Servers: 1.1.1.1
1.0.0.1
Включение и настройка systemd-resolved
Отдельно устанавливать systemd-resolved не нужно, так как этот сервис является частью systemd. Всё что нужно сделать это запустить его и добавить в автозагрузку. Для включения данной службы введите команду ниже:
$ sudo systemctl start systemd-resolved.service
Далее нужно ввести следующую команду, чтобы добавить службу в автозапуск.
$ sudo systemctl enable systemd-resolved.service
И наконец нужно прописать DNS сервера, куда будет обращаться локальный сервер для разрешения имен. Есть много разных сервисов, но приведённые ниже самые быстрые, бесплатные и оба поддерживают DNSSEC и DoT:
Google Public DNS
8.8.8.8
8.8.4.4
Cloudflare Public DNS
1.1.1.1
1.0.0.1
Для этого откройте конфигурационный файл systemd-resolved любым текстовым редактором:
$ sudo nano /etc/systemd/resolved.conf
Отредактируйте строку, которая начинается на:
#DNS=
И пропишите одну из вышеуказанных пар. Мы используем Cloudflare Public DNS:
DNS=1.1.1.1 1.0.0.1
Сохраните изменения и перезапустите службу systemd-resolved:
$ sudo systemctl restart systemd-resolved.service
Итак, systemd-resolved уже запущен и готов для выполнения быстрых и безопасных DNS запросов, как только мы настроим систему соответствующим образом.
Настройка системы для использования systemd-resolved
Есть несколько путей настройки системы на использование локального DNS сервера. Мы рассмотрим два наиболее используемых метода. Первый – рекомендуемый метод, второй конфигурация в режиме совместимости. Разница в том, как будет обрабатываться файл /etc/resolv.conf.
В файле /etc/resolv.conf содержатся IP адреса серверов разрешения имен, которые используются программами. Программы при необходимости разрешения доменного имени обращаются к этому файлу в поисках адресов серверов разрешения имен.
Итак, первый метод конфигурации заключается в создании символьной ссылки на /run/systemd/resolve/stub-resolv.conf. В этом случае файл /etc/resolv.conf управляется службой systemd-resolved.
Это может вызвать проблемы в том случае, если другие программы пытаются управлять файлом /etc/resolv.conf. Режим совместимости оставляет /etc/resolv.conf не тронутым, позволяя программам управлять им. В этом режиме, в настройках программ, управляющих файлом /etc/resolv.conf в качестве системного сервера разрешения имен должен быть указан IP 127.0.0.53.
Конфигурация в рекомендуемом режиме
При этом режиме конфигурация проводится вручную. Сначала нужно удалить или переименоваться оригинальный файл /etc/resolv.conf. Лучше переименовать, чтобы при необходимости можно было использовать информацию в нем.
$ sudo mv /etc/resolv.conf /etc/resolv.conf.original
Затем создаем символьную ссылку:
$ sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
И наконец перезапускаем службу systemd-resolved:
$ sudo systemctl restart systemd-resolved.service
Настройка в режиме совместимости
В режиме совместимости, нужно убедиться, что локальный сервер разрешения имен system-resolved запущен и используется системными службами. Откройте файл /etc/resolv.conf любым редактором:
$ sudo nano /etc/resolv.conf
Удалите все строки, которые содержать ключевое слово nameserver и добавьте одну единственную строку:
nameserver 127.0.0.53
Этот файл мажет быть изменён любой программой. Чтобы предотвратить это нужно настроить программы так, чтобы в качестве DNS они использовали адрес 127.0.0.53.
Отладка systemd-resolved
Посмотреть, как система выполняет DNS запросы после внесённых изменений сложно. Самый эффективный метод – это включить режим отладки для службы systemd-resolved, а затем просмотреть файл логов.
systemd-resolved можно перевести в режим отладки созданием специального служебного файла, в котором содержатся настройки отладки. Делается это следующей командой:
$ sudo systemctl edit systemd-resolved.service
Вставьте в файл следующие строки:
[Service]
Environment=SYSTEMD_LOG_LEVEL=debug
После этого служба systemd-resolved автоматический перезапуститься. Откройте второй терминал и просмотрите логи в journald:
$ sudo journalctl -f -u systemd-resolved
Строка, которая содержит слова “Using DNS server” показывает, какой DNS сервер используется для разрешения имён. В нашем случае это DNS сервера Cloudflare
Using DNS server 1.1.1.1 for transaction 19995.
Слова “Cache miss” в начале строки означает, что для данного домена нет закэшированной информации:
Cache miss for example.com IN SOA
И наконец слова “Positive cache” в начале строки означает, что systemd-resolved уже запрашивал информацию об этом домене и теперь ответы возвращает из кэша:
Positive cache hit for example.com IN A
Не забудьте отключить режим отладки, так как в это время создается большой файл логов. Сделать это можно командой:
$ sudo systemctl edit systemd-resolved.service
а затем удалить добавленные выше две строки.
Использование защищенных DNS запросов
systemd-resolved один из немногих DNS серверов, которые поддерживает DNSSEC и DNSoverTLS. Эта два механизма позволяют убедиться, что полученная DNS информация подлинная (DNSSEC) и он не был изменён по пути (DoT).
Эти функции легко включаются редактированием основного конфигурационного файла system-resolved:
$ sudo nano /etc/systemd/resolved.conf
Измените файл следующим образом:
DNSSEC=allow-downgrade
DNSOverTLS=opportunistic
Сохраните изменения и перезапустите службу systemd-resolved.
$ sudo systemctl restart systemd-resolved.service
Пока прописанные DNS сервера поддерживают эти две функции все DNS запросы будут защищены. DNS сервера Google и CloudFlare поддерживают эти механизмы защиты.
Заключение
Теперь ваша система будет выполнять DNS запросы быстро и эффективно даже если провайдер не работает достаточно быстро. Кроме этого, ваша цифровая жизнь лучше защищена новейшими механизмами защиты DNS запросов.
Команды Linux могут показаться пугающими на первый взгляд, если вы не привыкли использовать терминал. Для выполнения операций и процессов в вашей системе Linux существует огромное количество команд.
Независимо от того, являетесь ли вы новичком в Linux или опытным пользователем, полезно иметь список общих команд под рукой. В этом руководстве вы найдете часто используемые команды Linux, а также загружаемую шпаргалку (так называемый cheatsheet) с синтаксисом и примерами.
Скачать PDF
Список команд Linux
Важное замечание: В зависимости от настроек вашей системы для выполнения некоторых из приведенных ниже команд может потребоваться запуск sudo.
Информация об оборудовании
Показать сообщения, которые выводило ядро во время загрузки:
dmesg
Показать информацию о процессоре:
cat /proc/cpuinfo
Показать свободную и использованную память с:
free -h
Список информации о конфигурации оборудования:
lshw
Показать информацию о блочных устройствах:
lsblk
Показать устройства PCI в древовидной схеме:
lspci -tv
Отображение USB-устройств в виде древовидной диаграммы:
lsusb -tv
Показать информацию об оборудовании из BIOS:
dmidecode
Показать информацию о диске:
hdparm -i /dev/disk
Провести тест скорости чтения на устройстве/диске:
hdparm -tT /dev/[device]
Проверка на нечитаемые блоки на устройстве/диске:
badblocks -s /dev/[device]
Поиск
Поиск определенного паттерна в файле:
grep [pattern] [file_name]
Рекурсивно искать паттерн в каталоге:
grep -r [pattern] [directory_name]
Найти все файлы и каталоги, связанные с конкретным именем:
locate [name]
Вывести список имен, начинающиеся с указанного символа a в указанном месте /folder/location, с помощью команды find:
find [/folder/location] -name [a]
Просмотр файлов, размер которых превышает указанный размер + 100M в папке:
find [/folder/location] -size [+100M]
Файлы
Список файлов в каталоге:
ls
Список всех файлов (включая скрытые):
ls -a
Показать каталог, в котором вы сейчас работаете:
pwd
Создать новый каталог:
mkdir [directory]
Удалить файл:
rm [file_name]
Удалить каталог рекурсивно:
rm -r [directory_name]
Рекурсивно удалить каталог без подтверждения:
rm -rf [directory_name]
Скопировать содержимое одного файла в другой файл:
cp [file_name1] [file_name2]
Рекурсивно скопировать содержимое одного файла во второй файл:
cp -r [directory_name1] [directory_name2]
Переименовать имя_файла1 в имя_файла2:
mv [file_name1] [file_name2]
Создать символическую ссылку на файл:
ln -s /path/to/[file_name] [link_name]
Создать новый файл:
touch [file_name]
Показать содержимое файла:
more [file_name]
Показать первые 10 строк файла:
head [file_name]
Показать последние 10 строк файла:
tail [file_name]
Зашифровать файл:
gpg -c [file_name]
Расшифровать файл:
gpg [file_name.gpg]
Показать количество слов, строк и байтов в файле:
wc
Навигация
Подняться на один уровень вверх в структуре дерева каталогов:
cd ..
Перейти в каталог $ HOME:
cd
Изменить местоположение на указанный каталог:
cd /chosen/directory
Сжатие файлов
Заархивировать существующий файл:
tar cf [compressed_file.tar] [file_name]
Извлечь заархивированный файл:
tar xf [compressed_file.tar]
Создайте сжатый gzip tar-файл:
tar czf [compressed_file.tar.gz]
Сжать файл с расширением .gz:
gzip [file_name]
Передача файлов
Скопировать файл в каталог сервера через ssh:
scp [file_name.txt] [server/tmp]
Синхронизировать содержимое каталога с резервным каталогом:
rsync -a [/your/directory] [/backup/]
Пользователи
Показать подробности об активных пользователях:
id
Показать последние системные логины:
last
Показать, кто в данный момент вошел в систему:
who
Показать, какие пользователи вошли в систему и их активность:
w
Добавить новую группу:
groupadd [group_name]
Добавить нового пользователя:
adduser [user_name]
Добавить пользователя в группу:
usermod -aG [group_name] [user_name]
Удалить пользователя:
userdel [user_name]
Изменить информацию о пользователе:
usermod
Установка пакета
Список всех установленных пакетов с yum:
yum list installed
Найти пакет по связанному ключевому слову:
yum search [keyword]
Показать информацию и краткую сводку о пакете:
yum info [package_name]
Установить пакет с помощью менеджера пакетов >YUM:
yum install [package_name.rpm]
Установить пакет с помощью менеджера пакетов >DNF:
dnf install [package_name.rpm]
Установить пакет с помощью менеджера пакетов >APT:
apt-get install [package_name]
Установить пакет .rpm из локального файла:
rpm -i [package_name.rpm]
Удалить пакет .rpm:
rpm -e [package_name.rpm]
Установить программное обеспечение из исходного кода:
tar zxvf [source_code.tar.gz]
cd [source_code]
./configure
make
make install
Процессы
Показать снимок активных процессов:
ps
Показать процессы в древовидной диаграмме:
pstree
Показать карту использования памяти процессами:
pmap
Показать все запущенные процессы:
top
Завершить процесс Linux с заданным идентификатором:
kill [process_id]
Завершить процесс с определенным именем:
pkill [proc_name]
Завершите все процессы, помеченные как proc:
killall [proc_name]
Список и сводка остановленных заданий в фоновом режиме:
bg
Перевод последней фоновой задачи в активный режим:
fg
Перевод конкретной задачи в активный режим:
fg [job]
Список файлов, открытых запущенными процессами:
lsof
Системная информация
Показать информацию о системе:
uname -r
Показать информацию о релизе ядра:
uname -a
Показать, как долго работает система, включая среднюю нагрузку:
uptime
Показать имя хоста системы:
hostname
Показать IP-адрес системы:
hostname -i
История перезагрузки системы:
last reboot
Показать текущее время и дату:
date
Запрос и изменение системных часов:
timedatectl
Показать текущий календарь (месяц и день):
cal
Список залогиненых пользователей:
w
Показать текущего пользователя:
whoami
Показать информацию о конкретном пользователе:
finger [username]
Использование диска
Показать свободное и использованное пространство на смонтированных системах:
df -h
Показать свободные иноды (inode) на смонтированных файловых системах:
df -i
Показать разделы диска, размеры и типы:
fdisk -l
Показать использование диска для всех файлов и каталогов:
du -ah
Показать использование диска в каталоге, в котором вы находитесь:
du -sh
Показать целевую точку монтирования для всей файловой системы:
findmnt
Смонтировать устройство:
mount [device_path] [mount_point]
SSH
Подключиться к хосту как пользователь:
ssh user@host
Подключиться к хосту через SSH порт по умолчанию 22:
ssh host
Подключиться к хосту, используя определенный порт:
ssh -p [port] user@host
Подключиться к хосту через telnet порт по умолчанию 23:
telnet host
Разрешение файлов
Назначить права на чтение, запись и выполнение всем:
chmod 777 [file_name]
Дать владельцу право на чтение, запись и выполнение, а также разрешение на чтение и выполнение для группы и других пользователей:
chmod 755 [file_name]
Назначить полное разрешение владельцу, а также разрешение на чтение и запись для группы и других пользователей:
chmod 766 [file_name]
Изменить владельца файла:
chown [user] [file_name]
Изменить владельца и групповое владение файлом:
chown [user]:[group] [file_name]
Сеть
Список IP-адресов и сетевых интерфейсов:
ip addr show
Назначить IP-адрес интерфейсу eth0:
ip address add [IP_address]
Отображение IP-адресов всех сетевых интерфейсов:
ifconfig
Показать активные (прослушиваемые) порты:
netstat -pnltu
Показать порты tcp и udp и их программы:
netstat -nutlp
Показать больше информации о домене:
whois [domain]
Показать DNS информацию о домене:
dig [domain]
Обратный поиск по домену:
dig -x host
Обратный поиск IP-адреса:
dig -x [ip_address]
Поиск IP для домена:
host [domain]
Показать локальный IP-адрес:
hostname -I
Скачать файл из домена с помощью команды wget:
wget [file_name]
Сочетания клавиш Linux
Убить процесс, запущенный в терминале:
Ctrl + C
Остановить текущий процесс:
Ctrl + Z
Вырезать одно слово перед курсором и добавить его в буфер обмена:
Ctrl + W
Вырезать часть строки перед курсором и добавить ее в буфер обмена:
Ctrl + U
Вырезать часть строки после курсора и добавить ее в буфер обмена:
Ctrl + K
Вставить из буфера обмена:
Ctrl + Y
Вызвать последнюю команду, которая соответствует предоставленным символам:
Ctrl + R
Запустите ранее вызванную команду:
Ctrl + O
Выйти из истории команд без выполнения команды:
Ctrl + G
Запустить последнюю команду еще раз:
!!
Выйти из текущей сессии:
exit
Заключение
Чем чаще вы используете команды Linux, тем лучше вы их запомните. Не переживайте о запоминании их синтаксиса - используйте наш шпаргалку.
А больше материалов про Linux можно найти в нашем разделе.
SNMP (Simple Network Management Protocol) - стандартный протокол для запроса информации о состоянии сетевых устройств, и он является pull протоколом - это означает, что SNMP обязан на регулярной основе запрашивать информацию о состоянии устройств - SNMP-коллекторы опрашивают устройства, а SNMP-агенты на устройствах передают данную информацию.
Частота опросов основывается на нескольких факторах, таких как:
Степень необходимой детализации получаемой информации;
Объем доступного места на хранилище;
Срок хранения данной информации;
SNMP является широко распространенным протоколом - в свободном доступе находится как достаточно много решений-коллекторов с открытым кодом, так и коммерческих вариантов - причем существуют как программные решения, так и “железные”. Маршрутизаторы и свичи чаще всего являются SNMP-агентами, также как и три основных операционных системы - Windows, Mac OS и Linux. Но с небольшой поправкой, на них SNMP служба должна быть запущена вручную.
Важно: SNMP может предоставить много полезной информации о “здоровье” оборудования, но необходимо помнить, что всегда нужно использовать безопасную версию SNMP протокола - с настроенной аутентификацией и нестандартной Community строкой.
Версии SNMP протокола
Всего существует три основных (они же и повсеместно используемые) версии SNMP протокола, в нашем случае мы будем использовать третью версию. Ниже, на всякий случай, приведено краткое описание каждой из версий.
SNMP v1
Первая версия является оригинальной версией и до сих пор используется, даже практически спустя тридцать лет. В данной версии нельзя применить никакие меры для повышения безопасности помимо Community строки, которая является чем-то вроде пароля. Если данная строка на Коллекторе соответствует строке на Агенте, то Коллектор сможет запросить информацию. Именно поэтому так важно изолировать SNMP и поместить его в отдельную подсеть и изменить Community строку.
SNMP v2c
Версия 2с привнесла дополнительные фичи в SNMP, но основным инструментом повышения безопасности все еще является Community строка. Следующая версия (v3) является предпочтительным вариантом, но некоторые организации все еще используют v1 и v2c.
SNMP v3
Третья версия имеет в себе фичи шифрования и аутентификации, а также способна отправлять настройки на удаленные SNMP-агенты. Данная версия является предпочтительной, но необходимо чтобы и Коллектор, и Агент поддерживали её. Несмотря на то, что SNMP v3 позволяет удаленно конфигурировать девайсы, большинство организаций не используют данную фичу - для этих целей используются такие решения как Ansible, Puppet, Chef или проприетарные системы управления.
Настройка на маршрутизаторе MikroTik
На большинстве устройств Community строкой является слово “public” - и этот факт широко известен, к примеру порт сканнер Nmap автоматически будет пробовать данный вариант. Если данная строка не была изменена, вы, по сути, предоставляете очевидную лазейку злоумышленникам. К сожалению, на маршрутизаторах MikroTik данную строку нельзя отключить или удалить, но её можно изменить и запретить.
/snmp community set 0 name=not_public read-access=no write-access=no
Затем необходимо создать SNMP Community со следующими параметрами:
Нестандартное имя;
Только чтение;
Аутентификация;
Шифрование;
Для этого можно использовать команду ниже - она сделает все необходимое, но, естественно, вам необходимо поменять строки wow_password и awesome_password на актуальные пароли, которые будут использоваться у вас в системе. Также поменяйте имя строки на любое другое - в примере используется имя perch_pike.
/snmp community add name=perch_pike read-access=yes write-access=no authentication-protocol=SHA1 authentication-password=wow_password
encryption-protocol=AES encryption-password=awesome_password security=private
Осталось выполнить всего одну команду для включения SNMP и настройки вашей локации и контактной информации для устройства:
/snmp set contact="Aristarh @ Merion Networks" location="Internet, RUS" enabled=yes
Заключение
SNMP - широко известный протокол, который также хорошо поддерживается компанией MikroTik и остальными производителями. Всегда используйте нестандартные Community строки, аутентификацию и шифрование, чтобы быть на 100% уверенными в том, что злоумышленники не могут получить информацию об устройствах в вашей сети - и тогда SNMP будет верным помощником в поддержке вашей сети.