Linux: Системный администратор
Криптовалюты
Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀 Авторский канал действующего админа 👨🏼💻
Загружаем канал…
Сайт использует cookie для работы и аналитики. Мы используем файлы cookie для работы сайта и аналитики посещаемости. Подробнее в ПодробнееПолитике обработки данных и Правилах.
Криптовалюты
Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀 Авторский канал действующего админа 👨🏼💻
🔥 WireGuard через systemd: автоподключение при старте + автоматический рестарт WireGuard крут, но не всегда подключается сам при перезагрузке. Особенно, если интерфейс поднимается раньше, чем сеть. Решение — systemd-сервис с зависимостями. 📌 Настраиваем правильный автозапуск 1. Создай кастомный systemd unit: sudo systemctl edit wg-quick@wg0 2. Вставь следующее: [Unit] Description=WireGuard via wg-quick for %i After=network-online.target Wants=network-online.target [Service] Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target 3. Перезапусти демон systemd: sudo systemctl daemon-reexec 4. Включи автозапуск: sudo systemctl enable wg-quick@wg0 5. Проверь статус: systemctl status wg-quick@wg0 🧠 Зачем это нужно? - After=network-online.target гарантирует, что интерф…
Читать целикомКак быстро сбросить сетевой интерфейс без перезапуска системы Иногда после правки конфигурации сети нужно *мягко* применить изменения без ребута. Особенно на продакшене. 🔧 Простейший способ — с помощью ip: ip link set eth0 down ip addr flush dev eth0 ip link set eth0 up Что делают эти команды: - set down — переводит интерфейс в неактивное состояние. - flush — очищает IP-адреса интерфейса. - set up — активирует интерфейс заново. Когда применять: 🔹 После ручной настройки IP через ip/ifconfig; 🔹 После внесения изменений в /etc/network/interfaces, Netplan, systemd-networkd и пр.; 🔹 Для быстрой переинициализации интерфейса без влияния на другие службы. ⚡ Трюк: если используется DHCP-клиент (dhclient), можно сразу запросить новый IP: dhclient -r eth0 && dhclient eth0 (первое — …
Читать целиком🔐 Fail2Ban для защиты SSH: настройка за 2 минуты SSH — первая цель сканеров и брутфорсеров. Один fail2ban-джейл — и атаки больше не проблема. 🛠 Минимальная настройка fail2ban для SSH: 1. Установи fail2ban (если ещё нет): apt install fail2ban # Debian/Ubuntu dnf install fail2ban # RHEL/AlmaLinux 2. Создай кастомную конфигурацию: cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 3. Включи и настрой SSH-защиту в jail.local: [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log # или /var/log/secure на RHEL maxretry = 5 bantime = 1h findtime = 10m 4. Перезапусти fail2ban: systemctl restart fail2ban 5. Проверка работы: fail2ban-client status sshd 👀 Что это даёт: – Блокирует IP после нескольких неудачных попыток входа. – Автоматическая защита …
Читать целиком🔥 Когда tcpdump врёт: ловим только то, что проходит через iptables Иногда вы запускаете tcpdump, видите трафик — но приложение его не получает. Почему? 📌 tcpdump по умолчанию работает на уровне интерфейса, а не IP-стека. Он видит весь трафик — даже тот, что будет дропнут iptables. 🛠 Как посмотреть только то, что прошло фильтрацию iptables? 1. Создаём временный NFLOG-правилo: iptables -I INPUT -p tcp --dport 22 -j NFLOG --nflog-group 1 2. Слушаем лог-группу с tcpdump: tcpdump -i nflog:1 -nn -vv 3. Потом удалим правило: iptables -D INPUT -p tcp --dport 22 -j NFLOG --nflog-group 1 📎 Что происходит? Правило направляет пакеты, которые дошли до этой цепочки, в NFLOG. А tcpdump уже читает их после обработки iptables. ✅ Когда применять: — Отладка проблем доступа — Проверка, дропае…
Читать целикомДиагностика “висящих” TCP-соединений: как быстро найти виновника Когда приложение “подвисает”, а сеть вроде работает — проверь состояние TCP-соединений. Часто помогает ss. Команда: ss -o state time-wait '( sport = :http or sport = :https )' Покажет TCP-соединения в TIME-WAIT на 80/443 портах. Много? Возможно, приложение не успевает освобождать сокеты. А если хочется увидеть, кто держит ESTABLISHED соединения: ss -tp state established Флаг -p покажет PID/имя процесса — удобно для отладки. Ограничь количество TIME-WAIT через sysctl, если сервер под нагрузкой: sysctl -w net.ipv4.tcp_tw_reuse=1 sysctl -w net.ipv4.tcp_fin_timeout=15 Когда использовать: – Приложение “висит” при подключении; – Подозрение на сетевое истощение ресурсов; – Нужна быстрая отладка без лишнего софта. Сохрани,…
Читать целиком🛡️ Быстрая проверка iptables-правил с логированием трафика Нужно быстро понять, почему пакет не доходит? Добавь временное логирование в iptables — это упростит отладку. 💡 Шаги: 1. Вставь логирующее правило перед DROP: iptables -I INPUT -s 192.168.0.100 -j LOG --log-prefix "DROP DEBUG: " --log-level 4 👉 Меняй -s и -j под нужное направление/адрес. 2. Проверь логи (обычно dmesg или syslog): dmesg | grep "DROP DEBUG" # или grep "DROP DEBUG" /var/log/syslog 3. Удалить правило после отладки: iptables -D INPUT -s 192.168.0.100 -j LOG --log-prefix "DROP DEBUG: " --log-level 4 📌 Зачем и когда: — Удобно при отладке фаервола, особенно при сложных правилах. — Можно логировать и FORWARD/OUTPUT. — Не забудь убрать, чтобы не заспамить логи! 💥 Лайфхак: добавь -m limit чтобы не …
Читать целиком💥 Как настроить systemd-networkd для статического IP и маршрутов Если ты не используешь NetworkManager (например, на серверах), systemd-networkd — отличный выбор. Ниже — минимальная, но рабочая настройка для интерфейса с ручным IP и маршрутами. 📁 Шаг 1: настрой сеть Создай файл: /etc/systemd/network/10-static.network [Match] Name=ens33 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8 [Route] Destination=10.10.0.0/16 Gateway=192.168.1.254 💡 Можно добавить несколько [Route] секций, если нужно. 🔧 Шаг 2: включи systemd-networkd и отключи другие менеджеры systemctl disable --now NetworkManager systemctl enable --now systemd-networkd systemctl enable --now systemd-resolved ⚠️ Проверь, что /etc/resolv.conf ссылается на ../run/systemd/resolve/stub-resolv.conf �…
Читать целиком🔧 Отключаем IPv6 правильно через sysctl — без костылей и багов В некоторых окружениях (legacy-сети, специфичные firewall policy, старые софты) требуется полностью отключить IPv6. Многие делают это через GRUB (ipv6.disable=1), но это не всегда корректно: интерфейсы всё равно могут получать link-local адреса (fe80::/10), что приводит к неожиданностям. 📌 Надёжный способ — через sysctl: cat << 'EOF' > /etc/sysctl.d/99-disable-ipv6.conf net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 EOF sysctl --system 🔥 Не забудь: - Если у тебя кастомные интерфейсы (eth0, ens33, и т.д.) — проверь их через sysctl net.ipv6.conf.<iface>.disable_ipv6. - Также удали ::1 из /etc/hosts, если не нужен loopback IPv6. 📍 Когда применять: – нет…
Читать целиком🔥 Когда tcpdump врёт: ловим только то, что проходит через iptables Иногда вы запускаете tcpdump, видите трафик — но приложение его не получает. Почему? 📌 tcpdump по умолчанию работает на уровне интерфейса, а не IP-стека. Он видит весь трафик — даже тот, что будет дропнут iptables. 🛠 Как посмотреть только то, что прошло фильтрацию iptables? 1. Создаём временный NFLOG-правилo: iptables -I INPUT -p tcp --dport 22 -j NFLOG --nflog-group 1 2. Слушаем лог-группу с tcpdump: tcpdump -i nflog:1 -nn -vv 3. Потом удалим правило: iptables -D INPUT -p tcp --dport 22 -j NFLOG --nflog-group 1 📎 Что происходит? Правило направляет пакеты, которые дошли до этой цепочки, в NFLOG. А tcpdump уже читает их после обработки iptables. ✅ Когда применять: — Отладка проблем доступа — Проверка, дропае…
Читать целикомХотите быстро проверить, через какой интерфейс и IP ваш Linux-сервер выйдет к определённому адресу, без реального подключения? Решение: Используйте ip route get — лёгкая команда для диагностики маршрутизации: ip route get 8.8.8.8 Что покажет: - Какой IP-адрес будет использоваться для исходящего соединения; - Какой сетевой интерфейс (dev eth0 и т.д.); - Какой шлюз (via) задействован. Пример вывода: 8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.10 uid 0 Пояснение: - Полезно для диагностики проблем с маршрутизацией, VPN, балансировкой каналов. - Проверка без реальной отправки пакетов: не создаёт нагрузку и не требует открытых портов. Бонус: Проверить маршрут сразу для нескольких целей: for ip in 8.8.8.8 1.1.1.1; do ip route get $ip; done Важно: Если у вас настроены policy-ba…
Читать целикомКак быстро сбросить сетевой интерфейс без перезапуска системы Иногда после правки конфигурации сети нужно *мягко* применить изменения без ребута. Особенно на продакшене. 🔧 Простейший способ — с помощью ip: ip link set eth0 down ip addr flush dev eth0 ip link set eth0 up Что делают эти команды: - set down — переводит интерфейс в неактивное состояние. - flush — очищает IP-адреса интерфейса. - set up — активирует интерфейс заново. Когда применять: 🔹 После ручной настройки IP через ip/ifconfig; 🔹 После внесения изменений в /etc/network/interfaces, Netplan, systemd-networkd и пр.; 🔹 Для быстрой переинициализации интерфейса без влияния на другие службы. ⚡ Трюк: если используется DHCP-клиент (dhclient), можно сразу запросить новый IP: dhclient -r eth0 && dhclient eth0 (первое — …
Читать целиком🔐 Fail2Ban для защиты SSH: настройка за 2 минуты SSH — первая цель сканеров и брутфорсеров. Один fail2ban-джейл — и атаки больше не проблема. 🛠 Минимальная настройка fail2ban для SSH: 1. Установи fail2ban (если ещё нет): apt install fail2ban # Debian/Ubuntu dnf install fail2ban # RHEL/AlmaLinux 2. Создай кастомную конфигурацию: cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 3. Включи и настрой SSH-защиту в jail.local: [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log # или /var/log/secure на RHEL maxretry = 5 bantime = 1h findtime = 10m 4. Перезапусти fail2ban: systemctl restart fail2ban 5. Проверка работы: fail2ban-client status sshd 👀 Что это даёт: – Блокирует IP после нескольких неудачных попыток входа. – Автоматическая защита …
Читать целиком