🔒 Автоблокировка SSH-брутфорса через nftables
Даже если у тебя стоит fail2ban - иногда проще и быстрее решить задачу силами самого nftables. Минимум зависимостей, максимум контроля.
Пример: бан по 5 неудачным попыткам за 1 минуту
Как это работает
-
- Если за минуту ≥5 попыток — IP летит в
- Всё внутри одного ruleset’а, без демонов.
👉 Подходит для серверов, где хочется минимализма и нет нужды в сложных паттернах от fail2ban.
👉 Но осторожно: банится любой IP, даже если это сканер мониторинга или кривой клиент.
Сохрани, пригодится 😉
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Даже если у тебя стоит fail2ban - иногда проще и быстрее решить задачу силами самого nftables. Минимум зависимостей, максимум контроля.
Пример: бан по 5 неудачным попыткам за 1 минуту
table inet sshguard {
set ssh_blacklist {
type ipv4_addr
flags timeout
timeout 1h
}
map ssh_counter {
type ipv4_addr : counter
}
chain input {
type filter hook input priority 0;
# Разрешаем локалку и уже забаненных
ip saddr @ssh_blacklist drop
tcp dport 22 ct state new add @ssh_counter { ip saddr } counter
tcp dport 22 ct state new ip saddr @ssh_counter { ip saddr } >= 5 add @ssh_blacklist { ip saddr } drop
# Разрешаем SSH по умолчанию (после фильтра)
tcp dport 22 accept
}
}
Как это работает
-
ssh_counter считает подключения по IP.- Если за минуту ≥5 попыток — IP летит в
ssh_blacklist на 1 час.- Всё внутри одного ruleset’а, без демонов.
👉 Подходит для серверов, где хочется минимализма и нет нужды в сложных паттернах от fail2ban.
👉 Но осторожно: банится любой IP, даже если это сканер мониторинга или кривой клиент.
Сохрани, пригодится 😉
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍2🔥1
🚀 Быстрый способ отследить «зависшие» TCP-сессии
Иногда сервис «висит», но порты открыты и соединения висят в
🔍 Как проверить:
👉 Обрати внимание на колонку
🛠 Что делать:
1. Сбросить проблемные соединения:
2. Добавить sysctl-тюнинг, чтобы ядро не держало «мертвяков» вечно:
💡 Это помогает, если юзеры «обрываются» без выхода или при нестабильных VPN.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Иногда сервис «висит», но порты открыты и соединения висят в
ESTABLISHED. Классика: приложение не отвечает, но сокеты не закрываются.🔍 Как проверить:
ss -tnao state established 'sport = :22'
-tnao - TCP, numeric, all, с таймерами;state established - только активные соединения;'sport = :22' - фильтр по SSH (меняй на свой порт).👉 Обрати внимание на колонку
timer:on (keepalive,...) - соединение живое;on (timewait,...) или долго висит без активности → зомби-сессия.🛠 Что делать:
1. Сбросить проблемные соединения:
ss -K dport = :22 state established
2. Добавить sysctl-тюнинг, чтобы ядро не держало «мертвяков» вечно:
sysctl -w net.ipv4.tcp_keepalive_time=300
sysctl -w net.ipv4.tcp_keepalive_probes=5
sysctl -w net.ipv4.tcp_keepalive_intvl=60
💡 Это помогает, если юзеры «обрываются» без выхода или при нестабильных VPN.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍5🔥2
Знакомая картина? Terraform-код превратился в спагетти, где одни и те же ресурсы копируются из проекта в проект, а малейшее изменение требует правок в десятках файлов. Вроде бы Infrastructure as Code должен упрощать жизнь, но на практике часто получается наоборот — код становится неподдерживаемым монстром.
📅 23 сентября в 20:00 Николай Акулов проведёт открытый вебинар «Terraform: паттерны, антипаттерны и модульность» в рамках курса «DevOps Advanced». Это практическое занятие для тех, кто хочет привести свою IaC в порядок и научиться строить масштабируемую инфраструктуру.
На вебинаре разберут принципы эффективного DRY на практике → как правильно использовать модульность для повышения зрелости Terraform-проектов, какие антипаттерны встречаются чаще всего и как их избежать. Николай покажет лучшие практики работы с Terraform и даст рекомендации по оптимизации CI/CD пайплайнов.
Особенно полезно будет DevOps-инженерам, инфраструктурным разработчикам и всем, кто работает с Infrastructure as Code. Спикер поможет научиться создавать переиспользуемые модули, распознавать ошибки проектирования и внедрять процессы автоматизации.
👉 Вебинар бесплатный, регистрация по ссылке — тема критически важная для эффективной работы с инфраструктурой: https://vk.cc/cPwhWd
🎁 Каждый участник вебинара получит бонус — скидку на полный курс. Главное — успеть записаться.
Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
📅 23 сентября в 20:00 Николай Акулов проведёт открытый вебинар «Terraform: паттерны, антипаттерны и модульность» в рамках курса «DevOps Advanced». Это практическое занятие для тех, кто хочет привести свою IaC в порядок и научиться строить масштабируемую инфраструктуру.
На вебинаре разберут принципы эффективного DRY на практике → как правильно использовать модульность для повышения зрелости Terraform-проектов, какие антипаттерны встречаются чаще всего и как их избежать. Николай покажет лучшие практики работы с Terraform и даст рекомендации по оптимизации CI/CD пайплайнов.
Особенно полезно будет DevOps-инженерам, инфраструктурным разработчикам и всем, кто работает с Infrastructure as Code. Спикер поможет научиться создавать переиспользуемые модули, распознавать ошибки проектирования и внедрять процессы автоматизации.
👉 Вебинар бесплатный, регистрация по ссылке — тема критически важная для эффективной работы с инфраструктурой: https://vk.cc/cPwhWd
🎁 Каждый участник вебинара получит бонус — скидку на полный курс. Главное — успеть записаться.
Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
❤1
🚨 Иногда сетевой интерфейс «пропадает» после перезагрузки, особенно на серверах с systemd-networkd. Причина - интерфейсы могут переименовываться (например,
Фиксируем имя интерфейса:
🔧 Решение через systemd-link
1. Узнаём MAC-адрес:
2. Создаём правило:
3. Перезапускаем:
Теперь интерфейс всегда будет называться
- Удобнее писать unit-файлы, firewall-правила и netplan-конфиги.
- Избежите «сломанных» сетевых настроек после обновления/замены железа.
👉 Можно использовать Driver= или Path= вместо MAC, если карты одинаковые.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
ens3 → enp0s3).Фиксируем имя интерфейса:
🔧 Решение через systemd-link
1. Узнаём MAC-адрес:
ip link show
2. Создаём правило:
cat >/etc/systemd/network/10-persistent.link <<EOF
[Match]
MACAddress=52:54:00:ab:cd:ef
[Link]
Name=lan0
EOF
3. Перезапускаем:
systemctl restart systemd-udevd
systemctl restart systemd-networkd
Теперь интерфейс всегда будет называться
lan0.- Удобнее писать unit-файлы, firewall-правила и netplan-конфиги.
- Избежите «сломанных» сетевых настроек после обновления/замены железа.
👉 Можно использовать Driver= или Path= вместо MAC, если карты одинаковые.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍9❤1
Перевод статей из серии «Кунг-фу стиля Linux»:
— Удобная работа с файлами по SSH
— Мониторинг дисковой подсистемы
— Глобальный поиск и замена строк с помощью ripgrep
— Упрощение работы с awk
— Наблюдение за файловой системой
— Наблюдение за файлами
— Удобный доступ к справке при работе с bash
— Великая сила make
— Устранение неполадок в работе incron
— Расшаривание терминала в браузере
— Синхронизация настроек
— Бесплатный VPN по SSH
— Превращение веб-приложений в полноценные программы
— Утилита marker и меню для командной строки
— sudo и поворот двух ключей
— Программное управление окнами
— Организация работы программ после выхода из системы
— Регулярные выражения
— Запуск команд
— Разбираемся с последовательными портами
— Базы данных — это файловые системы нового уровня
— О повторении кое-каких событий сетевой истории
— PDF для пингвинов
— Делаем все и сразу
— Файловые системы пользовательского пространства теперь доступны и в Windows
— Делиться — это плохо
— Автоматическое генерирование заголовочных файлов
— Простые конвейеры
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
— Удобная работа с файлами по SSH
— Мониторинг дисковой подсистемы
— Глобальный поиск и замена строк с помощью ripgrep
— Упрощение работы с awk
— Наблюдение за файловой системой
— Наблюдение за файлами
— Удобный доступ к справке при работе с bash
— Великая сила make
— Устранение неполадок в работе incron
— Расшаривание терминала в браузере
— Синхронизация настроек
— Бесплатный VPN по SSH
— Превращение веб-приложений в полноценные программы
— Утилита marker и меню для командной строки
— sudo и поворот двух ключей
— Программное управление окнами
— Организация работы программ после выхода из системы
— Регулярные выражения
— Запуск команд
— Разбираемся с последовательными портами
— Базы данных — это файловые системы нового уровня
— О повторении кое-каких событий сетевой истории
— PDF для пингвинов
— Делаем все и сразу
— Файловые системы пользовательского пространства теперь доступны и в Windows
— Делиться — это плохо
— Автоматическое генерирование заголовочных файлов
— Простые конвейеры
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍4🔥3
Короткий совет по Linux 💡
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед его удалением.
В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
$ find . -type d -empty -exec rmdir -v {} +Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед его удалением.
В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
$ find . -type d -empty -delete#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
NetAlertX — инструмент для мониторинга сетевой активности и обнаружения изменений в подключенных устройствах. Он помогает администратору отслеживать новые устройства в сети, анализировать подключение и уведомлять о любых подозрительных изменениях. Утилита может быть полезной для повышения безопасности сети и оптимизации управления подключениями.
https://github.com/jokob-sk/NetAlertX
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
https://github.com/jokob-sk/NetAlertX
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍6
Управление виртуальными машинами KVM из консоли
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
# virsh list – показать список запущенных ВМ# virsh list --all – показать список всех машин (в том числе выключенных)# virsh shutdown <vm name> — выключить виртуальную машину# virsh start <vm name> — запустить виртуальную машину# virsh suspend <vm name> — приостановить виртуальную машину# virsh resume <vm name> — запустить приостановленную виртуальную машину# virsh reboot <vm name> — перезапустить виртуальную машину# virsh destroy <vm name> — уничтожить виртуальную машину# virsh undefine <vm name> — удалить машину из списка и удалить все файлы, принадлежащие ей (обычно применяется после выполнения команды virsh destroy).# virsh vcpuinfo <vm name> — информация о процессоре на виртуальной машине # virsh domid <vm name> — получить идентификатор виртуальной машины# virsh domuuid <vm name> — получить UUID виртуальной машины# virsh dominfo <vm name> — получить сведения о виртуальной машине# virsh domstate <vm name> — просмотр состояния виртуальной машины# virsh dumpxml <vm name> — вывести файл конфигурации указанной виртуальной машины в XML формате#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍8
Команда crontab: опции, ключи и примеры использования
Планировщик cron для запуска задач с заданными интервалом времени от имени текущего пользователя. Формат планирования задачи: "(минута) (час) (день_месяца) (месяц) (день_недели) команда".
Редактирует файл crontab для текущего пользователя:
Выводит список существующих задая для текущего пользоваетеля:
Удаляет все задачи cron для текущего пользователя:
Пример задачи, которая запускается ежедневно в 10:00. * означает любое значение:
Пример задачи, которая запускается каждую минуту 3-го апреля:
Пример задачи, которая запускается каждую пятницу в 02:30:
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Планировщик cron для запуска задач с заданными интервалом времени от имени текущего пользователя. Формат планирования задачи: "(минута) (час) (день_месяца) (месяц) (день_недели) команда".
Редактирует файл crontab для текущего пользователя:
crontab -eВыводит список существующих задая для текущего пользоваетеля:
crontab -lУдаляет все задачи cron для текущего пользователя:
crontab -rПример задачи, которая запускается ежедневно в 10:00. * означает любое значение:
0 10 * * * {{path/to/noscript.sh}}Пример задачи, которая запускается каждую минуту 3-го апреля:
* * 3 Apr * {{path/to/noscript.sh}}Пример задачи, которая запускается каждую пятницу в 02:30:
30 2 * * Fri {{path/to/noscript.sh}}#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍6
Операции с файлами в Linux
—
—
—
—
—
—
—
—
—
—
—
—
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
pwd # Выводит текущий путь;ls # Выводит список файлов и каталогов. Пример вывода форматированного списка всех файлов и директорий, включая скрытые: ls -laX ;cd # Переход по директориям. Примеры:—
cd # Переход в домашнюю директорию;—
cd /home # Пример перехода в /home;—
cd .. # Переход в директорию уровнем выше;—
cd ~user # Перейти в домашнюю директорию пользователя user ;touch # Создание пустого файла если нет. Пример: touch test.txt ;rm # Удаление. Примеры:—
rm test.txt # Удаление файла;—
rm -rf temp # Удаление директории temp с вложенными файлами;cp # Копирование. Примеры:—
cp test.txt /home/test.txt # Копирует test.txt из текущей директории в /home ;—
cp -la /dir1 /dir2 # Копирование директорий;ln # — создание символической ссылки. Пример: ln -s /var/test.txt /home/test.txt — создать символическую ссылку к файлу /var/test.txt в директории /home;mkdir # Создание директории. Пример: mkdir temp ;rmdir # Удаление директории. Пример: rmdir temp ;mv # ПеремещениеПереименование. Пример переименования директории: mv /dir1 /dir2 (аналогично с файлами);locate # Поиск. Пример поиска везде всех файлов с именем test.txt: locate test.txt ;find # Поиск. Примеры:—
find /home/it -name test.txt # Найти файлы и директории с именем test.txt в /home/it и вложенных;—
find /home/it -name "*.txt" # Найти все файлы и директории в /home/it и вложенных, имена которых оканчиваются на ‘.txt’;—
find /usr/bin -type f -atime +100 # Найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 100 дней;—
find /usr/bin -type f -mtime -10 # Найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней;stat # Отображение всей доступной информации об указанном файле. Пример: stat test.txt;file # Определяет тип файла. Пример: file test.txt ;chmod # Права доступа;chown # Меняет владельца файла, пример: chown www:www test.txt;mc # запуск файлового менеджера;#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍10🔥1
Подборка шпаргалок по Linux
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍9
👍16❤1