Авторский блог про сетевое и системное администрирование.
Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Post #694
2.4K
NE @networkadminru
Showing posts older than #695 · Back to latest
Это PowerShell-скрипт, который автоматизирует процесс сборки сильно урезанной версии Windows 11. Он использует встроенные средства DISM и oscdimg.exe, не требуя никаких внешних утилит. В результате получается компактный ISO-образ, идеально подходящий для тестирования, отладки или развертывания на виртуальных машинах.
apt install shc gcc
script.sh:#!/bin/bash
v=$1
echo "Simple BASH script. Entered VARIABLE: $v"
shc -f -r script.sh
script.sh.x (бинарник) и script.sh.x.c (сгенерированный C). Запуск:./script.sh.x 123
# Simple BASH script. Entered VARIABLE: 123
shc -e 31/12/2025 -m "Срок истек" -f -r script.sh
./script.sh.x # Выдаст сообщение о просрочке
📌 Важное замечание по безопасности
shc - это обфускация, а не криптография. В конечном бинарнике содержимое может быть восстановлено (есть утилиты вроде UnSHc). Также секреты, записанные в скрипт, при выполнении будут лежать в памяти и их можно попытаться снять дампом. Это защита от случайного копирования, но не от целенаправленного анализа.
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
sysctl -p
/etc/default/grub и добавьте в строку:
GRUB_CMDLINE_LINUX="... ipv6.disable=1"
update-grub # Debian/Ubuntu
dpkg-reconfigure grub-pc
grub-mkconfig -o /boot/grub/grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg # RHEL/CentOS
ip a
ss -tulnp
/etc/sysctl.conf:
net.ipv6.conf.eth0.disable_ipv6 = 1
sysctl -w net.ipv6.conf.eth0.disable_ipv6=1
systemd-analyze, который покажет подробную статистику загрузки и поможет найти узкие места.
systemd-analyze
Startup finished in 2.351s (kernel) + 8.512s (userspace) = 10.863s
systemd-analyze blame
systemd-analyze critical-chain
systemd-analyze plot > boot.svg
systemctl disable bluetooth.service
systemctl disable cups.service
systemctl mask service_name
iperf3 -s
iperf3 -c 192.168.1.10
[ 5] 0.00-10.00 sec 1.09 GBytes 935 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.09 GBytes 935 Mbits/sec receiver
-R - измерение скорости в обратном направлении (reverse).
iperf3 -c 192.168.1.10 -R
iperf3 -c 192.168.1.10 -u -b 500M
-f - единицы измерения (m для Mbits, M для MBytes):
iperf3 -c 192.168.1.10 -f m
iperf3 -s & ssh user@192.168.1.10 'iperf3 -c $(hostname -I | awk "{print \$1}") -P 4'
/etc/crontab
/etc/cron.d/
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
/var/spool/cron/crontabs
crontab -u user01 -l
systemctl list-timers
systemctl list-timers --all
systemctl status logrotate.timer
apt-daily.timer
fstrim.timer
logrotate.timer
anacron.timer
apt install at
atq
echo "shutdown -h now" | at -m 10:20
/var/spool/cron/atjobs/
или /var/spool/at/
ss -ntu | grep ':22'
netstat -ntu | grep ':22'
lsof -ni TCP:22
/var/log/auth.log или /var/log/secure), но для других сервисов можно включить логирование через firewall.
iptables -N ssh_in
iptables -A INPUT -p tcp --dport 22 -j ssh_in
iptables -A ssh_in -j LOG --log-level info --log-prefix "--IN--SSH-- "
iptables -A ssh_in -j ACCEPT
cat /proc/net/nf_conntrack | grep 'dport=22'
nmap -Pn -sS -T4 10.20.1.5
nmap -sV --top-ports 100 10.20.1.0/24
nmap -p- -T4 10.20.1.5
sudo nmap -sU --top-ports 50 10.20.1.5
sudo nmap -A 10.20.1.5
nmap --script ssl-enum-ciphers,http-title -p 443,80 10.20.1.5
nmap -sV -oA scans/site_scan 10.20.1.0/24
site_scan.nmap, .gnmap и .xml - будет удобно для отчетов.
nmap -sn 10.20.1.0/24
taskset, которая позволяет как изменять affinity уже работающих процессов, так и запускать новые с заданными ограничениями.
ps aux | grep myapp
pidof myapp
pgrep -f myapp
lscpu | grep -E 'CPU\(s\)|NUMA'
CPU(s): 8
NUMA node0 CPU(s): 0-7
taskset -pc 0-2 1574
pid 1574's current affinity list: 0-7
pid 1574's new affinity list: 0,1,2
Как работает маска?
Каждое ядро - это один бит:
Ядро Маска
0 1
1 2
2 4
3 8
… …
Например:
ядра 1 и 2 = 2 + 4 = 6 → маска 0x06
taskset 1 gzip hugefile
taskset c gzip hugefile
taskset -pc 4-5 $(pidof systemd-journald)
taskset -p $(pidof systemd-journald)
pid 412's current affinity mask: 30
dd if=/dev/urandom of=/tmp/testfile bs=1M count=200
taskset 3 xz -T2 /tmp/testfile
apt install tmux
Ctrl+B % - вертикальное разделениеCtrl+B " - горизонтальное разделениеCtrl+B :) вводим:
:setw synchronize-panes
journalctl -u ssh
journalctl -u nginx -u php-fpm
journalctl -u nginx -f
journalctl --since "2025-10-01" --until "2025-10-15"
journalctl --since "1 hour ago"
journalctl --since yesterday
journalctl -u ssh | grep "Failed password"
journalctl -p err -u ssh
journalctl -b # текущая загрузка
journalctl -b -1 # предыдущая загрузка
journalctl -b -2 # еще раньше
journalctl -u nginx --since today > nginx.log
journalctl --vacuum-time=7d # удалить старше 7 дней
journalctl --vacuum-size=1G # ограничить объем
sudo nft add table inet filter
sudo nft 'add chain inet filter input { type filter hook input priority 0; policy drop; }'
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input ip protocol icmp accept
sudo nft add rule inet filter input tcp dport {22,80,443} accept
Что тут происходит:
принимаем все соединения в состоянии ESTABLISHED и RELATED
разрешаем локальный интерфейс (lo)
разрешаем ping (ICMP)
открываем SSH, HTTP и HTTPS
sudo nft add rule inet filter input tcp dport 22 ct state new limit rate 10/minute accept
sudo nft add rule inet filter input tcp dport 22 drop
# блокируем пакеты без флагов (NULL scan)
sudo nft add rule inet filter input tcp flags == 0 drop
# блокируем XMAS-скан
sudo nft add rule inet filter input tcp flags & (fin|psh|urg) == (fin|psh|urg) drop
sudo nft list ruleset
sudo sh -c "nft list ruleset > /etc/nftables.conf"
sudo systemctl enable nftables
sudo systemctl restart nftables
ip route add blackhole 10.20.30.40
ip route show | grep blackhole
ip route add blackhole 203.0.113.0/24
ip -6 route add blackhole 2001:db8::/32
ip route del blackhole 203.0.113.0/24
ip route add prohibit 10.0.0.0/8
ip route add unreachable 10.0.0.0/8
ethtool eth0
ethtool -s eth0 speed 100 duplex full autoneg off
ethtool -k eth0
ethtool -K eth0 tx off rx off
ethtool --test eth0
ethtool -t eth0 offline
ethtool eth0 | grep detected
ethtool -S eth0
ethtool -g eth0
ethtool -G eth0 rx 4096 tx 4096
ethtool -s eth0 wol d