NetworkAdmin.ru – Telegram
NetworkAdmin.ru
4.75K subscribers
226 photos
25 videos
2 files
498 links
Авторский блог про сетевое и системное администрирование.

Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Download Telegram
✉️ Отправка почты через curl

Многие для отправки писем из консоли ставят дополнительные утилиты вроде mailx или mutt. Но часто этого не нужно - все умеет curl.

▪️ Простейшая отправка письма


curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--user "admin@networkadmin.ru:MySecurePass" \
--upload-file ~/letter.txt


Пример letter.txt:


From: "Admin" <admin@networkadmin.ru>
To: "User" <user@domain.ru>
Subject: Test mail from curl

Hello from curl!


Заголовки (From, Subject и др.) задаются прямо в файле, и можно указывать любые значения.

▪️ Как спрятать пароль

Хранить пароль в команде небезопасно. Вместо этого используем ~/.netrc:


machine smtp.networkadmin.ru login admin@networkadmin.ru password MySecurePass
machine smtp.another.ru login user@another.ru password StrongPass123


Теперь команда проще и безопаснее:


curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--netrc \
--upload-file ~/letter.txt


▪️ Работа с шифрованием
📍 Требовать TLS:


curl --ssl-reqd ...


📍 Автоматически использовать TLS, если поддерживается:


curl --ssl ...


📍 Для SMTPS (порт 465) достаточно:


curl --url "smtps://smtp.networkadmin.ru" ...


▪️ Указание HELO/EHLO. Можно явно задать имя клиента:


curl --url "smtp://smtp.networkadmin.ru/myhost.domain.ru" ...


#SMTP #curl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
Чтобы рабочие будни были веселее

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18👎2
📌 Проверка изменений системных конфигов в Debian/Ubuntu

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


apt install debsums


Что делает debsums

Утилита сравнивает MD5-суммы файлов из пакетов с эталонными значениями. Это помогает:

📍проверить целостность пакетов;
📍выявить модифицированные файлы;
📍понять, какие стандартные конфиги редактировались.


▪️ Пример: проверка конфигов. Особенно полезно искать изменения в конфигурационных файлах:


debsums --config --changed


Результат может быть таким:


/etc/ssh/ssh_config
/etc/default/ssh


То есть видно, что системные конфиги OpenSSH редактировались.

▪️ debsums проверяет:

файлы из базовой системы (/etc/default, /etc/pam.d, /etc/grub.d);
юниты systemd;
конфиги сервисов вроде nginx, mariadb, apache2.

#linux #audit

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
👩‍🎨 Шпаргалка по debsums

▪️ Основные ключи

Проверить все пакеты:


debsums


Показать только измененные файлы:


debsums --changed


Проверять только конфиги (/etc):


debsums --config


Только измененные конфиги:


debsums --config --changed


Показать отсутствующие файлы пакета:


debsums --missing


Игнорировать отсутствующие файлы (проверять только существующие):


debsums --ignore-missing


Проверка конкретного пакета


debsums nginx


▪️ Примеры

Найти какие конфиги менялись руками:


debsums --config --changed


Проверить целостность пакета OpenSSH:


debsums openssh-server


🌟 debsums берет эталонные хэши из пакета, поэтому иногда нужна переустановка пакета, если контрольные суммы недоступны.

#linux #audit

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Отключение лишних сервисов через systemd

Одна из полезных практик на пути к оптимизации - переодически смотреть, а что вообще запускается и что из этого действительно нужно, а что можно отключить. Это будет полезно не только для оптимизации, но и для безопасности тоже.

1️⃣ Смотрим активные сервисы


systemctl list-unit-files --state=enabled


Команда покажет список всех юнитов, которые стартуют при загрузке. Также полезно посмотреть реально работающие процессы:


systemctl list-units --type=service


2️⃣ Отключение ненужного. Чтобы сервис не запускался при старте системы:


systemctl disable avahi-daemon.service


Чтобы остановить прямо сейчас:


systemctl stop avahi-daemon.service


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


systemctl mask avahi-daemon.service


(при этом запуск будет невозможен даже вручную, пока не сделаете unmask).

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

