Утилита динамического мониторинга процессов Nmon
Это утилита измерения и настройки производительности. Она может отображать информацию о ЦП, оперативной памяти, сети, дисках (в виде мини графиков или числовых данных), файловых системах, NFS, самых нагружающих процессах, ресурсах.
Устанавливается командой:
Для запуска утилиты необходимо выполнить команду:
https://telegra.ph/Utilita-dinamicheskogo-monitoringa-processov-Nmon-03-11
Это утилита измерения и настройки производительности. Она может отображать информацию о ЦП, оперативной памяти, сети, дисках (в виде мини графиков или числовых данных), файловых системах, NFS, самых нагружающих процессах, ресурсах.
Устанавливается командой:
sudo pamcan -S nmon
Для запуска утилиты необходимо выполнить команду:
nmon
https://telegra.ph/Utilita-dinamicheskogo-monitoringa-processov-Nmon-03-11
❤2
Как работает HTTPS?
Безопасный протокол передачи гипертекста
(HTTPS) - это расширение протокола передачи гипертекста (HTTP). HTTPS передает зашифрованные данные с использованием транспортного уровня безопасности (TLS). Если данные будут перехвачены в Интернете, все, что получит угонщик, - это двоичный код.
Как шифруются и дешифруются данные?
Шаг 1 - Клиент (браузер) и сервер устанавливают TCP-соединение.
Шаг 2 - Клиент отправляет серверу " client hello". Сообщение содержит набор необходимых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую он может поддерживать. Сервер отвечает " server hello", чтобы браузер знал, может ли он поддерживать алгоритмы и версию TLS.
Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, дату истечения срока действия и т. д. Клиент проверяет сертификат.
Шаг 3. После проверки SSL-сертификата клиент генерирует ключ сессии и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ сеанса и расшифровывает его с помощью закрытого ключа.
Шаг 4 - Теперь, когда клиент и сервер владеют одним и тем же сеансовым ключом (симметричное шифрование), зашифрованные данные передаются по защищенному двунаправленному каналу.
Почему HTTPS переключается на симметричное шифрование при передаче данных? Есть две основные причины:
1. Безопасность: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их с помощью открытого ключа.
2. Ресурсы сервера: Асимметричное шифрование добавляет довольно много математических накладных расходов. Оно не подходит для передачи данных в длительных сессиях.
Безопасный протокол передачи гипертекста
(HTTPS) - это расширение протокола передачи гипертекста (HTTP). HTTPS передает зашифрованные данные с использованием транспортного уровня безопасности (TLS). Если данные будут перехвачены в Интернете, все, что получит угонщик, - это двоичный код.
Как шифруются и дешифруются данные?
Шаг 1 - Клиент (браузер) и сервер устанавливают TCP-соединение.
Шаг 2 - Клиент отправляет серверу " client hello". Сообщение содержит набор необходимых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую он может поддерживать. Сервер отвечает " server hello", чтобы браузер знал, может ли он поддерживать алгоритмы и версию TLS.
Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, дату истечения срока действия и т. д. Клиент проверяет сертификат.
Шаг 3. После проверки SSL-сертификата клиент генерирует ключ сессии и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ сеанса и расшифровывает его с помощью закрытого ключа.
Шаг 4 - Теперь, когда клиент и сервер владеют одним и тем же сеансовым ключом (симметричное шифрование), зашифрованные данные передаются по защищенному двунаправленному каналу.
Почему HTTPS переключается на симметричное шифрование при передаче данных? Есть две основные причины:
1. Безопасность: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их с помощью открытого ключа.
2. Ресурсы сервера: Асимметричное шифрование добавляет довольно много математических накладных расходов. Оно не подходит для передачи данных в длительных сессиях.
❤5👍1
Как найти и убить процессы, занявшие порт в Linux
📌 Что делает эта команда:
-
-
-
💡 Альтернатива с
-
-
-
⚠️ Будь аккуратен, особенно с
fuser -k 8080/tcp
📌 Что делает эта команда:
-
fuser
— показывает, какие процессы используют файл или сокет;-
-k
— убивает найденные процессы;-
8080/tcp
— порт, который проверяем (можно заменить на свой).💡 Альтернатива с
lsof
:
kill -9 $(lsof -t -i:8080)
-
lsof -i:8080
— находит процессы, слушающие порт;-
-t
— выводит только PID;-
kill -9
— принудительно завершает процессы.⚠️ Будь аккуратен, особенно с
kill -9
— он не даёт процессу корректно завершиться.👍3❤1
Примеры типовых операций в bash-скриптах
Собрал для вас полезные кусочки Bash-кода, которые часто нужны при написании скриптов: арифметика, проверки, FTP, Telnet, циклы и т.д.
📌 Арифметика и цикл по количеству раз:
📌 Проверки файлов:
📌 Работа с FTP (без интерактива):
📌 Работа с Telnet:
⚠️ Если требуется пароль — добавь ещё
📌 Цикл по множеству значений:
Не забудь дать права на исполнение скрипта:
Собрал для вас полезные кусочки Bash-кода, которые часто нужны при написании скриптов: арифметика, проверки, FTP, Telnet, циклы и т.д.
📌 Арифметика и цикл по количеству раз:
#!/bin/bash
A="10"
B="5"
C=`expr $A + $B`
printf "A=10 B=5 C=expr \$A + \$B C=%d \n" "$C"
# Цикл по числам от 0 до 14 (в 16-ричном формате)
I=0
while [ $I -lt 15 ]
do
printf "0x%02x " "$I"
I=`expr $I + 1`
done
echo
📌 Проверки файлов:
#!/bin/bash
# Создаем файл
touch test1
# Проверка существования файла
if [ -f test1 ]; then
echo "файл test1 существует"
fi
# Проверка отсутствия файла
if ! [ -f test2 ]; then
echo "файл test2 не существует"
fi
# Краткая шпаргалка:
# -d file — директория
# -f file — обычный файл
# -L file — символьная ссылка
# -r/-w/-x — права: чтение/запись/выполнение
# -s file — файл существует и не пустой
# f1 -nt f2 — f1 новее, чем f2
# f1 -ot f2 — f1 старше, чем f2
📌 Работа с FTP (без интерактива):
#!/bin/bash
ADDRESS=192.168.1.150
USER=root
PASSWORD=root
ftp -n -p $ADDRESS <<EoF
user $USER $PASSWORD
cd /usr/bin
put my_cool_program
quit
EoF
exit 0
📌 Работа с Telnet:
#!/bin/bash
(
sleep 1
echo "root"
echo "cd /tmp"
echo "ls"
sleep 1
echo "quit"
) | telnet 192.168.1.150
⚠️ Если требуется пароль — добавь ещё
echo "mypassword"
сразу после echo "root"
📌 Цикл по множеству значений:
#!/bin/bash
for A in раз два три четыре пять
do
echo "$A,"
done
echo "вышел заяц погулять"
Не забудь дать права на исполнение скрипта:
chmod a+x script.sh
❤2👍1
📌 Как проверить, какие процессы используют диск в Linux?
Всем доброо вечера! Сегодня разберёмся с ситуацией, когда диск в системе нагружен, а причина не ясна. Как узнать, какие процессы активно читают/пишут данные?
1. Используем
Это удобная утилита, показывающая процессы, активно работающие с диском. Установить её можно так:
Запускаем команду:
Можно добавить флаг
2. Анализируем с
Утилита
Здесь
3. Используем
Чтобы узнать, какие файлы открыты процессами на диске:
Например, чтобы посмотреть файлы в
4.
Хотите увидеть, какие файлы изменяются? Запустите:
Всем доброо вечера! Сегодня разберёмся с ситуацией, когда диск в системе нагружен, а причина не ясна. Как узнать, какие процессы активно читают/пишут данные?
1. Используем
iotop
Это удобная утилита, показывающая процессы, активно работающие с диском. Установить её можно так:
# Для Debian/Ubuntu:
sudo apt install iotop
# Для RHEL/CentOS/AlmaLinux/Rocky:
sudo dnf install iotop
Запускаем команду:
sudo iotop
Можно добавить флаг
-o
, чтобы показать только активные процессы:
sudo iotop -o
2. Анализируем с
pidstat
Утилита
pidstat
из пакета sysstat
поможет увидеть нагрузку на диск со стороны процессов:
sudo pidstat -d 1
Здесь
-d
— мониторинг I/O, а 1
— обновление раз в секунду.3. Используем
lsof
Чтобы узнать, какие файлы открыты процессами на диске:
sudo lsof +D /путь/к/директории
Например, чтобы посмотреть файлы в
/var/log
:
sudo lsof +D /var/log
4.
fatrace
– в реальном времени Хотите увидеть, какие файлы изменяются? Запустите:
sudo fatrace
👍2❤1
Полезные команды Linux. Манипуляции с текстом
#
Вывести содержимое файла, нумеруя выводимые строки
#
Вывести только не четные строки файла
#
Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
#
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1
#
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2
#
Отобрать и вывести строки содержащие цифровые символы из файла /var/log/messages
#
Отобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages
#
Отобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages
#
Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже
#
Объединить содержимое file1 и file2 в виде таблицы с разделителем "+"
#
Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
#
Сравнить содержимое двух файлов
#
Заменить string1 на string2 в файле example.txt и вывести содержимое
#
Удалить пустые строки и комментарии из файла example.txt
#
Удалить пустые строки и комментарии из файла example.txt
#
Удалить первую строку из файла example.txt
#
Отобразить только строки содержащие string1
#
Удалить строку string1 из текста файла example.txt не изменяя всего остального
#
Удалить пустые символы в конце каждой строки файла example.txt
#
Вывести пятую строку
#
Вывести строки со второй по пятую
#
Заменить последовательность из любого количества нулей одним нулём
#
Вывести отсортированное содержимое двух файлов
#
Вывести отсортированное содержимое двух файлов исключая повторные значения
#
Вывести уникальные значения из отсортированного содержимого двух файлов
#
Вывести только повторяющиеся значения из отсортированного содержимого двух файлов
#
Перевести символы нижнего регистра в верхний
#
cat -n file1
Вывести содержимое файла, нумеруя выводимые строки
#
cat example.txt | awk 'NR%2==1'
Вывести только не четные строки файла
#
echo a b c | awk '{print $1,$3}'
Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
echo a b c | awk '{print $1}'
Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
comm -3 file1 file2
Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
#
comm -1 file1 file2
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1
#
comm -2 file1 file2
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2
#
grep [0-9] /var/log/messages
Отобрать и вывести строки содержащие цифровые символы из файла /var/log/messages
#
grep ^Aug /var/log/messages
Отобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages
#
grep Aug /var/log/messages
Отобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages
#
grep Aug -R /var/log/*
Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже
#
paste -d '+' file1 file2
Объединить содержимое file1 и file2 в виде таблицы с разделителем "+"
#
paste file1 file2
Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
#
sdiff file1 file2
Сравнить содержимое двух файлов
#
sed 's/string1/string2/g' example.txt
Заменить string1 на string2 в файле example.txt и вывести содержимое
#
sed '/ *#/d; /^$/d' example.txt
Удалить пустые строки и комментарии из файла example.txt
#
sed '/^$/d' example.txt
Удалить пустые строки и комментарии из файла example.txt
#
sed -e '1d' exampe.txt
Удалить первую строку из файла example.txt
#
sed -n '/string1/p'
Отобразить только строки содержащие string1
#
sed -e 's/string//g' example.txt
Удалить строку string1 из текста файла example.txt не изменяя всего остального
#
sed -e 's/ *$//' example.txt
Удалить пустые символы в конце каждой строки файла example.txt
#
sed -n '5p;5q' example.txt
Вывести пятую строку
#
sed -n '2,5p' example.txt
Вывести строки со второй по пятую
#
sed -e 's/00*/0/g' example.txt
Заменить последовательность из любого количества нулей одним нулём
#
sort file1 file2
Вывести отсортированное содержимое двух файлов
#
sort file1 file2 | uniq
Вывести отсортированное содержимое двух файлов исключая повторные значения
#
sort file1 file2 | uniq -u
Вывести уникальные значения из отсортированного содержимого двух файлов
#
sort file1 file2 | uniq -d
Вывести только повторяющиеся значения из отсортированного содержимого двух файлов
#
echo 'word' | tr '[:lower:]' '[:upper:]'
Перевести символы нижнего регистра в верхний
❤3👍1
Lexicon - утилита для управление записями DNS на различных DNS-провайдерах.
Используя её, вы можете организовать централизованное управление записями на неймсерверах провайдеров, используя их API, без необходимости ручных правок в панелях.
Поддерживает большой список популярных сервисов Cloudflare, Cloudns, Yandexcloud и т.д.
https://github.com/AnalogJ/lexicon
Используя её, вы можете организовать централизованное управление записями на неймсерверах провайдеров, используя их API, без необходимости ручных правок в панелях.
Поддерживает большой список популярных сервисов Cloudflare, Cloudns, Yandexcloud и т.д.
https://github.com/AnalogJ/lexicon
👍2
Увеличение дискового пространства в ОС FreeBSD
Для того, чтобы сделать новое дисковое пространство доступным для операционной системы, следуйте инструкции.
https://telegra.ph/Uvelichenie-diskovogo-prostranstva-v-OS-FreeBSD-09-26
Для того, чтобы сделать новое дисковое пространство доступным для операционной системы, следуйте инструкции.
https://telegra.ph/Uvelichenie-diskovogo-prostranstva-v-OS-FreeBSD-09-26
❤3
Полезные команды Linux. Работа с правами доступа файлов и директорий
#
Назначить пользователя vasya владельцем файла file
#
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
#
Назначить владельца и группу для файла /file
#
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
#
Удалить все права на директорию /directory для группы и остальных
#
Изменить группу-владельца для file на new_group
#
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
#
Удалить STIKY-бит с директории /home/public
#
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
#
Удалить SUID-бит с файла /bin/binary_file
#
Установить SGID-бит на директории /home/public
#
Удалить SGID-бит с директории /home/public
#
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
#
Листинг текущего каталога с правами доступа
#
chown vasya /file
Назначить пользователя vasya владельцем файла file
#
chown -R vasya directory
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
#
chown vasya:group /file
Назначить владельца и группу для файла /file
#
chmod ugo+rwx /directory
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
#
chmod go-rwx /directory
Удалить все права на директорию /directory для группы и остальных
#
chgrp new_group file
Изменить группу-владельца для file на new_group
#
chmod o+t /home/public
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
#
chmod o-t /home/public
Удалить STIKY-бит с директории /home/public
#
chmod u+s /bin/binary_file
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
#
chmod u-s /bin/binary_file
Удалить SUID-бит с файла /bin/binary_file
#
chmod g+s /home/public
Установить SGID-бит на директории /home/public
#
chmod g-s /home/public
Удалить SGID-бит с директории /home/public
#
find / -perm -u+s
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
#
ls -lh
Листинг текущего каталога с правами доступа
👍2
Полезные команды Linux. Средство управление пакетами - APT ( Debian, Ubuntu и т.д. )
Вывести список пакетов, чье имя совпадает со строкой package
Проверить зависимости
Установить / обновить пакет с cdrom'а
Установить / обновить пакет
Обновить установленные в систему пакеты
Удалить установленный пакет из системы, сохранив файлы конфигурации
Обновить списки пакетов репозитария
Удалить загруженные архивные файлы пакетов
# apt-cache search [ package ]
Вывести список пакетов, чье имя совпадает со строкой package
# apt-get check
Проверить зависимости
# apt-cdrom install [ package ]
Установить / обновить пакет с cdrom'а
# apt-get install [ package ]
Установить / обновить пакет
# apt-get upgrade
Обновить установленные в систему пакеты
# apt-get remove [ package ]
Удалить установленный пакет из системы, сохранив файлы конфигурации
# apt-get update
Обновить списки пакетов репозитария
# apt-get clean
Удалить загруженные архивные файлы пакетов
👍2❤1
Команда curl. Синтаксис. Примеры использования
Сurl – утилита командной строки для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. Изначально в середине 90-х, на заре развития Интернета, он разрабатывал бота, который должен был загружать с веб-страницы курсы валют и сообщать пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новые функции. Теперь curl используется для передачи любых данных и ряда других полезных задач. Рассмотрим основные моменты работы с этим инструментом.
https://telegra.ph/Komanda-curl-Sintaksis-Primery-ispolzovaniya-09-26
Сurl – утилита командной строки для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. Изначально в середине 90-х, на заре развития Интернета, он разрабатывал бота, который должен был загружать с веб-страницы курсы валют и сообщать пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новые функции. Теперь curl используется для передачи любых данных и ряда других полезных задач. Рассмотрим основные моменты работы с этим инструментом.
https://telegra.ph/Komanda-curl-Sintaksis-Primery-ispolzovaniya-09-26
👍3
Сохраняем вывода команды Top в файл
Поскольку я не использовал опцию delay, приведенная ниже команда top перенаправит вывод команды top за одну итерацию в файл.
Сохранение вывода команды top с более чем одной итерацией из 5 итераций
Обычно программа работает непрерывно с задержкой в 2 секунды, и вы можете изменить это значение, добавив в верхнюю команду значение ‘-d’, как показано ниже:
Как захватить вывод команды top в файл каждые 5 минут в течение часа
Система создает отдельный файл каждые 5 минут, который поможет вам определить список процессов, которые потребляли больше CPU и памяти в системе.
Добавляем следующий cronjob, который будет выполняться с 5 до 6 утра каждые 5 минут в течение часа.
Где
-n : Задает максимальное количество итераций.
-b : Работа в пакетном режиме (Запуск команды top в пакетном режиме для перенаправления вывода в другие программы или в файл)
-d : Интервал задержки (Задает задержку между обновлениями экрана)
Собраем вывод в один файл, используйте следующий cronjob
Cronjob будет выполняться с 9 до 10 утра каждые 5 минут в течение часа и добавлять результаты в один файл.
Записываем вывод команды top в файл каждые 5 минут в течение получаса
Добавляем следующий cronjob, который будет запускаться каждые 5 минут с 13:30 до 14:00 в течение получаса.
Поскольку я не использовал опцию delay, приведенная ниже команда top перенаправит вывод команды top за одну итерацию в файл.
top -b -n 1 > /home/i_odmin/backup/output.txt
Сохранение вывода команды top с более чем одной итерацией из 5 итераций
Обычно программа работает непрерывно с задержкой в 2 секунды, и вы можете изменить это значение, добавив в верхнюю команду значение ‘-d’, как показано ниже:
top -n 5 -d 4 -b >/backup/output_1.txt
Как захватить вывод команды top в файл каждые 5 минут в течение часа
Система создает отдельный файл каждые 5 минут, который поможет вам определить список процессов, которые потребляли больше CPU и памяти в системе.
Добавляем следующий cronjob, который будет выполняться с 5 до 6 утра каждые 5 минут в течение часа.
Где
-n : Задает максимальное количество итераций.
-b : Работа в пакетном режиме (Запуск команды top в пакетном режиме для перенаправления вывода в другие программы или в файл)
-d : Интервал задержки (Задает задержку между обновлениями экрана)
0-59/5 5 * * * top -n 10 -d 4 -b > /home/i_odmin/backup/top_out-`date +\%Y\%m\%d\%H\%M\%S`.txt
Собраем вывод в один файл, используйте следующий cronjob
Cronjob будет выполняться с 9 до 10 утра каждые 5 минут в течение часа и добавлять результаты в один файл.
0-59/5 9 * * * top -b -n5 -d 5 >>/home/i_odmin/backup/output.txt
Записываем вывод команды top в файл каждые 5 минут в течение получаса
Добавляем следующий cronjob, который будет запускаться каждые 5 минут с 13:30 до 14:00 в течение получаса.
30-59/5 13 * * * top -n 10 -d 4 -b > /home/i_odmin/backup/top_out-`date +\%Y\%m\%d\%H\%M\%S`.txt
❤1
Обнаружение SSH-туннелей по размеру пакетов
Протокол SSH — очень мощный инструмент, который используется для удалённой консоли или передачи файлов (scp, sftp). Есть менее известная функция перенаправления портов. Такие SSH-туннели используются для пробития файрволов и хорошо скрываются от обнаружения стандартными средствами мониторинга типа Trisul, Zeek (ранее был известен как Bro), Suricata и Snort. Поэтому для их обнаружения в корпоративной сети используются другие методы.
Например, разработчики инструмента для сетевого мониторинга Trisul Network Analytics несколько лет назад опубликовали небольшое руководство по методам обнаружения SSH-туннелей. Они напоминают, что ещё во второй версии SSH 2 появилась поддержка SOCKS5, а это позволяет любому желающему установить полноценный SOCKS5-прокси вне корпоративной сети и скрыть всю HTTP-активность от инструментов сетевого мониторинга.
После обмена ключами SSH эффективно скрывает от посторонних глаз весь трафик внутри туннеля.
https://habr.com/ru/companies/ruvds/articles/799255/
Протокол SSH — очень мощный инструмент, который используется для удалённой консоли или передачи файлов (scp, sftp). Есть менее известная функция перенаправления портов. Такие SSH-туннели используются для пробития файрволов и хорошо скрываются от обнаружения стандартными средствами мониторинга типа Trisul, Zeek (ранее был известен как Bro), Suricata и Snort. Поэтому для их обнаружения в корпоративной сети используются другие методы.
Например, разработчики инструмента для сетевого мониторинга Trisul Network Analytics несколько лет назад опубликовали небольшое руководство по методам обнаружения SSH-туннелей. Они напоминают, что ещё во второй версии SSH 2 появилась поддержка SOCKS5, а это позволяет любому желающему установить полноценный SOCKS5-прокси вне корпоративной сети и скрыть всю HTTP-активность от инструментов сетевого мониторинга.
После обмена ключами SSH эффективно скрывает от посторонних глаз весь трафик внутри туннеля.
https://habr.com/ru/companies/ruvds/articles/799255/
❤1
Тайм-капсула. Архив со сжатием файловой системы
Тайм-капсула — слепок файловой системы (ФС), желательно с максимальным сжатием, на заданную дату/время. Используется для долговременного хранения в архиве, резервного копирования и восстановления в случае сбоя/потери данных. Нас интересует, как делать такие слепки самостоятельно и какие файлы получаются при этом.
Кто-то привык к обычному tar cvzf output.tar.gz /source/path для клонирования дисков, но есть более универсальный инструмент FSArchiver, который сохраняет файловые атрибуты, несколько файловых систем в одном архиве и контрольные суммы файлов с хорошим уровнем сжатия.
https://habr.com/ru/company/ruvds/blog/694486/
Тайм-капсула — слепок файловой системы (ФС), желательно с максимальным сжатием, на заданную дату/время. Используется для долговременного хранения в архиве, резервного копирования и восстановления в случае сбоя/потери данных. Нас интересует, как делать такие слепки самостоятельно и какие файлы получаются при этом.
Кто-то привык к обычному tar cvzf output.tar.gz /source/path для клонирования дисков, но есть более универсальный инструмент FSArchiver, который сохраняет файловые атрибуты, несколько файловых систем в одном архиве и контрольные суммы файлов с хорошим уровнем сжатия.
https://habr.com/ru/company/ruvds/blog/694486/
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Linux Kernel Manager and Activity Monitor
Утилита отображает информацию о текущем состоянии ядра, выводит данные о загруженных в ядро модулях и позволяет работать с ними.
https://github.com/orhun/kmon
Утилита отображает информацию о текущем состоянии ядра, выводит данные о загруженных в ядро модулях и позволяет работать с ними.
https://github.com/orhun/kmon
👍1
PowerShell: используем Invoke-Command для запуска команд/скриптов на удаленных компьютерах
В этой статье мы рассмотрим особенности использования командлета Invoke-Command для удаленного выполнения команд и скриптов. Возможно запускать команды удаленно на одном компьютере, или параллельно на множестве компьютерах в вашей сети. Командлет Invoke-Command использует возможности удаленного управления, заложенные в PowerShell Remoting. PowerShell Remoting позволяет удаленно подключаться к PowerShell сессиям на компьютерах через службу WinRM (Windows Remote Management) через протокол Web Services for Management (WS-Management). Этот сервис дает возможность принимать команды Powershell и устанавливать сеансы.
https://telegra.ph/PowerShell-ispolzuem-Invoke-Command-dlya-zapuska-komandskriptov-na-udalennyh-kompyuterah-09-26
В этой статье мы рассмотрим особенности использования командлета Invoke-Command для удаленного выполнения команд и скриптов. Возможно запускать команды удаленно на одном компьютере, или параллельно на множестве компьютерах в вашей сети. Командлет Invoke-Command использует возможности удаленного управления, заложенные в PowerShell Remoting. PowerShell Remoting позволяет удаленно подключаться к PowerShell сессиям на компьютерах через службу WinRM (Windows Remote Management) через протокол Web Services for Management (WS-Management). Этот сервис дает возможность принимать команды Powershell и устанавливать сеансы.
https://telegra.ph/PowerShell-ispolzuem-Invoke-Command-dlya-zapuska-komandskriptov-na-udalennyh-kompyuterah-09-26
❤1
Шпаргалка docker
Best Practice
🟢 Следуй принципу минимальных привилегий, процессы в контейнере никогда не должны выполняться из под рута, кроме редких случаев, нужно добавлять команду user и менять юзера на non-root.
🟢 Не привязываться к UID, он динамичен, можно записать во временную папку UID.
🟢 Сделать все исполняемые файлы владельцем рута, чтобы никто не изменил исполняемые файлы, а пользователю достаточно только права на выполнение.
🟢 Чем меньше компонентов и открытых портов, тем меньше поверхность для атак.
🟢 Использовать multistage для промежуточного контейнера для компиляции всего, зависимостей, временных файлов, образ может весить на треть меньше.
🟢 Distroless с чистого листа, использовать минимальный набор пакетов, например избавиться от образа Ubuntuи выбрать Debian-base, наши контейнеры содержат уязвимости изначального образа, чекать это.
🟢 Нужно обновлять всё до того, как выйдет из под поддержки.
🟢 Оставлять только те порты, которые реально нужны, избегать 22 и 21 3389 (ssh & ftp & rdp).
🟢 Никогда не помещайте логины/пароли в команде, в докерфайлах, переменных, docker secret или любой другой менеджер секретов ok.
🟢 Не использовать ADD, только COPY (когда используем точку - это воркдир где лежит докерфайл).
🟢 При сборке используйте .dockerignore чтобы убрать сенситив дату, это как .gitignore.
🟢 При сборке вначале команд лучше кешировать команду ран, а потом скопировать исходные данные.
🟢 Метадату записать.
🟢 Использовать тесты типа Linter и сканеры образов для CI.
🟢 Время от времени делать prune, докер любит много места жрать
Best Practice
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1