nginx: ограничение запросов (rate limiting)

limit_req в nginx режет частоту запросов прямо на уровне веб-сервера — без iptables и без отдельного WAF. http { # зона на 10 МБ, лимит — 10 запросов/сек на каждый IP limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s; server { location /api/ { limit_req zone=api burst=20 nodelay; limit_req_status 429; proxy_pass http://backend; } } } burst=20 — разрешает кратковременный всплеск в 20 запросов сверх лимита, nodelay — не ставит их в очередь, а пропускает сразу или режет. Без nodelay лишние запросы притормозятся, а не отклонятся. ...

19 июня 2026 г. · llexa

WireGuard: VPN за 4 команды

WireGuard — VPN в ядре Linux с версии 5.6: меньше конфига, выше скорость, никакого OpenSSL-оверхеда. # ключи на каждой стороне wg genkey | tee privatekey | wg pubkey > publickey # /etc/wireguard/wg0.conf — сервер [Interface] PrivateKey = <privatekey> Address = 10.0.0.1/24 ListenPort = 51820 [Peer] PublicKey = <publickey-клиента> AllowedIPs = 10.0.0.2/32 # поднять / погасить туннель wg-quick up wg0 wg-quick down wg0 # текущее состояние: handshake, трафик по пирам wg show Автозапуск — systemctl enable wg-quick@wg0. Если сервер должен форвардить трафик дальше в интернет, не забыть net.ipv4.ip_forward=1 в sysctl и MASQUERADE в nftables/iptables. ...

19 июня 2026 г. · llexa

Новые версии: 12 июня — 19 июня

Новые релизы за неделю — только то, что важно для сервера. nginx 1.30.3 — фикс уязвимости переполнения буфера в обработке HTTP-запросов prometheus alertmanager v0.33.0 — убрали флаг --enable-feature=auto-gomaxprocs prometheus v3.5.4 — security-фикс: утечка secrets через /-/config coreutils v2026.6.16 — новая coreutils-manager disable vscode 1.125.0 kitty v0.47.4 skim v4.8.0 3x-ui v3.3.1 — live config apply, обновлённая geodata v2rayNG 2.2.4 — таргет SDK 37 (Android 17) donutbrowser v0.27.0 — улучшённое управление прокси #linux #sysadmin #releases

19 июня 2026 г. · llexa

bash getopts: парсинг флагов без боли

getopts — встроенная команда bash для разбора флагов вида -v, -f file: while getopts "v:f:h" opt; do case $opt in v) VERBOSE=$OPTARG ;; f) FILE=$OPTARG ;; h) exit 0 ;; esac done shift $((OPTIND - 1)) Двоеточие после буквы (v:, f:) — флаг требует аргумент, без него (h) — просто переключатель. $OPTIND после цикла указывает на первый нефлаговый аргумент, shift сдвигает $1 $2 ... на оставшиеся: ./script.sh -v 3 -f /etc/conf input.txt # $VERBOSE=3 $FILE=/etc/conf $1=input.txt Длинные флаги (--verbose) getopts не понимает — нужен внешний getopt или ручной case. ...

18 июня 2026 г. · llexa

socat: швейцарский нож для сокетов

socat соединяет два потока данных — сокеты, файлы, процессы, устройства: socat TCP-LISTEN:9000,fork,reuseaddr TCP:10.0.0.5:80 # port forward socat - TCP:host:port # интерактивное подключение Передача файла между машинами без scp: socat TCP-LISTEN:9999,fork file:received.tar,create # приёмник socat file:archive.tar TCP:receiver-host:9999 # отправитель TLS-обёртка для нешифрованного сервиса: socat OPENSSL-LISTEN:443,cert=server.pem,fork TCP:localhost:8080 fork обязателен для серверных режимов — без него одно соединение и завершение. Для разовой диагностики хватает nc -zv, socat нужен там, где TLS, UNIX-сокеты или произвольные комбинации источник→приёмник. #linux #network #sysadmin

18 июня 2026 г. · llexa

Архиваторы #4: lz4 — скорость важнее степени

lz4 — архиватор для случаев, когда важна скорость, а не степень сжатия: lz4 file.bin file.bin.lz4 # сжать lz4 -d file.bin.lz4 file.bin # распаковать lz4 -9 file.bin # максимальное сжатие (всё ещё быстро) lz4 -z -f file.bin # перезаписать .lz4 если уже есть С tar: tar -I lz4 -cf archive.tar.lz4 dir/ # упаковать tar -I lz4 -xf archive.tar.lz4 # распаковать Сравнение на 1 ГБ текстовых логов: lz4 -1 0.3 сек 650 МБ zstd -3 1.1 сек 480 МБ zstd -19 18 сек 310 МБ xz -6 22 сек 290 МБ lz4 выигрывает на порядок по скорости, но проигрывает в степени сжатия. Использовать там, где сжатие в реальном времени важнее размера: логи перед отправкой по сети, бэкапы с жёстким временным окном, потоковые пайплайны. ...

18 июня 2026 г. · llexa

inotifywait: события файловой системы в реальном времени

inotifywait из пакета inotify-tools — подписка на события ядра для ФС: apt install inotify-tools # разовое ожидание события inotifywait -e modify /etc/nginx/nginx.conf # непрерывный мониторинг директории с дочерними inotifywait -m -r -e modify,create,delete /var/www/html # авто-перезагрузка при изменении конфига inotifywait -m -e close_write /etc/nginx/ | while read path event file; do echo "$file изменён, перезагружаем nginx..." systemctl reload nginx done Основные события: modify, create, delete, moved_to, close_write, attrib. ...

17 июня 2026 г. · llexa

nmap: сканирование сети с нуля

nmap — стандарт для аудита сети и диагностики портов: nmap 192.168.1.0/24 # пинг всей подсети, живые хосты nmap -sS 192.168.1.1 # SYN-scan (stealth, нужен root) nmap -sV -p 22,80,443 host # версии сервисов на конкретных портах nmap -O host # угадать ОС по TCP fingerprint nmap -p- host # все 65535 портов nmap --open 10.0.0.0/8 # только открытые порты в /8 Полезные скрипты NSE: nmap --script=vuln host # базовая проверка на CVE nmap --script=http-title -p 80 subnet/24 # заголовки всех веб-серверов nmap -sV --script=ssl-cert host # цепочка TLS-сертификата По умолчанию nmap сканирует 1000 самых популярных портов. -p- нужен, если хотите не пропустить нестандартные. ...

17 июня 2026 г. · llexa

Интерактив #1: chmod — права доступа своими руками

Под постом — настоящий терминал. Не картинка, не gif: можно печатать команды и видеть результат сразу. Песочница — каталог ~/project: deploy.sh config.yml secrets/api.key logs/ Доступны ls -l [путь], chmod [-R] <режим> <путь> (восьмеричный или символьный — 750 и u+x,g-w,o= оба работают), stat <путь>, clear, help. Четыре задания по порядку — каждое выполненное подсвечивается зелёным: Сделай deploy.sh исполняемым для владельца, но не для остальных Запри secrets/api.key — права только у владельца Дай группе право на чтение config.yml, но не на запись Закрой саму папку secrets — посторонним вход воспрещён После четырёх — свободная игра, песочница остаётся открытой. ...

17 июня 2026 г. · llexa

Модули ядра: lsmod, modprobe, blacklist

Модули — расширения ядра, загружаемые без перезагрузки: lsmod # список загруженных модулей modinfo drm # параметры, зависимости, описание modprobe br_netfilter # загрузить модуль (+ зависимости) modprobe -r pcspkr # выгрузить rmmod pcspkr # выгрузить без учёта зависимостей Автозагрузка при старте системы: # /etc/modules-load.d/mymodules.conf br_netfilter nf_conntrack # передать параметры при загрузке: # /etc/modprobe.d/iwlwifi.conf options iwlwifi 11n_disable=1 Чёрный список (запрет загрузки): # /etc/modprobe.d/blacklist.conf blacklist pcspkr blacklist nouveau После изменения /etc/modprobe.d/ нужно update-initramfs -u, чтобы initrd подхватил правила. ...

17 июня 2026 г. · llexa