tum client что это
Подслушиваем чат телеграма с помощью своего клиента
Захотелось как-то мне, чтобы сообщения одного из чатов телеграма сохранялись у меня на диске (не запуская обычного клиента). Не буду раскрывать своих побудительных мотивов, но возможность эта показалась мне нужной и полезной.
Для этого в телеграме есть боты. На Хабре есть несколько статей, посвященных ботам, например: «Чат-помощник на сайт».
Бот позволяет читать и посылать сообщения, для регистрации бота не нужен телефон и количество ботов может быть любым. Но название бота включает в себя слово «bot», что может вызвать у хозяина чата ненужные вопросы.
Но, как говорится, правильно поставленный вопрос — половина ответа.
Оказывается кроме «API telegram bot» существует еще и «API telegram client», т.е. API для создания собственных клиентов.
Клиент также может посылать и читать сообщения, но только от зарегестрированного (привязанного к телефону) пользователя, что мне как раз подходит (я уже зарегестрирован в чате).
На сайте телеграма есть список API для разных платформ: https://telegram.org/apps#source-code
Однако, самой простой в использовании оказалась библиотека на python: Pure Python 3 MTProto API Telegram client library под названием «telethon»
Только вот проблема. Я не знаю питон. Ну что ж, есть повод познакомиться.
Как утверждает мануал по телетону, инсталляция его очень простая. Достаточно запустить команду в командной строке:
Подводные камни, встреченные мною при инсталляции:
Все установилось. Листаем readme.txt дальше.
Следущим пунктом идет создание клиента телеграма… Как, уже? Ну да, все просто. Правда, сперва нужно зарегистритровать себя как создателя клиента.
Заходим на сайт телеграма: https://my.telegram.org
Вводим телефон и ждем код подтверждения на родном клиенте телеграма. Он довольно длинный (12 символов) и неудобный для ввода.
Заходим в пункт «API». Ищем «Telegram API» и заходим в «Creating an application» (https://my.telegram.org/apps).
Заполняем поля App title и Short name, нажимаем «Create application» и запоминаем две переменные: api_id и api_hash.
Пришла пора делать клиента.
session_name — можно вставить любое имя. Вас попросят ввести телефон и пришлют код подтверждения. После этого клиент будет работать без запроса телефона (до тех пор, пока не поменяете session_name). Рядом с вашей программой появится файл session_name.session
Если ошибок нет, клиент готов. Только вот, ничего не выводит. Попробуем получить полезную инфорфмацию.
Узнаем немного о себе:
результат выдается в виде:
Можем послать сообщение от себя:
Как меня видят другие:
Смотрим, на какие чаты мы подписаны:
читаем все сообщения чата «chat_name» (осторожно, сообщений может быть очень много)
просмотр всех пользователей чата
Побаловались?
Теперь, собственно, делаем то, ради чего мы все это затеяли.
Нам нужна программка, следящая за новыми сообщениями в определенном канале.
Чтобы клиент не заканчивал работу, после client.start() вставляем строку:
Эта конструкция (вставляется перед client.start()) выводит только новые сообщения:
создает событие, срабатывающее при появлении нового сообщения
выводит сообщение в таком виде:
Из всего этого нам нужно поле: «message=’hello telegram'»:
Сообщение получили, но от кого оно, непонятно, т.к. в сообщение только ID пользователя. Чтобы сопоставить ID и имя пользователя, скачиваем всех пользователей чата и помещаем их в словарь (хэш) в виде d[id]=»first_name last_name»
Теперь мы можем узнать, кто послал сообщение:
В принципе, можно получить имя пользователя из телеграма напрямую, но если пользователей немного, проще со словарем.
Вытаскиваем из сообщения дату отправки:
Все, все данные у нас есть. Осталось записать их в файл.
Для этого сначала откроем файл на запись:
И запишем сообщение:
Вот и все! Все, что мне было нужно, программка делает. Утилитка, конечно, сыровата, но свою задачу выполняет.
Python оказался не таким уж и сложным как его малюют, тем более описание и разных библиотек в интернете полным-полно. Написать еще пару утилиток и привыкнув к нему, можно использовать его как скриптовый язык вместо bash.
Тонкий клиент – что это и с чем его едят (на примере WTWare)
Тонкий клиент (англ. thin client) в компьютерных технологиях — бездисковый компьютер-клиент в сетях с клиент-серверной или терминальной архитектурой, который переносит все или большую часть задач по обработке информации на сервер (Wikipedia ).
Если проще, то тонкий клиент – это недокомьютер, который загружает легкую операционную систему (обычно используется Linux, в обзоре возьмем это за априори) и соединяется с терминальным сервером.
Обычно тонкие клиенты создаются для экономии на железе и ПО, в редких случаях по иным соображениям.
В этой статье я постараюсь сделать краткий обзор WTWare, являющегося Linux дистрибьютивом, разработанным специально для создания тонких клиентов.
Сначала о тонком клиенте.
Тонкий клиент представляет собой системный блок, у которого обычно нет жесткого диска, и присутствует только минимальный набор железа, нужный для запуска операционной системы тонного клиента (далее просто тонкого клиента). К системному блоку подключены питание, мышь, клавиатура, монитор, сетевой кабель. Кроме стандартного набора к тонкому клиенту могут быть подключены другие устройства, при условии, что он сможет их распознать и передать терминальному серверу.
Схема сети с тонкими клиентами выглядит примерно так:
WTWare — дистрибутив GNU/Linux, разработанный специально для создания тонких клиентов. За основу взят популярный клиент под названием Thinstation. Основное различие – ориентированность на русских пользователей (в самом Thinstation есть проблемы с кириллицей), плюс всякие мелкие фиксы.
Я не буду рассказывать про настройку DHCP и TFTP серверов, там все вполне стандартно. Напомню только, что в DHCP сервере нужно указать адрес TFTP сервера, а в TFTP сервере путь до файла загрузки и имя этого самого файла.
Так же я не буду углубляться в тонкую настройку WTWare, т.к. информация на официальном сайте WTWare вполне доступная, ее много и вся она на русском языке. Укажу лишь на основные аспекты.
Итак. В первую очередь качаем образ Thinstation с сайта WTWare. Распаковываем.
Загрузочный файл называется pxelinux.0 при загрузке по протоколу PXE (если BootROM встроен в вашу сетевую или материнскую плату) или wtshell.nbi для загрузчика Etherboot (при использовании эмулятора BootROM).
К слову говоря, Etherboot — оpensource проект, который выпускает прошивки практически для всех существующих сетевых карт. Прошивка Etherboot может быть записана в микросхему BootROM или flash-память сетевой карты, может быть запущена с дискеты или жесткого диска как загрузочный сектор или как программа из DOS.
Далее если вы загружаетесь через LAN и у вас правильно настроены DHCP и TFTP сервера – все должно заработать «как есть». Единственное – не будет найден терминальный сервер, ведь вы еще не конфигурировали ваши тонкие клиенты.
Если вы загружаетесь иным способом, то стоит прочитать тут, выбрав интересующий вас способ загрузки.
Опять таки я не буду углубляться в дебри конфигурационных файлов, потому как там сотни параметров. Тут можно увидеть их полный список. Я расскажу лишь об основных.
Конфигурационные переменные индивидуальных файлов:
user = username // имя пользователя
password = user_password // пароль пользователя
domain = enterprise_domain // домен предприятия
Если в индивидуальный файл записать переменную, которая присутствует в общем файле — она получит более высокий приоритет.
Так же в индивидуальные файлы прописываются дополнительно подключенные устройства, такие как принтеры, сканера и т.п.
И в конце хотел упомянуть об еще одной интересной возможности – подключение локальных ресурсов (Floppy, DVD, Flash, HDD, Sound). В конфиге выглядит примерно так:
floppy = on
cdrom = on
usb1 = on
sound = on
Диск будет доступен в сессии текущего пользователя из Проводника Windows по адресу: \\tsclient\
Стоит заметить, что сама система бесплатна, но можно приобрести лицензию с очень интересной целью – что бы убрать логотип WTWare из загрузочной заставки. Как я понимаю, это сделано для предприятий, массово внедряющих данный продукт под эгидой аутсорсинга.
Оборудование для создания тонких клиентов:
На сайте WTWare так же можно приобрести оборудование для создания тонких клиентов (дабы не собирать их из хлама). Надо сказать, что оно (оборудование) отвечает всем требованиям гламура. Несколько скринов:
Ну, вот, пожалуй, и все. При правильной настройке терминального, DHCP и TFTP сервера все должно заработать слету. В интернете очень много русскоязычной литературы, поэтому проблем с настройкой быть не должно. Да и вообще в плане документации система мне очень понравилась, на сайте производителя есть почти все.
8 приложений для Android, которые нужно удалить. Они опасны
Кто бы что ни говорил, но Google Play – это помойка. Не даром её признали самым популярным источником вредоносного софта для Android. Просто пользователи в большинстве своём доверяют официальном магазину приложений Google и скачивают оттуда любое ПО без разбору. А какой ещё у них есть выбор? Ведь их всегда учили, что скачивать APK из интернета куда опаснее. В общем, это действительно так. Но остерегаться опасных приложений в Google Play нужно всегда. По крайней мере, постфактум.
Есть как минимум 8 приложений, которые нужно удалить
Google добавила в Google Play функцию разгона загрузки приложений
Исследователи кибербезопасности из антивирусной компании McAfee обнаружили в Google Play 8 вредоносных приложений с многомиллионными загрузками. Попадая на устройства своих жертв, они скачивают получают доступ к сообщениям, а потом совершают от их имени покупки в интернете, подтверждая транзакции кодами верификации, которые приходят в виде SMS.
Вредоносные приложения для Android
Нашли вирус? Удалите его
В основном это приложения, которые потенциально высоко востребованы пользователями. Среди них есть скины для клавиатуры, фоторедакторы, приложения для создания рингтонов и др.:
Это названия пакетов приложений, то есть что-то вроде их идентификаторов. Поскольку всё это вредоносные приложения, их создатели знают, что их будут искать и бороться с ними. Поэтому они вполне могут быть готовы к тому, чтобы менять пользовательские названия приложений, которые видим мы с вами. Но это мы не можем этого отследить. Поэтому куда надёжнее с этой точки зрения отслеживать именно идентификаторы и удалять вредоносный софт по ним.
Как найти вирус на Android
Но ведь, скажете вы, на смартфоны софт устанавливается с пользовательскими названиями. Да, это так. Поэтому вам понадобится небольшая утилита, которая позволит вам эффективно выявить весь шлаковый софт, который вы себе установили, определив название их пакетов.
В красном квадрате приведен пример названия пакета
Package Name Viewer удобен тем, что позволяет не просто найти нужное приложение по названию его пакета, но и при необходимости перейти в настройки для его удаления. Для этого достаточно просто нажать на иконку приложения, как вы попадёте в соответствующий раздел системы, где сможете остановить, отключить, удалить накопленные данные, отозвать привилегии или просто стереть нежелательную программу.
Как отменить подписку на Андроиде
Лучше всего приложение именно удалить. Это наиболее действенный способ защитить себя от его активности. Однако не исключено, что оно могло подписать вас на платные абонементы, поэтому для начала проверьте свою карту на предмет неизвестных списаний, а потом просмотрите список действующих подписок в Google Play:
Если подписка оформлена через Google Play, отменить её ничего не стоит
В принципе, если подписка была оформлена через Google Play и оплата уже прошла, вы можете потребовать у Google вернуть уплаченные деньги. О том, как это делается, мы описывали в отдельной статье. Но поскольку разработчики таких приложений обычно тщательно продумывают способы воровства денег, как правило, они не используют встроенный в Google Play инструмент проведения платежей, чтобы их в случае чего не могли отозвать.
Инструкция по установке тестового клиента TON
На днях, как известно, в открытый доступ был выпущен тестовый клиент Telegram Open Network (подробнее о TON — здесь и здесь; о работе тестовой сети — здесь). Я поскорее начал его ставить; инструкция по установке, описанная в README, была на счастье простой, и это вселяло оптимизм. Но вскоре начались проблемы.
Сначала сборка доходила примерно до трети всего прогресса и падала с ошибкой. Ошибка отсылала к файлу tests.cpp, а суть заключалась в «sha256 was not declared in this scope», это при том, что пакет libssl-dev был установлен. Признаюсь, я потратил много времени на решение этой проблемы. На помощь отклинулся один из пользователей публичного Telegram чата, который посоветовал выполнить следующую команду:
И, о чудо, проблема решилась! Я в очередной раз запустил сборку, но и сейчас ей не было суждено завершится. Возникла новая ошибка на 83% сборки:
Решение этой проблемы в интернете я найти не смог, и что-то подсказало мне попробовать выполнить сборку на другой версии Ubuntu (я использую 19.04, решил попробовать на 18.04).
Загрузился с Live CD, но тут возник ряд других проблем (уже меньших масштабов). Во-первых, необходимо было установить недостающие компоненты:
Я запустил сборку, но ошибка возникла в самом же начале: cmake жаловался на отстуствие пакета gperf, а команда
Я в очередной раз начал установку, она дошла до 95%, но опять возникли трудности. На этот раз похоже, что такое поведение возникло только на моем компьютере по каким-то причинам, но факт остается фактом: на 95% сборка зависала. Более того — зависала вся система. Она просто переставала реагировать на любые действия. Первый раз я списал это на то, что загрузился с флешки, поэтому есть вероятность, что она просто немного вышла из гнезда, что повлекло за собой крах всей системы. Я перезагрузился, попробовал еще раз, на этот раз следя за тем, чтобы флешка надёжно находилась в разъеме. Но ситуация опять повторилась на злосчастных 95%! В итоге я не нашел другого выхода, кроме как откатить 19.04 до 18.04 на жестком диске, и попробовать снова. К счастью, в этот раз все закончилось успешно, и клиент запустился.
Так как на решение всех этих проблем у меня ушло много времени, а их решения я в интернете не нашел, хотелось бы выложить в открытый доступ набор команд, которые решали все мои проблемы. Хочется верить, что это кому-то поможет сэкономить время.
Скачиваем с test.ton.org/download.html архив, распаковываем его в свою домашнюю папку так, чтобы в ней находилась папка lite-client, а не ton-test-liteclient-full. Перезапускаем терминал:
Напомню, что у меня возникли проблемы, которые указывают на зависимость успешности установки от версии дистрибутива, а также от того, установлена ли у вас система, или вы загружаетесь с Live. У меня успешный результат был получен на установленной на диск Ubuntu версии 18.04.
Как я искал нормальный RDP-клиент и нашел целых три
Remote Desktop Protocol — один из самых распространенных протоколов для удаленного управления, потому что он используется для работы с операционными системами Windows, которые часто незаменимы в корпоративной среде. Естественно, самый распространенный способ подключения к удаленной системе — использование средств встроенных в саму систему, но он не единственный и, более того, совершенно неприменимый, если используется другая ОС или сильно устаревшая Windows.
В этой статье я расскажу о нескольких альтернативных решениях, отличных от встроенных в дистрибутивы операционных систем: программу MobaXterm и два сервиса не требующих от пользователя установки приложений и работающих в обычном браузере.
MobaXterm
Эта программа для Windows. Немного неправильно называть MobaXterm RDP-клиентом, потому что это целый комбайн. Список поддерживаемых протоколов впечатляет: SSH, Telnet, Rlogin, RDP, VNC, XDMCP, FTP, SFTP и Serial.
Почему я рекомендую этот клиент? Меня уже давно не радует Putty. Громоздкий и запутанный интерфейс из времен W95, не вызывающий ностальгию, если приходится часто с ним работать, плохая поддержка экранов высокого разрешения, собственный формат ключей, отсутствие поддержки вкладок и прочее. MobaXterm лишен всех этих недостатков, это удобная и современная программа. Портативная версия состоит из одного единственного exe’шника и файла настроек, интерфейс интуитивный, а если нужна помощь, то, в отличии от Putty, в самой программе есть исчерпывающая документация.
Кроме соединения через перечисленные протоколы можно локально поднимать некоторые сервисы для удаленного доступа, такие как: FTP, SSH/SFTP, HTTP и другие. Если вы не любите консольные nano и vi, то в программе есть текстовый редактор с удобным графическим интерфейсом. В терминале есть настраиваемая подсветка синтаксиса и автодополнение.
Сразу после запуска программа нашла ранее используемые мной подключения, импортировала настройки из Putty и обнаружила установленную в системе WSL-Ubuntu:
Нет смысла перечислять все возможности приложения, они очень многочисленны, есть даже инструменты для тестирования сетей. Приложение платное, но портативной бесплатной версии хватит за глаза для подавляющего количества задач системного администратора.
Apache Guacamole
Современные тенденции DevOps предполагают перенос окружения для разработки с локальной машины на сервер компании или к облачному провайдеру. Один из простых примеров ранее описывался в статье: Установка Visual Studio Code в облаке, приложения для удаленного подключения этого тоже не избежали.
Apache Guacamole, это клиентский шлюз для удаленного подключения, работающий на HTML5, позволяет пользоваться протоколами: VNC, Telnet, RDP, Kubernetes и SSH / SFTP — через web-интерфейс. Не требуется установки никаких программ, подписок на сторонние сервисы, все работает прямо в браузере, независимо от того, какой операционной системой пользуется разработчик. Все что требуется: установить и настроить службы на сервере. По сути, это web-интерфейс для FreeRDP — бесплатной реализации протокола RDP, с открытым исходным кодом.
Сценарий работы с этим сервисом типичен для последних тенденций удаленной работы и оптимизации рабочего места. Разработчики подключаются к своему окружению из любой точки земного шара. Им не требуется держать дома мощный десктоп или носить с собой высокопроизводительный ноутбук, забота об этом перекладывается на серверы компании, а работнику достаточно подключения к интернету и любого ноутбука, на котором не будет лагать браузер.
Настройка сервиса подробнейшим образом документирована, мануал впечатляет своими размерами. Установка возможна несколькими способами: из репозиториев, компиляция исходников и разворачивание образа Docker. К счастью, как это часто бывает, один прошаренный DevOps-инженер решил автоматизировать процесс установки с наиболее типичными настройками и выложил готовый скрипт на github: guac-install. Из его кода легко понять, что он пошел по пути установки образа Docker, и все действия сводятся к вводу всего нескольких команд.
Начнем с того, что настроим виртуальный сервер для установки AG. Его характеристики будут зависеть от количества пользователей, но разработчики рекомендуют не меньше 2 гигабайт оперативной памяти. Размещение сервера выберем в Москве, для минимального пинга, что критично для работы с удаленными компьютерами.
В качестве тестовой машины я выбрал такие параметры VPS:
После того, как будет создана виртуальная машина, подключимся к ней (используя MobaXterm, конечно же). Теперь можно приступать к работе.
Сначала надо скачать скрипт установки:
Выдать ему разрешение на исполнение:
В процессе работы будут установлены нужные образы и задано несколько вопросов о настройке паролей для MySQL. В конце скрипт выдаст сообщение о том, что установка завершена, напишет адрес для подключения к сервису и сообщит пароль/логин, который настоятельно порекомендует потом поменять:
Все готово, надо только заменить localhost на внешний айпи-адрес нашего сервера и ввести пару логин/пароль в форму логина на сайте:
После авторизации открывается доступ к довольно аскетичной панели администрирования, где можно заниматься управлением привилегий пользователей и доступными им подключениями к различным системам.
При первом логине система запросит настройку двухфакторной авторизации, на экране появится QR-код, который надо будет отсканировать с помощью любого удобного приложения. Я воспользовался для этого Google Authenticator на смартфоне. После сканирования приложение сгенерирует шестизначный код, который потребуется ввести в поле на сайте.
В качестве примера подключимся к серверу под управлением Windows по протоколу RDP. Для этого надо зайти в “Настройки” и выбрать опцию “Подключения”. Интерфейс переведен на несколько языков, и сложностей при работе с ним ни у кого не возникнет.
Дальше надо заполнить следующие поля (я перечислю минимально необходимые):
В разделе “РЕДАКТИРОВАНИЕ ПОДКЛЮЧЕНИЯ” заполнить поле “Название” и в поле “Протокол” выбрать “RDP”.
В разделе “СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ” поставить требуемые числа в поля “Максимальное число соединений” и “Максимальное число соединений на пользователя”. Любое необходимое, но не меньше 1.
В разделе “НАСТРОЙКИ” и подразделе “Сеть” ввести айпи-адрес удаленного сервера под управлением Windows и “Порт”: 3389.
Далее заполнить поля “Имя пользователя” и “Пароль”. В моем случае еще потребовалось отметить опцию “Игнорировать сертификат сервера”.
Остальное настройки заполняются по необходимости, в зависимости от специфики серверов, к которым требуется подключаться.
В итоге выглядит это примерно так:
В самом низу страницы нажимаем кнопку “СОХРАНИТЬ” и можно подключаться с главной страницы панели управления:
Все работает, мы видим рабочий стол нашего виртуального сервера:
Myrtille
На основе FreeRDP разрабатывается еще один проект: Myrtille, аналогичный Apache Guacamole, но работающий на системе Windows. Его установка — традиционный Windows-way, надо всего лишь скачать файл инсталлятора с GitHub и запустить его. Приложение поддерживает двухфакторную авторизацию и позволяет настроить ее в процессе установки:
В следующем диалоговом окне можно настроить работу с Active Directory:
А затем порты для подключения:
Далее следует диалог с выбором опций для установки сертификата, драйвера для PDF-принтера и разрешения множественных подключений:
Потом выбирается директория, куда будет устанавливаться программа и запускается процесс установки. На этом все, сервисом можно пользоваться, перейдя по ссылке: https://ip-address/Myrtille/, где вместо ip-address надо подставить адрес сервера и web-клиент готов к подключению:
Надо заметить, что он не позволяет управлять группами пользователей и подключениями как AG и довольно аскетичен в настройках. Меню сервиса хоть и не блещет красотой, но вполне функционально:
Вот таким образом, можно отказаться от еще одного локального инструмента для работы и пользоваться обычным браузером, который есть на любом компьютере.