Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
171 - Telegram Web
Telegram Web
💡 Как я ускоряю поиск по логам в Linux

Сегодня покажу вам приём, который не раз спасал мне нервы при анализе логов.

Представим, что нужно найти ошибки в большом лог-файле, например /var/log/nginx/access.log. Обычно все начинают с:


cat access.log | grep "500"


Но это медленно. Лучше так:


grep "500" access.log


Ещё лучше — использовать less и внутри него grep-подобный поиск:


less +F access.log


А затем нажать /500 — и перейти по найденным совпадениям. Работает быстро, особенно на больших логах.

А если хочется реального профита, то вот мой любимый трюк:


grep -E "500|502|503" access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head


Что делает эта команда:
- Ищет ошибки 500/502/503
- Извлекает IP-адреса (предположим, это первое поле)
- Считает, сколько раз каждый IP дал ошибку
- Показывает топ атакующих/плохих клиентов

Эта команда — мини-аналитика в одну строку. Часто помогает сразу понять, где проблема.


#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👋 Привет, коллеги!

Сегодня хочу поделиться тем, что стоит автоматизировать на сервере в первую очередь. Это база, которая поможет вам сэкономить кучу времени и спать спокойно 😴


🔧 Что обязательно автоматизировать:

1. Резервное копирование (бэкапы)
> Без бэкапов нет продакшена. Это аксиома.

- Автоматизируйте регулярные бэкапы баз данных, конфигов, важных каталогов.
- Используйте rsnapshot, borg, restic, duplicity.
- Настройте оповещения об ошибках и ротацию архивов.


2. Установка и обновление пакетов
> Старое ПО = потенциальная уязвимость.

- unattended-upgrades (Debian/Ubuntu), dnf-automatic (RHEL/AlmaLinux).
- Обновляйте хотя бы критические патчи безопасности.


3. Мониторинг и алерты
> Узнать о проблеме до пользователей — 🔥

- Prometheus + Alertmanager, Zabbix, Netdata, Uptime Kuma.
- Telegram, Email, Slack — что угодно, лишь бы вы не прозевали тревогу.


4. Ротация и очистка логов
> Логи не должны съедать диск.

- logrotate с автоочисткой по размеру или сроку.
- Логи от багов нужны, но не навсегда 😉


5. Автоматический рестарт сервисов
> Упал — поднялся.

- systemd с Restart=on-failure, watchdog-скрипты.
- Плюс мониторинг: жив ли Nginx, работает ли БД.


6. Создание пользователей и SSH-ключей
> Добавлять вручную — долго и скучно.

- Скрипты, шаблоны, Ansible, cloud-init — на выбор.


7. Конфигурации и деплой
> Один конфиг — много серверов.

- Используйте Ansible, SaltStack, Chef, bash-скрипты с шаблонами.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🔧 Сегодня покажу вам простой способ ограничить ресурсы для процессов с помощью cgroups v2

Иногда на сервере какой-нибудь процесс начинает «жрать» всё подряд — CPU, память, I/O. Чтобы таких ситуаций избежать, можно использовать cgroups v2.

📦 Пример: ограничим использование CPU и памяти для скрипта


# Создаём директорию cgroup
CGROUP=/sys/fs/cgroup/mylimit
mkdir $CGROUP

# Ограничим память до 200M
echo $((200*1024*1024)) > $CGROUP/memory.max

# Ограничим CPU до 20% от одного ядра
echo 20000 > $CGROUP/cpu.max # 20000 микросекунд из 100000

# Запускаем процесс с этими ограничениями
echo $$ > $CGROUP/cgroup.procs
./your_script.sh


🔍 Проверить потребление можно так:

cat $CGROUP/memory.current
cat $CGROUP/cpu.stat


💡 Советы:
- Работает только если у вас включён cgroup v2 (можно проверить mount | grep cgroup)
- Удобно использовать вместе с systemd, если вы хотите применить это к сервисам (systemctl set-property)

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🛡 Сегодня расскажу, как быстро проверить безопасность конфигурации SSH-сервера

Открытый SSH — это ворота на сервер. И если конфигурация слабая, то защита — как дверь из картона. Проверим, насколько хорошо у вас настроен sshd.

Вот простой чеклист, что стоит сделать:


# 1. Отключить root-доступ
PermitRootLogin no

# 2. Включить только ключевую авторизацию
PasswordAuthentication no

# 3. Установить ограничение по IP (если возможно)
# Можно использовать firewall или AllowUsers с указанием IP

