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
🔄 Резервное копирование драйверов в Windows

Windows позволяет быстро экспортировать установленные драйверы. Это удобно при переустановке системы или создании резервной копии.

▪️ Экспорт всех драйверов:


Export-WindowsDriver –Online -Destination C:\drivers


Все сторонние драйверы вместе с файлами INF, SYS, CAT и DLL будут экспортированы в указанный каталог.

▪️ Установка драйверов из каталога:


pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install


▪️ Экспорт одного драйвера (например, Realtek):

Найдите имя INF-файла:


Get-WindowsDriver -Online | where {($_.ProviderName -like "Realtek") -and ($_.ClassName -like "Net")}


Экспортируйте драйвер:

pnputil.exe /export-driver oem20.inf C:\drivers\realtek


#windows #backup #powershell

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45
🎧 Установка операционных систем из ISO по сети с помощью iVentoy

iVentoy - это расширение для популярного инструмента Ventoy, которое позволяет загружать и устанавливать операционные системы с ISO-образов по сети (PXE). С его помощью можно быстро развернуть ОС на нескольких машинах без необходимости использования физических носителей.

▪️ Преимущества iVentoy

• Удобство: Не нужно создавать отдельные загрузочные диски для каждого устройства.
• Гибкость: Поддержка множества ISO-образов на одном сервере.
• Скорость: Быстрая установка благодаря сетевому развертыванию.
• Простота настройки: Легко настроить и интегрировать в существующую инфраструктуру.

▪️ Шаги по установке и настройке iVentoy

1️⃣ Подготовка сервера. Убедитесь, что сервер, который вы собираетесь использовать для сетевой загрузки, настроен и доступен по сети. Он должен иметь DHCP-сервер для назначения IP-адресов и TFTP-сервер для передачи файлов.

2️⃣ Установка Ventoy и iVentoy. Скачайте последнюю версию Ventoy с официального сайта и установите её на USB-накопитель или жесткий диск. Затем загрузите iVentoy и скопируйте его файлы в папку с Ventoy.


wget https://github.com/ventoy/Ventoy/releases/download/v1.0.xx/ventoy-x.x.xx-linux.tar.gz
tar -xvf ventoy-x.x.xx-linux.tar.gz
cd ventoy-x.x.xx
sudo sh Ventoy2Disk.sh -i /dev/sdX
wget https://github.com/ventoy/iVentoy/releases/download/v1.0.xx/iventoy-x.x.xx.tar.gz
tar -xvf iventoy-x.x.xx.tar.gz
cp -r iventoy /path/to/ventoy/


3️⃣ Настройка PXE-загрузки. Настройте DHCP-сервер для предоставления информации о загрузке PXE. Добавьте следующий блок в конфигурацию DHCP:

next-server <IP-адрес вашего TFTP-сервера>;
filename "pxelinux.0";

4️⃣ Добавление ISO-образов. Скопируйте необходимые ISO-образы в каталог /ventoy/iso. Убедитесь, что образы поддерживаются Ventoy.

5️⃣ Запуск iVentoy. Перезагрузите сервер и запустите iVentoy. Выберите нужный ISO-образ через сетевую загрузку на клиентских машинах.


sudo ./iventoy --start


#install #oc

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
🕹️ Тестирование пропускной способности интернета через командную строку

Тестирование скорости интернета - важная задача для диагностики сетевых проблем и проверки качества соединения. В Windows и Linux это можно сделать прямо из командной строки, используя различные утилиты и команды. Рассмотрим, как это сделать на обеих платформах.

📱 Тестирование в Windows

1️⃣ Использование PowerShell и Measure-Command:
В Windows PowerShell можно использовать команду Measure-Command, чтобы измерить время, необходимое для загрузки файла.


Measure-Command { Invoke-WebRequest -Uri "http://speedtest.tele2.net/1MB.zip" -OutFile "1MB.zip" }


Эта команда загружает файл размером 1MB и измеряет время, за которое это происходит. На основе этого времени можно вычислить скорость загрузки.

2️⃣ Использование wget или curl:
В Windows 10 и новее wget и curl доступны из коробки.


curl -o nul -w "%{speed_download}\n" http://speedtest.tele2.net/1MB.zip


Команда curl загрузит файл и выведет скорость загрузки.

📱 Тестирование в Linux

1️⃣ Использование wget:
В Linux утилита wget позволяет загружать файлы из интернета и измерять скорость загрузки.


wget --output-document=/dev/null http://speedtest.tele2.net/1MB.zip


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

2️⃣ Использование curl:
curl также можно использовать для тестирования скорости.


curl -o /dev/null -w "\nSpeed: %{speed_download} bytes/sec\n" http://speedtest.tele2.net/1MB.zip


Эта команда загрузит файл и покажет скорость в байтах в секунду.

3️⃣ Использование speedtest-cli:
Утилита speedtest-cli позволяет легко тестировать скорость интернета, подключаясь к ближайшему серверу.


sudo apt install speedtest-cli
speedtest-cli


Команда выведет скорость загрузки и отдачи.

#network #windows #linux

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
⚡️ Рунет умер. Пользователи из России массово жалуются на проблемы со связью. Сбоят операторы связи, соцсети, маркетплейсы, не открываются вообще никакие сайты.

Сейчас вроде бы все оживает..Но аккуратнее в следующий раз с желаниями

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁30🤡4👍3😱1
👑 Изменение приоритета сетевых адаптеров на хосте Windows через PowerShell

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

Шаги для изменения приоритета сетевых адаптеров через PowerShell:

1️⃣ Получение списка сетевых адаптеров. Для начала нужно получить список всех сетевых интерфейсов и их текущие метрики. Это можно сделать с помощью команды:


