Авторский блог про сетевое и системное администрирование.
Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Post #383
3.2K

- 🔥 26
- 😁 18
- 🫡 7
- 👍 4
NE @networkadminru
Showing posts older than #384 · Back to latest

changepk.exe.
changepk.exe /ProductKey XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
DISM /online /Get-CurrentEdition
DISM /online /Get-TargetEditions
DISM /online /Set-Edition:ServerDatacenter /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula
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
knockd или fwknop.
iptables -A INPUT -p tcp --dport 23 -j TARPIT
iptables -A INPUT -p tcp --dport 22 -j REJECT --reject-with tcp-reset
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
server {
listen 443 ssl;
server_name myserver.com;
location /ssh {
proxy_pass http://127.0.0.1:2222;
}
}
Test-Connection -ComputerName PC-001 -Count 2
$computers = @("PC-001", "PC-002", "PC-003")
$computers | ForEach-Object { Test-Connection -ComputerName $_ -Count 1 -Quiet }
Get-WmiObject Win32_Processor -ComputerName PC-001 | Select-Object LoadPercentage
Get-WmiObject Win32_OperatingSystem -ComputerName PC-001 |
Select-Object TotalVisibleMemorySize, FreePhysicalMemory
Get-WmiObject Win32_LogicalDisk -ComputerName PC-001 -Filter "DriveType=3" |
Select-Object DeviceID, VolumeName, @{Name="FreeSpace(GB)";Expression={$_.FreeSpace/1GB -as [int]}}
Get-Process -ComputerName PC-001 | Sort-Object CPU -Descending | Select-Object -First 10
Invoke-Command -ComputerName PC-001 -ScriptBlock { Stop-Process -Name notepad -Force }
Get-WinEvent -LogName System -ComputerName PC-001 | Select-Object -First 10
Get-WinEvent -LogName System -ComputerName PC-001 |
Where-Object { $_.Level -le 3 } | Select-Object TimeCreated, Id, Message -First 10
Invoke-Command -ComputerName PC-001,PC-002 -ScriptBlock { Get-Service | Where-Object {$_.Status -eq 'Stopped'} }
while ($true) {
Get-WmiObject Win32_Processor -ComputerName PC-001 | Select-Object LoadPercentage
Start-Sleep -Seconds 5
}
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
Get-WinEvent -LogName Security | Select-Object -First 10
Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4625 } | Format-Table TimeCreated, Message -AutoSize
$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"
}
Аудит входа в систему → Успех/Отказ
Аудит управления учётными записями → Успех
Аудит изменений политики → Успех
gpupdate /force
apt install python3-pip
pip3 install traffictoll
download: 1mbps
upload: 1mbps
download-minimum: 100kbps
upload-minimum: 100kbps
eth0.yaml, и запустите TrafficToll:
tt eth0 eth0.yaml
netcat и примеры его использования.
nc -vz 10.10.10.10 139
Connection to 10.10.10.10 139 port [tcp/*] succeeded!
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!
nc -zvu 192.168.1.1 53
Connection to 192.168.1.1 53 port [udp/domain] succeeded!
nmap, zmap или masscan.
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!
nc -lvp 11222 > received.txt
nc -v 10.10.10.20 11222 < info.txt
nc -lvp 11222 > /backup/sda.img.gz
dd if=/dev/sda | gzip -c | nc 10.10.10.20 11222
dd if=/dev/sda | ssh root@10.10.10.20 "dd of=/dev/sda"
while true; do nc -lp 80 < /var/www/html/index.html; done
$file = "C:\Scripts\script.ps1"
$cert = Get-ChildItem Cert:\CurrentUser\My | Where-Object { $_.Subject -like "*CodeSigning*" }
Set-AuthenticodeSignature -FilePath $file -Certificate $cert
Set-ExecutionPolicy AllSigned -Force
После выполнения всех шагов компьютеры смогут запускать только те скрипты, которые подписаны доверенными сертификатами.
Если содержимое скрипта будет изменено, подпись станет недействительной, и политика заблокирует его запуск.
iptables можно настроить эффективную защиту, которая будет блокировать доступ для тех, кто пытается стучаться к закрытым портам. Рассмотрим пример для сервера, где запущен OpenVPN на портах TCP и UDP 34881. Настроим временный бан на 10 минут для любых IP-адресов, обращающихся к закрытым портам.
# Блокируем 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
# Блокируем 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
cat /proc/net/xt_recent/BANPORT
echo -1.1.1.1 > /proc/net/xt_recent/BANPORT
echo > /proc/net/xt_recent/BANPORT
chcpu, а на Windows - через настройки системы или с помощью PowerShell.
lscpu | grep list
On-line CPU(s) list: 0-3
chcpu -d 2,3
CPU 2 disabled
CPU 3 disabled
lscpu | grep list
On-line CPU(s) list: 0,1
Off-line CPU(s) list: 2,3
htop или top, будут видны только активные процессоры. При нагрузочном тестировании производительность заметно снизится, хотя не обязательно пропорционально уменьшенному количеству ядер - всё зависит от используемых приложений.
chcpu -e 2,3
CPU 2 enabled
CPU 3 enabled
bcdedit:
bcdedit /set numproc 2
bcdedit /deletevalue numproc
hosts или настройки брандмауэра Windows. Рассмотрим оба подхода.
$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
New-NetFirewallRule -DisplayName "BlockExample" -Direction Outbound -RemoteAddress networkadmin.ru -Action Block
Get-NetFirewallRule | Where-Object { $_.DisplayName -eq "BlockExample" }
Remove-NetFirewallRule -DisplayName "BlockExample"
/dev/null.
ln -s /dev/null $HOME/.mysql_history
ssh-keygen -t rsa -b 4096
ssh-copy-id user@server_ip
/etc/ssh/sshd_config измените строку: PasswordAuthentication no/etc/ssh/sshd_config: Port 2222ufw для настройки правил:
sudo ufw allow from 192.168.1.100 to any port 2222
sudo ufw enable
sudo apt install libpam-google-authenticator
sudo apt install fail2ban
/etc/fail2ban/jail.local:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
/etc/ssh/sshd_config измените: PermitRootLogin noauditd. Он предоставляет детальное логирование и позволяет отслеживать действия пользователей в системе.
sudo apt update
sudo apt install auditd audispd-plugins
echo '-a always,exit -F arch=b64 -S execve -k commands' | sudo tee -a /etc/audit/audit.rules
#!/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
Test-ComputerSecureChannel -Verbose
Test-ComputerSecureChannel -Repair -Credential networkadminru\\admin
system.run. Он позволяет выполнять любые Bash-скрипты на мониторируемых хостах и возвращать их результаты для последующего анализа.1. В веб-интерфейсе Zabbix перейдите в раздел "Конфигурация" -> "Хосты".
2. Выберите хост и перейдите в раздел "Элементы данных".
3. Нажмите "Создать элемент данных" и заполните поля:
• Имя: Назовите элемент, например, "Custom Bash Script".
• Ключ: Укажитеsystem.run["/path/to/your/script.sh"].
4.. Тип информации: Выберите тип возвращаемых данных (например, числовое значение).
#!/bin/bash
netstat -an | grep ':80' | wc -l
#!/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
chage позволяет управлять сроком действия пароля и учетной записи пользователя.
chage -l <имя_пользователя>
sudo chage -E <YYYY-MM-DD> <имя_пользователя>
sudo chage -E 2025-02-01 testuser
sudo chage -E -1 <имя_пользователя>
sudo useradd -e <YYYY-MM-DD> <имя_пользователя>
sudo useradd -e 2025-02-01 tempuser
sudo usermod -e <YYYY-MM-DD> <имя_пользователя>
chage, useradd и usermod позволяют гибко настраивать учетные записи в Linux, обеспечивая необходимый уровень контроля и защиты.
Get-NetIPInterface
Set-NetIPInterface -InterfaceAlias "Имя адаптера" -InterfaceMetric 10
Set-NetIPInterface -InterfaceAlias "Ethernet" -InterfaceMetric 10
Get-NetIPInterface