# 4. Ограничить количество подключений:
MaxAuthTries 3
LoginGraceTime 30
MaxSessions 2

# 5. Изменить порт (не security, но уменьшает шум)
Port 2222


🔍 Проверка: используем ssh-audit


pip install ssh-audit
ssh-audit your.server.com


Он покажет, какие алгоритмы шифрования используются, какие из них устарели, и что можно улучшить.

🛠 А ещё можно включить Fail2Ban или iptables для защиты от перебора паролей, если всё-таки оставляете PasswordAuthentication yes.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🛠 strace: незаменимый инструмент для отладки зависших процессов

Привет, друзья! Сегодня расскажу про одну из моих любимых утилит — strace. Она помогает понять, что именно делает (или не делает) ваш процесс.

Представьте: процесс висит. Никаких логов. CPU не грузит. Что делать?

Запускаем strace:


sudo strace -p <PID>


Где <PID> — идентификатор зависшего процесса.

📌 Вы сразу увидите системные вызовы, которые делает процесс: может, он ждёт файл, завис на сокете или лочит какой-то ресурс.

Если хотите записать всё в лог:


sudo strace -ff -o debug_log -p <PID>


- -ff — создаёт отдельный файл для каждого потока.
- -o — префикс имени лог-файла (например, debug_log.1234).

💡 А чтобы отследить запуск с нуля (например, подозрительный скрипт):


sudo strace -f -o trace.log ./script.sh


Очень удобно для анализа поведения сторонних бинарников или скриптов.


Пользуйтесь и делитесь с коллегами — strace может сэкономить часы диагностики! А вы часто его используете? Напишите в комментах, как он вас выручал 😎

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
Systemd вместо cron: как настроить таймеры правильно

Привет, друзья! Сегодня покажу, как можно элегантно заменить cron с помощью systemd-таймеров. Это удобно, прозрачно и гибко — особенно в серверной среде, где важен контроль над логами, зависимостями и запуском задач.



💡 Почему лучше, чем cron?

- логи идут через journalctl
- удобная отладка: systemctl status, list-timers
- можно задать зависимости и условия запуска



🛠 Пример: скрипт бэкапа раз в день

Допустим, у нас есть скрипт /usr/local/bin/backup.sh. Создадим два юнит-файла:

🔹 backup.service

[Unit]
Description=Daily backup job

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh


🔹 backup.timer

[Unit]
Description=Run daily backup

[Timer]
OnCalendar=*-*-* 03:00
Persistent=true

[Install]
WantedBy=timers.target


📌 OnCalendar=*-*-* 03:00 — запуск каждый день в 03:00
📌 Persistent=true — если сервер был выключен в это время, задача выполнится при следующем старте



🚀 Активация:


sudo systemctl daemon-reload
sudo systemctl enable --now backup.timer


Проверить активные таймеры:


systemctl list-timers


Посмотреть логи:


journalctl -u backup.service



С systemd всё под контролем! А ты уже пробовал такие таймеры вместо cron?

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🔒 Как быстро заблокировать IP через nftables без перезапуска правил

Иногда нужно срочно отрубить наглого сканера или атакующего IP, но без пересборки всего firewall-правила. Вот как это делается динамически, через nftables.



🔹 Шаг 1: создаём таблицу и цепочку (если ещё нет)

nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; }


🔹 Шаг 2: создаём сет blocked_ips

nft add set inet filter blocked_ips { type ipv4_addr \; flags timeout \; }

> timeout позволяет задавать TTL для блокировок.

🔹 Шаг 3: добавляем правило на блокировку из сета

nft add rule inet filter input ip saddr @blocked_ips drop


🔹 Шаг 4: баним IP с TTL 1 час

nft add element inet filter blocked_ips { 192.0.2.123 timeout 1h }




💡 Зачем это?
— Блокировка IP на лету, без перезагрузки firewall.
— Удобно использовать в связке со скриптами, fail2ban и даже вручную.
— Работает быстро и безболезненно для остальных правил.

🛑 Best practice: не делай flush ruleset, если используешь stateful блокировку — можно потерять connection tracking и нарушить трафик.


Сохрани, пригодится для быстрой обороны 🔥
А ты так блочишь IP?

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
💥 WireGuard: Быстрая настройка через systemd без ifupdown и Netplan

Хочешь минимализм без танцев с бубном? Вот как быстро поднять WireGuard-туннель чисто через systemd — особенно удобно на серверах без NetworkManager.


📌 1. Создай конфиг /etc/wireguard/wg0.conf:


[Interface]
Address = 10.0.0.1/24
PrivateKey = <your_private_key>
ListenPort = 51820