Get-NetIPInterface


Эта команда выведет таблицу с информацией о всех сетевых интерфейсах, включая их индекс, имя (Alias), состояние, тип интерфейса и текущую метрику (InterfaceMetric).

2️⃣ Изменение метрики сетевого интерфейса. Для изменения приоритета сетевого адаптера нужно изменить его метрику. Чем ниже значение метрики, тем выше приоритет интерфейса. Используйте следующую команду для изменения метрики:


Set-NetIPInterface -InterfaceAlias "Имя адаптера" -InterfaceMetric 10


Замените "Имя адаптера" на имя нужного сетевого интерфейса, а 10 - на желаемое значение метрики. Например:


Set-NetIPInterface -InterfaceAlias "Ethernet" -InterfaceMetric 10


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


Get-NetIPInterface


Проверяем, что метрика интерфейса изменилась на нужное значение.

Изменение приоритета сетевых адаптеров - это быстрый и удобный способ управления сетевыми подключениями. Этот метод позволяет точно настраивать приоритеты и обеспечивает большую гибкость в управлении сетью без необходимости использования графического интерфейса.

#network #windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍182
👩‍💻 Установка срока действия учетной записи в Linux

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

Использование команды chage

Команда chage позволяет управлять сроком действия пароля и учетной записи пользователя.

1️⃣ Просмотр текущих настроек учетной записи:
Чтобы узнать текущие параметры учетной записи, используйте следующую команду:


chage -l <имя_пользователя>


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

2️⃣ Установка срока действия учетной записи:
Чтобы установить дату, после которой учетная запись будет отключена, используйте команду:


sudo chage -E <YYYY-MM-DD> <имя_пользователя>


Например, чтобы отключить учетную запись пользователя testuser 1 февраля 2025 года, выполните:


sudo chage -E 2025-02-01 testuser


3️⃣ Удаление срока действия учетной записи:
Если необходимо снять ограничение по сроку действия учетной записи, используйте:


sudo chage -E -1 <имя_пользователя>


Это отключит автоматическое отключение учетной записи.

Использование useradd и usermod

При создании нового пользователя также можно сразу установить срок действия учетной записи.

1️⃣ Создание пользователя с ограниченным сроком действия:


sudo useradd -e <YYYY-MM-DD> <имя_пользователя>


Например:


sudo useradd -e 2025-02-01 tempuser


2️⃣ Изменение срока действия для существующего пользователя:


sudo usermod -e <YYYY-MM-DD> <имя_пользователя>


Установка срока действия учетной записи - это один из способов управления временными пользователями и повышения безопасности системы. Команды chage, useradd и usermod позволяют гибко настраивать учетные записи в Linux, обеспечивая необходимый уровень контроля и защиты.

#linux #users

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍181
🏳️ Мониторинг в Zabbix с использованием Bash-скриптов

Zabbix предоставляет широкие возможности для мониторинга систем, и одним из самых гибких инструментов является ключ system.run. Он позволяет выполнять любые Bash-скрипты на мониторируемых хостах и возвращать их результаты для последующего анализа.

1️⃣ Настройка элемента данных

Для начала необходимо создать элемент данных, который будет запускать Bash-скрипт:

1. В веб-интерфейсе Zabbix перейдите в раздел "Конфигурация" -> "Хосты".
2. Выберите хост и перейдите в раздел "Элементы данных".
3. Нажмите "Создать элемент данных" и заполните поля:
• Имя: Назовите элемент, например, "Custom Bash Script".
• Ключ: Укажите system.run["/path/to/your/noscript.sh"].
4.. Тип информации: Выберите тип возвращаемых данных (например, числовое значение).


2️⃣ Пример Bash-скрипта для мониторинга

Простой скрипт, который проверяет количество активных соединений к веб-серверу:


#!/bin/bash
netstat -an | grep ':80' | wc -l


Этот скрипт подсчитывает количество активных соединений к порту 80 и возвращает результат.

3️⃣ Расширенные возможности

Для более сложного мониторинга, например, статуса кластера, можно использовать следующий Bash-скрипт:


#!/bin/bash

CLUSTER_NODES=("node1" "node2" "node3")
STATUS=""

for NODE in "${CLUSTER_NODES[@]}"
do
NODE_STATUS=$(ssh $NODE 'systemctl is-active cluster-service')
STATUS+="$NODE: $NODE_STATUS\n"
done

echo -e $STATUS


Этот скрипт подключается к каждому узлу кластера через SSH и проверяет статус службы cluster-service. Результаты возвращаются в формате "имя узла: статус".

#monitoring #zabbix

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍191
👤 Восстановление доверительных отношений с доменом после отката Windows

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

"Не удалось установить доверительные отношения между рабочей станцией и доменом."

Когда компьютер добавляется в домен, для него создается учетная запись с паролем. Этот пароль хранится как на компьютере, так и в базе Active Directory (AD). Если после восстановления из снапшота пароли не совпадают, компьютер не может установить защищенный канал с доменом.

Для восстановления доверительных отношений с доменом и синхронизации пароля компьютера с AD можно использовать PowerShell:

▪️ Проверка статуса доверительных отношений:


Test-ComputerSecureChannel -Verbose


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

▪️ Восстановление доверительных отношений:


Test-ComputerSecureChannel -Repair -Credential networkadminru\\admin


Замените networkadminru\\admin на ваши учетные данные администратора домена. Эта команда попытается восстановить доверительные отношения, синхронизируя пароль компьютера с AD.

Таким образом можно быстро восстановить работоспособность компьютера в домене и избежать дальнейших проблем с доступом.

#domain #windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
👀 Логирование пользовательских сессий в 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