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

Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Download Telegram
👀 Логирование пользовательских сессий в Linux

Для логирования пользовательских сессий, включая команды и действия на сервере, одним из инструментов является auditd. Он предоставляет детальное логирование и позволяет отслеживать действия пользователей в системе.

1️⃣ Установка и настройка auditd

Установка auditd:


sudo apt update
sudo apt install auditd audispd-plugins


Настройка правил логирования: Правила логирования определяются в файле /etc/audit/audit.rules. Добавим правило для логирования всех команд пользователей:


echo '-a always,exit -F arch=b64 -S execve -k commands' | sudo tee -a /etc/audit/audit.rules


2️⃣ Скрипт для сбора и перемещения логов. Bash-скрипт, который будет собирать логи, сортировать их по пользователю и дате, и перемещать на удаленный сервер.


#!/bin/bash

LOG_DIR="/var/log/audit"
DEST_SERVER="user@remote-server:/path/to/logs"
TEMP_DIR="/tmp/audit_logs"

# Создание временной директории
mkdir -p $TEMP_DIR

# Сбор логов по пользователям
ausearch -k commands | while read -r line; do
USER=$(echo "$line" | grep -oP '(?<=uid=)[0-9]+')
TIMESTAMP=$(echo "$line" | grep -oP '(?<=time=)[0-9]+' | head -n 1)
DATE=$(date -d @$TIMESTAMP "+%Y-%m-%d_%H-%M-%S")
USERNAME=$(id -nu $USER)

# Создание файла лога
echo "$line" >> "$TEMP_DIR/${USERNAME}_${DATE}.log"
done

