Linux Skill - Освой Linux c нуля до DevOps
11.2K subscribers
68 photos
103 videos
501 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

📩 По всем вопросам: @chorapov

РКН https://vk.cc/cMUwm4
Download Telegram
🛡 Твой новый стандарт: Генерируем SSH Ed25519

С возвращением! 👋

Всё еще генерируешь ключи через rsa -b 4096? Это надежно, но ключи получаются длинными, а генерация — медленной. В современном мире стандартом де-факто становится Ed25519. Это алгоритм на эллиптических кривых: он безопаснее, быстрее и создает очень компактные ключи, которые удобно копировать.

Давай обновим твои доступы за одну минуту.

📌 Команда для генерации:

ssh-keygen -t ed25519 -C "admin@myserver"


Разбор флагов:
-t ed25519 — указываем тип ключа. Он обеспечивает превосходную безопасность и высокую производительность.
-C "комментарий" — метка (обычно email), чтобы ты не запутался в authorized_keys, когда ключей станет много.

💡 Что делать дальше?

1. Закинь ключ на сервер:
Используй утилиту ssh-copy-id, она сама разложит всё по полочкам:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-host

Если ssh-copy-id нет под рукой, можно сделать это вручную (но это дольше):

cat ~/.ssh/id_ed25519.pub | ssh user@remote-host "cat >> ~/.ssh/authorized_keys"

2. Проверь права (на локальной машине):
Приватный ключ должен быть доступен только тебе (права 600), иначе SSH-клиент может отказаться работать или это создаст дыру в безопасности.

chmod 600 ~/.ssh/id_ed25519

Переходи на Ed25519 — это быстрее, короче и безопаснее. Сохрани шпаргалку, чтобы не гуглить флаги! 🔥

#SSH #Linux #Security #DevOps #CLI
👍12🔥2
📉 Ubuntu весит 100МБ, а Alpine — 5МБ. Почувствуй разницу

Привет, $(whoami)! 👋

Твои Docker-образы занимают сотни мегабайт, а деплой длится вечность? Часто проблема в том, что ты используешь «тяжелые» базовые образы, в которых куча ненужного софта (6 разных оболочек, 3 пакетных менеджера и т.д.).

Для продакшена и микросервисов идеально подходит Alpine Linux. Это минималистичный дистрибутив, который весит всего около 5 МБ. Меньше размер — быстрее скачивание, меньше уязвимостей и выше скорость запуска.

📌 Пример минимального Dockerfile:

FROM alpine:latest
# copy all of the files in this project into the Docker image
RUN mkdir public-app/
ADD . public-app/
WORKDIR public-app


Что здесь происходит:
FROM alpine:latest — берем легкую базу.
Создаем папку и копируем туда проект.
Назначаем рабочую директорию.

💡 Совет:
Используй Alpine, когда тебе нужно запустить одно конкретное приложение или сервис. Если в образе нет лишних утилит, их не смогут использовать злоумышленники, что уменьшает поверхность атаки.

#Docker #DevOps #Alpine #Containers #Optimization
👍10👎2
🔥 Забудь про UptimeRobot: Свой мониторинг на коленке

printf "Hello\n"

Иногда разворачивать тяжелые комбайны мониторинга ради проверки пары узлов — это как стрелять из пушки по воробьям. Ты же знаешь силу командной строки: зачем тебе веб-интерфейс, если есть старый добрый Bash?

Можно написать простой скрипт, который будет проверять доступность хоста и сообщать статус. Это база, которая работает на любом утюге с Linux.

📌 Скрипт проверки доступности узла:

HNAME=news-15.net  # Пресловутый спамер.
# HNAME=$HOST # Отладка: проверка локальной сети.
count=2 # Отсылаются только два пинга.

if [[ `ping -c $count "$HNAME"` ]]
then
echo ""$HNAME" все еще работает и рассылает спам."
else
echo ""$HNAME" Кажется выключен. Жаль."
fi


