Самый простой способ организовать чат в сети
Как можно быстро послать сообщение в сеть и получить ответ? Например можно сформировать широковещательные UDP пакеты которые будут принимать все пользователи локальной сети. UDP (User Datagram Protocol) это протокол для посылки сообщений без гарании получаения.
Одним из самых простых способов принимать UDP сообщения из сети это воспользоваться командой "socat - udp-recv:2000". Эта команда будет выводить на экран все широковещательные сообщения на порт 2000 принимаемые вашей сетевой картой.
Но чтобы принимать сообщения кто-то должен их сначала послать. Для того чтобы послать широковещательное сообщение в сеть в другом терминале запускаем "socat - UDP-DATAGRAM:255.255.255.255:2000,broadcast". Все что вы набираете на клавиатуре в этом окне будет упаковываться в UDP пакеты и отправится в сеть.
В первом терминале будет отображаться все что вы будете набирать во втором. Остальные пользователи сети если они будут слушать сеть также увидят сообщение которое вы послали и смогут послать сообщение вам.
Следует понимать что такой способ коммуникации это как кричать через весь офис - любой человек в сети сможет принимать сообщение и посылать ответ, конечно если знает язык на котором вы общаетесь. Все устройства в сети компьютеры, телефоны, умные часы прочие устройства подключенные к роутеру через WIFI или по проводам будут способны принимать пакеты которые вы посылаете.
Посколько в качестве транспорта используются пакеты UDP то гарантии получения сообщения тоже не предусмотрено.
Как открыть VNC сессию на компьютере с Ubuntu
Каждый раз ищу эту инструкции и каждый раз удивляюсь, почему я до сих пор не добавил ее в блог?
Дано: у меня есть компьютер с Ubuntu который я умею будить дистанционно. На компьютере крутиться Ubuntu и я могу подключиться к нему через внутренний адрес OpenVPN.
Задача: помимо консольных приложений я хочу запускать на нем также GUI приложения. Конечно, можно запускать приложения удаленно показывая их через локальный X11 сервер - Ubuntu позволяет это делать с легкостью, но проблема в том что я хочу запускать приложения полностью локально чтобы можно было запустить приложение и отключиться. Кроме того, трафик X11 сервера достаточно интенсивный и приложения запущенные таким образом основательно тормозят.
Решение:
Поэтому есть способ лучше - при помощи команды x11vnc. X11vnc это приложение которое транслирует текущую X11 сессию в VNC сессию.
Запускается сессия при помощи следующей команды:
x11vnc -display :0
После чего я просто подключаюсь к GUI сессии при помощи любого VNC клиента, например TightVNC.
Важно иметь ввиду что способ будет работать только если X11 сессия уже авторизована, то есть компьютер уже включен и разблокирован!
Страничка для создания встреч в google calendar
В Гугл Календаре теперь появилась возможность создавать страничку при помощи которой другие люди могут букать слоты в вашем календаре. То что раньше делал только Calendly теперь умеет обычный Календарь. Подозреваю, теперь Calendly придется сильно напрячься чтобы оставаться на рынке.
Цифровая гигиена
Все мы используем пароли, без паролей в наше время не обойтись.
Как проверить ваш пароль на безопасность? Можно воспользоваться каким нибудь сервисом для проверки паролей например haveibeenpwned.com он подскажет где, когда и куда ваши пароли утекли. Но что-то мне страшновато передавать мой пароль на какие-то непонятные сайты, которые их собирают с непронятными целями. Где гарантия что при проверке паролей создатели сервиса не проверят ваши пароли еще на каких нибудь сайтах, чтобы так сказать, проверить, нет ли у вас так чего интересного?
Есть ли способ проверить был ли пароль скомпрометирован и при этом не передавать сам пароль третим лицам? Такой способ существует.
Для этого можно проверять не сам пароль, а его цифровую подпись. Алгоритм получается следующий.
1. Создаем sha1 подпись интересуемого пароля, например qwerty123: echo -n "qwerty123" | openssl sha1
2. От полученного хеша SHA1(stdin)= 5cec175b165e3d5e62c9e13ce848ef6feac81bff берем первые пять цифр подписи 5cec1
3. Полученные символы подставляем в конец API вызова https://api.pwnedpasswords.com/range/ получим https://api.pwnedpasswords.com/range/5cec1
Сайт выводит нам все оставшиеся части хешей которые начинаются с данной комбинациии символов. Если мы находим среди этих комбинаций нашу 75b165e3d5e62c9e13ce848ef6feac81bff, значит наш пароль скомпрометирован!
Для пароля qwerty123 мы видим значение 75B165E3D5E62C9E13CE848EF6FEAC81BFF:4880569 - это значит что в базах данных со скомпрометированными паролями на данном сервисе он встречается почти пять миллионов раз!
Дисклеймер: данный метод не гарантирует, что факт проверки вами вашего пароля никто не отследит. Делая это, вы оставляете кучу цифровых следов, например, в терминале остается история команд, которые вы выполняли, передачу пяти символов хеша по незащищенным каналам тоже можно отследить. Но все же, вероятность взлома в этом случае будет гораздо ниже, чем если вы просто понадеетесь на то, что ваши пароли никому не будут интересны.
PS. если вы хотите, чтобы команда не оставалась в истории командной строки в linux достаточно начать ее с пробела " echo -n "qwerty123" | openssl sha1".