Открытый канал ID 76989105838120

Linux: Системный администратор

Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀

Авторский канал действующего админа 👨🏼‍💻

Каналов в рубрике
1 730
Место этого канала
№ 119
Открыть рубрику →

Публикации за период

По реакциям

Поиск и вся лента — после бесплатной регистрации. Свои даты — по подписке; владелец канала видит их бесплатно. Сортировка по реакциям — по подписке. Зарегистрироваться

Загрузка…

🚨 iptables: как быстро сбросить соединения от IP-нарушителя

Когда в логи сыпется подозрительная активность от одного IP (DOS, скан, brute-force) — не всегда нужно ждать, пока сработает fail2ban. Можно сразу убить соединения и запретить новые.

🔧 Быстрые действия вручную:

# 1. Сбросить активные соединения от IP
conntrack -D -s 1.2.3.4

# 2. Заблокировать весь трафик от него (до перезапуска iptables)
iptables -I INPUT -s 1.2.3.4 -j DROP


📦 Убедитесь, что установлен пакет conntrack (обычно conntrack-tools).

🧠 Зачем и когда:

* моментально разрывает все TCP/UDP-сессии;
* эффективно при атаках с одного IP;
* можно автоматизировать в реакции на события (через fail2ban action, auditd или кастомный watchdog-скрипт).

⚠️ Не забудь внести в постоянные правила, если блок должен сохраниться после ребута (iptables-save / nftables / firewalld).

Сохрани, чтобы не паниковать в следующий инцидент.

👉 @channel_linux_admin
Просмотры: 264
Перейти в пост Открыть в MAX Сообщить о неточности
🧵 Диагностика странных зависаний сетевых соединений: "всё пингуется, но не работает"

💥 Бывает, что ping идёт, но ssh, curl или apt зависают. Проблема может быть в MTU / фрагментации пакетов.


🔍 Проверка: запусти ping с флагами "do not fragment" и максимальным размером пакета:

ping -M do -s 1472 <IP>
Если видишь Frag needed and DF set, MTU слишком большой. Уменьшай -s, пока не дойдёт.

🧠 Пример:

* 1472 + 28 (заголовки IP+ICMP) = 1500 — стандартный MTU
* если пакет не проходит, а проходит только при -s 1392, значит MTU на пути — 1420 (возможно, GRE/IPsec/WireGuard)


🔧 Решение — задай правильный MTU на интерфейсе (или wg):

sudo ip link set dev eth0 mtu 1420
Для WireGuard:

[Interface]
MTU = 1420
Или временно:

sudo wg set wg0 mtu 1420

💡 Когда применять:
– нестабильный VPN
– apt/ssh/rsync "зависает"
– TCP-соединения обрываются при загрузке больших данных
– странное поведение в Docker/K8s с overlay-сетями


Проверка MTU — обязательный шаг в нетипичной сетевой отладке.
Сохрани, пригодится.

👉 @channel_linux_admin
Просмотры: 485
Перейти в пост Открыть в MAX Сообщить о неточности
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

Английский с нуля 🇬🇧
https://max.ru/UchuEnglish

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Rust📌
https://max.ru/channel_rust_lib

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных

Городские📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24
Просмотры: 482
Перейти в пост Открыть в MAX Сообщить о неточности
💥 Как настроить 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


🔎 Шаг 3: проверь статус и интерфейс

networkctl status ens33
ip a s ens33
ip r

🧠 Когда применять:
— на headless-серверах
— в минималистичных образах
— если хочешь контроль и простоту без NM

🔥 Трюк: systemd-networkd автоматически применяет маршруты из [Route] при поднятии интерфейса — без лишнего скриптинга.

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

👉 @channel_linux_admin
Просмотры: 458
Перейти в пост Открыть в MAX Сообщить о неточности
🔧 Отключаем 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 — проверь логи!

👉 @channel_linux_admin
Просмотры: 596
Перейти в пост Открыть в MAX Сообщить о неточности
🔥 Когда 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 нужный трафик
— Точная диагностика без "шума"

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

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

👉 @channel_linux_admin
Просмотры: 772
Перейти в пост Открыть в MAX Сообщить о неточности
Хотите быстро проверить, через какой интерфейс и 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, команда тоже отразит их влияние!

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

👉 @channel_linux_admin
Просмотры: 637
Перейти в пост Открыть в MAX Сообщить о неточности
Как быстро сбросить сетевой интерфейс без перезапуска системы

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

🔧 Простейший способ — с помощью 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 интерфейс теряет все адреса — убедись, что автоматика подтянет их обратно.

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

Сохрани, пригодится! 🚀
Просмотры: 714
Перейти в пост Открыть в MAX Сообщить о неточности
🔐 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-джейл для агрессивных нарушителей.
Просмотры: 704
Перейти в пост Открыть в MAX Сообщить о неточности
Диагностика “висящих” 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


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

Сохрани, пригодится в бою.
Просмотры: 658
Перейти в пост Открыть в MAX Сообщить о неточности
Вся лента — после бесплатной регистрации
ВКонтакте Телеграм Одноклассники
Избранное в datool.ru

Следите за каналом в личном кабинете

Зарегистрируйтесь в datool.ru, чтобы добавить канал «Linux: Системный администратор» в избранное и отслеживать его показатели.

Зарегистрироваться
Для владельцев каналов

Подтвердите свой канал

Войдите или зарегистрируйтесь в datool.ru, затем добавьте нашего бота в канал по инструкции в личном кабинете. После проверки владения замок исчезнет и вам станет доступно управление каналом.

Войти или зарегистрироваться

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти