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

Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Download Telegram
🏃 Баг с заглавными буквами в PowerShell при кириллической раскладке

Несколько раз сталкивался с неприятной проблемой: при наборе или вставке текста в PowerShell внезапно "пропадают" заглавные буквы. Особенно заметно, если набираете команды в кириллической раскладке - PowerShell просто не реагирует на Shift.

Проблема возникает из-за сбоя в модуле PSReadLine, который отвечает за подсветку, автодополнение, историю команд и другие удобства в CLI.


Решение - обновить или переустановить PSReadLine:


# Проверим установленную версию
Get-Module | Where-Object Name -eq "PSReadLine" | Select-Object Name, Path

# Удалим старую версию
Remove-Module PSReadLine
Remove-Item "C:\Program Files\WindowsPowerShell\Modules\PSReadLine\*" -Recurse -Force

# Установим последнюю версию из PSGallery
Install-Module PSReadLine -Force


Модуль будет установлен в актуальной версии, и проблема с заглавными буквами исчезнет. После установки перезапустите PowerShell.

⭐️ Совет: добавьте в profile.ps1 строку Import-Module PSReadLine, если он не загружается автоматически.

#powershell #windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍161😁1
🫂 Контроль действий пользователей с помощью auditd

Auditd - это система аудита в Linux, входящая в состав auditd (Audit Daemon), которая позволяет детально отслеживать действия пользователей и системные события: от попыток доступа к файлам до изменений в правах и запусков команд. Она полезна как для соблюдения требований безопасности, так и для расследования инцидентов.

⚙️ Установка и запуск

На большинстве дистрибутивов:


sudo apt install auditd # Debian/Ubuntu
sudo yum install audit # RHEL/CentOS


Проверьте, что служба активна:


sudo systemctl enable --now auditd


▪️ Основные команды

1️⃣ Добавить правило аудита (например, отслеживать доступ к /etc/passwd):


auditctl -w /etc/passwd -p war -k passwd-watch


-w - путь к файлу
-p war - права: write, attribute change, read
-k - метка (key) для фильтрации в логах


2️⃣ Просмотреть правила:


auditctl -l


3️⃣ Удалить правило:


auditctl -W /etc/passwd


4️⃣ Посмотреть события:


ausearch -k passwd-watch


5️⃣ Детальный вывод в человекочитаемом виде:


aureport -f # по файлам
aureport -au # по пользователям


6️⃣ Отслеживание команд пользователя

Добавьте правило для аудита всех выполненных команд:


auditctl -a always,exit -F arch=b64 -S execve -k exec-track


Это даст полную картину того, какие команды запускаются (через ausearch -k exec-track).

