Установление SSH-соединения с сервером
Библиотека paramiko предоставляет возможность подключения к серверам через протокол SSH2, позволяя выполнять те же действия, что и при использовании стандартной утилиты ssh в Linux.
Модуль paramiko отличается простотой в использовании, и вы можете ознакомиться с примерами его основных методов на представленном изображении. В качестве любопытного факта, название Paramiko происходит от слияния слов "параноик" и "друг" на языке эсперанто.
Для установки пакета используйте менеджер пакетов pip в привычном порядке. Подробную документацию можно найти здесь.
#python#paramiko#ssh
Анализ текста
Второй пост из серии про анализ тг-чата. В первом показывала, как получить архив чата и вытащить из него сообщения. На этот раз разбираю, как посчитать частотность слов и определить части речи✒️
Файл ipynb с кодом и примечаниями выложила на github:
https://github.com/alsosha/text_analysis/blob/main/text_analysis.ipynb
Остается пост про генерацию облака слов, постараюсь с ним не затягивать😜
P.S. В карточках упомянула, что кроме pymorphy3 есть и другие подобные библиотеки. Например, spacy, natasha, nltk и т.д. Сравнение результатов лемматизации нашла вот тут, а общее сравнение библиотек тут. Можно попробовать разное и подобрать удобный вариант под себя💞
#python
Парсинг тг-чата
Показывала тут дата-открытки с облаками слов из всех сообщений коллеги и обещала рассказать о процессе парсинга тг-чата и анализе текста с помощью python. Рассказываю и делюсь кодом👾
Файл ipynb выложила на github. Внутри не только код, но и комментарии с объяснением алгоритма:
https://github.com/alsosha/tg_chat_parser/blob/main/tg_chat_parser.ipynb
Для наглядности также сделала карточки — изучайте и задавайте вопросы в комментариях, если будут💞
Впереди еще два поста: про анализ текста и генерацию облака слов в svg бесплатно и без регистрации😄
P.S. Еще недавно выложила код для анализа видео и рассказала про алгоритм в карточках.
#python
Закинула на github файл с кодом (python) для анализа цвета видео👾
https://github.com/alsosha/video_color_analysis/blob/main/video_analysis.ipynb
В прошлом году постила алгоритм и его описание тремя отдельными частями:
1. Подготовка данных
2. Анализ данных
3. Визуализация данных
Пример применения кода — мой небольшой проект про цвета трилогии "Матрица".
#python
📰 JDownloader site hacked to replace installers with Python RAT malware
The website for the popular JDownloader download manager was compromised earlier this week to distribute malicious Windows and Linux installers, with the Windows payload found deploying a Python-based remote access trojan.
🔗 Source: https://www.bleepingcomputer.com/news/security/jdownloader-site-hacked-to-replace-installers-with-python-rat-malware/
#linux#python
📰 PyPI Packages Deliver ZiChatBot Malware via Zulip APIs on Windows and Linux
Cybersecurity researchers have discovered three packages on the Python Package Index (PyPI) repository that are designed to stealthily deliver a previously unknown malware family called ZiChatBot on Windows and Linux systems."While these wheel packages do implement the features described on their PyPI web pages, their true purpose is to covertly deliver malicious files," Kaspersky.
🔗 Source: https://thehackernews.com/2026/05/pypi-packages-deliver-zichatbot-malware.html
#linux#python
📶Алгоритм установления соединения в протоколе SSH.
• Алгоритм протокола SSH можно разделить на три уровня, каждый из которых располагается над предыдущим: транспорт (открытие защищённого канала), аутентификация, подключение. Для целостности картины добавим сюда уровень установки сетевого соединения, хотя официально этот уровень находится ниже SSH.
🟢Установка TCP-соединения: на этом этапе происходит сетевое подключение клиента к серверу на TCP-порт, указанный в опции Port (по умолчанию: 22) в файле конфигурации сервера /etc/ssh/sshd_config
🟢Открытие защищенного канала:
- Обмен идентификационными данными: после установки TCP-соединения, клиент и сервер обмениваются версиями SSH-протокола и другими вспомогательными данными, необходимыми для выяснения совместимости протоколов и для выбора алгоритмов работы.
- Выбор алгоритмов (обмена ключами, шифрования, сжатия и т.п.): на этом шаге стороны отсылают друг другу списки поддерживаемых алгоритмов, наибольший приоритет имеют алгоритмы в начале каждого списка. Затем сравнивают алгоритмы в полученных списках с алгоритмами, имеющимися в системе, и выбирают первый совпавший в каждом списке. Список доступных алгоритмов обмена ключами на стороне клиента (используются для получения сессионного ключа) можно посмотреть командой: ssh -Q kex
- Получение сессионного ключа шифрования: Процесс получения сессионного ключа может отличаться в зависимости от версии алгоритма, но в общих чертах сводится к следующему: Сервер отсылает клиенту свой ключ (DSA, RSA или т.п.), если клиент производит соединение с данным сервером впервые, то пользователю будет задан вопрос о доверии ключу сервера. Если же соединение с данным сервером уже устанавливалось ранее, то клиент сравнивает присланный ключ с ключом, записанным в /home/username/.ssh/known_hosts. Если ключи не совпадают, то пользователь получит предупреждение о возможной попытке взлома. Как только клиент определился с доверием к ключу сервера, с помощью одной из реализаций алгоритма Диффи-Хеллмана клиент и сервер генерируют сеансовый ключ, который будет использоваться для симметричного шифрования канала.
🟢Аутентификация клиента: только теперь, когда клиент и сервер установили канал для зашифрованной передачи данных, они могут произвести аутентификацию по паролю или ключам.
- В общих чертах, аутентификация посредством ключей происходит следующим образом: клиент отсылает серверу имя пользователя и свой публичный ключ. Сервер проверяет в файле /home/username/.ssh/authorized_keys наличие присланного клиентом открытого ключа. Если открытый ключ найден, то сервер генерирует случайное число и шифрует его открытым ключом клиента, после чего результат отправляется клиенту. Клиент расшифровывает сообщение своим приватным ключом и отправляет результат серверу. Сервер проверяет полученный результат на совпадение с тем числом, которое он изначально зашифровал открытым ключом клиента, и в случае совпадения считает аутентификацию успешной.
🟢Уровень подключения: после проведения всех вышеперечисленных процедур, пользователь получает возможность передавать команды серверу или копировать файлы.
#SSH
📶How SSH secures your connection.
• Весьма интересный и актуальный материал о том, какие меры безопасности реализованы в SSH для организации защищённого доступа в процессе подключения и работы:
➡️https://noratrieb.dev/blog/posts/ssh-security/
#SSH
📶 Практические советы, примеры и туннели SSH.
• Практические примеры SSH, которые выведут на новый уровень ваши навыки удалённого администрирования. Команды и советы помогут не только использовать SSH, но и более грамотно перемещаться по сети. Знание нескольких трюков ssh полезно любому системному администратору, сетевому инженеру или специалисту по безопасности.
- SSH socks-прокси;
- Туннель SSH (переадресация портов);
- SSH-туннель на третий хост;
- Обратный SSH-туннель;
- Обратный прокси SSH;
- Установка VPN по SSH;
- Копирование ключа SSH (ssh-copy-id);
- Удалённое выполнение команд (неинтерактивно);
- Удалённый перехват пакетов и просмотр в Wireshark;
- Копирование локальной папки на удалённый сервер по SSH;
- Удалённые приложения GUI с переадресацией SSH X11;
- Удалённое копирование файлов с помощью rsync и SSH;
- SSH через сеть Tor;
- SSH к инстансу EC2;
- Редактирование текстовых файлов с помощью VIM через ssh/scp;
- Монтирование удалённого SSH как локальной папки с SSHFS;
- Мультиплексирование SSH с помощью ControlPath;
- Потоковое видео по SSH с помощью VLC и SFTP;
- Двухфакторная аутентификация;
- Прыжки по хостам с SSH и -J;
- Блокировка попыток брутфорса SSH с помощью iptables;
- SSH Escape для изменения переадресации портов.
#SSH
📶 Полное руководство по SSH в Linux и Windows.
• Что такое SSH. Утилиты SSH:
- Что такое и для чего нужен SSH;
- Утилиты SSH;
- Как установить OpenSSH;
- Управление службой OpenSSH;
- Как проверить журнал событий SSH службы;
- Как увидеть неудачные попытки входа SSH;
- Как просмотреть журнал подключений пользователей SSH;
• Настройка сервера OpenSSH:
- Как настроить SSH сервер (sshd);
- Перезапуск службы SSH;
- Как изменить порт, на котором работает сервер OpenSSH;
- Как выбрать интерфейс (IP) для прослушивания;
- Почему пользователь root не может подключиться по SSH с верным паролем. Как запретить или разрешить подключение root по SSH;
- Запрет и разрешение входа в SSH по паролю обычным пользователям;
- Разрешение входа без пароля;
- Как разрешить или запретить пользователям входить через SSH;
- Шаблоны в файле настроек SSH;
- Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH;
- Настройка журналов SSH сервера;
- Запуск SSH без отсоединения от терминала;
- Запуск сервера SSH с другим конфигурационным файлом;
- Как проверить конфигурационный файл сервера SSH без запуска службы;
- Другие важные опции командной строки сервера SSH;
- Другие опции sshd;
• Как подключиться к SSH. Настройка клиента OpenSSH:
- Подключение к SSH из Linux;
- Подключение к SSH из Windows;
- Подключение по SSH с мобильного телефона;
- Как подключиться к SSH;
- Подключение к SSH по имени хоста;
- Подключение по SSH к хосту в VPN;
- Выполнение команд на удалённом сервере без создания сессии шелла;
- Передача стандартного вывода с локальной машины на удалённую по ssh;
- Опции командной строки клиента SSH;
- Конфигурационные файлы клиента SSH;
- Конфигурационные директивы файлов /etc/ssh/ssh_config и ~/.ssh/config;
- Как указать файл ключа для подключения;
• Создание и настройка ключей OpenSSH:
- Вход в SSH без пароля (с использованием файлов ключей);
- Типы ключей;
- Утилита ssh-keygen;
- Как поменять количество бит в ключах ssh-keygen;
- Добавление комментариев в ключи ssh-keygen;
- Изменение паролей в ssh-keygen;
- Показ публичного ключа из приватного;
- Управление приватными ключами на клиенте SSH;
- Управление публичными ключами на сервере SSH;
- Как конвертировать .ppk ключ в OpenSSH ключ;
• Копирование файлов с помощью scp и sftp:
- Копирование с удалённого компьютера и на удалённый компьютер (scp и sftp);
- Как пользоваться утилитой scp;
- Как скопировать файл с одного удалённого хоста на другой удалённый хост;
- Как выгрузить на сервер или скачать с сервера папку;
- Как указать порт для scp;
- Как использовать другой файл настройки для scp и как указать файл ключей аутентификации;
- Как ограничить скорость передачи данных в scp;
- Как сохранить метки времени при передаче по scp;
- Отключение строгой проверки имён файлов;
- Тихий режим;
- Как пользоваться sftp;
- Интерактивные команды sftp;
- Опции sftp;
- Графический интерфейс SFTP;
• Подсказки и сложные случаи использования OpenSSH:
- Туннелирование с SSH. Открытие графической программы, расположенной на удалённом компьютере, по SSH;
- Использование SSH в качестве прокси для доступа к локальным ресурсам удалённого компьютера;
- Установка VPN через SSH;
- Как редактировать файл на другом компьютере через ssh;
- Как сравнить файлы на удалённом компьютере (выполнить команду diff) через SSH;
- Как настроить VNC через ssh;
- Как включить форвардинг (пересылку) X11 с использованием ssh;
- Сохранение запущенной команды после закрытия SSH;
- Сетевая файловая система SSHFS.
#SSH
📶 Visual guide to SSH tunneling and port forwarding.
• Наглядные примеры организации SSH туннелей для решения различных задач: https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/
• В дополнение: практические примеры SSH.
- SSH socks-прокси;
- Туннель SSH (переадресация портов);
- SSH-туннель на третий хост;
- Обратный SSH-туннель;
- Обратный прокси SSH;
- Установка VPN по SSH;
- Копирование ключа SSH (ssh-copy-id);
- Удалённое выполнение команд (неинтерактивно);
- Удалённый перехват пакетов и просмотр в Wireshark;
- Копирование локальной папки на удалённый сервер по SSH;
- Удалённые приложения GUI с переадресацией SSH X11;
- Удалённое копирование файлов с помощью rsync и SSH;
- SSH через сеть Tor;
- SSH к инстансу EC2;
- Редактирование текстовых файлов с помощью VIM через ssh/scp;
- Монтирование удалённого SSH как локальной папки с SSHFS;
- Мультиплексирование SSH с помощью ControlPath;
- Потоковое видео по SSH с помощью VLC и SFTP;
- Двухфакторная аутентификация;
- Прыжки по хостам с SSH и -J;
- Блокировка попыток брутфорса SSH с помощью iptables;
- SSH Escape для изменения переадресации портов;
#SSH
📶 sshlog.
• Open source-инструмент для логирования и мониторинга всей активности юзера после установки им SSH подключения.
- Позволяет админам шарить сеанс другим доверенным юзерам;
- Использует eBPF, написан на С++ и Python;
- Записывает всё, что произошло через SSH;
- Умеет слать предупреждения в слак;
- Ну и еще многое другое...
➡️https://github.com/sshlog/agent
#SSH