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

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

РКН https://vk.cc/cMUwm4
Download Telegram
Media is too big
VIEW IN TELEGRAM
🔐 Защита SSH-сервера: порты, ключи и iptables

Хочешь узнать, как защитить свой SSH-сервер от несанкционированного доступа? В этом видео мы расскажем о лучших практиках, включая порт-нокинг, использование ключей и настройку iptables.

1. Введение в порт-нокинг (00:00):
- Порт-нокинг скрывает открытые порты, делая их доступными только через правильные комбинации стуков. Это как дверь без замочной скважины, которая открывается только при правильной комбинации.

2. Порты и ключи в сетевых протоколах (00:58):
- Порты позволяют нескольким программам работать одновременно. Например, SSH и веб-сервер используют разные порты для разграничения запросов.

3. Защита SSH-сервера (02:39):
- Замена стандартного порта SSH на нестандартный и использование ключей вместо паролей для повышения безопасности.

4. Настройка iptables (15:51):
- Установка и настройка iptables для управления входящими и исходящими соединениями. Это помогает защитить сервер от несанкционированного доступа.

5. Проверка безопасности (22:24):
- Проверка, что порт 45916 не отличается от других, и сканеры портов не могут определить наличие SSH-сервера.

6. Доступ к серверу (23:57):
- Использование утилиты nmp для доступа к серверу через правильные порты.

Заключение (28:30): Порт сервера закрыт снаружи, но доступен при правильном постукивании. Надеемся, что видео было полезным. Ставьте лайки и подписывайтесь на канал!

Источник: https://www.youtube.com/watch?v=5TCvRlD1sSw

📩 Завтра: Вопрос №9 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
________________

Дополнительный материал:
🧠 - Linux и Команды Выключения: Сцена для systemctl
🧠 - Путешествие по команде shutdown
🧠 - Как настроить и использовать Ctrl+Alt+Delete в Linux для надежной перезагрузки

#Linux_youtube @LinuxSkill #Linux #SSH #Security #PortKnocking #Iptables #SysAdmin #DevOps
👍18🔥6
SSH-перенаправление портов

Если вы ищете, как просто пробросить порты через SSH, то, скорее всего, наткнётесь на что-то вроде:
ssh -nNT -L 8000:example.com:80 user@bastion.example.com

Или вот это, если вы ещё хотите отправить ssh в фон:
ssh -NT -L 3306:db.example.com:3306 example.com &

Обе эти команды используют как минимум одну лишнюю опцию, а вторая вообще может привести к тому, что SSH не подключится, если вы используете аутентификацию по паролю. Тем не менее, подобные примеры до сих пор кочуют по разным статьям про перенаправление портов через SSH. Я и сам до недавнего времени пользовался первой вариацией, и решил, что стоит написать об этом — может, кому-то пригодится.

Правильный вариант для этого случая - это не -nNT, а просто -N, вот так:
ssh -N -L 8000:example.com:80 user@bastion.example.com

Если вы хотите отправить ssh в фон, то стоит добавить -f, а не использовать &, встроенный в оболочку. Потому что тогда вы сможете ввести пароль в ssh, если это понадобится.

По сути, в этом и вся суть статьи - так что, если вам просто нужно было это, можете дальше не читать. Но если хочется разобраться, что вообще делают эти опции и зачем они нужны, или вы не совсем понимаете, о чём речь - читайте статью целиком.

https://telegra.ph/SSH-perenapravlenie-portov-06-19

#ит_статьи #linux #network #ssh #forwarding
👍20🔥5
🚀 11 SSH-команд, после которых ты удалишь половину скриптов

Привет, покоритель удалённых серверов! 👋

Устал писать длинные bash-скрипты для простых SSH-задач? Подготовил для тебя команды, которые заменят кучу твоих велосипедов одной строкой.
____________________

Дополнительный материал:
🧠 - Сетевые основы: Удаленное управление
🧠 - Сетевые основы: Безопасность
🧠 - Основы программирования: Основы языка программирования

#инфографика #SSH #Linux #DevOps #Sysadmin #Security #Automation
👍17
Media is too big
VIEW IN TELEGRAM
🚨 VPS взломали за 2 минуты? Защищаем SSH правильно

Привет, защитник серверов!

Тысячи попыток брутфорса в логах? Автор показывает комплексную защиту SSH: от смены порта до двухфакторной аутентификации. Хакеры останутся ни с чем!

📹 План защиты (таймкоды):

00:00 — Анализ угроз SSH
00:43 — Смотрим логи атак и TCPdump
01:34 — Создаём нового пользователя вместо root
03:01 — Настраиваем SSH-ключи
06:17 — Демо: как ломают пароли через Hydra
09:08 — Включаем Google Authenticator (2FA)
12:15 — Проверяем защиту

💡 Что получаем:
- Невидимость для сканеров портов
- Защита от брутфорса паролей
- Двойная защита: ключ + код из приложения
- Root заблокирован навсегда

🚀 Инструменты из видео:
- TCPdump — ловим сканирование
- Nmap — проверяем открытые порты
- Hydra — демо атаки на пароли
- Google Authenticator — 2FA защита

Смотри видео и защити свой сервер уже сегодня!

🌐 Источник: YouTube
____________________

Дополнительный материал:
🧠 - Удаление пользователя в Linux с помощью команды userdel: Пошаговое руководство
🧠 - Удаление пользователя в Ubuntu с помощью команды deluser: Пошаговое руководство
🧠 - Удаление группы в Ubuntu с помощью команды delgroup: Пошаговое руководство

#Linux_youtube #ssh #security #2fa #vps #Linux #video
👍10🔥3
Media is too big
VIEW IN TELEGRAM
💥 SSH-туннель: доступ к закрытым портам за минуту

Привет, мастер удалённого доступа!

База данных спрятана за файрволом? Веб-приложение доступно только локально? Автор за 17 минут показывает полный цикл работы с SSH: от создания ключей до магии проброса портов!

🌐 Источник: https://youtu.be/

#Linux_youtube #ssh #security #tunnel #linux #networking
👍22🔥3
Media is too big
VIEW IN TELEGRAM
🔐 SSH для сисадминов: безопасность и удобство за 17 минут

👋 Привет, защитник серверов!

Админ попросил SSH-ключ? Не знаешь, какой отправить? Разбираемся с созданием ключей, настройкой SSH-сервера, клиента и пробросом портов. Всё пошагово и с примерами.

Полезные ссылки из видео:

- Источник видео
- Пример sshd_config
- Пример ssh config
- Команды для прав на .ssh

#ssh #linux #безопасность #sysadmin #devops #туннелирование #ubuntu
👍15🔥1
🤯 Перестань хранить конфиги в Git: Zabbix сделает это лучше (и быстрее)

Привет, системный архитектор!

Сегодня расскажу про неочевидное, но очень мощное использование Zabbix, которое поможет тебе в мониторинге и бэкапировании [User Query]. Речь о типе элемента данных SSH Агент.

SSH Агент может подключаться по SSH на удаленный хост, выполнять команду и сохранять вывод [User Query]. Мы можем использовать этот механизм для создания бэкапов конфигураций устройств (например, MikroTik), а Zabbix автоматически отбросит неизменившиеся настройки, чтобы ты не хранил одну и ту же информацию много раз [User Query].

Нам понадобится настроить шаблон.

1. Создание элемента данных (Item) для SSH

Мы используем SSH Agent для подключения по защищенному каналу. Аутентификация может происходить по паролю или по ключу [User Query]. Аутентификацию по ключу, как более безопасную, можно предварительно настроить с помощью ssh-keygen.

Для удобства логин и пароль лучше вынести в скрытые макросы шаблона [User Query].

# -----------------------------------------------
# ШАГ 1: Создание Item в шаблоне
# -----------------------------------------------

# Тип: SSH агент (Zabbix Item Type)
Type: SSH agent

# Ключ элемента данных (Key)
# Формат: ssh.run[description,<IP>,<Port>,<User>,<Password>]
Key: ssh.run[mikrotik_backup,10.20.1.20,22,,]

# Тип информации (для хранения конфигурации)
Type of information: Text

# Выполняемый скрипт (команда на удаленном хосте)
Executed script: /export


2. Вкладка "Предобработка" (Preprocessing)

Это критически важный шаг. Мы используем встроенную возможность Zabbix для отбрасывания не изменившихся значений. Это позволяет хранить только различия в конфигурации и оповещать об изменениях [User Query].

# -----------------------------------------------
# ШАГ 2: Настройка дедупликации
# -----------------------------------------------

# Добавляем шаг Предобработки
Preprocessing step:

# Правило: Отбрасывать не изменившееся
Discard unchanged: True (or use specific preprocessing rule)


3. Настройка триггера на изменение конфигурации

Триггер сработает, если последняя полученная конфигурация отличается от предыдущей [User Query].

# -----------------------------------------------
# ШАГ 3: Добавление триггера
# -----------------------------------------------

# Имя: Configuration changed on {HOST.NAME}
# Серьезность: Warning/Average

# Выражение триггера (Trigger Expression):
# last() сравнивает последнее значение с предыдущим (#2)
# Если они отличаются, то триггер сработает
{<Имя шаблона>:ssh.run[mikrotik_backup,10.20.1.20,22,,].last(#1)}<>
{<Имя шаблона>:ssh.run[mikrotik_backup,10.20.1.20,22,,].last(#2)}


4. Дополнительные команды SSH

Ты можешь использовать SSH для выполнения команд и сценариев. Например, для проверки целостности файлов или сбора данных о системе:

# Использование SSH для удаленного выполнения команды
# (Zabbix SSH Agent использует подобный механизм)

# Получение времени в 12-часовом формате с удаленного хоста:
ssh user@host.example.com 'date +%r'

# Использование именованного канала (pipe) для передачи данных между процессами
# (сложный пример, показывающий возможности туннелирования SSH)
su xyz -c "ssh $THERE \"cat > /home/xyz/backup/${HERE}-daily.tar.gz\" < /pipe"& \
cd / && tar -czf - bin boot dev etc home info lib man root sbin share usr var > /pipe


💡 Вывод
Использование SSH Агента в Zabbix позволяет тебе настроить продвинутый аудит конфигураций [User Query] и автоматизацию бэкапов без сложного внешнего скриптования. Главное, что ты получаешь, — немедленное оповещение о любых изменениях в ключевых настройках.

Помни: создавать такие настройки лучше сразу в шаблонах, а не на хостах, чтобы обеспечить удобство и переносимость [User Query].

#Zabbix #SSH #Monitoring #Mikrotik #Автоматизация
👍10👎2
🔥 3 метрики в SSH-баннере: Скрипт для Production

Привет, повелитель терминала!
Тратить время на ввод uptime и free при каждом SSH-входе, чтобы оценить состояние сервера.
Добавь этот динамический скрипт в свой ~/.bashrc (или /etc/profile), и ты получишь мгновенную оценку Load Average, RAM и IP-адреса, используя встроенный документ (here document).

⚙️ Скрипт: Динамический MOTD (Message of the Day)

Скрипт использует подстановку команд $(...) (предпочтительная нотация вместо обратных кавычек ` ``) для сбора метрик и форматированный встроенный документ для их вывода.

#!/bin/bash
# -------------------------------------------------------------
# 1. Сбор системных метрик
# -------------------------------------------------------------

# Получаем локальный IP-адрес сервера (первый в списке)
SERVER_IP=$(hostname -I | awk '{print $1}')

# Получаем Load Average за 1 минуту.
# Средняя загрузка (Load Average) — это количество процессов,
# ожидающих ЦПУ или дискового ввода/вывода.
# Мы считываем метрики из псевдофайла /proc/loadavg,
# извлекая первое поле (1-минутное значение).
LOAD_AVG=$(cut -d " " -f1 /proc/loadavg)

# Получаем использованную/общую RAM в "человекочитаемом" виде.
# Используем команду `free` для статистики виртуальной памяти.
# AWK используется для извлечения 3-го и 2-го столбцов строки "Mem:"
RAM_USED_TOTAL=$(free -h | awk '/Mem:/ {print $3 "/" $2}')

# -------------------------------------------------------------
# 2. Вывод баннера с помощью Встроенного Документа (Here Document)
# -------------------------------------------------------------

# Конструкция 'cat << EOF' создает встроенный документ.
# Встроенные документы поддерживают подстановку параметров, если
# ограничитель (EOF) не экранирован.

cat << EOF

=============================================
🛡️ SYSTEM HEALTH CHECK | USER: $(whoami)
=============================================
🚀 Локальный IP: $SERVER_IP
⏱️ Load Average 1m: $LOAD_AVG
💾 RAM (Used/Total): $RAM_USED_TOTAL
---------------------------------------------

EOF


Вывод:

Вставь этот код в конец своего файла ~/.bashrc. Таким образом, ты увидишь здоровье сервера сразу после подключения, не используя команды вроде top или vmstat. Помни, что stat также может давать подробную информацию о файле или каталоге, включая размер, права доступа, и временные метки (доступ, модификация, изменение статуса).

#Bash #Скрипты #SSH #CLI #Мониторинг
🔥9👍5
🛡 Твой новый стандарт: Генерируем 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
🚨 Fail2ban → Telegram: уведомления о банах за секунды

Эй, страж сервера!

SSH-брутфорс каждые 500 попыток в день? Bash-скрипт шлет уведомления в Telegram: входы, баны, статистика.

Fail2ban + curl/tail — реал-тайм алерты без Jail-хака.

Что нужно:
- fail2ban + curl.
- Bot токен + chat_id.

sudo apt update
sudo apt install fail2ban curl



Оригинальный скрипт (~/.bashrc или /usr/local/bin/telegram_notification.sh):

#!/bin/bash

# Замените на ваш токен и chat_id
TOKEN="123456789:ABCDEFGHIJKLMN_OPQRSTUVWXYZ123456"
CHAT_ID="987654321"

# Функция для отправки сообщения в Telegram
send_telegram_message() {
local message="$1"
curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
-d "chat_id=$CHAT_ID" \
-d "text=$message" \
-d "parse_mode=HTML"
}

# Переменная для отслеживания времени последнего уведомления о неудачных попытках и блокировках
last_failed_time=0
# Время (1 день) через которое следует посылать уведомления о неудачных попытках входа
track_time_range=86400

# Функция для проверки и отправки уведомлений о неудачных попытках и блокировках
check_failed_attempts() {
current_time=$(date +%s)
# Проверка, прошло ли больше суток с последнего уведомления
if (( current_time - last_failed_time >= track_time_range )); then
# Получаем информацию о неудачных попытках и блокировках за последние сутки
failed_attempts=$(grep "Failed password" /var/log/auth.log | wc -l)
bans=$(grep "Ban" /var/log/fail2ban.log | wc -l)

# Формируем сообщение
message="📊 Статистика за последние сутки:\n"
message+="🚨 Неудачных попыток входа: $failed_attempts\n"
message+="🔒 Заблокированных IP: $bans"

# Отправляем сообщение
send_telegram_message "$message"
last_failed_time=$current_time
fi
}

# Отслеживание логов аутентификации и Fail2Ban
tail -F /var/log/auth.log /var/log/fail2ban.log | while read line; do
# Проверка на успешные попытки входа
if echo "$line" | grep "Accepted password" &> /dev/null; then
send_telegram_message " Успешный вход: $line"
fi

# Проверка на неудачные попытки входа
if echo "$line" | grep "Failed password" &> /dev/null; then
check_failed_attempts
fi

# Проверка на заблокированные IP-адреса
if echo "$line" | grep "Ban" &> /dev/null; then
check_failed_attempts
fi
done



Запуск:
chmod +x telegram_notification.sh
nohup ./telegram_notification.sh &
ps aux | grep telegram_notification



💡 Вывод:
Мгновенные алерты: входы/баны/статистика. Лучше Jail-шаблонов — гибче.

#Fail2ban #Bash #Telegram #Monitoring #Linux #SSH
👍10👎1
🔐 Хватит тупить: 15 команд SSH, которые обязан знать каждый админ

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

1. Подключение к удаленному хосту по имени пользователя и адресу:
ssh [user]@[host]

2. Генерация надежного SSH-ключа с длиной 4096 бит:
ssh-keygen -b 4096

3. Выполнение конкретной команды на сервере без входа в интерактивную сессию:
ssh [user]@[host] [command]

4. Копирование твоего публичного ключа на сервер для входа без пароля:
ssh-copy-id [user]@[host]

5. Подключение к серверу с использованием конкретного файла ключа:
ssh -i [keyFile] [user]@[host]

6. Проброс локального порта через SSH туннель (TCP Port Forwarding):
ssh -L [localPort]:[host]:[port] [user]@[host]

7. Создание динамического SOCKS5 прокси-сервера:
ssh -D 9999 [user]@[host]

8. Пересылка графического интерфейса X11 в текущую сессию:
ssh -X [user]@[host]

9. Быстрая передача файла на сервер (Push file):
scp [localFile] [user]@[host]:[remoteFile] $ rsync [localFile] [user]@[host]:[remoteFile]

10. Загрузка файла с сервера на локальную машину (Pull file):
scp [user]@[host]:[remoteFile] . $ rsync [user]@[host]:[remoteFile] .

11. Передача целой директории на удаленный сервер:
scp -r [localDir] [user]@[host]:[remoteDir]

12. Синхронизация файлов и папок с сохранением прав и сжатием (rsync):
rsync -avz [localDir] [user]@[host]:[remoteDir]

13. Интерактивный протокол передачи файлов:
sftp [user]@[host]

14. Монтирование удаленной директории через SSH в локальную систему:
sshfs [user]@[host]:[remoteDir] [localDir]

15. Разрыв текущего соединения и завершение сессии (все доступные варианты):
exit$ logout$ Ctrl+d


Теперь ты можешь управлять серверами как настоящий профи. Сохраняй эти команды, чтобы не гуглить в самый ответственный момент!

❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill

#Linux #SSH #CheatSheet #Sysadmin #DevOps #Security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43👎1
🔐 Хакер не пройдет: 13 гайдов как закрыть все дыры на сервере

Устал латать дыры в конфигах после очередного сканирования? Чтобы твой сервер не превратился в часть ботнета, лови подборку самых «мясных» постов по безопасности из архива канала.

Защита SSH и доступа
* Защита SSH-сервера: порты, ключи и iptables
* Защити свой сервер: Настройка безопасности SSH на Linux
* SSH для сисадминов: безопасность и удобство за 17 минут
* Расширение возможностей команды sudo в Linux: Пошаговое руководство

Сетевая безопасность и фаерволы
* Настраиваем iptables с нуля: Полный гайд по фильтрации пакетов
* iptables: доступ к порту 8000 только с одного IP
* iptables или nftables: что выбрать для управления сетевыми правилами?
* Усиление безопасности веб-серверов Linux с помощью самоподписанных сертификатов

Безопасность контейнеров (Docker)
* Эта команда Docker даёт хакеру права root на хосте
* Секреты Pro-Docker: 4 хака, которые сделают твои образы в 5 раз меньше

Критичные ошибки и кейсы
* Осторожно: Никогда не запускай эти 11 команд в Linux!
* Почему cat всё ещё опасен в 2025 году?
* Как пентестеры взломали ИТ-компанию через сайт уролога и Роскомнадзор!

Безопасность — это процесс, а не результат. Начни с настройки SSH по ключам и ограничения прав в Dockerfile, а потом переходи к тонкой настройке nftables.

❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #SkillHunter@LinuxSkill

#Linux #Security #SSH #Docker #Iptables #Hardening #LinuxSkill
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18