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

Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Download Telegram
✏️ Шпаргалка по 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
Никто не обещал, что в жизни все будет легко

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27🔥31🗿1
😢 Скрыть содержимое bash-скрипта с помощью shc

Если нужно показать работу скрипта, но не отдавать исходники - можно скомпилировать его в бинарник через shc. Инструмент преобразует .sh в C-код и собирает исполняемый файл, на выходе пользователь получит работающий бинарник, но не читаемый скрипт.

▪️ Установка (Debian/Ubuntu):

apt install shc gcc


▪️ Пример. Есть noscript.sh:

#!/bin/bash
v=$1
echo "Simple BASH noscript. Entered VARIABLE: $v"


Компилируем:

shc -f -r noscript.sh


Появятся noscript.sh.x (бинарник) и noscript.sh.x.c (сгенерированный C). Запуск:

./noscript.sh.x 123
# Simple BASH noscript. Entered VARIABLE: 123


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

-e DD/MM/YYYY - срок годности; после даты бинарник не запустится.
-m "msg" - сообщение при истечении срока.

Пример с истечением:

shc -e 31/12/2025 -m "Срок истек" -f -r noscript.sh
./noscript.sh.x # Выдаст сообщение о просрочке


📌 Важное замечание по безопасности

shc - это обфускация, а не криптография. В конечном бинарнике содержимое может быть восстановлено (есть утилиты вроде UnSHc). Также секреты, записанные в скрипт, при выполнении будут лежать в памяти и их можно попытаться снять дампом. Это защита от случайного копирования, но не от целенаправленного анализа.


#noscript #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍84🤡1
🏠 Создание минималистичного образа Windows 11

Если вы хотите получить максимально легкий и чистый образ windows 11 - без мусора, предустановленных приложений и ненужных сервисов, то обратите внимание на nano11.

Это PowerShell-скрипт, который автоматизирует процесс сборки сильно урезанной версии Windows 11. Он использует встроенные средства DISM и oscdimg.exe, не требуя никаких внешних утилит. В результате получается компактный ISO-образ, идеально подходящий для тестирования, отладки или развертывания на виртуальных машинах.


▪️ Возможности nano11:

Создает минимальный ISO-образ Windows 11
Удаляет все предустановленные приложения и лишние компоненты
Не поддерживает обновления и добавление языков (только базовая сборка)
Подходит для VM и изолированных окружений
Полностью открытый исходный код, можно модифицировать под свои задачи

Репозиторий проекта 😺

#windows #powershell

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍87🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Чтобы наверняка не потерять

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14🫡3💩1
🤠 Быстрый аудит безопасности

Бывает такое, что сервер уже настроен и работает, но не покидает ощущение - вдруг что-то упустил, оставил какую-то уязвимость - незащищенные параметры SSH, лишние службы, слабые настройки sysctl. Чтобы быстро проверить систему, удобно использовать Lynis, инструмент для аудита безопасности и оценки соответствия стандартам.

Lynis - это утилита с открытым исходным кодом, которая выполняет анализ конфигурации linux и unix подобных систем и выдает рекомендации по усилению безопасности. Она проверяет десятки аспектов системы:

настройки ядра и PAM,
файрвол и службы,
права на файлы,
SSH, cron, логирование,
пакеты и обновления.


▪️ Установка


apt install lynis #debian или ubuntu

yum install lynis #CentOS


▪️Проверка системы. Запустить аудит можно буквально одной командой:


lynis audit system


После выполнения вы получите подробный отчет с результатами и рекомендациями.
Файл отчета по умолчанию сохраняется в: /var/log/lynis.log
а краткий отчет в: /var/log/lynis-report.dat

▪️ Расшифровка результатов

В конце проверки Lynis показывает оценку безопасности - чем она выше, тем лучше.
Также будут даны рекомендации, например:


[WARNING] SSH root login is enabled
[SUGGESTION] Install a firewall management tool (ufw/firewalld)


Просто проходите по списку и исправляйте. После доработок можно снова запустить аудит и посмотреть, насколько улучшился индекс.

Официальный сайт 📌

#linux #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍161
⚡️ Быстрый HTTPS-сервер без сложных настроек

Иногда нужно быстро поделиться файлами между машинами - без nginx, apache и прочих решений. Для этого можно использовать встроенный веб-сервер python:


python3 -m http.server 8000


Он идеально подходит, когда нужно просто раздать файлы по HTTP: перешел в нужную директорию, запустил сервер, скачал - готово.

Но недавно понадобился HTTPS-сервер, так как приложение отказывалось работать по обычному HTTP. Настраивать nginx для этого не хотелось, и, как оказалось, все можно сделать тем же питоном, буквально в несколько строк.

▪️ Генерация самоподписанного сертификата. Создаем файл с ключом и сертификатом:


openssl req -new -x509 -keyout localhost.pem -out localhost.pem -days 365 -nodes


▪️ Минимальный HTTPS-сервер на python. Создаём файл webserver.py:


import http.server, ssl

server_address = ('172.20.0.210', 8000)
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(
httpd.socket,
server_side=True,
certfile='localhost.pem',
ssl_version=ssl.PROTOCOL_TLSv1_2
)
httpd.serve_forever()


Запуск:


python3 webserver.py


После этого открываем в браузере:


https://172.20.0.210:8000


и видим содержимое директории (или сайт, если там есть index.html).

#python #https

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥31
🏃‍♂️ Сброс пароля root в linux через GRUB

