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
🤩 Admin Books —электронные книги о компьютерных технологиях.

Используй предстоящие новогодние выходные наилучшим образом! Изучай новые технологии или закрой пробелы в знаниях по своему стеку.

Стань экспертом в следующих направлениях:

Системное администрирование
Информационная безопасность
Сетевое администрирование
Этичный хакинг

Ссылка для своих: https://news.1rj.ru/str/admbooks
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🧑‍💻 Создание и отладка собственных сервисов

Systemd давно стал стандартом для запуска, управления и наблюдения за сервисами. Но многие используют его только для управления уже существующими демонами и не создают собственные unit-файлы, а ведь это удобный способ автоматизировать любые скрипты, фоновые процессы или приложения.

▪️ Шаг 1: создаём unit-файл. Все пользовательские сервисы кладутся в:


/etc/systemd/system/


Пример простого сервиса, который запускает bash-скрипт:


/etc/systemd/system/myapp.service

[Unit]
Denoscription=My custom app
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/myapp.sh
Restart=on-failure
User=myuser
Group=myuser

[Install]
WantedBy=multi-user.target


Несколько рекомендаций по параметрам:

Type=simple - подходит для скриптов и обычных демонов
Restart=on-failure - перезапуск при сбоях
User=… - всегда запускайте сервисы НЕ от root, если это возможно
After=network.target - ожидаем сеть перед запуском


▪️ Шаг 2: корректно пишем исполняемый скрипт. Для стабильной работы сервисов:

указываем shebang (#!/bin/bash);
используем абсолютные пути к бинарникам;
перенаправляем вывод в syslog или файл (если нужно);
завершаемся с кодами ошибок.

Пример:


#!/bin/bash
set -e

echo "Service started"
ping -c 1 8.8.8.8


Не забываем:


chmod +x /usr/local/bin/myapp.sh


▪️ Шаг 3: включаем и запускаем сервис


systemctl daemon-reload
systemctl enable --now myapp.service


Проверяем статус:


systemctl status myapp.service


▪️ Отладка. Systemd имеет отличные инструменты диагностики.

Посмотреть логи сервиса:


journalctl -u myapp.service -f


Проверить последнюю ошибку:


systemctl status myapp.service


Проверить, что systemd видит изменения:


systemctl daemon-reload


Принудительно перезапустить сам процесс:


systemctl restart myapp.service


▪️ Полезные параметры, которые часто забывают

LimitNOFILE - увеличить максимальное количество файлов
LimitNOFILE=65535

WorkingDirectory - задать рабочую директорию
WorkingDirectory=/opt/myapp

Environment - задать переменные окружения
Environment="APP_ENV=prod"

▪️ Безопасность. Systemd умеет частично изолировать сервисы, похожим образом на контейнеры, например:


ProtectSystem=full
ProtectHome=true
PrivateTmp=true
NoNewPrivileges=true


#linux #systemd

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
🔠 Монтирование файловых систем через systemd

Хотя многие админы по привычке используют /etc/fstab, у systemd есть собственный механизм монтирования, который во многом удобнее и современнее.

📍 Почему systemd лучше, чем fstab?

1️⃣Автомонтирование при обращении - устройство подключается только тогда, когда к нему обращаются, и может автоматически отключаться по заданному таймауту.
2️⃣Автосоздание точек монтирования - systemd сам создает нужные директории, администратору не нужно следить за их наличием.
3️⃣Гибкая работа с таймаутами - если устройство недоступно, загрузка системы не повиснет, как это иногда бывает с fstab.
4️⃣Зависимости от сервисов - можно задать, что монтирование произойдёт только после старта VPN или другого сервиса, который необходим для доступа к диску.


▪️ Пример: локальный диск в /mnt/backup

1️⃣ Создаем юнит /etc/systemd/system/mnt-backup.mount:


[Unit]
Denoscription=Disk for backups

[Mount]
What=/dev/disk/by-uuid/f774fad3-2ba0-47d1-a20b-0b1c2ae1b7d6
Where=/mnt/backup
Type=ext4
Options=defaults

[Install]
WantedBy=multi-user.target


2️⃣ Подготовка диска:


cfdisk /dev/sdb #создаем раздел
mkfs -t ext4 /dev/sdb1 #форматируем
blkid #смотрим UUID


3️⃣ Запуск и включение автозагрузки:


systemctl daemon-reload
systemctl start mnt-backup.mount
systemctl enable mnt-backup.mount


▪️ Пример: автомонтирование NFS через VPN. Для сетевых дисков будет удобнее использовать .automount. Он подключает ресурс по требованию и может отмонтировать при простое.

/etc/systemd/system/mnt-backup.mount:


[Unit]
Denoscription=NFS share

[Mount]
What=srv.example.com:/backup/nfs_share
Where=/mnt/backup
Type=nfs4
Options=rw
TimeoutSec=15


/etc/systemd/system/mnt-backup.automount:


[Unit]
Denoscription=NFS share
Requires=network-online.target
BindsTo=openvpn@client.service
After=openvpn@client.service

[Automount]
Where=/mnt/backup
TimeoutIdleSec=60

[Install]
WantedBy=graphical.target


Включаем:


systemctl daemon-reload
systemctl enable --now mnt-backup.automount


Теперь:

при старте системы диск не монтируется сразу;
при первом обращении к /mnt/backup - идет подключение NFS через VPN;
при остановке openvpn@client.service диск автоматически отмонтируется.

#systemd #fstab

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
⌨️ Инструмент для управления RDP-серверами Windows

Для администраторов windows есть небольшой, очень быстрый и почти олдовейший по духу инструмент - Terminal Services Manager от LizardSystems. Размер всего ~4 МБ, работает мгновенно, интерфейс простой и предельно функциональный. Изначально утилиту делали для терминальных серверов, но по факту она отлично подходит для любой Windows-машины: от серверов до обычных рабочих станций.

Программа платная, но условно. Для персонального использования доступна полностью бесплатная версия без ограничений.

▪️ Что умеет Terminal Services Manager

▪️ Управление терминальными сессиями

- Просмотр всех подключённых пользователей
- Видно, кто активен, кто в состоянии Disconnected
- Подключение к пользовательской сессии
- Принудительный logout или завершение всех сессий

▪️ Взаимодействие с пользователями

- Отправка сообщений прямо в их RDP-сессии

▪️ Мониторинг состояния системы

- Быстрый просмотр нагрузки CPU, RAM, диска

▪️ Управление процессами

- Просмотр процессов на удалённой машине
- Завершение зависших приложений
- Видно процессы по пользователям

▪️ Администрирование хоста

- Перезагрузка и выключение удалённых серверов
- Очистка профилей пользователей
- Быстрое включение/отключение RDP-доступа

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

#windows #RDP

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
SMB-сервер на Python

impacket - идеален для одноразовых задач: поднимаешь за пару команд, кидаешь файлы и завершаешь процесс.

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


apt install python3-impacket


▪️ Пример запуска (встроенный примерный скрипт):


cd /usr/share/doc/python3-impacket/examples/
python3 smbserver.py share /mnt/share -smb2support


Пояснения:

share - имя шары;
/mnt/share - директория, которую расшариваем (не забудьте права, для анонимного доступа удобно chmod 777 /mnt/share);
-smb2support - включить SMB2 (без этого Windows 10/11 иногда не подключаются).


Если нужна простая авторизация, можно указать логин/пароль:


python3 smbserver.py share /mnt/share -smb2support -username demo -password pass


⚠️ Важно: windows иногда пытается автоматически подключиться под текущей учеткой и не показывает диалог ввода пароля, в таких случаях полезно явно указать в проводнике «Connect using different credentials» или подключаться по IP с параметром учётных данных. С linux таких проблем нет, smbclient прекрасно работает:


smbclient -L 192.168.55.15 --user demo%pass
smbclient //192.168.55.15/share --user demo%pass


Плюсы:

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

Минусы:

пакет impacket - большой и ориентирован в основном на сетевые инструменты (pentest/ssc), так что для постоянной работы лучше все же samba или ksmbd;
не для продакшена: минимальная безопасность, упрощенные механизмы аутентификации.

Для быстрых переносов файлов или тестов - это будет шикарный инструмент.

#SMB

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
📘 На Stepik вышел курс — «DevOps»

Хотите разобраться, что такое DevOps и как он применяется в реальных проектах? В этом курсе — полный набор базовых инструментов и практик, чтобы уверенно стартовать.

• От Linux и Bash до Git, Docker и Kubernetes
• Автоматизация инфраструктуры с Terraform и Ansible
• CI/CD пайплайны: настройка тестирования и деплоя
• Мониторинг и логирование: Prometheus, Grafana, алертинг
• Практика на реальных кейсах и задания прямо в браузере

🎓 Сертификат — добавьте в резюме или LinkedIn

🚀 Освойте DevOps на практике без сложного входа и дорогих программ. Начните уже сегодня со скидкой 25% в течение 48 часов

👉 Пройти курс на Stepik
🧐 Анализ трафика

tcpdump - легкий и быстрый способ посмотреть сетевой трафик прямо в терминале, когда GUI-инструменты недоступны.

▪️ Основные приемы

Быстрые параметры:

-i eth0 - интерфейс
-nn - без DNS/порт-резолва
-s 0 - захватывать пакет полностью
-w file.pcap - сохранить трафик
-r file.pcap - прочитать файл

Фильтры:


tcpdump -i eth0 -nn host 10.0.0.5
tcpdump -i eth0 -nn tcp port 443
tcpdump -i eth0 -nn 'tcp and dst port 22'


▪️ Практические сценарии

HTTP-запросы в ASCII:


tcpdump -i any -nn -s 0 -A 'tcp port 80'


DNS-трафик:


tcpdump -i any -nn -s 0 -A 'udp port 53'


Сохранение дампа:


tcpdump -i eth0 -nn -s 0 -w capture.pcap


Новые TCP-подключения (SYN):


tcpdump -i eth0 -nn 'tcp[tcpflags] & tcp-syn != 0'


MAC-адреса:


tcpdump -i eth0 -nn -e


▪️ Быстрый анализ

Посчитать активность:


timeout 10 tcpdump -i eth0 -nn icmp | wc -l


Просмотреть SNI в HTTPS (если не шифруется):


tcpdump -i any -nn -s 0 -A 'tcp port 443' | grep -i 'server name'


#tcpdump #network

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥21
Заземление заказывали?

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14😱8😢21🌚1
🔑 Простой инструмент для выпуска сертификатов Lets Encrypt

acme.sh - это полностью bash-скрипт для работы с Lets Encrypt и другими ACME-совместимыми центрами сертификации. Он не требует python, библиотек или дополнительных пакетов, достаточно стандартного окружения linux. Именно легкость, автономность и гибкость сделали его популярной альтернативой certbot.

▪️ Установка. Устанавливается одной командой:


curl https://get.acme.sh | sh -s email=you@networkadmin.ru


Инсталлятор делает все автоматически:

Размещает скрипт в ~/.acme.sh/
Добавляет алиас acme.sh в .bashrc
Создает cron задачу для автообновления сертификатов

После перезапуска среды можно сразу работать.

▪️ Выпуск сертификата (HTTP-01). Самый простой вариант:


acme.sh --issue --server letsencrypt -d networkadmin.ru -w /var/www/html


Для каждого домена создается отдельная директория ~/.acme.sh/networkadmin.ru/, где хранятся:

приватный ключ
сертификат
конфигурация домена

▪️ Установка сертификатов и автоматический reload. Вместо ручного копирования файлов можно доверить все acme.sh:


acme.sh --install-cert -d networkadmin.ru \
--key-file /etc/nginx/certs/key.pem \
--fullchain-file /etc/nginx/certs/cert.pem \
--reloadcmd "systemctl reload nginx"


Теперь при автообновлении сертификатов acme.sh сам скопирует файлы и перезагрузит веб-сервер.

▪️ Почему стоит посмотреть на acme.sh? Главные преимущества:

▪️ Чистый bash без зависимостей. Работает на минимальных системах, легких контейнерах.
▪️ Поддержка десятков DNS-провайдеров. Можно выпускать wildcard-сертификаты одной командой без ручной настройки TXT-записей.
▪️ Поддержка нескольких ACME-CA. Не только Lets Encrypt: ZeroSSL, Buypass и другие.
▪️ Гибкость. Любые действия после выпуска/обновления: копирование, синхронизация, рестарт сервисов, уведомления.
▪️ Работает изолированно. Все файлы хранятся в ~/.acme.sh, не трогают системные каталоги.

#letsencrypt #ssl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥1
🖥 Навигация по файловой системе в виде дерева

Многие знают про tree, но мало кто знает про broot. Это консольный инструмент для навигации по файловой системе, который сочетает просмотр дерева, поиск, переходы и фильтры в одном интерфейсе.

▪️ Установка. На большинстве дистрибутивов достаточно:


curl -fsSL https://dystroy.org/broot/install.sh | bash


После установки появится командный алиас br, запускающий интерактивный браузер.

▪️ Что делает broot таким удобным?

1️⃣ Дерево каталогов без лишнего мусора. Показывает только важные директории и файлы, сворачивает вложенности и динамически подгружает структуру по мере просмотра.

2️⃣ Интерактивный поиск прямо в дереве. Начинаете печатать, а broot фильтрует дерево. Например, поиск всех файлов, связанных с nginx:


nginx


3️⃣ Быстрые переходы. Нужно перейти в каталог? Просто выделите его и нажмите enter. Никаких cd ../../../../../.

4️⃣ Быстрые действия. На выбранных файлах можно выполнять операции:

открыть в редакторе (e)
удалить (:rm)
показать подробности (:p)
копировать путь (:pp)

5️⃣ Работа с правами, git и скрытыми файлами. Broot умеет показывать статусы git, размеры, даты и многое другое.

▪️ Полезные ключи

- Показать размеры каталогов: br -s
- Открывать сразу в режиме изменения (как F2 в файловых менеджерах): br -c :focus
- Фильтровать только директории: type:d

#linux #tools

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3
😏

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15