[Peer]
PublicKey = <peer_pub_key>
AllowedIPs = 10.0.0.2/32


⚠️ Убедись, что chmod 600 wg0.conf — приватный ключ должен быть защищён.


📌 2. Активируй через systemd:


systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0


👉 Это создаст интерфейс wg0 и применит всё из конфига.


📌 3. Проверка статуса:


wg show


Покажет активные пиры, handshake, трафик и т.д.


💡 Трюк:
Если используешь systemd-networkd, можешь вместо wg-quick собрать туннель через .netdev и .network — это даёт больше контроля и не требует wg-quick.


🧠 Когда использовать:
– Минималистичные серверы без NM и Netplan
– Контейнеры и чёткие systemd-based системы
– Желание поднять VPN при boot без сторонних скриптов

Сохрани, пригодится 😉

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
💡 Как быстро сбросить зависший SSH-сеанс без ожидания таймаута

Иногда SSH-соединение замирает (например, при потере сети), и попытка закрыть его обычным Ctrl+C не работает. Не жди таймаута — есть правильный способ разорвать зависший сеанс.

🔧 Решение: спец-последовательность OpenSSH

Нажми Enter, затем ~. (тильда + точка) — и SSH сразу завершится:


<Enter>~.


🔍 Как это работает

~. — escape-последовательность, встроенная в OpenSSH-клиент. Работает только в начале новой строки.

👉 Другие полезные комбинации:
- ~? — список доступных escape-команд
- ~# — переслать локальный порт (вручную)
- ~& — фоновый режим

⚠️ Работает только в интерактивных SSH-сессиях, не в скриптах.

🧠 Зачем знать:
- Мгновенное закрытие зависших сессий
- Удобно при обрывах VPN/моб. сети
- Не нужен kill -9 на терминале

Сохрани, пригодится в дороге или на выезде 🚀

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
⚠️ systemd-networkd и маршруты: частая ошибка с static routes

Если ты настраиваешь сеть через systemd-networkd и вручную прописываешь маршруты, будь внимателен: непрописанный gateway может сломать всё подключение.

📄 Пример .network файла с правильным static route:


[Match]
Name=eth0

