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.

Команду MSG или PowerShell-скрипты.


▪️ Команда MSG

Отправка сообщения конкретному пользователю:
MSG username /server:hostname "Сервер будет перезагружен через 10 минут. Закройте документы."

Здесь username — имя пользователя, а hostname — имя удалённого сервера.

Отправка сообщения всем пользователям сервера:
MSG * /server:hostname "Срочное сообщение всем!"

* указывает, что сообщение получат все активные пользователи сервера.

Ставьте 🔥, и следующий пост будет про PowerShell скрипт.

#msg #windows #microsoft

🧑‍💻 NetworkAdmin | ⚙️ EasyTools
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥68👍3👎1
🔔 Как отправить красивые уведомления через PowerShell

Для отправки уведомлений пользователям удалённых Windows-компьютеров можно использовать скрипт PowerShell RemoteSendToastNotification.ps1.

▪️ Основные функции скрипта:

• Создание уведомлений с заголовком, текстом, иконками.
• Поддержка кнопок действий (например, открыть ссылку).
• Отправка на удалённые компьютеры через PowerShell Remoting.

▪️ Пример использования:

Уведомление о перезагрузке сервера:
.\RemoteSendToastNotification.ps1 -ComputerName "hostname" `
-Title "Внимание!" `
-Message "Сервер будет перезагружен через 10 минут. Сохраните данные." `
-IconPath "C:\Images\warning.png"


Интерактивное уведомление с кнопкой:
.\RemoteSendToastNotification.ps1 -ComputerName "hostname" `
-Title "Обновление системы" `
-Message "Нажмите для подробностей." `
-ActionButton @{ "Подробнее" = "https://example.com" }


#powershell #windows #microsoft

🧑‍💻 NetworkAdmin | ⚙️ EasyTools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥5
🎄 Уважаемые подписчики!

С наступающим вас Новым годом!
Пусть он принесет вам радость, тепло и исполнение всех желаний.

🍾 — за Вас.

Хочу сообщить, что я ухожу на небольшие каникулы до 9 января. Вернусь к вам полным сил и вдохновения!


До встречи в новом году! 🗓
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾27👍14🎄13👎1
🧹 Как автоматически очистить диск при срабатывании триггера в Zabbix

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

▪️ Настройка триггера в Zabbix:

Создайте триггер, который будет срабатывать при достижении порога свободного места на диске. Например, если свободное место на /dev/sda1 меньше 10%:


{server:vfs.fs.size[/,pfree].last()}<10


▪️ Скрипт для создания бэкапа и перемещения файлов: Создайте скрипт на сервере, который будет выполнять резервное копирование и перенос файлов:


#!/bin/bash

# Директория для архивирования
SOURCE_DIR="/dev/sda1/path/to/files"
BACKUP_DIR="/backup/$(date +%Y%m%d)"
REMOTE_SERVER="user@remote_server"
REMOTE_PATH="/remote/backup/path"

# Создаем директорию для бэкапа
mkdir -p $BACKUP_DIR

# Архивируем файлы старше 1 месяца
find $SOURCE_DIR -type f -mtime +30 -print0 | tar -czvf $BACKUP_DIR/backup_$(date +%Y%m%d).tar.gz --null -T -

# Переносим архив на удаленный сервер
scp $BACKUP_DIR/backup_$(date +%Y%m%d).tar.gz $REMOTE_SERVER:$REMOTE_PATH

# Удаляем файлы старше 1 месяца из исходной директории
find $SOURCE_DIR -type f -mtime +30 -delete

# Логирование
echo "Backup and cleanup completed on $(date)" >> /var/log/backup_cleanup.log


SOURCE_DIR - путь к директории на /dev/sda1, откуда будут архивироваться файлы.
BACKUP_DIR - локальная директория для временного хранения архивов.
REMOTE_SERVER и REMOTE_PATH - параметры удаленного сервера и пути, куда будут перемещаться архивы.


▪️ Автоматизация через Zabbix: Добавьте действие (action) в Zabbix, которое будет запускать скрипт при срабатывании триггера:

Перейдите в Configuration > Actions.
Создайте новое действие и настройте его так, чтобы оно выполнялось при срабатывании триггера на малое количество места.
В секции Operations укажите команду для выполнения скрипта:

/path/to/backup_noscript.sh


▪️ Тестирование и настройка уведомлений: Проверьте срабатывание триггера и убедитесь, что скрипт выполняется корректно. Дополнительно можно настроить уведомления о выполнении операции через почту или мессенджер.

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

#backup #linux #zabbix

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥5
🔄 Резервное копирование драйверов в 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