Решил посмотреть, как на практике сбрасывается пароль root, и заодно поделиться с вами. Это классическая задача, которую часто дают на собеседованиях.

Цель - получить доступ к системе с правами root, даже если пароль неизвестен. Сделать это можно, изменив параметры загрузки ядра в GRUB.


▪️ Как это делается

1. Включаем сервер и ждем появления меню загрузки GRUB.
2. Выбираем нужный пункт и нажимаем e (латинскую).
3. В открывшемся редакторе ищем строку, начинающуюся с linux или linux16.
4. В самый конец этой строки добавляем:


rw init=/bin/bash


Это позволит запустить оболочку bash вместо стандартного systemd.

5. Нажимаем Ctrl+X или F10 для загрузки. После старта вы сразу окажетесь в консоли под пользователем root без пароля. Теперь можно просто задать новый пароль:


passwd


и перезагрузить систему:


exec /sbin/init


или


reboot -f


▪️ Как это работает

Параметр init= сообщает ядру, какой процесс нужно запустить первым.
Обычно это /sbin/init (или systemd), который отвечает за загрузку системы.
Когда мы подменяем его на /bin/bash, система вместо полноценной инициализации попадает прямо в консоль.
Фактически, вы оказываетесь в самой ранней стадии загрузки с полными правами root.

▪️ Для RHEL и производных

В системах вроде RHEL, CentOS, AlmaLinux, RockyLinux используется немного другой вариант:


rw rd.break enforcing=0


После загрузки окажетесь в emergency shell, где также сможете сбросить пароль через passwd.

#linux #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23
🔐 GnuPG: шифрование и управление ключами

GnuPG (GNU Privacy Guard) - это открытая реализация стандарта OpenPGP (RFC 4880). Она позволяет:

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

Работает на всех системах - linux, macOS, windows, и не требует никаких внешних сервисов.


▪️ Основные команды для работы

1️⃣ Создание пары ключей:


gpg --full-generate-key


Тут нужно указать тип ключа (обычно RSA), длину (2048–4096), срок действия и e-mail для идентификации. После этого ключ сохраняется в ~/.gnupg/.

2️⃣ Просмотр ключей:


gpg --list-keys


3️⃣ Экспорт публичного ключа:


gpg --export -a user@networkadmin.ru > public.key


4️⃣ Экспорт приватного ключа:


gpg --export-secret-keys -a user@networkadmin.ru > private.key


5️⃣ Импорт ключа:


gpg --import public.key


▪️ Шифрование и подпись

Шифрование файла:


gpg -e -r user@networkadmin.ru secret.txt


Создается файл secret.txt.gpg, который можно расшифровать только соответствующим приватным ключом.

Расшифровка:


gpg -d secret.txt.gpg > secret.txt


Подпись файла:


gpg -s file.txt


Проверка подписи:


gpg --verify file.txt.sig file.txt


▪️ Несколько полезных команд

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


gpg --list-secret-keys --keyid-format LONG


Удалить ключ:


gpg --delete-key user@networkadmin.ru


Создать зашифрованный архив с tar:


tar cz folder | gpg -c > archive.tar.gz.gpg


#gpg #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🖥 Динамическая маршрутизация (OSPF/BGP)

Современные серверы и маршрутизаторы давно умеют не только работать с iptables и NAT, они вполне способны участвовать в динамической маршрутизации на уровне провайдерского оборудования. Два наиболее популярных решения для этого: BIRD и FRRouting (FRR).

Если вы используете статические маршруты (ip route add ...), то при изменении топологии сети приходится вручную обновлять таблицы маршрутов.
Динамические протоколы решают это автоматически: маршрутизаторы обмениваются маршрутами между собой, выбирают оптимальные пути и обновляют таблицы без участия администратора.

Основные протоколы:

OSPF (Open Shortest Path First) - для внутренних сетей (IGP)
BGP (Border Gateway Protocol) - для внешних соединений (межсетевые маршруты между организациями)


▪️ BIRD - легкий и быстрый демон маршрутизации

BIRD - это компактное и производительное решение, часто используемое в инфраструктуре провайдеров. Поддерживает IPv4, IPv6, OSPF, BGP, RIP и static.

Установка:


apt install bird # debian или ubuntu


Пример конфигурации OSPF:


protocol ospf {
area 0 {
interface "eth0" {
cost 10;
};
};
}


Пример простого BGP сессии:


protocol bgp mypeer {
local as 65001;
neighbor 192.168.1.2 as 65002;
import all;
export all;
}


Файлы конфигурации находятся в /etc/bird/.
После изменения конфигурации не обязательно перезапускать демон, можно использовать:


birdc configure


▪️ FRRouting (FRR) - наследник Quagga. FRR - это более тяжелое решение, ориентированное на продакшн-маршрутизаторы и крупные сети. Поддерживает OSPF, BGP, IS-IS, RIP, PIM и даже LDP.

Установка:


apt install frr frr-pythontools # debian или ubuntu


Конфигурация BGP (пример):


router bgp 65001
bgp router-id 192.168.1.1
neighbor 192.168.1.2 remote-as 65002
network 10.0.0.0/24


Запуск FRR:


systemctl enable frr
systemctl start frr


Конфигурация хранится в /etc/frr/frr.conf. Для управления используется утилита vtysh, она похожа на CLI сетевых устройств cisco или mikrotik.

#linux #networking

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