Разбор полетов:
Переменная HNAME хранит адрес цели.
ping -c 2 отправляет ровно два пакета (чтобы не ждать вечно).
Конструкция if [[ ... ]] проверяет код возврата команды ping. Если 0 (успех) — узел жив.

💡 Почему это круто:

Ты не зависишь от стороннего софта.
Работает даже на встраиваемых системах и роутерах.
Легко добавить отправку уведомления на почту или в Telegram прямо в блок else.

#Linux #Bash #DevOps #Scripting #Monitoring
👍6
🔥 Забудь про vim: Добавляем источники apt в одну строку

root@localhost:~#

Часто нужно добавить новый репозиторий в систему (например, при начальной настройке сервера), но открывать текстовый редактор долго и неудобно для скриптов. Обычное перенаправление вывода через sudo может вызвать ошибку «Permission denied».

Есть элегантный способ добавлять строки текста в файл, например, имя репозитория ПО в файл источников, не открывая его для редактирования. Используй синтаксис с командой tee.

📌 Команда для добавления репозитория (на примере Nginx):

echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list


Разбор полетов:
echo — передает строку текста в канал (pipe).
lsb_release -cs — автоматически подставляет кодовое имя твоего дистрибутива.
sudo tee — принимает вывод и записывает его в файл с правами суперпользователя, обходя ограничения оболочки.

💡 Совет:
Используй флаг -a с командой tee (например, sudo tee -a), если хочешь добавить строку в конец файла, а не перезаписать его полностью.

#Linux #CLI #SysAdmin #DevOps #Apt
👍8
🔥 Забудь про 500 ошибку: Тест конфига Nginx перед запуском

echo "Привет, инженер!"

Знакомая ситуация: поправил конфиг, перезапустил службу, а сервер «лежит» из-за пропущенной точки с запятой? Чтобы избежать страданий и простоя продакшна, всегда проверяй исправность конфигурационных файлов перед перезапуском.

У многих популярных программ есть встроенные средства для такой проверки.

📌 Команда для проверки конфигурации Nginx:

nginx -t


Что происходит:
Если в файле нет синтаксических ошибок, команда просто завершится или выведет сообщение об успехе. Если ошибки есть, она сообщит о них, указав строку с проблемой,.

💡 Совет:
Используй systemctl reload вместо restart, когда это возможно. Reload (перезагрузка конфигурации) обычно безопаснее, так как процесс перезапускается только после успешной проверки конфигурации,.

Проверяй конфиг до того, как это сделают пользователи! 😉

#Nginx #Linux #SysAdmin #DevOps #CLI
👍14👀3👎1
🔒 Вот что hackers проверяют в первую очередь на твоём сервере

Каждый день на серверы идут тысячи автоматических сканирований на поиск слабых мест.

Проблема: ты даже не знаешь, какие уязвимости уже есть в твоей системе. SSH настроена правильно? Firewall включён? Сервисы обновлены?

Решение: два инструмента, которые за минуты покажут тебе всё, что видит хакер.

🔹 vps-audit
https://github.com/vernu/vps-audit

Легковесный bash-скрипт для быстрого аудита VPS:
• Проверяет SSH-конфигурацию (root login, слабые пароли)
• Статус firewall, fail2ban и открытых портов
• Запущенные сервисы и SUID файлы
• Генерирует цветной отчёт (🟢 PASS / 🟡 WARN / 🔴 FAIL)
• Нет зависимостей, работает везде

🔹 Lynis

https://github.com/CISOfy/lynis
Профессиональный инструмент аудита (15+ лет на рынке):
• Сканирует 200+ параметров безопасности
• Проверяет compliance (PCI DSS, HIPAA, ISO27001)
• Поиск уязвимостей в ПО и конфигурации
• Детальный hardening index — оценка безопасности
• Работает на Linux, macOS, BSD (14.5k звёзд на GitHub)

Запусти прямо сейчас — узнаешь, что hackers видят на твоём сервере первым делом.

#Linux #Monitoring #Disk #DevOps #Bash #CLI
👍11🔥4
📊 Вот как настоящие админы видят, что происходит на сервере

Сервер зависает, CPU зашкаливает, память утекает — а ты не знаешь, в чём проблема.

Проблема: top, htop, df разбросаны по разным окнам. Решение: один bash-скрипт, который покажет всё сразу.

🔹 System Monitor
https://github.com/elliotsecops/System-Monitor

Bash-скрипт для мониторинга Linux:
• Отображает CPU, память и диск в реальном времени (обновляется каждые 5 сек)
• Поддерживает несколько точек монтирования диска
• Настраивается через конфиг или аргументы командной строки
• Graceful shutdown (Ctrl+C) без зависания

Запусти на своём сервере — увидишь, что там реально происходит.

#linux #мониторинг #bash #sysadmin #devops
👍6
🗄️ Твоя база данных молит о помощи — вот как её спасти

БД тормозит, backup'и создаёшь вручную, конфиги MySQL/PostgreSQL — загадка?

Вот два скрипта, которые спасают админам жизнь каждый день.

🔹 MySQLTuner-perl
https://github.com/major/MySQLTuner-perl

Анализирует MySQL/MariaDB/Percona:
• 300+ проверок производительности и безопасности
• Даёт конкретные рекомендации по оптимизации
• Поддерживает Galera, InnoDB, MyISAM, Aria
• JSON и HTML отчёты, CVE проверки
• 9.4k звёзд на GitHub

🔹 postgresql-db-dump
https://github.com/richbl/postgresql-db-dump

Удалённый backup PostgreSQL:
• Автоматический dump с датой-временем
• Сжатие файла (gzip)
• Удобная интеграция в cron
• Ошибки обработаны, скрипт стабилен

Запусти сейчас — спаси свои базы.

#linux #mysql #postgresql #database #devops #backup
👍5
💾 Данные пропадут завтра — два скрипта спасут их сегодня

Диск упадёт когда угодно. У тебя есть backup?

Два скрипта, которые админы используют для автоматического резервного копирования.

🔹 rsync-backup (Python)
https://github.com/hkbakke/rsync-backup

Умный backup через rsync:
• Жёсткие ссылки — неизменённые файлы не дублируются
• Автоматическая проверка MD5
• Снимки: daily, weekly, monthly, yearly
• Email отчёты о статусе
• Централизованный backup с серверов

🔹 RSync Backup Script v1 (Bash)
https://github.com/Aman7123/RSync-Backup-Script-v1

Простой backup в cron:
• Автоматические weekly и monthly папки
• Удаление старых backup'ов
• Логирование каждого backup'а
• Настраивается через config-файл
• Идеален для daily cron

Запусти один из них сегодня — спаси свои данные.

#linux #backup #rsync #devops #sysadmin #безопасность
👍6👀1
🛡️ Боты из 100 стран уже стучатся — заблокируй их за минуту

Логи забиты, сервер под атакой, CPU на 100% от ботов.

Два скрипта защитят твой сервер от brute-force и спама.

🔹 iptables-ipset-blacklists
https://github.com/dannysheehan/iptables-ipset-blacklists

Автоматическая блокировка по чёрным спискам:
• Загружает авторитетные blacklists
• Whitelist для своих IP
• Логирование атак (HTTP/HTTPS/DNS)
• Cron для обновления раз в день

🔹 ipset-country
https://github.com/mkorthof/ipset-country

Блокировка целых стран:
• iptables/nftables/firewalld
• IPv4 + IPv6 (ipdeny.com)
• Reject или drop режим
• Whitelist/blacklist

Запусти сейчас — очисти логи от мусора.

#linux #безопасность #iptables #ipset #firewall #devops
👍5👀1