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
☺️ Смена имени сервера Windows без простоев

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

▪️ В Windows Server сделать это можно с помощью netdom:


netdom computername fs01 /ADD new-fs01.corpdev.loc


Эта команда автоматически создаст CNAME (алиас) в DNS и обновит SPN в Active Directory.

▪️ В Windows 10/11 утилиты netdom нет. Придётся добавить новое имя вручную:

1️⃣ Создать CNAME-запись в DNS;
2️⃣ Добавить имя в реестр (AlternateComputerNames);
3️⃣ Обновить SPN для учётной записи компьютера.

Такой подход поможет избежать сбоев при переходе на новое имя сервера.

#windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
⌛️ Автозапуск сервисов в systemd при сбоях

В systemd есть встроенный механизм автоматического перезапуска сервисов при их падении. Управляется это параметром Restart в разделе [Service] unit-файла.

📌 Основные значения Restart

always - перезапуск всегда (даже при корректном завершении)
on-success – только если сервис завершился без ошибок
on-failure – при ошибках или принудительном завершении (SIGKILL, timeout)
on-abnormal – при завершении сигналом или зависании
on-abort – если сервис был принудительно завершён
on-watchdog – при срабатывании watchdog timeout
no – автозапуск отключен (значение по умолчанию)


⚙️ Настройка автозапуска сервиса
Редактировать основной unit-файл не нужно. Достаточно создать override.conf:


mkdir -p /etc/systemd/system/nginx.service.d
nano /etc/systemd/system/nginx.service.d/override.conf


Добавьте настройки:


[Service]
Restart=always
RestartSec=5s


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


systemctl daemon-reload


Теперь при падении Nginx перезапустится через 5 секунд. Проверка:


systemctl status nginx
kill -9 <PID>
systemctl status nginx


🌟 Когда не стоит включать автозапуск:

1. Базы данных (MySQL, PostgreSQL) – после аварии могут запустить ресурсоёмкое восстановление, которое OOM-killer прервёт, создавая бесконечный цикл.
2. Кластеры (Elasticsearch, Ceph) – возможна рассинхронизация или некорректная работа.

Для веб-серверов (Nginx, Apache), почтовых сервисов (Postfix, Dovecot) и агентов мониторинга (Zabbix Agent) – автозапуск обычно безопасен.

✉️ Оповещения о сбоях
Добавьте в override.conf, чтобы получать уведомления:


[Unit]
OnFailure=your-notify-noscript.service


Это может быть скрипт с отправкой алерта в Telegram или email.

#linux #systemd

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍181
📅 Как обнаружить бэкдор на Windows-сервере?

1️⃣ Проверяем сетевые подключения. Запущенные соединения покажут активные подключения:


netstat -ano | findstr :3389


Можно искать процессы, слушающие нестандартные порты:


Get-NetTCPConnection | Where-Object { $_.State -eq "Listen" }


Неизвестные процессы, особенно на портах RDP, SSH, HTTP/S - тревожный знак.

2️⃣ Сканируем автозапуск. Бэкдоры часто закрепляются в автозагрузке:


Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location


Autoruns от Microsoft покажет больше деталей.

3️⃣ Анализируем активные процессы. Проверяем запущенные процессы и их происхождение:


Get-Process | Sort-Object CPU -Descending


Подозрительные процессы ищем в Task Manager, Process Explorer, проверяем путь C:\Windows\System32\, C:\Users\Public\.

4️⃣ Ищем нестандартные учетные записи


Get-LocalUser | Where-Object { $_.Enabled -eq $true }


Неизвестные администраторы или странные группы – считаем поводом для доп. аудита.

5️⃣ Проверяем планировщик задач. Атакующие могут создать скрытые задания:


Get-ScheduledTask | Where-Object {$_.State -eq "Ready"}


Задачи с cmd.exe, powershell.exe, wnoscript.exe без явного назначения - подозрительны.

6️⃣ Ищем DLL-инъекции и хуки. Используем Sysinternals Process Explorer, вкладка DLLs.

DLL из Temp, AppData или сторонних каталогов могут быть вредоносными.

7️⃣ Проверяем системные логи. В Event Viewer (Просмотр событий) смотрим разделы:

Security - неудачные попытки входа
System - странные ошибки служб
Application - нестандартные ошибки



Get-EventLog -LogName Security -Newest 50


Логон с незнакомых IP, массовые ошибки 4625 (неудачные входы) могут указывать на атаку.

8️⃣ Проверяем файловую систему. Сканируем системные каталоги на свежие файлы:

powershell
Get-ChildItem C:\Windows\System32 -Recurse | Sort-Object LastWriteTime -Descending | Select-Object -First 10

Внезапные изменения в System32, Temp, AppData - подозрительны.

#windows #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍221
🫂 Совместная работа в терминале

screen - отличная утилита для работы в Linux, особенно если хочется сохранить SSH-сессию при разрыве соединения. Но кроме этого, её можно использовать для совместной работы в одной консоли, как аналог TeamViewer/AnyDesk, но для терминала.

▪️ Совместная сессия для одного пользователя. Если два пользователя подключены под одной учетной записью, можно создать общую сессию:


screen -d -m -S shared


Подключаемся к ней с двух терминалов:


screen -x shared


Теперь оба пользователя видят и могут вводить команды в одном терминале.

▪️ Совместная работа для разных пользователей. По умолчанию screen не позволяет шарить сессии между разными пользователями. Нужно немного подготовить систему:

1️⃣ Разрешаем screen запускаться с правами root


