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

TGINSIGHT SIMILAR POSTS

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

Изходен канал @clockstackwheels · Post #1084 · 9.04

В общем, была задача на оптимизацию плана работ: есть набор заказов, и в каждом N тасков. Таски могут зависеть друг от друга или нет, имеют длительность и тип. Ещё есть M работников, каждый из которых может выполнять таски только определённых типов, причём, у каждого своя скорость. Если все таски в заказе выполнены, фирма получает сколько-то денег. У заказа есть дедлайн, за просрочку штраф (за каждый день просрочки), который вычитается из цены заказа. И ещё фирма тратит деньги за каждый день своей работы независимо от того, как загружены её сотрудники (то есть просто платит зарплаты по сути). Ещё важен учёт праздников и выходных. Нужно заработать на определённом наборе заказов и работников как можно больше денег. Полный текст задачи и код программы проверки есть в репозитории. Эта задача является изменённым заказом, который мы с напарником решали в реальной жизни: оптимизация работы печатных станков для типографии. Правда, тогда и мы справились так себе, и заказчик в итоге сначала захотел всё вручную сам делать, а потом и вовсе похоронил проект при смене директора. !!! Не читайте дальше, если хотите сначала попробовать решить самостоятельно, потому что я сейчас опишу эффективные подходы и результаты. ________________________________________ Так вот. Мы с другим экспертом Андреем сразу сели и написали разные варианты, чтобы задать шкалу, по которой будем оценивать решения команд. За пару часов я собрал примитивный жадный алгоритм, который сортировал заказы по прибыльности и укладывал в сетку кое-как, это дало нам нижнюю оценку. Мой алгоритм заработал ~75 млн виртуальных рублей, мы решили для оценки поставить нижней границей 40 млн. То есть всё, что ещё ниже, оценивалось в ноль баллов за качество оптимизации. Затем Андрей закрылся дома на три дня и вышел на свет со сложным жадным алгоритмом, который очень хитро сортировал заказы и очень хитро укладывал их в сетку, попутно выбирая разные способы этой укладки в зависимости от конкретного заказа. Это позволило заработать ~275 млн рублей. Мы сделали верхней границей для оценки 280 млн. К сожалению, в итоге только две команды из десяти прошли нижнюю границу, заработав, соответственно, ~91 и ~105 млн. К верхней границе не приблизился никто. И у четырёх команд алгоритм вообще не смог уложить без нарушений задачи в сетку (то есть, например, произвольно менял длительности, накладывал задачи друг на друга, давал одному работнику две задачи в один момент и так далее). Важной ошибкой команд, на мой взгляд, являлся тот факт, что никто не воспользовался возможностью запустить алгоритм на несколько минут и дать ему поработать. По условиям задания, можно было тянуть до 5 минут на одну оптимизацию, но по факту решения команд отрабатывали за единицы и десятки секунд. На самом конкурсе, пока команды работали, я решил попробовать сделать быстрое (по времени написания) но эффективное решение. Сначала попробовал жадную сортировку + доведение до лучшего варианта методом имитации отжига. В качестве нового состояния я просто менял местами заказы целиком. Этот вариант работал пару минут и дал мне около ~200 млн дохода. К слову, команда-лидер использовала такой же подход, просто не докрутила число итераций и температуру. Ну и потом я взял готовую либу по реализации классической генетики с особями и скрещиванием. Особью был массив с приоритетами заказов (которые конечно же нужно было аккуратно уложить чистым алгоритмом). Тип скрещивания: scattered. Всего 15 поколений по 20 особей, и это за минуту-полторы давало ~230-240 млн. Считаю, что для конкурса это самый лучший выбор: пишется одним человеком за день и даёт почти максимум, при этом легко настраивается на нужную длительность работы, легко параллелится. Ну а потом уже дома я посидел и накодил свой вариант сложного жадного с плавающим окном перебора отсортированных заказов и плавающей же укладкой по работникам. Такая штука за две минуты зарабатывает ~281 млн. Но за три дня в условиях стресса я бы такое не сделал, скорее всего. #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Следваща