четверг, 11 января 2024 г.
суббота, 23 декабря 2023 г.
Работа с сетью в Linux
ping # Пинг сетевого ресурса. Например, : ping google.ru ;
ifconfig # Утилита настройки сети. Примеры:
— ifconfig # Показать параметры всех активных сетевых интерфейсов;
— ifconfig -a # Показать все сетевые интерфейсы;
— ifconfig eth0 up # Запустить сетевой интерфейс eth0;
— ifconfig eth0 down # Отключить сетевой интерфейс eth0;
— ifconfig eth0 hw ether 00:01:02:03:04:05 # Смена MAC адреса;
— ifconfig eth0 192.168.1.1 netmask 255.255.255.0 # Назначить интерфейсу eth0 IP-адрес а так же маску подсети;
— ifconfig eth0:0 192.168.0.1 netmask 255.255.255.0 # Задать дополнительный IP адрес сетевому интерфейсу eth0;
iwlist scan # просканировать эфир на предмет, доступности беспроводных точек доступа;
iwconfig # Утилита настройки беспроводных сетевых интерфейсов.
— iwconfig wlan0 # Показать конфигурацию беспроводного сетевого интерфейса wlan0;
— iwconfig wlan0 mode ad-hoc # Указываем тип сети — ad-hoc;
— iwconfig wlan0 channel 2 # Указываем частотный канал;
— iwconfig wlan0 essid inet # Указываем имя сети;
route # Настройка маршрутов. Примеры:
— route -n # Выводит на экран таблицу маршрутизации;
— route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 # добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с IP-адресом 192.168.1.1 (для удаления меняем add на del);
netstat # Отображает текущие сетевые соединения.
- netstat -tup # Отобразить активные сетевые соединения: ;
— netstat -an | grep LISTEN # Показывает список всех открытых портов;
— netstat -anp -udp -tcp | grep LISTEN # Посмотреть список приложений, которые открывают порты;
ethtool # Информация о текущем режиме сетевого соединения и поддерживаемых. Примеры:
- ethtool eth0 отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения;
— ethtool -s eth0 speed 100 duplex full autoneg off # Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full duplex и отключить автоматическое определение;
tcpdump # Утилита сканирования сетевого трафика. Пример: tcpdump tcp port 80 отобразить весь трафик на TCP-порт 80;
iptables # Утилита настройки файервола;
ssh # Подключение к удаленному компьютеру по ssh. Например: ssh 192.168.1.3
wget # Утилита закачки. wget -c http://www.example.com/file.iso загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии;
whois # Узнать информацию о домене, пример: whois google.com ;
dig # Команда проверки доменных имён.
Наиболее часто используемые команды iptables:
1️⃣ Команда используется для отображения текущих правил таблицы фильтрации пакетов.
iptables -L
2️⃣ Команда используется для отображения текущих правил таблицы преобразования сетевых адресов (NAT).
iptables -t nat -L
3️⃣ Команда добавляет правило в таблицу INPUT, которое разрешает все входящие TCP-пакеты на порту 80.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
4️⃣ Команда добавляет правило в таблицу FORWARD, которое разрешает все пакеты UDP на порту 53 (DNS-трафик).
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
5️⃣ Команда добавляет правило в таблицу OUTPUT, которое разрешает все исходящие TCP-пакеты на порту 22 (SSH-трафик).
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
6️⃣ Команда добавляет правило в таблицу INPUT, которое блокирует все входящие TCP-пакеты на порту 22 (SSH-трафик).
iptables -A INPUT -p tcp --dport 22 -j DROP
7️⃣ Команда используется для добавления правила в таблицу nat, которое маскирует IP-адрес источника при отправке пакетов через интерфейс eth0.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
8️⃣ Команда добавляет правило в таблицу FORWARD, которое разрешает все пакеты, пересылаемые между интерфейсами eth0 и eth1.
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
9️⃣ Команда добавляет правило в таблицу INPUT, которое разрешает все входящие пакеты на интерфейсе loopback (lo).
iptables -A INPUT -i lo -j ACCEPT
1️⃣0️⃣ Команда используется для отображения номеров сетевых интерфейсов вместе с текущими правилами таблицы фильтрации пакетов.
iptables -L -n
пятница, 22 декабря 2023 г.
Установка локального сервера кеширования DNS на Linux
На самом деле поиск 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 запросов.
воскресенье, 17 декабря 2023 г.
Как сделать системный вид окна на Linux в Яндекс Барузере
По умолчанию Браузер не использует системную рамку окна в Linux и изменяет дизайн элементов управления. Если вы хотите вернуть стандартный вид окна и элементов управления Linux:
Наберите в Умной строке адрес browser://flagsНаберите в строке поиска флаг #enable-system-frame
Включите опцию System window controls.
Перезапустите Браузер и проверьте результат.
четверг, 14 декабря 2023 г.
Настройка коммутатора D-Link
Подключение через серийный порт RS-232
После подключения компьютера к интерфейсу RS-232 перейти в каталог /dev/ и посмотреть название виртуальной консоли для usb, скорее всего оно будет отображаться как /dev/ttyUSB0
Для удобства настройки серийного порта в linux ubuntu и подключения к консоли коммутатора установить:
apt install minicom putty
Настроить серийный порт в linux ubuntu, установить значения 9600 8N1
sudo minicom -s
Запустить putty и выставить такие же параметры для серийного порта
sudo putty
По умолчанию для входа в консоль коммутатора D-Link DES-320028 логин и пароль пустые, поэтому: Enter Enter Enter
В консоли коммутатора изменить ip-адрес интерфейса управления коммутатора на ip который будет соответствовать локальной сети, а также указать шлюз по умолчанию для данной сети:
config ipif System vlan default ipaddress 192.168.1.10/24
create iproute default 192.168.1.254
show switch
Для последующей настройки можно использовать удобный веб-интерфейс управления коммутатором, который будет доступен по адресу http://192.168.1.10 Если неудобно использовать провод и есть необходимость использовать консоль, тогда можно подключиться через telnet
Справка по командам
#Вызов справки по командам
?
#команды конфигурирования
config ?
#вывод команд для просмотра существующих настроек
show ?
Сетевые настройки управления коммутатором
#изменение ip адреса интерфейса управлением коммутатора
config ipif System vlan default ipaddress 192.168.1.10/24
#шлюз по умолчанию
create iproute default 192.168.1.254
#Информация об IP интерфейсе
show ipif
#Вывод основных настроек коммутатора(mac, ip, geteway ...)
show switch
#создание учетной записи
Добавление пользователей
Три уровня привилегий пользователя по убыванию: Admin, Operator, User
create account admin dlink
DES-3200-28:5#show account
Command: show account
Current Accounts:
Username Access Level
------------------ ------------
dlink Admin
Total Entries : 1
#отключить режим администратирования
logout
#включить режим администратирования
login
#смена пароля пользователя dlink
config account dlink
#удаление пользователя dlink
delete account dlink
Баннер и время
#изменение баннера приветствия
config greeting_message
#дата и время
config time 20102022 21:57:50
#временная зона
config time_zone operator + hour 3 min 0
#проверить настройки: дата-время/зона
show time
Есть возможность синхронизировать время используя протокол SNTP
enable sntp
Корректное время необходимо для поиска ошибок в журналах
Конфигурация портов
#Выбор портов (один из 24, диапазон 1-5, all т.е. все)
config ports all ... действие (состояние, скорость, режим ...)
#Текущее состояние диапазона портов
show ports description 1-2
#Включить/отключить диапазон портов (disable/enable)
config ports 1-2 state disable
#Просмотр состояние порта
show ports 5 description
#Ограничить скорость передачи, дуплексный режим, изучение MAC-адресов, управление потоком, поднять интерфейс
config ports 20 speed 10_full learning enable state enable flow_control enable
#Ошибки портов
show error ports 1
#Статистика передачи пакетов для порта 1
show packet ports 1
Сохранение, сброс настроек, конфигурация, прошивка
#сброс настроек до заводских (не все) и не перезагрузится
reset config
#сброс настроек до заводских(полностью) после перезагрузится
reset system
#сброс настроек частично
reset
#сохранить изменения в RAM
save
#перезагрузить
reboot
#Загрузка прошивки ( в конце название файла, название прошивки, номер прош. )
download firmware_fromTFTP 192.168.1.110 3528.had image_id 1
#Загрузка конфигурации с TFTP сервера
download cfg_fromTFTP 192.168.1.110 /cfg/setting.txt
#Выгрузка конфигурации на TFTP сервер
upload cfg_toTFTP 10.48.74.121 /cfg/setting.txt
#версия прошивки
show firmware information
#выбор прошивки в памяти (boot_up - выбрать, delete - удалить прош-ку)
config firmware image_id 2 boot_up
Таблица коммутации, журнал логов
#Таблица коммутации (vlan, mac, port, type)
show fdb
#Просмотр логов коммутатора
show log
Замена прошивки
Получить актуальную прошивку можно на официальном сайте производителя
В коммутаторе есть текущая прошивка image_id 1 и возможно осталась старая прошивка image_id 2
Перед тем как загрузить прошивку, необходимо удалить старую прошивку image_id 2 и сбросить конфигурацию коммутатора
reset config
switch-mipk:5#config firmware image_id 2 delete
Command: config firmware image_id 2 delete
Are you sure want to delete image_id 2 ?(y/n)
Please wait, deleting image ........... Done.
Success.
DES-3200-28:5#show firmware information
Command: show firmware information
Image ID : 1(Boot up firmware)
Version : 1.83.B008
Size : 4111052 Bytes
Update Time: 0000/00/80 04:12:12
From : 192.168.100.1
User : admin(Telnet)
Image ID : 2(Empty)
DES-3200-28:5#download firmware_fromTFTP 192.168.1.6 DES-3200R_1.91.B06.had imag
e_id 2
Command: download firmware_fromTFTP 192.168.1.6 DES-3200R_1.91.B06.had image_id 2
Connecting to server................... Done.
Download firmware...................... Done. Do not power off !!
Please wait, programming flash......... Done.
Success.
DES-3200-28:5#show firmware information
Command: show firmware information
Image ID : 1(Boot up firmware)
Version : 1.83.B008
Size : 4111052 Bytes
Update Time: 0000/00/80 04:12:12
From : 192.168.100.1
User : admin(Telnet)
Image ID : 2
Version : 1.91.B006
Size : 4291456 Bytes
Update Time: 0000/00/15 16:17:17
From : 192.168.1.6
User : Anonymous(Telnet)
DES-3200-28:5#config firmware image_id 2 boot_up
Command: config firmware image_id 2 boot_up
Success.
Обновление прошивки вступит в силу только после сохранения и перезагрузки:
DES-3200-28:5#save
Command: save
Saving all configurations to NV-RAM...... Done.
Success.
DES-3200-28:5#reboot
Command: reboot
Are you sure you want to proceed with the system reboot?(y/n)
Посмотреть текущую прошивку можно командой:
#show switch
Выгрузка и загрузка конфигурации
#Просмотр текущей конфигурации
#show config current_config
#слить файл на tftp сервер:
DES-3200-28:5#upload cfg_toTFTP 192.168.1.6 conf.cfg
Command: upload cfg_toTFTP 192.168.1.6 conf.cfg
Connecting to server................... Done.
Upload configuration................... Done.
Success.
#Загрузить файл:
DES-3200-28:5#download cfg_fromTFTP 192.168.1.6 conf.cfg
Command: download cfg_fromTFTP 192.168.1.6 conf.cfg
Connecting to server................... Done.
Download configuration................. Done.
Выгрузка log файлов
DES-3200-28:5#upload log_toTFTP 192.168.1.6 test.log
Command: upload log_toTFTP 192.168.1.6 test.log
Connecting to server................... Done.
Upload log............................. Done.
Success.
Чтобы файл (конфигурация или логи) загрузился на tftp сервер, необходимо создать его на tftp сервере и разрешить права на запись
Конфигурация Q-in-Q на коммутаторе D-link DES-3200-26-28
Q-in-Q или Double VLAN ( стандарт IEEE 802.1ad ) позволяет добавлять в маркированные кадры второй ( внешний ) тег vlan IEEE 802.1Q ( для провайдера ), что позволяет сохранять vlan id клиента внутри сети провайдера.
Существует две реализации функции Q-in-Q: Port-based Q-in-Q ( на основе порта коммутатора провайдера ) и Selective Q-in-Q ( на основе данных внутреннего тега клиента )
Реализация на основе Selective Q-in-Q позволяет дополнительно присваивать приоритет для обработки кадра
Порты граничных коммутаторов, которые используют функцию Q-in-Q используют два типа порта:
UNI (User-to-Network Interface) - для клиентских сетей
NNI (Network-to-Network Interface) - для других граничных коммутаторов
На портах UNI граничного коммутатора задаются правила соответствия CVLAN идентификаторам SP-VLAN (Service Provider).
Если кадр является маркированным, приоритет внешнего тега по умолчанию равно значению приоритета внутреннего тега. Если приоритет в полученном кадре отсутствует, тогда будет использоваться приоритет входного порта UNI
При передаче кадра из сети провайдера в клиентскую сеть внешний тег удаляется граничным коммутатором
Port-based Q-in-Q
Q-in-Q используется в сети провайдеров услуг. Во внутренней сети провайдера определяются порты NNI, для внешних портов коммутаторов ( обычно L3 ) провайдера и для коммутаторов уровня доступа определяются порты UNI
#Активировать Q-in-Q
enable qinq
#Удалить порты по умолчанию
config vlan default delete 1-24
#Создать vlan
create vlan 100 tag 100
create vlan 200 tag 200
#Назначить порты доступа для созданных vlan
config vlan 100 add untagged 1-12
config vlan 200 add untagged 13-24
#Определить порты uplink в созданных vlan
config vlan 100 add tagged 25-27
config vlan 200 add tagged 25-27
#Определить роли портов vlan
config qinq ports 1-24 role uni