chmod u+s $(which screen)
chmod 755 /var/run/screen
rm -fr /var/run/screen/*


2️⃣ Запускаем сессию под root и включаем мультипользовательский режим


screen -d -m -S shared
screen -r shared


Внутри screen включаем доступ для другого пользователя (например, zerox):


Ctrl-a :multiuser on
Ctrl-a :acladd zerox


Теперь пользователь zerox может подключиться к сессии:


screen -x root/shared


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


Ctrl-a :writelock on


#linux #terminal

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
👀 Анализ логов Windows с PowerShell и LogParser

1️⃣ Анализ логов через PowerShell. PowerShell позволяет извлекать события из журнала Windows через Get-WinEvent или Get-EventLog.

📍 Пример 1: Найти все неудачные попытки входа (Event ID 4625):


Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4625 } | Select-Object TimeCreated, Id, Message


📍 Пример 2: Вывести последние 10 ошибок из системного журнала:


Get-WinEvent -LogName System -MaxEvents 10 | Where-Object { $_.Level -eq 2 }


📍 Пример 3: Фильтрация по дате и пользователю:


$start = (Get-Date).AddDays(-1) # Логи за последние 24 часа
Get-WinEvent -LogName Security | Where-Object { $_.TimeCreated -ge $start -and $_.Message -match "admin" }


PowerShell удобен, но не всегда эффективен при анализе больших логов. Тут поможет LogParser.

2️⃣ LogParser: SQL-запросы к логам Windows. LogParser - инструмент от Microsoft, который позволяет выполнять SQL-запросы к журналам событий, файлам и даже реестру.

⚙️ Установка: Скачиваем LogParser с официального сайта Microsoft и устанавливаем.

📍 Пример 1: Вывести все ошибки из системного журнала:


LogParser.exe "SELECT TimeGenerated, EventID, Message FROM System WHERE EventType = 1" -i:EVT


📍 Пример 2: Найти неудачные попытки входа:


LogParser.exe "SELECT TimeGenerated, SID, Message FROM Security WHERE EventID = 4625" -i:EVT


📍 Пример 3: Вывести топ-10 процессов, потребляющих ресурсы:


LogParser.exe "SELECT TOP 10 Image, COUNT(*) AS Hits FROM 'C:\Windows\System32\winevt\Logs\Application.evtx' GROUP BY Image ORDER BY Hits DESC" -i:EVT


LogParser умеет анализировать не только логи, но и файлы CSV, IIS-логи, текстовые файлы и даже WMI-запросы.

#windows #logs

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
🗑 Microsoft: старый ПК с Windows 10 нужно утилизировать, если его невозможно обновить до Windows 11

Microsoft выпустила чек-лист по подготовке к окончанию поддержки Windows 10 - это произойдёт 14 октября 2025 года. Если кратко, то пользователей ждёт развилка из двух дорог.

Первый путь - обновление до Windows 11, если «железо» ещё тянет.
Второй - расстаться с компьютером (утилизировать), если он не соответствует требованиям новой ОС.

---

Приму в дар вашу технику, не соответствующую новым требованиям Microsoft 😁

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁39🤡10🔥4👍2
💎 Как правильно настроить SNMP для мониторинга сети

SNMP (Simple Network Management Protocol) - один из самых популярных протоколов для мониторинга сетевого оборудования, серверов и рабочих станций. Он позволяет получать данные о загрузке процессора, памяти, сетевых интерфейсах и многом другом. Однако, неправильная настройка SNMP может стать уязвимостью в системе. Разберем, как его правильно настроить.

1️⃣ Выбор версии SNMP. Существует три версии протокола:

SNMPv1 – устаревшая, передает данные в открытом виде (НЕ рекомендуется).
SNMPv2c – улучшенная версия, но всё еще без шифрования.
SNMPv3 – наиболее безопасная, поддерживает аутентификацию и шифрование (РЕКОМЕНДУЕТСЯ).


Для безопасного мониторинга лучше взять SNMPv3 с аутентификацией и шифрованием.

2️⃣ Настройка SNMP на Linux. Установка SNMP-сервера (snmpd)


sudo apt install snmp snmpd -y # Для Debian/Ubuntu
sudo yum install net-snmp net-snmp-utils -y # Для CentOS/RHEL


Редактирование конфигурации (/etc/snmp/snmpd.conf)

📍 Оставляем только нужные OID и включаем SNMPv3:


agentAddress udp:161,udp6:[::1]:161
rocommunity public default -V systemonly
sysLocation "Server Room"
sysContact "admin@networkadmin.ru"


📍 Перезапускаем службу:


sudo systemctl restart snmpd
sudo systemctl enable snmpd


📍 Проверяем работу SNMP:


snmpwalk -v2c -c public 127.0.0.1


3️⃣ Настройка SNMP на Windows. Установка SNMP

Для Windows 10/11 и Windows Server:


Enable-WindowsOptionalFeature -Online -FeatureName SNMP


Затем включите службу в services.msc и настройте параметры в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP через реестр.

4️⃣ Ограничение доступа по IP и Firewall. Чтобы SNMP не стал уязвимостью, ограничиваем доступ к нему.

На Linux (iptables/firewalld):


iptables -A INPUT -p udp --dport 161 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p udp --dport 161 -j DROP


На Windows:


New-NetFirewallRule -DisplayName "Allow SNMP" -Direction Inbound -Protocol UDP -LocalPort 161 -Action Allow -RemoteAddress 192.168.1.0/24


5️⃣ Мониторинг с помощью SNMP. Для сбора данных через SNMP можно использовать:

Zabbix
LibreNMS
Telegraf + InfluxDB + Grafana
snmpwalk/snmpget


Пример запроса данных с устройства:


snmpget -v2c -c public 192.168.1.1 .1.3.6.1.2.1.1.5.0


#SNMP #linux #windows #monitoring

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Попался

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14💊4👍1
✏️ Логи Nginx в JSON: удобство и гибкость

По умолчанию Nginx ведёт логи в текстовом формате, но уже давно умеет писать их в JSON. Однако, в большинстве конфигураций всё ещё используются старые текстовые логи. Если вы до сих пор не перешли на JSON, самое время это сделать – его проще анализировать вручную и обрабатывать в автоматизированных системах.

⚙️ Настройка JSON-логов в Nginx. Включить JSON-формат просто – достаточно добавить новую директиву log_format в конфигурационный файл:


log_format json_combined escape=json '{'
'"time_local":"$time_local",'
'"remote_addr":"$remote_addr",'
'"remote_user":"$remote_user",'
'"request":"$request",'
'"status":"$status",'
'"body_bytes_sent":"$body_bytes_sent",'
'"request_time":"$request_time",'
'"http_referrer":"$http_referer",'
'"http_user_agent":"$http_user_agent"'
'}';


Добавляем в http { } или в настройки виртуального хоста:


access_log /var/log/nginx/access.log json_combined;


После перезапуска Nginx сервер начнёт записывать логи в JSON.

🌟 Почему это удобно?

Если вы используете Zabbix, ELK (Elasticsearch + Logstash + Kibana), Grafana или другие системы мониторинга – обработка JSON-логов упростится, так как для него уже есть готовые парсеры.


Но даже в консоли JSON-логи обрабатывать намного удобнее с помощью jq:

▪️ Вывод всех логов в формате JSON:


jq '.' access.log


▪️ Список всех запрашиваемых URL:


jq '.request' access.log


▪️ Фильтр по коду ответа 404 (показывает всю запись):


jq '. | select(.status=="404")' access.log


▪️ Вывод только URL с кодом 404:


jq '. | select(.status=="404") | .request' access.log


▪️ Добавляем к URL ещё и время запроса:


jq '. | select(.status=="404") | .time_local, .request' access.log


▪️ Вывод значений без кавычек (флаг -r):


jq -r '.request' access.log


🌟 Дополнительные переменные для логов. К стандартным переменным можно добавить полезные параметры:

Метрики запроса и прокси-серверов:

$request_length – длина запроса
$upstream_addr – адрес upstream-сервера
$upstream_status – HTTP-ответ от upstream
$upstream_response_time – время ответа backend'а
$upstream_connect_time – время установки соединения с upstream
$upstream_header_time – время получения HTTP-заголовков от upstream


Безопасность и TLS:

$server_name – имя виртуального хоста
$ssl_protocol – используемый TLS-протокол
$ssl_cipher – алгоритм шифрования


#Nginx #JSON

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍2
🚫 Как полностью удалить OneDrive из Windows 10/11

OneDrive предустановлен во всех версиях Windows 10 и 11, интегрирован в систему и запускается автоматически при входе в систему. По умолчанию OneDrive устанавливается отдельно для каждого пользователя в его профиле: %localappdata%\Microsoft\OneDrive. Если OneDrive вам не нужен, его можно удалить, но важно сделать это для всех пользователей, включая будущие учетные записи.

▪️ Удаление OneDrive для всех пользователей

1️⃣ Остановите и удалите клиент OneDrive:


taskkill /f /im OneDrive.exe

%SystemRoot%\System32\OneDriveSetup.exe /uninstall


2️⃣ Удалите остатки файлов и папок:


rd "%UserProfile%\OneDrive" /Q /S
rd "%LocalAppData%\Microsoft\OneDrive" /Q /S
rd "%ProgramData%\Microsoft OneDrive" /Q /S


3️⃣ Очистите записи в реестре:


reg delete "HKEY_CURRENT_USER\Software\Microsoft\OneDrive" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OneDrive" /f


▪️ Запрещение установки OneDrive для новых пользователей. Чтобы OneDrive не устанавливался автоматически при создании новых учетных записей, нужно удалить соответствующую запись из реестра шаблонного профиля Default:


reg load "HKU\Default" "C:\Users\Default\NTUSER.DAT"
reg delete "HKEY_USERS\Default\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "OneDriveSetup" /f
reg unload "HKU\Default"


Теперь новые пользователи на этом компьютере не получат OneDrive в своих профилях.

#windows #OneDrive

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍293🔥3
👀 Контроль сетевого трафика в Linux с помощью eBPF и XDP

Современные нагрузки требуют высокой производительности сетевых решений, а классические инструменты вроде iptables и nftables уже не всегда справляются. Здесь на сцену выходят eBPF (Extended Berkeley Packet Filter) и XDP (eXpress Data Path) - технологии для глубокой фильтрации и анализа трафика прямо в ядре Linux.

🌟 Что это такое?

eBPF - механизм в ядре Linux, позволяющий безопасно выполнять программы в режиме ядра без изменения исходного кода. Используется для фильтрации пакетов, мониторинга, трассировки и профилирования системы.

XDP - подсистема ядра Linux, основанная на eBPF, позволяющая обрабатывать пакеты на самом раннем этапе их поступления в систему (на уровне драйвера сетевой карты).


▪️ Как использовать eBPF и XDP для анализа трафика? Для работы с eBPF можно использовать утилиты bpftool и bcc (BPF Compiler Collection).

1️⃣ Установим необходимые пакеты:


sudo apt install -y bpfcc-tools linux-headers-$(uname -r) #на Debian/Ubuntu
sudo dnf install -y bpftool bcc #на RHEL/Fedora


2️⃣ Запустим мониторинг пакетов с eBPF:


sudo /usr/sbin/tc qdisc add dev eth0 clsact
sudo /usr/sbin/tc filter add dev eth0 egress bpf direct-action obj xdp_prog_kern.o


Это позволит анализировать выходящий трафик с интерфейса eth0.

3️⃣ Фильтрация пакетов с помощью XDP. Простейший eBPF-программы для отбрасывания пакетов (пример на C):


#include <linux/bpf.h>
int xdp_drop(struct __sk_buff *skb) {
return XDP_DROP; // Отбрасываем пакет
}


Компилируем и загружаем программу в XDP:


clang -O2 -target bpf -c xdp_drop.c -o xdp_drop.o
sudo ip link set dev eth0 xdp obj xdp_drop.o


Теперь весь трафик на интерфейсе eth0 будет блокироваться на уровне драйвера.

⭐️ Где применяют eBPF и XDP?

DDoS-защита - можно отбрасывать вредоносный трафик без нагрузки на процессор.
Балансировка нагрузки - построение L4-L7 балансировщиков без iptables.
Мониторинг сети - сбор детальной статистики по пакетам в реальном времени.


Примеры таких решений: Cilium, Suricata, Falco, Katran (Facebook), XDP Firewall.

#linux #eBPF #XDP

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
⬇️ Развертывание DHCP-сервера на Linux с Kea

Если вам нужен гибкий и высокопроизводительный DHCP-сервер для управления IP-адресами в сети, стоит обратить внимание на Kea DHCP от ISC. В отличие от классического ISC DHCP, Kea предлагает:

Динамическое обновление конфигурации без перезапуска сервера
Поддержку API RESTful для управления в реальном времени
Работу с базами данных (MySQL, PostgreSQL, Cassandra)
Поддержку DHCPv4 и DHCPv6


Для примера, развернем DHCP-сервер Kea на Ubuntu/Debian и настроим его на раздачу IP-адресов.

⚙️ Установка Kea DHCP. На Debian/Ubuntu устанавливаем Kea из официальных репозиториев:


sudo apt update && sudo apt install -y isc-kea-dhcp4-server


На CentOS/RHEL Kea можно установить через EPEL:


sudo dnf install -y epel-release
sudo dnf install -y kea


▪️ Настройка DHCP-сервера Kea. Файл конфигурации Kea для DHCPv4: /etc/kea/kea-dhcp4.conf

Пример минимальной конфигурации:


{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "eth0" ]
},
"subnet4": [
{
"subnet": "192.168.1.0/24",
"pools": [
{ "pool": "192.168.1.100 - 192.168.1.200" }
],
"option-data": [
{ "name": "routers", "data": "192.168.1.1" },
{ "name": "domain-name-servers", "data": "8.8.8.8, 8.8.4.4" }
]
}
]
}
}


eth0 - сетевой интерфейс, с которого раздаются адреса
192.168.1.100 - 192.168.1.200 - пул IP-адресов
192.168.1.1 - шлюз по умолчанию
8.8.8.8, 8.8.4.4 - DNS-серверы


▪️ Запуск и управление Kea DHCP. После настройки запускаем Kea DHCP:


sudo systemctl enable --now kea-dhcp4
sudo systemctl status kea-dhcp4


Проверяем логи для диагностики:


journalctl -u kea-dhcp4 --no-pager -n 50


Если нужно перезапустить DHCP-сервер после изменения конфигурации:


sudo systemctl restart kea-dhcp4


▪️ Проверка работы DHCP. Проверяем, какие клиенты получили IP-адреса:


cat /var/lib/kea/dhcp4.leases


Запросим новый IP с клиента:


dhclient -v eth0


Если адрес не выдается, смотрим активные порты Kea:


sudo ss -tulpn | grep kea


⭐️ Дополнительные возможности Kea

Подключение к MySQL или PostgreSQL для хранения аренды IP
Настройка статических IP-адресов для MAC-адресов
Работа с DHCPv6 для IPv6-сетей
Динамическое управление через API RESTful


#linux #DHCP #Kea

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍3
Раз уж залезла, глянь ошибку из лога, может чего подскажешь..

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁40🍾32
🔼 Тюнинг сетевого стека Linux

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

▪️ Полезные параметры sysctl

📍 Максимум осиротевших сокетов (TCP orphans). Каждый такой сокет съедает ~64 КБ памяти. Увеличиваем лимит, если сервер мощный:


net.ipv4.tcp_max_orphans = 65536


📍 Сокращаем FIN-WAIT-2. Позволяет быстрее очищать соединения, которые "зависли":


net.ipv4.tcp_fin_timeout = 10


📍 Настройка KeepAlive-проверок. Полезно для "выметания" неактивных соединений:


net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5


📍 Диапазон локальных портов. Расширяем диапазон для исходящих соединений:


net.ipv4.ip_local_port_range = 10240 65535


📍 Увеличиваем очередь входящих соединений. Особенно важно на серверах с высокой нагрузкой:


net.core.somaxconn = 16384


📍 Буферы по умолчанию. Прокачиваем rmem и wmem для эффективной работы сокетов:


net.core.rmem_default = 851968
net.core.wmem_default = 851968
net.core.rmem_max = 12582912
net.core.wmem_max = 12582912


📍 Конфигурация TCP Congestion Control. Выбираем алгоритм, подходящий под вашу нагрузку. По умолчанию:


net.ipv4.tcp_congestion_control = cubic


📍 Отключаем TCP syncookies. Если нет необходимости в защите от SYN-флудов, можно отключить:


net.ipv4.tcp_syncookies = 0


📍 Включаем защиту от TIME_WAIT атак. Обязательно при большом количестве соединений:


net.ipv4.tcp_rfc1337 = 1


📍 Безопасность ICMP и redirect’ов. Для серверов, которые не являются маршрутизаторами:


net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0


Дополнительно - игнорировать ICMP echo-запросы (ping):


net.ipv4.icmp_echo_ignore_all = 1


❗️ Стоит учитывать

Параметры вроде tcp_mem, tcp_rmem, tcp_wmem зависят от объема оперативной памяти и автоматически настраиваются при загрузке. Их можно регулировать вручную при необходимости, но в большинстве случаев дефолтных значений достаточно.


#linux #sysctl #TCP

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥64
🟣 Кто и что устанавливал в системе за последние 7 дней

Если нужно быстро узнать, какие приложения, обновления или MSI-пакеты были установлены или удалены на Windows-системе за последнюю неделю - поможет встроенный журнал Reliability Monitor и небольшой PowerShell-скрипт.

Скрипт вытащит:

Установку/удаление MSI пакетов
Установку/удаление приложений из Microsoft Store
Установленные обновления Windows
Пользователя, от имени которого происходили действия


▪️ Вот сам скрипт:


$DaysAgo = (Get-Date).AddDays(-7)
$RealiabilityFilter = "TimeGenerated > '$DaysAgo' and (SourceName='Microsoft-Windows-WindowsUpdateClient' or SourceName='MsiInstaller')"

Get-CimInstance -ClassName Win32_ReliabilityRecords -Filter $RealiabilityFilter |
Select-Object TimeGenerated, ProductName, User, Message |
Out-GridView


Скрипт использует данные из журнала Win32_ReliabilityRecords и отфильтровывает события только по установке/удалению софта. Отображение в Out-GridView - удобно и наглядно для быстрого анализа.

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

#windows #audit #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
🛡 Отказоустойчивый DNS

Надежный DNS - это основа стабильной работы инфраструктуры. Если основной DNS падает, могут лечь и внутренние сервисы, и доступ к внешним ресурсам. Один из проверенных способов построения отказоустойчивой DNS-системы - связка Bind9 (авторитетный DNS) + Unbound (рекурсивный кеширующий DNS).

🌟 Архитектура:

Bind9 отвечает за авторитетные зоны — внутренние домены, PTR-записи, сервисные SRV и т.д.
Unbound обрабатывает внешние запросы (Google, GitHub, NTP и прочее), кеширует и защищает от DNS-рекурсии.

Между ними можно использовать dnsdist для балансировки и DDoS-защиты (опционально).
Обе службы работают на разных портах (например, Bind на 1053, Unbound на 53).


⚙️ Настройка Bind9 (авторитетный). Устанавливаем:


sudo apt install bind9


Конфигурация зоны:


zone "corp.lan" {
type master;
file "/etc/bind/zones/db.corp.lan";
allow-query { any; };
};


Слушаем нестандартный порт:


options {
listen-on port 1053 { any; };
recursion no;
};


⚙️ Настройка Unbound (рекурсивный + прокси к Bind9). Устанавливаем:


sudo apt install unbound


Базовый unbound.conf:


server:
interface: 0.0.0.0
access-control: 192.168.0.0/16 allow
verbosity: 1

# Кеширование и защита
cache-max-ttl: 86400
hide-identity: yes
hide-version: yes

# Проксирование запросов во внутренние зоны на Bind
local-zone: "corp.lan." transparent

forward-zone:
name: "corp.lan"
forward-addr: 127.0.0.1@1053


▪️ Отказоустойчивость. Устанавливаем второй DNS-сервер (с таким же конфигом Bind + Unbound).

Прописываем оба IP-адреса на клиентах или в DHCP:


DNS1: 192.168.1.10
DNS2: 192.168.1.11


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

▪️ Безопасность и дополнения: Активируйте DNSSEC в Unbound.

1. Используйте dnsdist для фильтрации, балансировки и rate-limit.
2. Следите за логами (/var/log/syslog или systemd-journald).

#DNS #Bind9 #Unbound

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🖥 Секреты удобной работы в терминале

Если вы проводите много времени в терминале - переход на zsh и настройка Oh My Zsh может серьёзно упростить и ускорить вашу работу. Это не просто замена bash, а настоящий рабочий инструмент с автодополнением, подсветкой синтаксиса, git-индикацией и кучей других плюшек.

⚙️ Установка Zsh и Oh My Zsh


sudo apt install zsh # или brew install zsh на macOS
chsh -s $(which zsh) # сделаем zsh шеллом по умолчанию


⚙️ Установка Oh My Zsh:


sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"


▪️ Темы и кастомизация. Тема "agnoster" или "powerlevel10k" - удобная и информативная, особенно для работы с Git.

Powerlevel10k:


git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k


И укажите в .zshrc:


ZSH_THEME="powerlevel10k/powerlevel10k"


🌟 Полезные плагины Oh My Zsh. В .zshrc:


plugins=(git z sudo zsh-autosuggestions zsh-syntax-highlighting)


git - алиасы вроде gst (git status), gco (git checkout)
z - умное перемещение по папкам (находит нужную по частичному совпадению)
sudo - быстрое добавление sudo при повторе команды с ESC+ESC
zsh-autosuggestions - автоподсказки по истории
zsh-syntax-highlighting - подсветка ошибок до нажатия Enter


🌟 Полезные фишки и алиасы. Автодополнение для ssh, kubectl, docker, git

Автоисправление команд (grpe → grep)

Алиасы можно описывать прямо в .zshrc:


alias gs='git status'
alias ll='ls -alF'
alias ..='cd ..'


#zsh #linux #terminal

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎2😁1💊1
🤔🤔

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁29👎7🔥2🤔2
📱 Hadolint - линтер, который реально помогает

Если вы регулярно пишете Dockerfile'ы, следует добавить в свой арсенал Hadolint - это линтер, который проверяет как синтаксис, так и best practices. Он поможет выявить ошибки, неточности и неочевидные нюансы на этапе написания. В том числе - проверит shell-команды с помощью правил из ShellCheck.

Hadolint можно использовать:

Локально (через Docker или бинарник)
Через онлайн-версию

▪️ Пример 1. Go + Alpine


FROM golang:1.22 AS build
WORKDIR /app
COPY . .
RUN go mod tidy && \
CGO_ENABLED=0 GOOS=linux go build -o app .

FROM alpine:3.19
RUN apk add --no-cache ca-certificates
WORKDIR /root/
COPY --from=build /app/app .
CMD ["./app"]


Проверка:


docker run --rm -i hadolint/hadolint < Dockerfile


Вывод Hadolint:

DL3007: Не используйте latest, всегда указывайте версию (например, alpine:3.19)
DL3018: Указывайте конкретные версии пакетов при apk add - это улучшает воспроизводимость сборки

▪️ Пример 2. Debian + Apache


FROM debian:bookworm
RUN apt-get update && \
apt-get install -y --no-install-recommends apache2 && \
apt-get clean && rm -rf /var/lib/apt/lists/*
EXPOSE 80 443
VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]
ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]


Hadolint замечает:

DL3008: Указывайте точные версии пакетов (например, apache2=2.4.57-1)
DL3009: Чистите списки apt-пакетов после установки
DL3015: Используйте --no-install-recommends, чтобы не тащить лишнее

🌟 Зачем это нужно?

latest, без версий, без очистки - всё это может привести к нестабильной сборке. Особенно при CI/CD. Линтер Hadolint позволяет быстро выявить подобные места, не дожидаясь багов в проде.

⚙️ Установка локально:


brew install hadolint # macOS
sudo apt install hadolint # Ubuntu (через snap или вручную)


Или через Docker:


docker run --rm -i hadolint/hadolint < Dockerfile


Рекомендации Hadolint в большинстве случаев точны, понятны и логичны. Если вы ещё не используете его - самое время начать.

#Docker #Hadolint

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🔗 Как обновляются групповые политики в Windows и как применить их немедленно

По умолчанию настройки GPO (Group Policy Objects) в Windows обновляются в следующих случаях:

📍 при загрузке компьютера,
📍 при входе пользователя в систему,
📍 и в фоновом режиме каждые 90–120 минут с небольшой случайной задержкой.

Обновление происходит только если служба Group Policy Client (gpsvc) обнаружит изменение версии политики. Номер версии хранится в файле:


<Имя_контроллера_домена>\SYSVOL\<домен>\Policies\<GUID>\gpt.ini


Хотите применить изменения немедленно на удалённой машине? Используйте один из способов:

▪️ Через GUI: Откройте gpmc.msc (Group Policy Management Console)

1. Кликните правой кнопкой по нужному OU (организационному подразделению)
2. Выберите "Group Policy Update"

▪️ Через PowerShell:


Invoke-GPUpdate -Computer "PC01" -RandomDelayInMinutes 0


Команда принудительно обновит политики на удалённой системе без задержек.

❗️ Для выполнения PowerShell-команды нужны соответствующие права и разрешённые WinRM-соединения между клиентом и целевой машиной.

#windows #GPO #GroupPolicy

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤔1🤡1
🗃 Скрываем лишние файлы в SMB

Одна из полезных, но редко используемых функций SMB - Access-Based Enumeration (ABE). Она скрывает файлы и папки, к которым у пользователя нет доступа, делая сетевые шары более удобными и безопасными.

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

🔘 Включение ABE

Windows Server (SMB):


Get-SmbShare DOCS | Set-SmbShare -FolderEnumerationMode AccessBased


Samba (Linux, FreeBSD). Добавьте в smb.conf:


hide unreadable = Yes


Скрытие самих расшаренных папок:


access based share enum = Yes


#SMB #server

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