Не злоупотребляйте количеством правил - это может замедлить систему и засорить логи. Используйте audit.rules или /etc/audit/rules.d/*.rules для постоянных правил.

#linux #auditd

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132
Как быстрее всего удалить миллионы файлов в bash

Не все знают, но в линукс удаление большого количества файлов - задача не из простых. Особенно когда речь идет о сотнях тысяч или миллионах объектов в одной директории. Часто встречаешь ошибку Argument list too long, а даже если команда и запускается, она может висеть часами. Сегодня про то, а какой же способ удаления самый быстрый.

▪️ На тесте будут следующие команды:


rm -r test/
rm -r test/*
find test/ -type f -delete
cd test && ls . | xargs -n 100 rm
rsync -a --delete empty/ test/


Последний способ - rsync с пустой директорией - оказался самым быстрым. Суть: создаёте пустой каталог empty/ и синхронизируете его с целевым test/:


mkdir empty
rsync -a --delete empty/ test/


▪️ Тест 1: 500 000 файлов в одной директории. Скрипт:


mkdir test
count=1
while [ $count -le 10 ]; do
touch test/file$count-{000..50000}
count=$(( count + 1 ))
done


Вывод: rsync уничтожил всё быстрее всех. rm -r test/* вылетает с ошибкой при большом числе файлов.

▪️ Тест 2: Иерархия: 50 000 директорий, по 100 файлов в каждой:


count=1
while [ $count -le 10 ]; do
mkdir -p test/dir$count-{000..500}
touch test/dir$count-{000..500}/file-{000..100}
count=$(( count + 1 ))
done


Вывод: в этом случае почти все методы сработали одинаково. Но если файлов ещё больше - rsync снова выигрывает.

🌟🌟🌟 Осторожно с rsync! Перепутаете местами source и destination - удалите к черту все полезное.

⭐️ Совет: скрипты выше можно использовать и для создания тестовой нагрузки на диск, например, при проверке производительности или мониторинга.

#linux #rsync

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥42
Такие маленькие, а уже шарят

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁33🍾4
⌛️ Автоматизация обновлений в Linux с помощью unattended-upgrades

Хотите быть уверены, что критические обновления безопасности устанавливаются автоматически? Тогда стоит взглянуть на unattended-upgrades - инструмент для автоматического применения обновлений в debian/ubuntu системах.

🌟 unattended-upgrades - это пакет, который автоматически скачивает и устанавливает обновления безопасности и другие пакеты по заданным правилам.

⚙️ Установка и настройка


sudo apt update
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades


При конфигурации утилита предложит включить автообновления - согласитесь. После установки основной конфигурационный файл будет находиться здесь:


/etc/apt/apt.conf.d/50unattended-upgrades


В нём можно указать, какие типы пакетов обновлять (только security, или всё подряд), включить автоудаление ненужных пакетов, настроить отправку уведомлений и пр.

▪️ Пример: обновлять только security-патчи


Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};


▪️ Автозапуск через таймер. В новых системах используется systemd-timer:


systemctl status apt-daily.timer
systemctl status apt-daily-upgrade.timer


Можно изменить расписание, если нужно.

▪️ Логи. Результаты обновлений можно посмотреть тут:


/var/log/unattended-upgrades/unattended-upgrades.log
/var/log/apt/history.log


#linux #update

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
🕘 Как продлить срок действия пароля в Active Directory без его смены

Иногда пользователи не могут сменить истекающий пароль - особенно если подключаются к домену через VPN, RDP или веб-интерфейс, где просто нет соответствующих инструментов. Вариант «поставить галку на бессрочный пароль» выглядит заманчиво, но так легко забыть отключить её, и в итоге у пользователя остается пароль без ограничений.

🔎 Что делать?

В AD есть специальный атрибут pwdLastSet, который хранит дату последней смены пароля. Редактировать его напрямую нельзя, но можно «обновить» его:


# Сначала сбрасываем атрибут
Set-ADUser petrov.pa -Replace @{pwdLastSet=0}

# Затем задаём текущую дату как дату смены пароля
Set-ADUser petrov.pa -Replace @{pwdLastSet=-1}


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

#ActiveDirectory #PowerShell

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
👣 Как защищать API-интерфейсы

Три базовых, но эффективных подхода, которые стоит внедрить в любом API:

1️⃣ Rate Limiting - ограничение количества запросов. Ограничивает количество запросов от одного IP, токена или пользователя за определённый интервал времени. Защищает от: DDoS-атак, брутфорса, скрейпинга.

📍 В NGINX:


limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;

location /api/ {
limit_req zone=api_limit burst=20 nodelay;
}


📍 В Express.js (Node.js):


const rateLimit = require("express-rate-limit");

const limiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100
});

app.use("/api/", limiter);


2️⃣ CORS (Cross-Origin Resource Sharing). Механизм безопасности браузера, позволяющий указать, какие домены могут обращаться к API.

📍 Пример настройки CORS в Express.js:


const cors = require('cors');
app.use(cors({
origin: 'https://yourfrontend.com'
}));


Не забудьте запретить * в production - это дырка в безопасности.

3️⃣ Token-Based Access (JWT / OAuth2). Пользователь аутентифицируется, получает токен и использует его для доступа к API. Сервер проверяет подпись токена.

📍 Пример в Express.js:


const jwt = require('jsonwebtoken');

function authenticateToken(req, res, next) {
const token = req.headers['authorization']?.split(' ')[1];
if (!token) return res.sendStatus(401);

jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => {
if (err) return res.sendStatus(403);
req.user = user;
next();
});
}


Итого:

Rate Limiting - спасает от злоупотреблений.
CORS - управляет доступом между доменами.
Token-based доступ - дает безопасность и гибкость.

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

#API #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
😀 Диагностика сети: traceroute, mtr, tracetcp и другие утилиты

Инструменты трассировки маршрута и диагностики сети - незаменимая часть работы администратора. Ниже собран краткий обзор утилит для Linux и Windows, которые помогают понять, где тормозит или обрывается соединение.

🐧 Linux

▪️ traceroute - классическая утилита для трассировки. По умолчанию использует UDP, но может работать и с ICMP:


traceroute -I ya.ru


▪️ tracepath - аналог traceroute, также использует UDP, но сразу показывает MTU на каждом хопе:


tracepath ya.ru


▪️ mtr - инструмент, сочетающий в себе ping и traceroute. Поддерживает ICMP, UDP и TCP. В режиме реального времени показывает статистику потерь и задержек на каждом узле:


mtr ya.ru


🏠 Windows

▪️ tracert - стандартная утилита Windows для трассировки по ICMP:


tracert ya.ru


▪️ pathping - гибрид ping и tracert, который дает более подробную статистику. Работает только с ICMP, но часто помогает точнее понять, где теряются пакеты:


pathping ya.ru


▪️ tracetcp - сторонняя утилита для TCP SYN трассировки по конкретному порту:


tracetcp ya.ru:443


Полезна, когда ICMP или UDP заблокированы, а нужно проверить доступность TCP-сервиса. Показывает, где именно по пути блокируется соединение. Ставится отдельно (ищите на сайте разработчика). Аналога на Linux, увы, нет, но было бы очень кстати.

🌟 Выводы:

📍 Используйте mtr и tracetcp, если нужно точечно диагностировать проблемы.
📍 tracepath удобен для анализа MTU.
📍 На Windows pathping даст больше инфы, чем tracert.


#network #diagnostic

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍153
🖥 Как вернуть автоматическое резервное копирование реестра в Windows 10/11

Начиная с версии Windows 10 1809, Microsoft отключила автоматическое создание бэкапов реестра - якобы ради экономии места (всего 100–200 МБ). Но вместе с этой "оптимизацией" пользователи лишились простого способа восстановить систему, заменив повреждённые файлы реестра на рабочие копии из RegBack.

Хотя используется эта функция нечасто, иметь резервную копию всегда лучше, чем её отсутствие.

⚙️ Как включить автоматическое резервное копирование:

Создайте параметр EnablePeriodicBackup в реестре:


reg add "HKLM\System\CurrentControlSet\Control\Session Manager\Configuration Manager" /v EnablePeriodicBackup /t REG_DWORD /d 1 /f


Теперь задание планировщика RegIdleBackup будет выполняться в рамках автоматического обслуживания системы (раз в сутки), и сохранять резервные копии реестра в папку:


%windir%\System32\config\RegBack


⚠️ Важно: если вы хотите вручную проверить, срабатывает ли задание - запустите RegIdleBackup через планировщик заданий или с помощью PowerShell:


Start-ScheduledTask -TaskName "RegIdleBackup"


#windows #registry

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Все мы немного Серега

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🔥2
🌐 Как работает NAT и чем отличаются SNAT, DNAT и MASQUERADE

NAT (Network Address Translation) - это технология трансляции сетевых адресов, которая позволяет устройствам локальной сети выходить в Интернет через один общий внешний IP. Она лежит в основе почти каждого домашнего роутера и многих корпоративных решений. Но под капотом у NAT есть разные виды — разберёмся, в чём их суть и где применять.

Что делает NAT?

NAT подменяет исходные или целевые IP-адреса (и порты) в IP-пакетах. Это позволяет:

📍 Скрывать внутреннюю адресацию;
📍 Пробрасывать доступ к локальным сервисам извне;
📍 Повышать безопасность, не раскрывая реальную структуру сети


▪️ SNAT (Source NAT). Изменяет исходный IP-адрес пакета, обычно при выходе из локальной сети в Интернет. Пример:


iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 203.0.113.5


Используется, когда у сервера постоянный внешний IP.

▪️ MASQUERADE. Вариант SNAT для динамического IP-адреса (например, от провайдера через PPPoE). Автоматически подставляет текущий внешний IP:


iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


Отличный выбор для нестабильного внешнего интерфейса.

▪️ DNAT (Destination NAT). Меняет целевой IP-адрес. Применяется для проброса портов — когда нужно, чтобы запросы снаружи попадали на внутренние машины:


iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.100:22


Удобно для проброса SSH, HTTP, RDP и других сервисов внутрь локальной сети.

▪️ Пример: У вас есть веб-сервер 192.168.1.10 в локалке, а внешний IP — динамический. Тогда для организации доступа из интернета:

📍 Используем MASQUERADE на исходящий трафик;
📍 Применяем DNAT для проброса порта 80 на 192.168.1.10

🌟 Важно помнить:

📍 Все правила NAT создаются в таблице nat;
📍 SNAT и MASQUERADE — в цепочке POSTROUTING;
📍 DNAT - в цепочке PREROUTING

#NAT #iptables

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍236🔥4
🖥 Анализ сети в Linux: ethtool, iperf и nload

Когда возникает подозрение на проблемы с сетью - падение скорости, потери пакетов или просто "тормозит" - важно уметь быстро локализовать причину. В Linux есть три утилиты, которые закрывают основные потребности в диагностике: ethtool, iperf3 и nload.

▪️ ethtool - работа с сетевыми интерфейсами. Это низкоуровневая утилита, с помощью которой можно узнать:

Скорость подключения и режим дуплекса:


ethtool eth0


Есть ли сбои на интерфейсе:


ethtool -S eth0 | grep -E 'err|drop'


Настроить автосогласование, отключить Wake-on-LAN, изменить параметры offload'инга.
Удобно для диагностики "битых" линков и проблем с драйверами.

▪️ iperf3 - тестирование пропускной способности. Утилита для бенчмарков канала в режиме клиент-сервер:

На одном узле запускаем сервер:


iperf3 -s


На втором - клиент:


iperf3 -c 192.168.1.1


Показывает скорость, потери, джиттер. Можно использовать TCP и UDP, настраивать количество потоков и длительность теста.

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


iperf3 -c 192.168.1.1 -P 5


Хорошо подходит для поиска узких мест между хостами.

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


nload eth0


Выведет в реальном времени график входящего и исходящего трафика. Можно переключаться между интерфейсами, видеть пики, общую статистику и скорость.

Особенно удобен, когда нужно на лету оценить нагрузку и понять, кто грузит канал.

▪️ Резюме:

ethtool - диагностика интерфейса;
iperf3 - замер скорости и качества канала;
nload - визуальный мониторинг трафика

#linux #network

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134
Что такое Unix-сокеты в Linux и зачем они нужны

В Linux, как и в классическом Unix, существует особый тип межпроцессного взаимодействия - Unix Domain Sockets (UDS). Многие админы сталкиваются с ними при настройке сервисов вроде php-fpm, MySQL, PostgreSQL, nginx, не всегда понимая, зачем выбирать между TCP и сокетом.

🌟 Сокет - это специальный тип файла, который создаётся в файловой системе и служит точкой подключения для процессов. Выглядит как обычный файл, но данные через него не записываются на диск, а обрабатываются напрямую в оперативной памяти ядром Linux.

▪️ Пример пути к сокету:


/run/mysqld/mysqld.sock


Основное отличие от TCP: не используется сетевой стек, что делает работу чуть быстрее (в теории), особенно при высоких нагрузках.

▪️ Когда использовать Unix-сокеты?

📍 Доступ к сервису нужен только локально.
📍 Нет необходимости открывать порт и рисковать безопасностью.
📍 Можно ограничить доступ к сокету правами на файл.


На обычном сервере с веб-сайтами разницы между 127.0.0.1:3306 и mysqld.sock вы, скорее всего, не заметите. Но с точки зрения безопасности и практики - предпочтительно использовать сокеты.

▪️ Как проверить работу сокета?

Через netcat:


nc -U /run/mysqld/mysqld.sock


Аналогичный запрос по TCP:


telnet 127.0.0.1 3306


Результат будет одинаковый, только путь разный.

🌟 Unix-сокеты - это быстрый, безопасный и удобный способ локального взаимодействия между сервисами. Если ваш сервис поддерживает их — используйте. Особенно когда нет нужды слушать внешний интерфейс.

#linux #unixsocket

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍164
🔒 SELinux: как работает и стоит ли его включать

Security-Enhanced Linux (SELinux) - это механизм управления доступом на уровне ядра, разработанный NSA и Red Hat. Он добавляет ещё один уровень защиты поверх традиционной модели прав доступа в Linux и дает системе возможность жестко контролировать, кто и что может делать в ОС, даже если у процесса уже есть root-доступ.

SELinux реализует модель Mandatory Access Control (MAC) - обязательного управления доступом. В отличие от Discretionary Access Control (DAC), где владелец объекта определяет права, MAC применяет централизованные политики, которым обязаны следовать все процессы и пользователи.

Каждому процессу и файлу присваивается контекст безопасности. Контекст включает в себя:
📍 тип объекта (например, httpd_sys_content_t)
📍 роль и домен процесса (например, httpd_t)

SELinux определяет, может ли процесс с данным контекстом взаимодействовать с файлом по текущей политике. Если нет - доступ будет заблокирован, даже если пользователь - root.

▪️ Режимы работы SELinux:

Enforcing - политика активна, запрещенные действия блокируются
Permissive - действия не блокируются, но журналируются
Disabled - SELinux отключен


Проверить режим можно так:


getenforce


Или через:


sestatus


▪️ Когда стоит включать SELinux?

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

🔲 Но SELinux имеет крутую кривую обучения. Он может мешать "работать как привыкли", если не понимать, как он устроен. Ошибки конфигурации могут блокировать нужные процессы, а диагностика требует навыков чтения журналов (/var/log/audit/audit.log).

🌟 Совет: На старте используйте Permissive режим, чтобы изучить логи и не получить «белый экран» от nginx. Постепенно можно перейти в Enforcing, когда все отлажено.

Если безопасность - ваш приоритет, SELinux однозначно стоит включать. Но как и с любым инструментом, важно сначала его понять.

#SELinux #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93
⚡️ Что такое IPv6 SLAAC и как его контролировать

SLAAC (Stateless Address Autoconfiguration) - это механизм в IPv6, который позволяет устройствам самостоятельно получить IP-адрес, без участия DHCP-сервера. Удобно? Безусловно. Но у такого "автомата" есть и свои нюансы, особенно в корпоративных сетях.

▪️ Как работает SLAAC?

Когда устройство подключается к сети, оно:

📍 Получает префикс IPv6-сети через Router Advertisement (RA) от ближайшего маршрутизатора.
📍 На основе этого префикса и своего MAC-адреса (или сгенерированного идентификатора) формирует глобальный IPv6-адрес.
📍 Проверяет уникальность адреса через DAD (Duplicate Address Detection).

И готово - устройство уже в сети, без DHCP.

▪️ Почему это может быть проблемой?

📍 Обход контроля доступа. Даже если DHCP отключен, клиент все равно получит адрес и выйдет в интернет - достаточно RA от маршрутизатора.
📍 Трудности в управлении. SLAAC не позволяет "жестко" задавать DNS-серверы, lease time и прочие параметры, как это делает DHCPv6.
📍 Угрозы безопасности. Злоумышленник может раздавать фальшивые RA-пакеты и перенаправлять трафик на себя (RA spoofing).

▪️ Как контролировать SLAAC в сети?

📍 Отключить SLAAC на маршрутизаторе: На большинстве устройств (Cisco, Mikrotik, Linux) можно отключить RA или настроить флаг Managed в RA, чтобы устройства использовали DHCPv6 вместо SLAAC.
📍 Фильтрация RA-пакетов: Используйте RA Guard на уровнях доступа (поддерживается на управляемых коммутаторах), чтобы блокировать нежелательные RA от клиентов.
📍 Использовать DHCPv6: Более предсказуемый способ выдачи адресов и настройки DNS, с возможностью централизованного логирования.
📍 NDP мониторинг: Ведите учет устройств, использующих SLAAC, с помощью инструментов вроде ndpmon, scapy или Wireshark.

#IPv6 #SLAAC

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
10
Тащите все сервера, что у вас есть.

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁111
⚙️ MSDaRT - инструмент восстановления Windows на базе WinPE

MSDaRT (Microsoft Diagnostics and Recovery Toolset) - это официальный набор утилит от Microsoft, созданный на основе среды WinPE. Ранее был известен как ERD Commander и входит в состав Microsoft Desktop Optimization Pack (MDOP), доступного по корпоративной подписке. Несмотря на отсутствие активной поддержки, DaRT по-прежнему полезен, особенно при восстановлении современных версий Windows 10 и 11.

⭐️ Что умеет MSDaRT?

Созданный образ включает ряд полезных инструментов для диагностики и восстановления, если система не загружается или доступ к учётке утерян:

📍 Сброс пароля администратора
📍 Восстановление удалённых файлов и разделов
📍 Удаление проблемных обновлений
📍 Проверка образа системы (SFC, chkdsk и др.)
📍 Графический Проводник
📍 Доступ к командной строке
📍 Подключение к сети и удалённое управление (Remote Connection Viewer)


💿 Гибкость и расширяемость

Образ DaRT можно кастомизировать: добавить свои утилиты, драйверы и скрипты. По сути, это полноценный LiveCD, который можно адаптировать под нужды ИТ-отдела. Особенно актуально в средах, где по политике безопасности запрещены сторонние образы восстановления.

Для сборки ISO-образа используется мастер DaRT Recovery Image Wizard, доступный в составе MDOP.

⚠️ Если стандартной среды восстановления WinRE недостаточно, а сторонние LiveCD не подходят - MSDaRT остается отличной отправной точкой для создания надежного образа восстановления корпоративной Windows.

#msdart #winpe

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114
Очень радостная новость.. 😁

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21
🕘 Systemd timers против cron

Systemd timers - это более современный и гибкий способ планирования задач в linux, особенно на серверах с systemd.

🌟 Почему systemd timers лучше cron?

📍 Логирование по умолчанию - systemd записывает stdout/stderr задачи в journal, не нужно вручную перенаправлять вывод
📍 Зависимости и условия запуска - можно привязать таймер к другим сервисам, целям (targets) и условиям
📍 Точный контроль времени и интервалов - есть OnCalendar, OnBootSec, OnUnitActiveSec и другие
📍 Простой мониторинг - можно посмотреть статус задачи: когда запускалась, сколько длилась, когда запустится снова
📍 Юзер-таймеры - можно создавать таймеры без root-доступа для отдельных пользователей


▪️ Как настроить systemd timer. Создаем два юнита: *.service (что запускать) и *.timer (когда запускать).

Пример: бэкап в /var/backups каждую ночь в 3:00


vi /etc/systemd/system/backup.service



[Unit]
Denoscription=Nightly backup

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh



vi /etc/systemd/system/backup.timer



[Unit]
Denoscription=Run backup noscript daily at 3AM

[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true

[Install]
WantedBy=timers.target


Активируем:


sudo systemctl daemon-reexec
sudo systemctl enable --now backup.timer


▪️ Проверить статус:


systemctl list-timers
systemctl status backup.timer
journalctl -u backup.service


▪️ Другие примеры таймеров. Через 5 минут после загрузки:


[Timer]
OnBootSec=5min


Каждые 15 минут:


[Timer]
OnUnitActiveSec=15min


Каждый понедельник в 6 утра:


[Timer]
OnCalendar=Mon *-*-* 06:00:00


▪️ Полезное:

📍 Устанавливайте Persistent=true, чтобы таймер отработал, даже если система была выключена в момент запуска
📍 Используйте systemctl cat для просмотра активных юнитов
📍 Для задач от пользователя используйте ~/.config/systemd/user/


#systemd #cron

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍142
👩‍🎨 socat - универсальный швейцарский нож для работы с потоками в Unix

В копилку полезных админских утилит - socat. Это инструмент для организации двунаправленной передачи данных между самыми разными источниками: файлами, сокетами (TCP, UDP, Unix), устройствами, stdin/stdout и даже псевдотерминалами.

▪️ Простой пример как telnet. Передаем данные с консоли ( - ) на SMTP сервер:


socat - TCP4:smtp.networkadmin.ru:25


Пробуем:


helo networkadmin.ru
mail from:<admin@networkadmin.ru>


И получаем, к примеру:


503 5.5.4 Error: send AUTH command first.


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

▪️ Локальный TCP-прокси на удалённый веб-сервер


socat TCP4-LISTEN:8080,reuseaddr,fork TCP4:192.168.50.10:80


Теперь можно обращаться к удалённому серверу через localhost:


curl http://localhost:8080 -L -H "Host: networkadmin.ru"


▪️ Проксирование Unix-сокета на TCP-порт. Допустим, MySQL слушает только через сокет:


socat TCP-LISTEN:3307,reuseaddr,fork UNIX-CONNECT:/run/mysqld/mysqld.sock


Теперь подключение к localhost:3307 будет работать как к сокету:


telnet 127.0.0.1 3307


▪️ Удаленный Unix-сокет, как будто он локальный. На машине-клиенте:


socat UNIX-LISTEN:/run/mysqld/mysqld.sock,fork,reuseaddr,unlink-early,user=mysql,group=mysql,mode=777 \
TCP:192.168.50.10:3307


Теперь любой софт может работать с удаленной базой, как с локальной. Без изменений конфигурации сервера.

#socat #linux

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🫡1
🔎 Отслеживание изменений в системных группах и sudoers

В любой продвинутой системе администрирования важнейшая задача - контроль за правами пользователей. Добавление в группу sudo, изменение состава wheel, docker или других критичных групп может дать пользователю слишком много полномочий. И если такие изменения проходят незамеченными - это уже уязвимость. Разберемся, как отслеживать такие события в Linux.

1️⃣ Мониторинг файла /etc/sudoers и его include-директории. Файл sudoers и его конфиги в /etc/sudoers.d/ содержат правила доступа к sudo. Для мониторинга можно использовать:

▪️ auditd (если включен):


auditctl -w /etc/sudoers -p wa -k sudoers-change
auditctl -w /etc/sudoers.d/ -p wa -k sudoers-include


Потом смотрим:


ausearch -k sudoers-change
ausearch -k sudoers-include


▪️ inotify с помощью inotifywait:


inotifywait -m /etc/sudoers /etc/sudoers.d/ -e modify,create,delete


2️⃣ Контроль изменений групп и пользователей. Изменения групп (/etc/group) и паролей (/etc/passwd, /etc/shadow) тоже критичны. Подключаем auditd:


auditctl -w /etc/group -p wa -k group-change
auditctl -w /etc/gshadow -p wa -k group-shadow


И проверяем, кто добавлен в sudo:


grep sudo /etc/group


3️⃣ Логируем команды изменения групп. Изменения через usermod, gpasswd, adduser, deluser удобно отслеживать через auditd:


auditctl -a always,exit -F arch=b64 -S usermod -S groupadd -S groupdel -S gpasswd -k group-admin


4️⃣ Альтернатива - logwatch или ossec. Можно настроить инструменты централизованного логирования и получать уведомления при любых изменениях состава групп или конфигураций sudo. Например: Logwatch, OSSEC, Wazuh, Tripwire.

#linux #security

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