# Перемещение логов на удаленный сервер
scp $TEMP_DIR/* $DEST_SERVER

# Очистка временной директории
rm -rf $TEMP_DIR


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

#linux #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Арестован за маленькую пропускную способность

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁28
🛡 Настройка безопасного SSH-соединения

Чтобы минимизировать риски и усилить защиту сервера, необходимо настроить SSH-соединение с дополнительными мерами безопасности. Сегодня рассмотрим ключевые шаги для улучшения безопасности SSH.

1️⃣ Отключение входа по паролю. Использование паролей может быть уязвимо к атакам типа brute-force. Настройка входа по SSH-ключам делает подключение гораздо более защищенным.

Создание SSH-ключа:


ssh-keygen -t rsa -b 4096


Добавление ключа на сервер:


ssh-copy-id user@server_ip


После успешного добавления ключа, в файле /etc/ssh/sshd_config измените строку: PasswordAuthentication no

2️⃣ Изменение стандартного порта SSH. Для предотвращения автоматизированных сканирований лучше изменить стандартный порт с 22 на менее очевидный.

Для этого Измените строку в файле /etc/ssh/sshd_config: Port 2222

3️⃣ Ограничение входа по IP-адресам. Если возможно, настройте брандмауэр для разрешения подключения к SSH только с определенных IP-адресов.

Используйте ufw для настройки правил:


sudo ufw allow from 192.168.1.100 to any port 2222
sudo ufw enable


4️⃣ Настройка двухфакторной аутентификации (2FA). Установка двухфакторной аутентификации добавляет дополнительный уровень защиты.

Установите Google Authenticator:


sudo apt install libpam-google-authenticator


Настройте PAM для использования 2FA, добавив строку в /etc/pam.d/sshd: auth required pam_google_authenticator.so

5️⃣ Ограничение числа попыток подключения. Используйте fail2ban для защиты от атак грубой силы.

Установите fail2ban:


sudo apt install fail2ban


Настройте его в /etc/fail2ban/jail.local:


[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3


6️⃣ Отключение входа для root. Чтобы защитить сервер, запретите прямой вход root-пользователя.

В файле /etc/ssh/sshd_config измените: PermitRootLogin no

Комбинация использования SSH-ключей, изменения порта, ограничения доступа и дополнительных мер, таких как 2FA и fail2ban, делает сервер значительно менее уязвимым к атакам.

#linux #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🤔3
🎞 Запрет на создание файлов с использованием символьных ссылок на /dev/null

Интересный трюк для защиты от создания нежелательных файлов. Если вы хотите гарантированно предотвратить создание определенного файла, вы можете сделать вместо него символьную ссылку на /dev/null.

▪️ Пример: Блокировка истории команд MySQL

Предположим, вы хотите предотвратить сохранение истории команд MySQL в файле .mysql_history. Для этого создайте символьную ссылку на /dev/null:


ln -s /dev/null $HOME/.mysql_history


Теперь любая попытка записи в файл истории будет перенаправляться в /dev/null, что фактически означает, что данные не сохранятся.

▪️ Почему это работает?

Символьная ссылка на /dev/null гарантирует, что любые данные, которые будут пытаться записаться в указанный файл, сразу же уничтожатся. Это надежный способ избежать случайного или нежелательного сохранения информации.

▪️ Альтернативные методы

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

Использование символьной ссылки на /dev/null является простым и надежным решением, которое помогает избежать этих проблем.

#linux

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥1👌1
Запрет на посещение определенных сайтов

В некоторых случаях может возникнуть необходимость запретить доступ к определенным сайтам на компьютерах с Windows. Это можно сделать с помощью PowerShell, используя изменения в файле hosts или настройки брандмауэра Windows. Рассмотрим оба подхода.

1️⃣ Изменение файла hosts

Файл hosts позволяет перенаправить запросы на определенные домены на локальный IP-адрес (127.0.0.1), effectively блокируя доступ к этим сайтам. Добавление записи в файл hosts:


$hostsPath = "C:\Windows\System32\drivers\etc\hosts"
$sitesToBlock = @(
"127.0.0.1 networkadmin.ru",
"127.0.0.1 www.networkadmin.ru"
)

Add-Content -Path $hostsPath -Value $sitesToBlock


Это перенаправит все запросы к networkadmin.ru на локальный IP-адрес, effectively блокируя доступ.

2️⃣ Использование брандмауэра Windows

Брандмауэр Windows позволяет создавать правила, запрещающие доступ к определенным доменам. Создание правила через PowerShell:


New-NetFirewallRule -DisplayName "BlockExample" -Direction Outbound -RemoteAddress networkadmin.ru -Action Block


Эта команда создаст правило, блокирующее исходящие соединения с networkadmin.ru

3️⃣ Проверка и удаление правил

Просмотр существующих правил:


Get-NetFirewallRule | Where-Object { $_.DisplayName -eq "BlockExample" }


Удаление правила:


Remove-NetFirewallRule -DisplayName "BlockExample"


#network #windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22😁31🤡1
⚙️ Как отключить и включить ядра процессора на Linux и Windows

Иногда для диагностики или тестирования требуется временно отключить ядра процессора, чтобы проверить, как поведёт себя система при снижении доступных ресурсов. В Linux это можно сделать с помощью утилиты chcpu, а на Windows - через настройки системы или с помощью PowerShell.

📱 Отключение ядер процессора в Linux

1️⃣ Посмотрим доступные ядра:


lscpu | grep list

On-line CPU(s) list: 0-3


Это означает, что доступны 4 ядра с номерами от 0 до 3.

2️⃣ Отключим 2 ядра (например, 2 и 3):


chcpu -d 2,3

CPU 2 disabled
CPU 3 disabled


3️⃣ Проверяем состояние ядер:


lscpu | grep list

On-line CPU(s) list: 0,1
Off-line CPU(s) list: 2,3


Теперь в системных утилитах, таких как htop или top, будут видны только активные процессоры. При нагрузочном тестировании производительность заметно снизится, хотя не обязательно пропорционально уменьшенному количеству ядер - всё зависит от используемых приложений.

4️⃣ Возвращаем ядра в онлайн:


chcpu -e 2,3

CPU 2 enabled
CPU 3 enabled


📱 Отключение ядер процессора в Windows

▪️ Выключение. Для управления ядрами через PowerShell используйте команду bcdedit:


bcdedit /set numproc 2


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

▪️ Включение. Чтобы вернуть использование всех ядер:


bcdedit /deletevalue numproc


#linux #windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
👁 Блокировка сканирования портов с помощью iptables

С помощью iptables можно настроить эффективную защиту, которая будет блокировать доступ для тех, кто пытается стучаться к закрытым портам. Рассмотрим пример для сервера, где запущен OpenVPN на портах TCP и UDP 34881. Настроим временный бан на 10 минут для любых IP-адресов, обращающихся к закрытым портам.

▪️ Настройка правил блокировки

1️⃣ Блокировка для TCP:


# Блокируем IP с повторным доступом к закрытым портам
iptables -A INPUT -m recent --rcheck --seconds 600 --name BANPORT -j DROP

# Добавляем IP в список блокировки при доступе к любым портам, кроме 34881
iptables -A INPUT -p tcp -m multiport ! --dports 34881 -m recent --set --name BANPORT -j DROP

# Разрешаем доступ только к порту 34881
iptables -A INPUT -p tcp --syn -m multiport --dports 34881 -j ACCEPT


2️⃣ Блокировка для UDP:


# Блокируем IP с повторным доступом к закрытым портам
iptables -A INPUT -m recent --rcheck --seconds 600 --name BANPORT -j DROP

# Добавляем IP в список блокировки при доступе к любым портам, кроме 34881
iptables -A INPUT -p udp -m multiport ! --dports 34881 -m recent --set --name BANPORT -j DROP

# Разрешаем доступ только к порту 34881
iptables -A INPUT -p udp -m multiport --dports 34881 -j ACCEPT


Использование модуля multiport позволяет удобно задавать список портов через запятую. Например, если у вас несколько разрешённых портов, вы можете указать их так: --dports 22,80,443.

▪️ Управление заблокированными IP

1️⃣ Посмотреть список заблокированных адресов:


cat /proc/net/xt_recent/BANPORT


2️⃣ Удалить конкретный IP из списка:


echo -1.1.1.1 > /proc/net/xt_recent/BANPORT


3️⃣ Очистить весь список блокировки:


echo > /proc/net/xt_recent/BANPORT


✍️ Как это работает?

📍 Модуль recent: используется для отслеживания активности IP-адресов. Если адрес обращается к запрещённому порту, он заносится в список блокировки (BANPORT).
📍 Правило DROP: блокирует весь входящий трафик от адресов из списка BANPORT в течение 10 минут (600 секунд).
📍 Разрешение через ACCEPT: обеспечивает доступ только к указанным портам.

#linux #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍103
Media is too big
VIEW IN TELEGRAM
Cимулятор интернет-провайдера

Tower Networking Inc. - это реалистичный симулятор управления сетевой инфраструктурой в многоквартирном жилом комплексе. Вам предстоит прокладывать кабели, настраивать маршрутизаторы, подключать свитчи и патч-панели, тестировать сети и устранять неисправности. Но есть парочка нюансов:

🔴 Доступна только в Steam
🔴 Только для Windows

В общем, если вам хочется ещё больше сетевых проблем - скачивайте и наслаждайтесь "рабочими буднями" даже в свободное время!

И да, ты можешь играть в сисадмина пока работаешь сисадмином! 🧠

Играем здесь 🖼️

#game

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥1
❤️ Подписание PowerShell скриптов для безопасного выполнения

По умолчанию в десктопных версиях Windows политика Execution Policy блокирует выполнение PowerShell скриптов, чтобы предотвратить запуск потенциально опасного кода. Для создания безопасной среды администраторы могут подписывать все скрипты с помощью сертификатов.

Шаги для подписания PowerShell скриптов

1️⃣ Получение сертификата: Чтобы подписать скрипты, требуется сертификат типа Code Signing. Его можно, например, сгенерировать самостоятельно (самоподписанный сертификат).

2️⃣ Подпись PowerShell скрипта: Используйте командлет Set-AuthenticodeSignature, чтобы подписать скрипт (например, noscript.ps1) с помощью сертификата, хранящегося в локальном хранилище:


$file = "C:\Scripts\noscript.ps1"
$cert = Get-ChildItem Cert:\CurrentUser\My | Where-Object { $_.Subject -like "*CodeSigning*" }
Set-AuthenticodeSignature -FilePath $file -Certificate $cert


3️⃣ Добавление доверия сертификату: Чтобы компьютеры доверяли подписанным скриптам:

Убедитесь, что открытый ключ сертификата добавлен в список доверенных корневых сертификатов (Trusted Root CA) или в раздел Trusted Publishers на клиентских устройствах. Для централизованного развертывания можно использовать GPO.

4️⃣ Изменение политики выполнения: Настройте PowerShell для разрешения запуска только подписанных скриптов:


Set-ExecutionPolicy AllSigned -Force


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

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


#windows #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
😀 Netcat: универсальный инструмент для работы с сетью

Netcat (или просто nc) - старая, но невероятно полезная утилита командной строки в Linux. Это универсальный инструмент для работы с сетью, который позволяет устанавливать TCP-соединения, отправлять и принимать UDP-пакеты, сканировать порты, проверять настройки фаервола и даже передавать файлы. Сегодня расскажу про основные возможности netcat и примеры его использования.

1️⃣ Проверка доступности порта. Самый простой вариант использования nc - проверить, открыт ли порт на удалённом сервере:


nc -vz 10.10.10.10 139

Connection to 10.10.10.10 139 port [tcp/*] succeeded!


-v - выводит отладочную информацию
-z - активирует режим сканирования без установления соединения

2️⃣ Сканирование диапазона портов. Netcat можно использовать для быстрого сканирования портов, не прибегая к nmap:


nc -vz 10.10.10.10 1-1023 2>&1 | grep succeeded

Connection to 10.10.10.10 135 port [tcp/*] succeeded!
Connection to 10.10.10.10 139 port [tcp/*] succeeded!
Connection to 10.10.10.10 445 port [tcp/*] succeeded!


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

3️⃣ Отправка UDP-пакетов. Netcat также поддерживает работу с UDP. Чтобы отправить UDP-пакет на указанный порт, добавьте ключ -u:


nc -zvu 192.168.1.1 53

Connection to 192.168.1.1 53 port [udp/domain] succeeded!


Однако netcat не лучший инструмент для сканирования UDP-портов, так как статус может быть неточным. Для таких задач лучше использовать nmap, zmap или masscan.

4️⃣ Проверка фаервола. Netcat позволяет запустить простой сервер на нужном порту, чтобы проверить настройки фаервола:


nc -lvp 11222

Ncat: Listening on 0.0.0.0:11222


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


nc -v 10.10.10.20 11222

Connection to 10.10.10.20 11222 port [tcp/*] succeeded!


Если соединение установлено, значит, фаервол не блокирует этот порт. Это удобный способ диагностики при настройке сетевых правил.

5️⃣ Передача файлов через netcat. Netcat можно использовать для передачи файлов по сети.

На сервере (приём файла):


nc -lvp 11222 > received.txt


На клиенте (отправка файла):


nc -v 10.10.10.20 11222 < info.txt


Таким способом можно передавать любые файлы, не только текстовые.

6️⃣ Копирование диска по сети. С помощью nc можно передавать даже образы дисков:

Сервер (приём образа диска):


nc -lvp 11222 > /backup/sda.img.gz


Клиент (отправка образа):


dd if=/dev/sda | gzip -c | nc 10.10.10.20 11222


Однако удобнее использовать SSH:


dd if=/dev/sda | ssh root@10.10.10.20 "dd of=/dev/sda"


7️⃣ Запуск простого веб-сервера. Netcat можно использовать в качестве мини-веб-сервера:


while true; do nc -lp 80 < /var/www/html/index.html; done


После этого по IP-адресу сервера будет открываться указанная HTML-страница.

#linux #utils

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
😅 TrafficToll: Легкий способ ограничить сетевую скорость на сервере

Если есть необходимость в ограничении скорости сетевого интерфейса или конкретного процесса на локальном сервере, отличным выбором станет open-source инструмент TrafficToll. Это простой в использовании инструмент, написан он на Python и позволяет гибко управлять сетевым трафиком.

📤 Установка TrafficToll. TrafficToll легко установить через pip. Для Debian и других дистрибутивов на базе Debian процесс установки выглядит так:


apt install python3-pip
pip3 install traffictoll


⚙️ Настройка конфигурации. Для управления используется YAML-конфигурация. Пример минимального конфига:


download: 1mbps
upload: 1mbps
download-minimum: 100kbps
upload-minimum: 100kbps


download и upload: максимальная скорость загрузки и отправки данных.
download-minimum и upload-minimum: минимальная гарантированная скорость.

Создайте файл конфигурации, например, eth0.yaml, и запустите TrafficToll:


tt eth0 eth0.yaml


Теперь сетевой интерфейс eth0 будет ограничен скоростью в 1 МБ/с. Если вы попробуете скачать или загрузить данные через этот интерфейс, скорость будет соответствовать установленным ограничениям.

❗️ Особенности и работа с процессами

TrafficToll позволяет не только ограничивать скорость для интерфейсов, но и применять ограничения к отдельным процессам. Примеры таких настроек вы найдёте в официальной документации инструмента.

Примечание: В конфигурации единицы измерения указываются в нижнем регистре (mbps, kbps), хотя корректное написание подразумевает использование заглавных букв (MBps). Тем не менее, инструмент работает и с текущей нотацией.

TrafficToll отлично подходит для:

Тестирования сетевой производительности.
Ограничения сетевой скорости для задач, требующих определённого уровня контроля.
Постоянных ограничений для конкретных процессов или интерфейсов.

Ссылка на GitHub 👩‍💻

#network #utils

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🔒 Как настроить автоматический аудит безопасности в Windows с PowerShell

Аудит безопасности в Windows позволяет отслеживать важные события, связанные с входами в систему, изменениями прав пользователей и подозрительной активностью. Настроим автоматический аудит с помощью PowerShell.

1️⃣ Включаем аудит безопасности через PowerShell. Сначала проверим, включён ли аудит событий в системе:


auditpol /get /category:*


Если нужные категории отключены, активируем их:


auditpol /set /category:"Logon/Logoff" /success:enable /failure:enable
auditpol /set /category:"Account Management" /success:enable /failure:enable
auditpol /set /category:"Policy Change" /success:enable /failure:enable


Эти команды включат логирование успешных и неудачных входов, изменений учётных записей и изменений в политиках безопасности.

2️⃣ Просмотр событий аудита в журнале Windows. Логи хранятся в Просмотре событий (Event Viewer) → Журналы Windows → Безопасность.

Вывести последние 10 записей журнала можно так:


Get-WinEvent -LogName Security | Select-Object -First 10


Фильтруем события, например, неудачные входы (Event ID 4625):


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


3️⃣ Настройка автоматического оповещения о событиях. Можно настроить автоматическое уведомление о подозрительной активности, например, при 5 неудачных попытках входа.

Скрипт, который отправит уведомление по email:


$events = Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4625 }
if ($events.Count -ge 5) {
Send-MailMessage -To "admin@networkadmin.ru" -From "server@networkadmin.ru" -Subject "Обнаружены попытки взлома" -Body "Более 5 неудачных попыток входа" -SmtpServer "smtp.networkadmin.ru"
}


Этот скрипт можно добавить в планировщик заданий и запускать раз в 5 минут.

4️⃣ Включение расширенного аудита через GPO. Для более детального логирования можно включить расширенный аудит через редактор групповых политик (gpedit.msc):

Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Локальные политики → Политика аудита

Настроим аудит:

Аудит входа в систему → Успех/Отказ
Аудит управления учётными записями → Успех
Аудит изменений политики → Успех


Применяем политику:


gpupdate /force


#windows #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22💩1
👁 Удаленный мониторинг компьютеров в сети через PowerShell

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

1️⃣ Проверка доступности компьютера в сети. Перед началом работы проверяем, онлайн ли машина:


Test-Connection -ComputerName PC-001 -Count 2


Аналог ping, но с возможностью использования в скриптах. Если нужно проверить группу компьютеров:


$computers = @("PC-001", "PC-002", "PC-003")
$computers | ForEach-Object { Test-Connection -ComputerName $_ -Count 1 -Quiet }


Вернёт $true/$false для каждого устройства.

2️⃣ Мониторинг загрузки процессора и памяти. Получить текущую нагрузку процессора на удалённом ПК можно так:


Get-WmiObject Win32_Processor -ComputerName PC-001 | Select-Object LoadPercentage


Для оперативной памяти:


Get-WmiObject Win32_OperatingSystem -ComputerName PC-001 |
Select-Object TotalVisibleMemorySize, FreePhysicalMemory


Вернёт общий объём RAM и количество свободной памяти.

3️⃣ Проверка состояния дисков.


Get-WmiObject Win32_LogicalDisk -ComputerName PC-001 -Filter "DriveType=3" |
Select-Object DeviceID, VolumeName, @{Name="FreeSpace(GB)";Expression={$_.FreeSpace/1GB -as [int]}}


Покажет свободное место в ГБ для каждого логического диска.

4️⃣ Просмотр работающих процессов. Для диагностики зависаний можно посмотреть, какие процессы загружают систему:


Get-Process -ComputerName PC-001 | Sort-Object CPU -Descending | Select-Object -First 10


Топ-10 процессов по загрузке CPU.

Завершить зависший процесс на удалённом ПК:


Invoke-Command -ComputerName PC-001 -ScriptBlock { Stop-Process -Name notepad -Force }


5️⃣ Мониторинг логов событий. Анализ логов поможет выявить ошибки и подозрительные события:


Get-WinEvent -LogName System -ComputerName PC-001 | Select-Object -First 10


Выведет 10 последних событий из журнала System.

Фильтрация только ошибок (Critical, Error, Warning):


Get-WinEvent -LogName System -ComputerName PC-001 |
Where-Object { $_.Level -le 3 } | Select-Object TimeCreated, Id, Message -First 10


6️⃣ Запуск команд на удалённых машинах. Если надо выполнить PowerShell-команду на нескольких ПК сразу:


Invoke-Command -ComputerName PC-001,PC-002 -ScriptBlock { Get-Service | Where-Object {$_.Status -eq 'Stopped'} }


Выведет список остановленных сервисов.

7️⃣ Мониторинг в реальном времени.


while ($true) {
Get-WmiObject Win32_Processor -ComputerName PC-001 | Select-Object LoadPercentage
Start-Sleep -Seconds 5
}


Будет обновлять данные каждые 5 секунд.

#windows #monitoring

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
🐶 Методы скрытия открытых портов на сервере

1️⃣ Использование Port Knocking. Это механизм, при котором порт остаётся закрытым до тех пор, пока клиент не отправит правильную последовательность пакетов.

🔧 Как настроить (пример для iptables):


iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -p udp --dport 22 -j DROP
iptables -A INPUT -m recent --rcheck --seconds 60 --name KNOCKED -j ACCEPT
iptables -A INPUT -p tcp --dport 2222 -m recent --set --name KNOCKED -j DROP


🔹 Сначала сервер блокирует порт 22 (SSH).
🔹 Если кто-то стучится в порт 2222, ему временно разрешается доступ к 22-му.
🔹 Без правильного "стука" SSH остаётся невидимым.

Автоматизировать можно с помощью knockd или fwknop.

2️⃣ Маскировка открытых портов (TARPIT, REJECT). Чтобы сбить с толку сканеры, можно замедлить или исказить их работу:

Используем iptables TARPIT (затягивает соединение):


iptables -A INPUT -p tcp --dport 23 -j TARPIT


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

Или можно возвращать ложный REJECT:


iptables -A INPUT -p tcp --dport 22 -j REJECT --reject-with tcp-reset


Вместо стандартного "порта нет", сервер отправит "порт есть, но сбрасывает соединение", что может запутать.

3️⃣ Использование iptables для блокировки сканеров. Если ваш сервер замечает подозрительную активность (сканирование портов, частые подключения), можно автоматически блокировать IP.

Простой бан подозрительных сканеров:


iptables -A INPUT -m recent --rcheck --seconds 60 --name PORTSCAN -j DROP
iptables -A INPUT -p tcp --syn -m recent --set --name PORTSCAN -j DROP


🔹 Если IP подключается слишком часто - он автоматически блокируется на 60 секунд.
🔹 Можно адаптировать под другие сервисы (например, SSH).

5️⃣ Размещение сервисов за реверс-прокси (Cloudflare, Nginx, HAProxy). Если сервис не должен быть доступен напрямую, можно скрыть его за прокси-сервером.

🔧 Настройка Nginx как реверс-прокси для скрытия SSH:


server {
listen 443 ssl;
server_name myserver.com;

location /ssh {
proxy_pass http://127.0.0.1:2222;
}
}


Теперь SSH-доступ будет идти через HTTPS (порт 443), а не через стандартный 22-й.

#security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍161
⬆️ Как повысить редакцию Windows без переустановки

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

📱 Повышение редакции в Windows 10/11

Для десктопных версий Windows (например, переход с Home на Pro) используется встроенная утилита changepk.exe.

Пример команды:


changepk.exe /ProductKey XXXXX-XXXXX-XXXXX-XXXXX-XXXXX


XXXXX-XXXXX-XXXXX-XXXXX-XXXXX — это ключ продукта. Можете использовать ваш лицензионный ключ или универсальный ключ. Универсальный ключ обычно применяется при установке Windows, если вы выбираете пункт "Пропустить ввод ключа".

▪️ Шаги для изменения редакции Windows 10/11:

1. Откройте командную строку с правами администратора.
2. Выполните команду с вашим ключом.
3. Перезагрузите систему по запросу.

▪️ Апгрейд редакции в Windows Server. Для серверных систем (например, Windows Server Standard или Evaluation → Datacenter) используется утилита DISM. Пример процесса:

Узнать текущую редакцию:


DISM /online /Get-CurrentEdition


Посмотрить доступные редакции для апгрейда:


DISM /online /Get-TargetEditions


Выполнить апгрейд до нужной редакции:


DISM /online /Set-Edition:ServerDatacenter /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula


#utils #windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Когда сеть настолько серьезная, что даже пакеты проходят с документами

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26😁18🫡7👍4
🗑 Удаление UWP/APPX приложений в Windows 10/11: что стоит знать

Windows 10 и 11 по умолчанию поставляются с предустановленными UWP (Universal Windows Platform) приложениями, такими как погода, новости, карты и другие. Часто эти приложения оказываются ненужными и только занимают место. Вот как можно управлять ими через PowerShell.

▪️ Просмотр установленных UWP приложений. Чтобы увидеть список всех установленных UWP приложений для всех пользователей, выполните команду:


Get-AppxPackage -AllUsers | Select-Object Name, PackageFullName


▪️ Удаление приложений из профилей пользователей. Если нужно удалить конкретное приложение (например, погода):


Get-AppxPackage *Weather* -AllUsers | Remove-AppxPackage -AllUsers


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


Get-AppxProvisionedPackage -Online | Where-Object { $_.PackageName -like "*Weather*" } | Remove-AppxProvisionedPackage -Online


❗️ Осторожно: системные UWP приложения. В Windows 11 многие элементы управления системой также представлены в виде UWP приложений, например: панель «Параметры» и другие различные системные службы.

Удаление таких приложений может привести к проблемам с работой. Чтобы вывести список системных UWP приложений, используйте команду:


Get-AppxPackage | Where-Object { $_.SignatureKind -eq "System" }


#windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
🔹 Скрытие процессов в Linux: как работают rootkits и методы обнаружения

Rootkits - вредоносные программы, которые маскируют своё присутствие в системе. Они могут скрывать файлы, процессы и сетевые соединения, подменять команды и даже обходить антивирусные проверки.

▪️ Как rootkits скрывают процессы?

1. Подмена системных вызовов (syscalls). Rootkits перехватывают вызовы getdents(), readdir(), ps, top, скрывая нужные процессы.
2. Изменение ядра (Kernel Mode Rootkits). Загружаются как модули ядра (.ko файлы) и модифицируют функции ядра, скрывая свою активность.
3. Хук системы /proc. Подменяют содержимое /proc/[PID], скрывая процесс от стандартных утилит.
4. Использование LD_PRELOAD. Библиотеки динамической подгрузки подменяют поведение системных команд без изменения ядра.


▪️ Как обнаружить скрытые процессы?

1️⃣ Проверка /proc вручную


ls -al /proc | grep -vE "^[d-]r--r--r--"


Если процесс не виден стандартными командами (ps aux, top), но есть его директория в /proc — это подозрительно.

2️⃣ Сравнение выводов разных утилит


ps aux | wc -l && ls /proc | grep -E '^[0-9]+$' | wc -l


Числа должны совпадать. Если в /proc больше процессов, чем показывает ps, возможно, система заражена.

3️⃣ Использование утилиты chkrootkit


chkrootkit | grep INFECTED


Простая проверка на известные rootkits.

4️⃣ Использование rkhunter


rkhunter --check


Проверяет системные файлы на несанкционированные изменения.

5️⃣ Анализ ядра и загруженных модулей


lsmod | grep -i rootkit


Некоторые rootkits могут маскироваться, но подозрительные модули можно выявить через lsmod.

▪️ Как защититься?

Использовать SELinux/AppArmor для ограничения доступа к системным ресурсам.
Регулярно проверять целостность файлов (aide, tripwire).
Зарпетить загрузку новых модулей ядра (echo 1 > /proc/sys/kernel/modules_disabled).
Следить за сетевой активностью (netstat -tulnp | grep LISTEN).
Использовать Linux-утилиты безопасности (auditd, Sysmon for Linux).

#linux #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
✔️ Изменение приоритета процессов в Windows через PowerShell

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

▪️ Просмотр приоритетов процессов. Чтобы увидеть текущие приоритеты всех запущенных процессов, выполните команду:


Get-WmiObject Win32_Process | Select-Object Name, ProcessId, Priority | Sort-Object Priority -Descending


Приоритет отображается числом:

256 - Реального времени (RealTime)
128 - Высокий (High)
32 - Выше нормального (AboveNormal)
8 - Обычный (Normal)
4 - Ниже нормального (BelowNormal)
1 - Фоновый (Idle)


▪️ Изменение приоритета процесса. Допустим, нужно повысить приоритет процесса notepad.exe до Высокого (High):


(Get-Process notepad).PriorityClass = "High"


Если процессу нужно снизить нагрузку, например, до Ниже нормального (BelowNormal):


(Get-Process notepad).PriorityClass = "BelowNormal"


▪️ Изменение приоритета по PID. Если у вас есть идентификатор процесса (PID), можно изменить его приоритет напрямую:


(Get-Process -Id 1234).PriorityClass = "AboveNormal"


▪️ Автоматическое изменение приоритета. Можно настроить PowerShell-скрипт, который будет снижать приоритет ресурсоёмких процессов, например chrome.exe:


$processes = Get-Process chrome -ErrorAction SilentlyContinue
if ($processes) {
$processes | ForEach-Object { $_.PriorityClass = "BelowNormal" }
}


Добавьте этот скрипт в Планировщик заданий (Task Scheduler), чтобы он запускался автоматически при старте системы.

▪️ Изменение приоритета через WMI. Если Get-Process не срабатывает, можно использовать WMI:


(Get-WmiObject Win32_Process -Filter "Name='notepad.exe'").SetPriority(128)


Здесь 128 - это High, 8 - Normal, 4 - BelowNormal и т. д.

#windows #processes

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2👎1
🔵 Использование firewalld вместо iptables: плюсы, минусы и примеры настройки

Firewalld - это альтернатива iptables, используемая в большинстве дистрибутивов Linux (RHEL, CentOS, Fedora). Она предоставляет более гибкий и удобный способ управления правилами файрвола. Разберёмся, чем firewalld лучше (или хуже) iptables и как его настраивать.

Плюсы firewalld

🔹 Динамическая настройка - изменения применяются без перезапуска служб и потери соединений.
🔹 Зональная модель безопасности - можно настроить разные уровни защиты для интерфейсов.
🔹 Поддержка rich rules и сервисов - удобнее управлять сложными правилами.
🔹 Интеграция с D-Bus - позволяет управлять файрволом программно.

Минусы firewalld

🔸 Меньший контроль - iptables даёт более низкоуровневый доступ к правилам.
🔸 Сложнее отладки - из-за зональной модели иногда сложно понять, какие правила срабатывают.
🔸 Привычка к iptables - многим администраторам привычнее классическая iptables.

▪️ Примеры настройки firewalld

1️⃣ Открываем порт. Открываем порт 80 для HTTP:


sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload


2️⃣ Закрываем порт. Закрываем порт 22 (SSH):


sudo firewall-cmd --permanent --remove-port=22/tcp
sudo firewall-cmd --reload


3️⃣ Добавляем сервис. Firewalld поддерживает предопределённые сервисы. Например, открываем SSH:


sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload


Посмотреть список доступных сервисов можно так:


firewall-cmd --get-services


4️⃣ Используем зоны безопасности. Firewalld использует зоны для управления трафиком. Например, перемещаем интерфейс eth0 в зону "public":


sudo firewall-cmd --permanent --zone=public --change-interface=eth0
sudo firewall-cmd --reload


Посмотреть текущую зону интерфейса:


firewall-cmd --get-active-zones


5️⃣ Создаём кастомное правило. Блокируем весь трафик с IP 192.168.1.100:


sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" drop'
sudo firewall-cmd --reload


6️⃣ Временные правила. Можно временно открыть порт (например, на 5 минут):


sudo firewall-cmd --add-port=8080/tcp --timeout=300


После истечения времени правило удалится автоматически.

▪️ Конвертация iptables в firewalld. Если у вас уже настроен iptables, можно конвертировать его правила в формат firewalld:


iptables-save > rules.v4
iptables-restore < rules.v4


Затем вручную перенести правила в firewalld, используя firewall-cmd.

#linux #network

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎1
Вы не понимаете, это другое

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁42😢1