[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1

[Route]
Destination=10.10.0.0/16
Gateway=192.168.1.1


🔍 Типичная ошибка:

[Route]
Destination=10.10.0.0/16

Без Gateway или PreferredSource маршрут будет нерабочим или странно себя вести.

📌 Зачем и когда это нужно:
— Когда нужно направить часть трафика (например, к VPN или другим подсетям) в обход основного маршрута.
— systemd сам не всегда умеет «додумать», как доставить пакет, если маршрут не полный.

🧪 Проверь после старта:

networkctl status eth0
ip route show dev eth0


💡Проверяй journalctl -u systemd-networkd — там видно, почему не применились маршруты.

Сохрани, чтобы не отлаживать сеть часами 😬
А ты правильно пишешь [Route]?

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🛡️ Быстрая проверка 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 чтобы не заливать логи:


-m limit --limit 5/min


🧠 Сохрани, пригодится при разборе сетевых траблов.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🔥 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 гарантирует, что интерфейс поднимется после появления сети.
- Restart=on-failure полезен, если туннель может не подняться с первого раза (например, из-за временного недоступного пира).

⚠️ Без этого юнита туннель часто не поднимается после ребута на headless-серверах.

💡 Совет: проверь DNS внутри туннеля — в wg0.conf можно указать DNS=..., если используешь resolvconf или systemd-resolved.

Сохрани, пригодится 👇

#Linux@linux_odmin #VPN@linux_odmin #Systemd@linux_odmin

👉 @linux_odmin
💡 WireGuard через IPv6-only VPS с доступом к IPv4-сайтам

Если у тебя есть VPS только с IPv6 (например, Hetzner), но нужно обеспечить выход в IPv4-интернет — этот пост для тебя.

🔧 Настраиваем NAT64 + DNS64 через WireGuard

1. Устанавливаем и настраиваем WireGuard на сервере (IPv6-only VPS):

apt install wireguard


/etc/wireguard/wg0.conf:

[Interface]
Address = fd00::1/64
ListenPort = 51820
PrivateKey = <серверный_приватный_ключ>
PostUp = sysctl -w net.ipv6.conf.all.forwarding=1
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <клиентский_публичный_ключ>
AllowedIPs = fd00::2/128


2. Добавляем NAT64 с Tayga:

apt install tayga


/etc/tayga.conf:

tun-device nat64
ipv4-addr 192.0.2.1
prefix 64:ff9b::/96



mkdir -p /var/spool/tayga
tayga --mktun
ip link set nat64 up
ip addr add 192.0.2.1 dev nat64
ip addr add 64:ff9b::1 dev nat64
ip route add 64:ff9b::/96 dev nat64


3. Настраиваем DNS64 (через bind9 или unbound):
Пример настройки unbound:

apt install unbound

В unbound.conf:

module-config: "dns64 validator iterator"
dns64-prefix: 64:ff9b::/96


4. WireGuard на клиенте:

[Interface]
PrivateKey = <клиентский_ключ>
Address = fd00::2/128

[Peer]
PublicKey = <серверный_ключ>
Endpoint = [IPv6-адрес]:51820
AllowedIPs = ::/0


⚙️ Зачем это?
Так можно использовать дешевый IPv6-only VPS как NAT64-шлюз и обойтись без дорогого IPv4-адреса. Подходит для роутера или ноутбука за CGNAT.

💡 Фишка:
Можно комбинировать с systemd-resolved или dnsmasq для более гибкого DNS64.

💥 Сохрани, пригодится

#Linux@linux_odmin #WireGuard@linux_odmin #Сеть@linux_odmin

👉 @linux_odmin
Диагностика “висящих” 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


Когда использовать:
– Приложение “висит” при подключении;
– Подозрение на сетевое истощение ресурсов;
– Нужна быстрая отладка без лишнего софта.

Сохрани, пригодится в бою.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🔐 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 после нескольких неудачных попыток входа.
– Автоматическая защита от брутфорса 24/7.
– Простая интеграция с iptables/nftables.

💡 Трюк: Используй bantime = 3600m и recidive-джейл для агрессивных нарушителей.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
Как быстро сбросить сетевой интерфейс без перезапуска системы

Иногда после правки конфигурации сети нужно *мягко* применить изменения без ребута. Особенно на продакшене.

🔧 Простейший способ — с помощью 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

(первое — release, второе — новый запрос)

Важно:
- Для виртуальных интерфейсов (vlan, bridge) могут быть дополнительные зависимости!
- После flush интерфейс теряет все адреса — убедись, что автоматика подтянет их обратно.

Итог: Безопасный способ быстро перезагрузить сетевой стек локально.

Сохрани, пригодится! 🚀

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🔧 Быстрая проверка MTU и поиск проблем с фрагментацией в сети

Иногда нестабильная работа приложений или странные задержки в соединении могут быть связаны с неправильным MTU. Как быстро проверить, где «режется» трафик?

Пошагово:

1. Узнайте текущую MTU на интерфейсе:

ip link show eth0

Ищите строку типа: mtu 1500.

2. Проверьте прохождение пакетов с флагом "Don't Fragment":

ping -M do -s 1472 8.8.8.8

(1472 + 28 байт заголовков = 1500 MTU)

3. Если получаете Frag needed and DF set, уменьшайте -s, пока не пройдут пакеты. Например:

ping -M do -s 1464 8.8.8.8


Зачем это нужно:
MTU mismatch приводит к фрагментации, что убивает производительность VPN, TCP и может ронять нестабильные соединения.

Бонус:
Для автоматизации поиска оптимального MTU:

for i in $(seq 1472 -1 1400); do ping -c1 -M do -s $i 8.8.8.8 >/dev/null && echo "MTU=$(($i+28)) OK" && break; done


📌 Проверь свою сеть — иногда это решает кучу «магических» проблем!

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
Хотите быстро проверить, через какой интерфейс и 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-based routing (PBR) или VRF, команда тоже отразит их влияние!

Сохрани, пригодится на проде. 🔥

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🔥 Когда 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.

Когда применять:
— Отладка проблем доступа
— Проверка, дропает ли iptables нужный трафик
— Точная диагностика без "шума"

⚠️ Не забудьте убрать правило после отладки, иначе лог будет засоряться.

Сохрани, пригодится. Особенно когда "всё открыто, но не работает" 😉

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🔧 Отключаем 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.

📍 Когда применять:
– нет поддержки IPv6 на маршрутизаторах/файрволах;
– жёсткие требования к аудиту/безопасности;
– снижение attack surface.

⚠️ Важно:
Некоторые демоны (например, Postfix, systemd-resolved) могут логировать ошибки при отсутствии IPv6 — проверь логи!

Сохрани, пригодится. А ты полностью отключаешь IPv6?

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
2025/06/15 22:13:53
Back to Top
HTML Embed Code: