tgindex
🐧Linux для админов и DevOps

🐧Linux для админов и DevOps

Статистика

Практика Linux, серверов, Bash, Docker, Ansible, Kubernetes, мониторинга и DevOps. Без воды: команды, разборы ошибок, шпаргалки и реальные кейсы для админов. По всем вопросам: @Kostyan_00

Последний пост
11 авг.
Последнее чтение
15 авг.
Постов за неделю
1
Всего постов
21
Тип
открытый
Язык
русский
Категория
Технологии
В каталоге с
12 авг.
Подписчики
238
+10 за 5 дн.
Сутки
0
0,00%
Неделя
 
Месяц
 
Просмотров на пост
220
18 постов
Вовлечённость
92,4%
к подписчикам
Постов в день
0,1
всего 21
Упоминаний
1
каналов
Охват размещения
оценка
1/24сутки в ленте
91
1/48двое суток
104
1/72трое суток
112

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • 🕵️Вычисляем шпионов в локальной сети с помощью Nmap Утро начинается не с кофе, а с «левого» девайса в подсети? Или веб‑сервер после обновления молчит на 443‑м порту? Знакомо? Тогда Nmap — ваш инструмент. Это швейцарский нож сетевой разведки, который покажет: — какие устройства реально в сети; — какие порты открыты и какие сервисы за ними; — версию ПО (вдруг там древний OpenSSH 3.0); — операционную систему хоста; — и даже найдёт несанкционированные устройства. 💡Зачем это вам? — инвентаризация сети — вы удивитесь, сколько «лишнего» болтается в локалке; — поиск чужих роутеров и устройств; — быстрая проверка сервисов после деплоя; — диагностика проблем, когда хост не пингуется; — проверка безопасности — открытые порты = потенциальные векторы атаки. 🔴 Важно: Сканировать чужие сети без разрешения — статья. Уголовная или административная, но весёлого мало. Работаем только со своими сетями или с письменным разрешением. Установка (Ubuntu/Debian) sudo apt update sudo apt install nmap nmap --version Первое сканирование подсети nmap 192.168.1.0/24 Nmap опросит все адреса и покажет, кто ответил. Вот и вся картина. Быстрое сканирование одного хоста (топ-100 портов) nmap -F 192.168.1.7 Полный анализ, режим «всезнайка» nmap -A 192.168.1.7 — Минус: дольше и заметнее. — Плюс: полная картина. Запускайте на своих серверах — лучший вариант. Сканирование конкретных портов nmap -p 22,80,443 192.168.1.7 Удобно проверить, живы ли нужные сервисы после изменения конфигурации. ✏️Шпаргалка по ключам (сохраните себе) -sS — SYN-сканирование (стелс). Требует root. -sT — полное TCP-соединение, работает без root. -sV — определение версий сервисов. -O — определение ОС (тоже root). -Pn — пропустить проверку ping (если хост «молчит», но есть). -p 80,443 — сканировать только указанные порты. -p- — все 65535 портов. -F — топ-100 портов. -T0..-T5 — скорость от медленно (0) до агрессивно (5). -oN file.txt — сохранить в текстовый файл. -oX file.xml — сохранить в XML. -v — подробный вывод. --open — только открытые порты. --top-ports 100 — заданное число популярных портов. ▶️Скорость: не гоните лошадей -T0 — медленно и максимально скрытно. -T3 — стандарт для большинства задач. -T5 — максимально, но можно словить ложные результаты или уронить слабое железо. Для повседневной работы — -T4: nmap -T4 192.168.1.6 Определение версий сервисов Вместо «http» увидите «nginx 1.18.0» или «OpenSSH 8.9». Это критично для оценки рисков: устаревшее ПО — известные уязвимости. nmap -sV 192.168.1.6 Если хост не отвечает на ping — ключ -Pn Файрвол может игнорировать ICMP. Nmap решит, что хост неактивен. Лечится командой: nmap -Pn 192.168.1.1 Сохранение результатов nmap -oN output.txt 192.168.1.1 Или XML (для автоматизации): nmap -oX output.xml 192.168.1.1 Комплексная команда (всё в одном) sudo nmap -T4 -sV -O -Pn -oN results.txt 192.168.1.1 Расшифровка: -T4 — умеренная скорость; -sV — версии сервисов; -O — ОС; -Pn — не пингуем; -oN results.txt — сохраняем результат. Понравился пост, поддержите реакцией👍 #linux #nmap #admin #иформационнаябезопасность

  • 8 авг.180102

    ✋Всем привет! Хотел бы порекомендовать вам канал Вороний блог | Linux и IT, который не только схож по теме — а именно Linux, — но и по духу и подходу к делу. 💣На нём автор каждый день публикует короткие викторины на знание Linux, полезные заметки, полноценные гайды и руководства, которые можно оставлять себе в качестве шпаргалки и в нужный момент к ним возвращаться. 🎯Так что советую присмотреться и почитать кое-что интересное: — Vocalinux - Универсальный голосовой ввод в Linux, MacOS и Windows — MicroMedia - Портативный десктопный просмотрщик видео и изображений 🦾Если откликнется — подписаться и поддержать его энтузиазм и полезные начала.

  • 7 авг.176174

    🔒Как защитить SSH-сервер от ботов: настройка Port Knocking Открытый SSH-порт — магнит для ботов. Каждый день тысячи автоматических попыток подбора пароля. Даже с SSH-ключами постоянный шум от сканеров раздражает. Что делать? Один из надёжных способов — Port knocking («стук в дверь»). 💎 Что это? SSH-порт закрыт для всех. Открывается он только после того, как вы «постучите» в нужном порядке по трём другим портам. Всё делает демон knockd — слушает последовательность и временно разрешает доступ вашему IP. 🚪 Закрываем SSH в iptables sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j DROP Теперь никто не может даже начать подключение к 22-му порту. ⚙️Ставим и настраиваем knockd sudo apt install knockd Делаем резервную копию конфига: sudo cp /etc/knockd.conf /etc/knockd.conf.bak Редактируем /etc/knockd.conf — добавляем свой сетевой интерфейс (например, enp0s3) и меняем -A INPUT на -I INPUT 1, иначе правило не сработает. Пример рабочей конфигурации: [options] UseSyslog Interface = enp0s3 [openSSH] sequence = 7000,8000,9000 seq_timeout = 5 command = iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 9000,8000,7000 seq_timeout = 5 command = iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn 🚀 Включаем автозапуск и запускаем В файле /etc/default/knockd меняем START_KNOCKD=0 на 1: sudo systemctl start knockd 🕵️‍♂️Стучим с клиента Устанавливаем утилиту knock: sudo apt install knock Чтобы открыть SSH: knock 192.168.1.6 7000 8000 9000 Затем подключаемся: ssh admin@192.168.1.6 Закрываем порт обратной последовательностью: knock 192.168.1.6 9000 8000 7000 📝 Итог — SSH-порт полностью скрыт от сканеров — Атакующие не могут даже начать перебор паролей — Вы получаете доступ только при помощи секретной последовательности Понравился пост, поддержите реакцией👍 #ssh #linux #portknocking #iptables #admin

  • 🧠 Викторина: как найти PID процесса по его имени 💡Какая команда точно покажет PID процесса по имени "nginx" (при этом может быть несколько процессов) на большинстве систем?

  • 🔎 Одна команда, чтобы быстро понять логи: journalctl Если у Вас systemd, то journalctl помогает смотреть логи максимально просто и удобно. Ниже — минималистичный гайд, чтобы быстро начать разбирать проблемы. ▶️Основная команда Показать всё логи за сегодня и в реальном времени: journalctl --since today -f Выводит записи с начала дня и продолжает показывать новые записи в реальном времени (как tail -f, но по журналу systemd). Быстрые полезные варианты Логи конкретного сервиса (например, nginx): journalctl -u nginx Только ошибки и выше: journalctl -p err По времени (за последние 2 часа): journalctl --since "2 hours ago" 🚀Быстрый пример одной полезной комбинации Смотреть логи сервиса nginx за последние 1 час в реальном времени: journalctl -u nginx --since "1 hour ago" -f 🔥 Был ли пост полезен? Поставьте реакцию 👍

  • 🐧Linux для админов и DevOps pinned «✋Всех приветствую! Рад сообщить, что я запустил новую программу «Bash, Git, Docker: три столпа современного Админа», которая состоит сразу из трех курсов. Эта программа — практический инструмент, который научит Вас автоматизировать рутину, наводить порядок…»

  • ✋Всех приветствую! Рад сообщить, что я запустил новую программу «Bash, Git, Docker: три столпа современного Админа», которая состоит сразу из трех курсов. Эта программа — практический инструмент, который научит Вас автоматизировать рутину, наводить порядок в конфигах и упаковывать приложения в контейнеры. 📚Чему Вы научитесь: — писать скрипты для бэкапов, мониторинга и деплоя (циклы, условия, sed/awk, cron); — работать с Git: коммиты, ветки, слияния, откаты, .gitignore и hooks; — собирать Docker-образы, управлять контейнерами, томами, сетями и писать Docker Compose. 📍Всё это — три столпа, без которых сейчас никуда. 💵Цена 3900 р. По ссылке ниже вы можете получить ее всего за  2900 ₽. Так что если собирались изучать данные инструменты, то сейчас самое время. ▶️Ссылка на курс: https://stepik.org/a/292575/pay?promo=31b01d478b858f70

  • 🏆 Создайте swap за 1 минуту одним скриптом Если вы устали каждый раз вводить fallocate, mkswap, swapon и править fstab? Я написал простой скрипт, который делает всё это одной командой. ✅ Что скрипт делает: — принимает размер (2G, 512M, …) — создаёт swap-файл с правильными правами — создает и включает swap — добавляет авто-подключение в /etc/fstab (без дублей!) 📥 Как использовать: nano create-swap.sh # создать файл с кодом chmod +x create-swap.sh # сделать исполняемым sudo ./create-swap.sh 2G # запустить swapon --show # проверить 📌 Важно: скрипт проверяет права root, спрашивает подтверждение, если файл уже есть, и пишет в fstab только при отсутствии записи. ⬇️ Код (копируйте и вставляйте): #!/bin/bash if [ -z "$1" ]; then echo "Ошибка: укажите размер (например 2G)" exit 1 fi if [ "$EUID" -ne 0 ]; then echo "Запустите с sudo" exit 1 fi SIZE="$1" SWAPFILE="/swapfile" if [ -f "$SWAPFILE" ]; then echo "⚠️ Файл уже существует." read -p "Пересоздать? (y/n): " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1; fi swapoff "$SWAPFILE" 2>/dev/null rm -f "$SWAPFILE" fi echo "[+] Создание swap-файла $SIZE..." fallocate -l "$SIZE" "$SWAPFILE" chmod 600 "$SWAPFILE" mkswap "$SWAPFILE" > /dev/null swapon "$SWAPFILE" if ! grep -q "$SWAPFILE" /etc/fstab; then echo "$SWAPFILE none swap sw 0 0" >> /etc/fstab fi echo "✅ Swap-файл $SIZE активен." 👍 Сохраните себе, чтобы не потерять. ▶️Смотреть: Видео на YouTube #linux #swap #администрирование #devops #bashscript

  • 🔎 Три простые команды: как проверить состояние сервера за 60 секунд Когда нужен быстрый статус сервера — достаточно трёх команд. Они помогут понять, что происходит прямо сейчас, без углубленного разбора. Время работы и нагрузка uptime Покажет время работы, нагрузку CPU за последние 1/5/15 минут и количество запущенных пользователей. Кто сейчас вошёл в систему who -u Покажет список вошедших пользователей и их активность. Топ по потреблению ресурсов top -b -n1 | head -n 5 Покажет верхние процессы по загрузке CPU/памяти (однократный снимок, без интерактива). 💡 Быстрый вывод: если команды показывают высокую загрузку или неизвестные процессы — это повод детальнее проверить логи и запланировать план действий. 🔥 Если пост полезен — поставьте реакцию 👍

  • 3 июл.214124

    🩺 Команда «Здоровье сервера» — быстрый осмотр Каждый раз вручную запускать top, free, uptime, df — долго. Этот скрипт собирает всё на одном экране за секунду. Вы сразу видите, перегружен ли сервер, хватает ли памяти и не забиты ли диски. Установка: sudo nano /usr/local/bin/health.sh Вставьте код ниже. Затем: sudo chmod +x /usr/local/bin/health.sh echo "alias health='sudo /usr/local/bin/health.sh'" >> ~/.bashrc source ~/.bashrc Теперь просто вводите health. Код: #!/bin/bash echo "=== CPU ===" top -bn1 | grep "Cpu(s)" | awk '{print "CPU: "$2+$4"%"}' echo "=== RAM ===" free -h | awk '/Mem/{print "Доступно / Всего: "$7" / "$2}' echo "=== Load Average ===" uptime | awk -F'load average:' '{print $2}' echo "=== Disks ===" df -h | grep -E '^/dev/(sd|xvd|nvme|vd)' | awk '{print $1, $2, $3, $4, $5, $6}' CPU > 80% — нагрузка. Load > ядер CPU — перегрузка. Available < 10% RAM — не хватает памяти. Disks Use% > 90% — срочно чистить. ▶️Видео на Youtube: https://www.youtube.com/watch?v=rWkvZg1gAtA

  • 2 июл.172133

    🔍 grep: ищем всё что угодно за секунду grep — одна из тех команд, которую Вы будете использовать каждый день. Она ищет текст внутри файлов и вывода других команд. Разберём самые полезные варианты. 📄 Поиск в одном файле grep "error" /var/log/nginx/access.log Найдёт все строки, содержащие слово error. 🔁 Поиск во всех файлах папки (рекурсивно) grep -r "listen" /etc/nginx/ Флаг -r заставляет grep заходить во вложенные папки. 📍Показать номер строки и контекст Чтобы видеть не только саму строку, но и то, что вокруг неё: grep -n -C 3 "error" /var/log/syslog -n — номер строки -C 3 — показать 3 строки до и после совпадения 🎯Инвертировать поиск (всё, кроме) grep -v "debug" /var/log/app.log Покажет все строки, где нет слова debug. Удобно фильтровать шум. 🧮Посчитать количество совпадений grep -c "failure" /var/log/auth.log Просто выведет число — сколько раз встречается failure. 🔗 Использовать grep с другими командами Это самое частое применение. Например, ищем процесс по имени: ps aux | grep nginx Или смотрим, какие порты слушает система: ss -tulpn | grep :80 🔥 Пост полезный? Поставьте реакцию 👍

  • 📋 journalctl: читаем логи systemd как профессионал Если Ваша система использует systemd (а это почти все современные дистрибутивы), то все логи собирает journalctl. Забудьте про less /var/log/syslog — разберёмся с этим инструментом. 🔍 Базовая команда Показать все логи (начиная с самых старых): journalctl Выход — нажать q. ⏱️ Логи только за сегодня journalctl --since today Или за последний час: journalctl --since "1 hour ago" 📌 Логи конкретного сервиса Например, показываем логи Nginx: journalctl -u nginx Можно добавить -f — следить в реальном времени (как tail -f): journalctl -u nginx -f ⚠️ Только ошибки Показать записи с приоритетом error и выше: journalctl -p err Уровни: emerg, alert, crit, err, warning, notice, info, debug. 🧰 Полезный однострочник Логи за последние 10 минут, только ошибки, для сервиса SSH: journalctl -u ssh --since "10 minutes ago" -p err 🔥 Было полезно? Поставьте реакцию 👍

  • 🐧Linux для админов и DevOps pinned «Всем привет! 🔎Если вы когда-нибудь тратили время на поиск рабочей версии nginx.conf или плодили файлы вида script_final_2_True.sh — этот курс для вас. Представляю мой новый, практический курс без лишней теории — Git для Linux-админа: управление конфигами…»

  • Всем привет! 🔎Если вы когда-нибудь тратили время на поиск рабочей версии nginx.conf или плодили файлы вида script_final_2_True.sh — этот курс для вас. Представляю мой новый, практический курс без лишней теории — Git для Linux-админа: управление конфигами и скриптами. Только то, что нужно админу в работе: хранение конфигов, откаты, деплой, работа с GitHub. 📚Чему вы научитесь: — Хранить все конфиги и bash-скрипты под контролем Git. — Откатывать изменения одной командой. — Настраивать автоматическую проверку скриптов (pre-commit hook). — Пушить, пуллить и тегировать как настоящий админ. 💻Всё в терминале Linux (Ubuntu). Текстовые лекции, скриншоты, домашки и моя поддержка по ходу его прохождения. 💥 Сейчас курс можно купить со скидкой: Полная цена — 1390 ₽ По ссылке ниже скидка 500 рублей. Git для Linux-админа: управление конфигами и скриптами 📛Если скидка не пройдет, напишите мне в личные сообщения

  • 🔍 /proc: папка, которой не существует (но она работает) Вы наверняка заглядывали в /proc — там куча папок с цифрами и файлы вроде cpuinfo, meminfo. Выглядит как обычная директория? А вот и нет. 🎯Факт: внутри /proc нет ни одного реального файла. Все данные генерируются ядром на лету, прямо в момент обращения. Это «псевдо-файловая система» — интерфейс для общения с ядром Linux. ⚙️ Как это работает? Когда Вы выполняете: cat /proc/cpuinfo Ядро перехватывает запрос, собирает актуальную информацию о процессорах (прямо из своих структур), форматирует в текст и отдаёт Вам. Через секунду этого «файла» в памяти уже нет. Следующий cat — ядро снова собирает данные заново. 🧰 Что полезного лежит в /proc? Вот несколько примеров, которые пригодятся в работе: /proc/cpuinfo — Модель, ядра, флаги процессора → cat /proc/cpuinfo /proc/meminfo — Оперативная память (total, free, buffers) → cat /proc/meminfo /proc/uptime — Время работы системы и время idle → cat /proc/uptime /proc/version — Версия ядра и компилятор → cat /proc/version /proc/loadavg — Средняя нагрузка за 1/5/15 минут → cat /proc/loadavg /proc/net/tcp — Список TCP-соединений (сырой) → cat /proc/net/tcp /proc/self/status — Информация о текущем процессе → cat /proc/self/status ⚠️ Итог /proc — это не папка с файлами, а интерфейс для взаимодействия с ядром. Работа с ним — основа диагностики и тонкой настройки Linux-систем. Стало понятнее? Поставьте реакцию 👍

  • 🔍 Порт занят? Узнайте, какой процесс его держит Бывает: запускаете Nginx, а он говорит «Address already in use». Знакомая ситуация? Давайте разберёмся, как найти процесс, который занял порт, и как его корректно завершить. 🧰 Команда ss (современный netstat) Утилита ss быстрее и удобнее старого netstat. Она есть почти везде. Посмотреть все слушающие порты: sudo ss -tulpn Что означает: -t – TCP -u – UDP -l – только слушающие -p – показать PID и имя процесса -n – не преобразовывать адреса в имена Пример вывода: State Recv-Q Send-Q Local Address:Port Process LISTEN 0 128 0.0.0.0:80 users:(("nginx",pid=1234)) Теперь загляните в столбец Process — там и пид, и имя. ❓ Если нужно найти только конкретный порт Добавьте фильтр по порту (например, порт 8080): sudo ss -tulpn | grep :8080 Или используйте: sudo lsof -i :8080 lsof показывает все процессы, использующие сеть. 🚫 Как освободить порт Если процесс вам не нужен, убейте его: sudo kill -9 <PID> Важно: kill -9 принудительно завершает процесс. Если это сервер (Nginx, PostgreSQL), сначала лучше попробовать systemctl stop <service>. 🔥 Полезный материал? Поставьте реакцию 👍

  • 🛡 Настройка SSH-ключей: доступ по паролю забываем навсегда 👋Если Вы до сих пор вводите пароль при каждом подключении к серверу — пора это менять. SSH-ключи быстрее, удобнее и безопаснее паролей. Разберём за 5 минут. 🔑 Шаг 1. Генерируем ключ на Вашей локальной машине Откройте терминал (Linux / macOS / WSL) и выполните: ssh-keygen -t ed25519 -C "Ваш_email@example.com" Нажмите Enter для стандартного пути ~/.ssh/id_ed25519. Можно задать пароль (passphrase) — это дополнительный пин-код для ключа. 🧠 Почему ed25519? Он быстрее RSA и даёт такой же уровень безопасности при меньшей длине. 📤 Шаг 2. Копируем Ваш публичный ключ на сервер Вариант 1 — универсальная команда: ssh-copy-id user@ip_сервера Вариант 2 — вручную, если ssh-copy-id нет: cat ~/.ssh/id_ed25519.pub | ssh user@ip_сервера "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" После этого пароль больше не потребуется — заходите сразу. 🔧 Шаг 3. Отключаем вход по паролю (рекомендуем) Зайдите на сервер и отредактируйте конфиг: sudo nano /etc/ssh/sshd_config Найдите строки и сделайте так: PasswordAuthentication no PermitRootLogin prohibit-password # или no После этого перезапустите SSH: sudo systemctl restart sshd # или ssh, в зависимости от системы ⚠️ Важно: перед этим убедитесь, что у Вас есть доступ по ключу (новая сессия должна открываться без пароля). Иначе Вы заблокируете сами себя. 🔥 Был ли пост полезен? Поставьте реакцию 👍

  • Channel name was changed to «🐧Linux для админов и DevOps»

  • 🔥 Сайт не открывается? Хватит гадать — проверьте сеть Вы сидите, браузер грузит, а результата нет. «Упал сервер», «провайдер виноват», «DDoS»…. Есть простой способ узнать правду — curl и dig. Быстрая проверка доступности: curl -I https://google.com ✏️Что вы увидите в ответе: HTTP/2 200 — всё ок curl: (6) Could not resolve host — DNS не работает curl: (7) Failed to connect — сервер не отвечает 🎯Проверка DNS: dig +short google.com Вы получите IP-адреса (например, 142.250.150.142). Работает? Значит с DNS всё в порядке. Пустой вывод — проблема у провайдера или в настройках вашей системы. 💡Если нужно копнуть глубже Узнайте, где теряются пакеты: traceroute 8.8.8.8 Каждая строка — один маршрутизатор. Звёздочки на каком-то шаге? Там пакеты пропадают. Самая частая причина 🌐 Файрвол на вашей машине или на сервере. Проверить просто: sudo ufw status Если выключен — ищите проблему в других местах. Если включён и блокирует — временно отключите (с осторожностью): sudo ufw disable Не забудьте потом включить обратно: sudo ufw enable

  • 🔥 SSH не подключается? Хватит гадать — включите отладку Вы сидите, смотрите в чёрный терминал и не понимаете: почему ssh user@server молчит или выдаёт ту самую ошибку? Руки тянутся проверить настройки сервера, порты, файрвол… Стоп. Есть более быстрый путь — включить отладку. Команда-спасение ssh -v user@server Вывод покажет каждый шаг подключения. Смотрите внимательно: ✅ Offering public key: ... — ваш ключ отправлен ✅ Authentication succeeded — всё, вы внутри ❌ Permission denied (publickey) — ключ не подошёл Если хотите совсем детально (увидеть даже отвергнутые ключи) — добавьте ещё два v: ssh -vvv user@server Самая частая причина 🔐 Права доступа. SSH — параноик. Сделайте раз и навсегда: chmod 700 ~/.ssh && chmod 600 ~/.ssh/* Больше не придётся гадать — отладка покажет истину. 🏆Сохраните себе, пригодится