avahi-daemon.service - autodiscovery (не нужен на сервере)
bluetooth.service - если нет блютуза
ModemManager.service - если не используется мобильный модем
rpcbind.service - устаревший RPC, не нужен большинству

Далее уже зависит конкретно от Ваших потребностей и ситуации.

3️⃣ Проверка. После внесенных изменений убедитесь, что лишние службы не стартуют:


systemctl list-unit-files --state=enabled


#linux #systemd

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥21
🖥 Неочевидные возможности ethtool для работы с сетевыми интерфейсами

ethtool - это не только утилита для просмотра информации о сетевой карте. С ее помощью можно управлять сетевыми интерфейсами в linux: от настройки скорости линка до оптимизации производительности под конкретные задачи.

▪️ Проверка состояния интерфейса


ethtool eth0


Покажет: скорость, дуплекс, поддержку offload-функций, драйвер, версию прошивки и т.д.

▪️ Управление скоростью и режимом. Принудительная установка скорости 100 Мбит/с в full-duplex:


ethtool -s eth0 speed 100 duplex full autoneg off


Можно использовать для тестов или если автосогласование работает некорректно.

▪️ Offload-функции (ускорение или отладка)

Проверить поддержку:


ethtool -k eth0


Отключить контрольную сумму (будет полезно для отладки):


ethtool -K eth0 tx off rx off


Также можно управлять GRO, LRO, TSO и другими функциями.

▪️ Диагностика линка

Проверка кабеля и физики:


ethtool --test eth0
ethtool -t eth0 offline


А команда:


ethtool eth0 | grep detected


покажет, есть ли линк и его скорость.

▪️ Статистика и дропы пакетов


ethtool -S eth0


Выводит счётчики ошибок, дропов, коллизий. Это помогает отлавливать проблемы на низком уровне.

▪️ Управление очередями и ring buffer. Посмотреть текущие значения:


ethtool -g eth0


Изменить глубину очереди при интенсивной нагрузке:


ethtool -G eth0 rx 4096 tx 4096


▪️ Блокировка Wake-on-LAN. Если не используете WoL — отключите:


ethtool -s eth0 wol d


#network #ethtool

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Доставка пакетов

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20👍4
♥️ Что такое blackhole в сети

Часто говорят, что при DDoS провайдер отправляет трафик в blackhole. Это не метафора - blackhole (или nullroute) - реальная запись в таблице маршрутизации, которая заставляет ядро молчаливо отбрасывать пакеты к указанному адресу/сети.

▪️ Создание черной дыры для одного IP:


ip route add blackhole 10.20.30.40
ip route show | grep blackhole


Теперь все пакеты к 10.20.30.40 будут просто выброшены, без попытки доставить и без ICMP-ответа.

Для сети:


ip route add blackhole 203.0.113.0/24


Для IPv6:


ip -6 route add blackhole 2001:db8::/32


▪️ Удаление:


ip route del blackhole 203.0.113.0/24


▪️ Отличия blackhole от unreachable и от prohibit

blackhole - молча дропает пакеты (никаких ICMP).
prohibit - отсылает ICMP administratively prohibited (полезно, если нужно, чтобы источник получил уведомление).
unreachable - возвращает host unreachable.

Команды выглядят похоже:


ip route add prohibit 10.0.0.0/8
ip route add unreachable 10.0.0.0/8


Выбор зависит от сценария: для имитации «исчезновения» хоста - blackhole, чтобы сигнализировать отправителю - prohibit/unreachable.

▪️ Где это реально используют

Провайдеры - при крупном DDoS обычно ставят null-route на адрес жертвы на своей инфраструктуре. Это позволяет дропать трафик до границ сети провайдера, защищая инфраструктуру дальше по пути.

#network #blackhole

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
🔒 Конфигурации nftables для защиты сервера

nftables - это замена iptables, встроенная в ядро linux. Она объединяет фильтрацию, NAT и маршрутизацию в единую подсистему и считается более быстрой и удобной. Разберемся, как можно построить базовую защиту сервера.

▪️ Минимальная конфигурация. Создадаем новый ruleset с таблицей для фильтрации трафика:


sudo nft add table inet filter
sudo nft 'add chain inet filter input { type filter hook input priority 0; policy drop; }'


Мы сразу задали policy drop, то есть по умолчанию все запрещено. Теперь разрешим только нужное.

▪️ Разрешаем базовое


sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input ip protocol icmp accept
sudo nft add rule inet filter input tcp dport {22,80,443} accept


Что тут происходит:

принимаем все соединения в состоянии ESTABLISHED и RELATED
разрешаем локальный интерфейс (lo)
разрешаем ping (ICMP)
открываем SSH, HTTP и HTTPS


▪️ Защита SSH. Ограничим количество соединений по SSH, чтобы усложнить перебор паролей:


sudo nft add rule inet filter input tcp dport 22 ct state new limit rate 10/minute accept
sudo nft add rule inet filter input tcp dport 22 drop


Теперь на SSH можно будет открыть не более 10 новых подключений в минуту.

▪️ Блокируем сканеров и мусор. Пример простого анти-сканера:


# блокируем пакеты без флагов (NULL scan)
sudo nft add rule inet filter input tcp flags == 0 drop

# блокируем XMAS-скан
sudo nft add rule inet filter input tcp flags & (fin|psh|urg) == (fin|psh|urg) drop


▪️ Проверка и сохранение. Посмотреть активные правила:


sudo nft list ruleset


Сохранить конфиг:


sudo sh -c "nft list ruleset > /etc/nftables.conf"
sudo systemctl enable nftables
sudo systemctl restart nftables


#nftables #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
✏️ Шпаргалка по journalctl

journalctl - это инструмент работы с логами systemd.

▪️ Фильтрация по сервисам и юнитам. Посмотреть логи конкретной службы:


journalctl -u ssh
journalctl -u nginx -u php-fpm


Последние записи сервиса в реальном времени (аналог tail -f):


journalctl -u nginx -f


▪️ Ограничение по времени. Фильтрация по временным промежуткам:


journalctl --since "2025-10-01" --until "2025-10-15"
journalctl --since "1 hour ago"
journalctl --since yesterday


▪️ Поиск по ключевым словам. Просто используем grep:


journalctl -u ssh | grep "Failed password"


Или встроенный фильтр по приоритету (severity):


journalctl -p err -u ssh


(-p принимает диапазон: -p warning..crit)

▪️ Логи текущей загрузки


journalctl -b # текущая загрузка
journalctl -b -1 # предыдущая загрузка
journalctl -b -2 # еще раньше


▪️ Работа с логами как с файлами

Сохранить в файл:


journalctl -u nginx --since today > nginx.log


Экспорт в бинарный лог и перенос на другой сервер:


journalctl --vacuum-time=7d # удалить старше 7 дней
journalctl --vacuum-size=1G # ограничить объем


#systemd #journalctl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
This media is not supported in your browser
VIEW IN TELEGRAM
Глубоко погрузился в проблему, детально изучил и решил ее

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁214👌3
🎤 Один ввод, а команды на всех хостах

Когда разворачиваешь кластер или нужно повторить одинаковые действия на нескольких серверах, очень помогает режим синхронизации панелей в tmux. С ним одна команда сразу выполняется во всех открытых панелях.

▪️ Установка


apt install tmux


▪️ Работа с панелями

1️⃣Запускаем tmux.
2️⃣Создаем несколько панелей:

Ctrl+B % - вертикальное разделение
Ctrl+B " - горизонтальное разделение

3️⃣Между панелями перемещаемся Ctrl+B + стрелки.
4️⃣В каждой панели подключаемся по SSH к своему хосту.

▪️ Включение синхронизации. В командной строке tmux (после Ctrl+B :) вводим:


:setw synchronize-panes


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

▪️ Автоматизация

Если работаете с одним и тем же стендом регулярно, то можно написать конфиг для tmux или скрипт, который сразу запускает сессию и подключает нужные SSH-сессии.

#linux #terminal

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12
Ограничение процессов по CPU

Иногда необходимо жестко контролировать, какие ядра процесс может занимать, например, чтобы тяжелые задачи не забивали сервер или чтобы критичные сервисы не конкурировали за ресурсы. В linux это решается утилитой taskset, которая позволяет как изменять affinity уже работающих процессов, так и запускать новые с заданными ограничениями.

1️⃣ Привязка уже запущенного процесса к выбранным ядрам. Для начала найдем PID процесса. Выберите любой удобный способ:


ps aux | grep myapp
pidof myapp
pgrep -f myapp


Посмотрим CPU в системе:


lscpu | grep -E 'CPU\(s\)|NUMA'


Пример вывода:


CPU(s): 8
NUMA node0 CPU(s): 0-7


Допустим, нам нужно посадить процесс на ядра 0–2. Для этого:


taskset -pc 0-2 1574


Пример результата:


pid 1574's current affinity list: 0-7
pid 1574's new affinity list: 0,1,2


Теперь процесс гарантированно не займет остальные ядра.

2️⃣ Запуск программы с ограничением по CPU. Это более практичный вариант: мы сразу запускаем процесс с нужными ограничениями. Но тут есть нюанс: taskset требует mask (битовой маски), а не списка ядер.

Как работает маска?

Каждое ядро - это один бит:

Ядро Маска
0 1
1 2
2 4
3 8
… …

Например:
ядра 1 и 2 = 2 + 4 = 6 → маска 0x06


Пример запуска с ограничением на одно ядро. Запустить программу только на ядре 0:


taskset 1 gzip hugefile


(маска 1 = ядро 0)

Пример: запуск на ядрах 2 и 3

Маска: 4 + 8 = 12 = c


taskset c gzip hugefile


3️⃣ Как быстро узнать маску для нужных ядер. Если не хочется считать вручную, то есть хитрый трюк. Назначаем список ядер любому процессу:


taskset -pc 4-5 $(pidof systemd-journald)


А теперь смотрим его маску:


taskset -p $(pidof systemd-journald)


Пример:


pid 412's current affinity mask: 30


Вот и маска.

4️⃣ Наглядный тест с помощью xz. Архиватор xz умеет использовать несколько потоков, и его хорошо видно в htop. Создаем тестовый файл:


dd if=/dev/urandom of=/tmp/testfile bs=1M count=200


Запускаем xz только на ядрах 0 и 1 (маска 3):


taskset 3 xz -T2 /tmp/testfile


Смотрим в htop и процесс будет занимать строго эти два ядра.

#linux #taskset

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
🖥 Nmap - полезные сценарии

Nmap - это не только сканер портов, но и инструмент для быстрой диагностики сети. Небольшая подборка команд, которые часто выручали меня в работе.

▪️ Быстрый обзор хоста


nmap -Pn -sS -T4 10.20.1.5


SYN-скан, не пингуем сначала, быстрый тайминг.

▪️ Топ-портов и сервисы


nmap -sV --top-ports 100 10.20.1.0/24


Узнаем версии сервисов по 100 самым распространенным портам в подсети.

▪️ Полный TCP-портскан


nmap -p- -T4 10.20.1.5


Сканируем все 65535 TCP-портов.

▪️ UDP-быстрый скан


sudo nmap -sU --top-ports 50 10.20.1.5


UDP требует прав root и больше времени - выбирайте топ-порты.

▪️ OS и глубокая детекция


sudo nmap -A 10.20.1.5


Включает обнаружение ОС, версий, скрипты и traceroute.

▪️ NSE-скрипты для быстрого аудита


nmap --noscript ssl-enum-ciphers,http-noscript -p 443,80 10.20.1.5


Проверяем SSL-шифры и заголовок сайта.

▪️ Массовый вывод в файлы


nmap -sV -oA scans/site_scan 10.20.1.0/24


Создаст site_scan.nmap, .gnmap и .xml - будет удобно для отчетов.

▪️ Сканирование живых хостов


nmap -sn 10.20.1.0/24


Быстрый ping-scan, покажет кто в сети сейчас.

#nmap #network

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍163
Please open Telegram to view this post
VIEW IN TELEGRAM
👍193😁1
☁️ Как проверить обращения на TCP-порт 22 от клиента с нужного IP

Иногда нужно выяснить, было ли соединение на SSH-порт сервера (обычно 22) с конкретного адреса. Казалось бы, задача простая, но есть несколько подходов - как для активных соединений, так и для анализа постфактум.

▪️ Активные подключения. Если соединение активно прямо сейчас, смотрим его в списке сетевых сокетов.
Современный инструмент - ss:


ss -ntu | grep ':22'


Аналог - netstat:


netstat -ntu | grep ':22'


Еще один полезный вариант - lsof:


lsof -ni TCP:22


▪️ Логирование попыток подключения. Если интересуют прошлые соединения, а не только активные, то тут уже нужны логи.
SSH по умолчанию пишет в системный журнал (/var/log/auth.log или /var/log/secure), но для других сервисов можно включить логирование через firewall.

Пример для iptables:


iptables -N ssh_in
iptables -A INPUT -p tcp --dport 22 -j ssh_in
iptables -A ssh_in -j LOG --log-level info --log-prefix "--IN--SSH-- "
iptables -A ssh_in -j ACCEPT


Теперь все подключения на порт 22 будут попадать в syslog.
Хотите отдельный лог - добавьте правило в rsyslog.

На практике часто используют отдельные цепочки (INPUT, OUTPUT, FORWARD), куда добавляют правила для логирования нужных адресов и портов.

▪️ Альтернативный способ. Можно посмотреть информацию о соединениях напрямую в conntrack:


cat /proc/net/nf_conntrack | grep 'dport=22'


По сути, ss и netstat читают данные именно отсюда.

#network

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
🗓 Где искать все запланированные задания

Три основных механизма, которые могут использоваться в linux:

1️⃣ Cron - классика планировщика. Cron существует с начала времен UNIX, и до сих пор активно используется.

Где искать системные задания:


/etc/crontab
/etc/cron.d/
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/


Где искать пользовательские задания:


/var/spool/cron/crontabs


или просто:


crontab -u user01 -l


Каждый пользователь имеет свой отдельный список задач.

2️⃣ systemd timers - современная замена cron. Почти все современные дистрибутивы перешли на systemd timers.
Они более гибкие: умеют запускать сервисы с зависимостями, работать после событий, логировать в journal и даже поддерживают случайные задержки.

Посмотреть список таймеров:


systemctl list-timers


Все таймеры, включая неактивные:


systemctl list-timers --all


Подробнее о конкретном таймере:


systemctl status logrotate.timer


Примеры стандартных таймеров, установленных по умолчанию:


apt-daily.timer
fstrim.timer
logrotate.timer
anacron.timer


3️⃣ at - разовые задачи. Старый, но всё ещё полезный инструмент для единичных отложенных команд.
Идеален для задач вроде: выполни через 5 минут и забудь.

В Debian 11+ утилита не устанавливается по умолчанию, но в CentOS/RHEL она ещё есть:


apt install at


Проверить очередь задач:


atq


Добавить разовую задачу:


echo "shutdown -h now" | at -m 10:20


Задачи хранятся в:


/var/spool/cron/atjobs/
или /var/spool/at/


#cron

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92
Тикет: ЭЦП не работает

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁32🙈102
🖥 Замер реальной пропускной способности сети в linux и windows

iperf3 - показывает реальную пропускную способность между двумя хостами, минуя влияние дисков, приложений и прочего. Ранее уже был пост - ссылка. Здесь продолжение, с реальным примером замера и полезными флагами.

▪️ Принцип работы

iperf3 работает по схеме клиент–сервер.
Один узел запускается в режиме сервера, второй - в режиме клиента.
Сервер принимает входящий трафик, а клиент его генерирует.

▪️ Пример замера

1️⃣ На сервере:


iperf3 -s


не забываем, что по умолчанию слушает порт 5201, он должен быть открыт.

2️⃣ На клиенте:


iperf3 -c 192.168.1.10


Результат:


[ 5] 0.00-10.00 sec 1.09 GBytes 935 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.09 GBytes 935 Mbits/sec receiver


То есть реальная пропускная способность между хостами - ~935 Мбит/с.

▪️ Полезные опции

📍-R - измерение скорости в обратном направлении (reverse).


iperf3 -c 192.168.1.10 -R


📍-u - UDP-тест (по умолчанию TCP). Можно задать целевую скорость:


iperf3 -c 192.168.1.10 -u -b 500M


📍-f - единицы измерения (m для Mbits, M для MBytes):


iperf3 -c 192.168.1.10 -f m


📍 Быстрый тест "все в одном". Если у вас SSH-доступ к обеим сторонам:


iperf3 -s & ssh user@192.168.1.10 'iperf3 -c $(hostname -I | awk "{print \$1}") -P 4'


Скрипт запускает сервер локально и клиент удаленно, автоматически подключая IP.

#network #iperf3

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍161
🕘 Оптимизация загрузки системы

Один из частых вопросов: почему система грузится так долго? Для раскрытия этой тайны можно использовать встроенный инструмент systemd-analyze, который покажет подробную статистику загрузки и поможет найти узкие места.

▪️ Базовый анализ времени загрузки. Простейшая команда:


systemd-analyze


Пример вывода:


Startup finished in 2.351s (kernel) + 8.512s (userspace) = 10.863s


kernel - время работы ядра до запуска systemd
userspace - запуск сервисов и инициализация systemd
итоговое время загрузки

▪️ Кто тормоз? Чтобы узнать, какие юниты грузились дольше всего:


systemd-analyze blame


Вывод отсортирован по времени запуска. На первых строках будут виновники торжества.

▪️ Граф зависимостей. Для наглядности можно построить диаграмму загрузки:


systemd-analyze critical-chain


Она покажет цепочку сервисов, которые напрямую влияют на общее время старта.

Для детального графа в SVG:


systemd-analyze plot > boot.noscript


Файл можно открыть в браузере - это визуализация всех юнитов и их зависимостей.

▪️ Оптимизация

1️⃣ Отключить ненужные сервисы


systemctl disable bluetooth.service
systemctl disable cups.service


2️⃣ Использовать systemd-analyze blame для точечной оптимизации
Например, если дольше всего грузится NetworkManager-wait-online.service, можно сократить или отключить ожидание сети.

3️⃣ Параллелизация загрузки. systemd умеет запускать независимые сервисы параллельно, поэтому полезно проверять зависимости в systemd-analyze critical-chain.

4️⃣ Использовать mask для блокировки ненужных юнитов


systemctl mask service_name


#systemd #boot

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103
⁉️ IPv6 в локальной сети: нужен ли он вообще

IPv6 давно перестал быть экзотикой в мире, но в локальной инфраструктуре (особенно в корпоративных и домашних сетях) его почти никто не использует. Причина простая - в локалках адреса не заканчиваются, да и пользы от IPv6 нет, если нет связи с интернетом, где он действительно нужен.

А вот проблем добавить он может:

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

Если протокол вам не нужен, то его стоит отключить.

▪️ Как отключить IPv6 в linux

Сделать это можно тремя способами, в зависимости от ситуации.

1️⃣ Через sysctl. Добавьте строки в /etc/sysctl.conf:


net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1


Примените изменения:


sysctl -p


2️⃣ Через параметры GRUB (глобально). Если система только настраивается - проще всего отключить IPv6 через загрузчик.
Откройте /etc/default/grub и добавьте в строку:


GRUB_CMDLINE_LINUX="... ipv6.disable=1"


(оставшиеся параметры не удаляйте, просто добавьте через пробел)

Обновите конфигурацию загрузчика:


update-grub # Debian/Ubuntu
dpkg-reconfigure grub-pc
grub-mkconfig -o /boot/grub/grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg # RHEL/CentOS


После этого - перезагрузка и проверка:


ip a
ss -tulnp


Если IPv6 отключен - адресов вида ::1 или fe80:: вы больше не увидите.

3️⃣ Отключение для конкретного интерфейса. Иногда нужно отключить IPv6 не глобально, а только на одном интерфейсе.
Добавьте в /etc/sysctl.conf:


net.ipv6.conf.eth0.disable_ipv6 = 1


или примените временно:


sysctl -w net.ipv6.conf.eth0.disable_ipv6=1



▪️ Примечание для Windows

На windows лучше IPv6 не отключать. По словам microsoft, это может вызвать проблемы с внутренними сервисами и сетевыми компонентами системы.

#IPv6 #network

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133