TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #721 · 26.12

Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev

Hashtags

Резултати

Намерени 67 подобни публикации

Търсене: #ssh

当前筛选 #ssh清除筛选
infosecurity

@tg_infosec · Post #3572 · 10.09.2025 г., 12:34

📶Алгоритм установления соединения в протоколе 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

Hashtags

infosecurity

@tg_infosec · Post #3533 · 30.08.2025 г., 12:34

📶How SSH secures your connection. • Весьма интересный и актуальный материал о том, какие меры безопасности реализованы в SSH для организации защищённого доступа в процессе подключения и работы: ➡️https://noratrieb.dev/blog/posts/ssh-security/ #SSH

Hashtags

infosecurity

@tg_infosec · Post #3367 · 07.07.2025 г., 12:29

📶 Практические советы, примеры и туннели 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

Hashtags

infosecurity

@tg_infosec · Post #3241 · 27.05.2025 г., 12:33

📶 Полное руководство по 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

Hashtags

infosecurity

@tg_infosec · Post #2938 · 14.02.2025 г., 12:33

📶 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

Hashtags

infosecurity

@tg_infosec · Post #2932 · 12.02.2025 г., 12:31

📶 ssh-audit. SSH server & client security auditing (banner, key exchange, encryption, mac, compression, compatibility, security, etc). • Делюсь полезными ресурсами: ssh-audit — инструмент для аудита SSH соединения на сервере: https://github.com/jtesta/ssh-audit + отдельный ресурс, где можно проверить текущую настройку SSH сервера: https://www.ssh-audit.com/ #SSH

Hashtags

infosecurity

@tg_infosec · Post #2930 · 11.02.2025 г., 12:32

📶 sshlog. • Open source-инструмент для логирования и мониторинга всей активности юзера после установки им SSH подключения. - Позволяет админам шарить сеанс другим доверенным юзерам; - Использует eBPF, написан на С++ и Python; - Записывает всё, что произошло через SSH; - Умеет слать предупреждения в слак; - Ну и еще многое другое... ➡️https://github.com/sshlog/agent #SSH

Hashtags

infosecurity

@tg_infosec · Post #2872 · 21.01.2025 г., 13:31

📶 sshx. • Весьма интересная тулза для совместной работы с терминалами: ➡️https://github.com/ekzhang/sshx • Характеристики и особенности инструмента описывать не буду, эту информацию Вы найдете по ссылке выше. Однако, могу сказать, что тулза будет очень полезна для обучения, так как Вы можете пошарить терминал в режиме реального времени с курсорами, чатом и т.д. • P.S. Обратите внимание еще на страничку автора, там есть много крутых тулз, которые можно использовать в работе: https://www.ekzhang.com #SSH

Hashtags

infosecurity

@tg_infosec · Post #2860 · 16.01.2025 г., 12:30

📶 SSH Commands Cheat Sheet. • Объемная шпаргалка по SSH, которая пригодиться в работе: - Basic SSH Commands; - SSH Configurations and Options; - Remote Server Management; - Advanced SSH Commands; - Tunneling; - Conclusion. #SSH

Hashtags

infosecurity

@tg_infosec · Post #4153 · 02.04.2026 г., 11:31

• Есть старое правило: если можно сделать быстро и удобно, кто‑то обязательно сделает это в ущерб безопасности. В инфраструктурных командах это особенно заметно. Сетевики часто решают задачи «с лёту», и это прекрасно. Пока речь не заходит про пароли. Один из таких случаев стал для автора данного материала хорошим уроком... • В этой статье описана ситуация, когда сотрудники сопровождения передавали пароль по SSH. В открытом виде. • Почему это проблема: ➡Передача пароля в аргументах — это классический антипаттерн. ➡Аргументы команд видны в ps, /proc/[PID]/cmdline, Task Manager. ➡Они могут попасть в логи CI/CD. ➡Мониторинг и аудит тоже их подхватят. ➡Многие утилиты (sshpass, plink, WinSCP CLI, rsync, mysql, curl, mRemoteNG) позволяют так передавать пароль — и это соблазн для быстрого «костыля». • В итоге получить пароль можно даже не трогая сам SSH, что может привести к утечке. Подробности по ссылке ниже: ➡️Читать статью [3 min]. • P.S. Рекомендую обратить внимание на комментарии, там можно найти полезные советы и рекомендации. #ИБ#SSH

Hashtags

123•••56
ПредишнаСтр. 1 от 6Следваща