Хочу представить общественности свою разработку – приложение для удаленного управления рабочим столом Aspia. Проект является полностью бесплатным и с открытым исходным кодом (GPL 3.0).
На данный момент реализованы следующие возможности:
Удаленное управление рабочим столом
Удаленный просмотр рабочего стола
Передача файлов
Адресная книга с поддержкой шифрования и мастер-паролем (XChaCha20+Poly1305, 256-битный ключ)
Возможность создавать пользователей с индивидуальными правами
Шифрование всей передаваемой по сети информации (XSalsa20+Poly1305)
Хочу поделиться своим опытом апгрейда своего MacBook6,1 A1342 (увеличение памяти до 8Гб, установка SSD) и решении ряда проблем связанных с установкой системы на новый диск и борьба с глюками несовместимости RAM.
Сначала может показаться, что апгрейд старого железа тривиальная задача: в интернете должно быть полно статей на эту тему, а на рынке куча дешевых запчастей для него. Но не все так просто на практике. Проблемы начались еще в магазине на этапе подбора комплектующих
«Вы счастливчики. Мы по три месяца жили в мешках из дерюги в грязных сараях. Мы вставали в шесть утра, стирали мешки, съедали по корке чёрствого хлеба и шли работать на мельницу, по 14 часов в день, с понедельника и до воскресенья, и когда мы возвращались домой, наш папа порол нас своим ремнем» — Летающий цирк Монти Пайтона, Четыре йоркширца
Ленивая молодёжь.
Что может быть хорошего в тяжёлой работе?
Верный признак моего старения — моё ворчание и жалобы о «современной молодёжи» и о том, как не хотят или не могут больше делать ничего сложного.
Я впервые пишу в поток об управлении и найме персонала. Речь пойдет об одном из способов классифицировать ваших будущих или действующих программистов. Мой основной тезис: все разработчики, грубо говоря, делятся на 4 больших типажа и каждому из этих типажей есть своя область применения. Попытка направить неправильный типаж на решение неподходящих для него задач ведет к провалу (неэффективная работа, или сотрудник покидает команду). Хотите знать почему так — добро пожаловать под кат. Приготовьтесь, текста много.
Одно из главных правил при выборе пароля — не использовать пароль, который уже засветился в каком-нибудь взломе и попал в одну из баз, доступных злоумышленникам. Даже если в вашем пароле 100500 символов, но он есть там — дело плохо. Например, потому что в программу для брутфорса паролей можно загрузить эту базу как словарный список. Как думаете, какой процент хешей она взломает, просто проверив весь словарный список? Вероятно, около 75% (реальную статистику см. ниже).
Так вот, откуда нам знать, какие пароли есть у злоумышленников? Благодаря специалисту по безопасности Трою Ханту можно проверить эти базы. Более того, их можно скачать к себе на компьютер и использовать для своих нужд. Это два текстовых файла в архивах: с 306 млн паролей (5,3 ГБ) и с 14 млн паролей (250 МБ).
Месяц назад мы с друзьями сделали бесплатный сервис для обхода блокировок сайтов в Украине Zaborona.Help. За это время сервис стал довольно популярным, аудитория выросла до 20 000 пользователей. Число одновременных подключений в пиковые часы — ≈6 000 клиентов.
Главная особенность нашего сервиса в том, что через VPN маршрутизируется трафик только к заблокированным сетям, остальные сайты работают напрямую. Это не влияет на скорость интернета и не подменяет IP-адрес для остальных сайтов.
В статье описываются тонкости настройки OpenVPN для большого числа клиентов, на дешевых VPS.
Как выбрать подходящий хостинг. Отличительные черты плохого хостинга. История о том, как мы долго искали и нашли хостинг в России.
Почему IPv6 — хорошо. Правильная настройка IPv6-адресов для VPN-клиентов.
Изменение конфигурации OpenVPN на лету, без перезапуска сервера и отключения клиентов.
Балансировка нагрузки между серверами и процессами OpenVPN
Тонкая настройка Linux для большого числа подключений
Особенности кривых операционных систем и роутеров пользователей
Наш опыт будет полезен для тех, кто собирается развернуть VPN для личных нужд, и тех, кто хочет создать сервис с большим числом клиентов.
Данная статья является небольшим исследованием, затеянным после прочтения статьи о частном городе в России, а конкретно будет рассмотрена целесообразность постройки города из шестиугольников.
Так как я не то что не владею, но даже не знаю ни одной программы или другого профессионального инструмента для симуляции городов и передвижения транспорта в городах, я решил провести исследование в игре «Cities: Skylines», благо она вполне для этого подходит.
Приветствую всех хабраюзеров. Мой первый опыт написания статей на Хабре, так что любая конструктивная критика приветствуется. Написать решил только лишь потому, что недавно столкнулся с задачей, решения которой «в лоб» не нашел.
Суть задачи в том, что в большой организации нужен был отказоустойчивый DHCP-сервер, с dhcp-relay и возможностью быстро синхронизировать конфигурацию. Основной момент, что в большинстве найденных мной руководствах рассматривается либо вариант failover, либо dhcp-relay и нигде оба варианта не рассматривались вместе да ещё и с удобным методом синхронизации конфигурации. Вдруг кому моя статья немного поможет?
Уже больше года, как у меня есть свой хобби-проект, в котором я разрабатываю движок базы данных для хранения временных рядов — dariadb. Задача довольно интересная — тут есть и сложные алгоритмы да и область для меня совершенно новая. За год был сделан сам движок, небольшой сервер для него и клиент. Написано все это на С++. И если клиент-сервер находится пока в достаточно сыром состоянии, то движок уже обрел некоторую стабильность.Задача хранения временных рядов достаточно распространена там, где есть хоть какие-то измерения (от SCADA-систем до мониторинга состояния серверов).
Мы продолжаем цикл публикаций о проблемах, с которыми сталкиваемся при подготовке refurbished-серверов. Ранее мы писали о серверах DELL, на этот раз речь пойдёт о продукции HP. Все эти проблемы решались нашими инженерами, и это лишь малая часть сюрпризов, которые могут преподнести серверы этого вендора. Однако, если вы самостоятельно занимаетесь обслуживанием серверов, то, возможно, наш опыт может вам пригодиться.
По работе я несколько раз сталкивался с мнением, что настраивать QoS в не перегруженной ethernet сети не нужно для успешного функционирования таких сервисов, как IPTV и VoIP. Это мнение стоило мне и моим коллегам многих нервных клеток и часов на диагностику фантомных проблем, поэтом постараюсь как можно проще рассказать о том, почему это мнение неверно.
Имеется три хоста. Два в домашней сети и один удалённый. Для резервного копирования требуется независимый бэкап-сервер, который можно подключить к прямо к домашней сети или разместить удалённо. Главная задача: делать регулярные бэкапы как домашних так и удалённых систем. Сервер должен быть максимально экономичным. Все хосты и бэкап-сервер используют операционную систему FreeBSD.
Легче всего в качестве сервера приспособить старый компьютер. Однако он должен дежурить круглосуточно и поэтому будет жрать много электроэнергии. Поэтому я обратил я свой взор на single board computers на ARM процессоре. Этот процессор поддерживается операционной системой FreeBSD.
Оптимальный выбор Banana Pi М1. Подходящий процессор и память. Можно подключить SATA диск. Параметры вполне удовлетворительные для бэкап-сервера, которому особо некуда торопиться.
В качестве программного решения выбран BackupPC. С ним всё хорошо за исключением одной вещи: архивы не шифруются. Для выгрузки копии архива в облако (а тем более в некошерный mail.ru) потребуется дополнительное шифрование. Но это отдельный вопрос не по этой теме. Для доступа к web-интерфейсу BackupPC требуется веб-сервер. В классической установке для BackupPC предлагается Apache. Но рука не поднимается на маленький Banana Pi громоздить такого монстра. Поэтому будет nginx.
Знаете ли вы, что в большинстве случаев уязвимость системы безопасности можно устранить добавив необходимые заголовки ответа?
Безопасность не менее важна, чем содержание или поисковая оптимизация сайта. Тысячи сайтов взламываются из-за ошибок в конфигурации или недостаточной защиты. Если вы владелец сайта или специалист по защите информации, и интересуетесь защитой сайта от кликджекинга, внедрения кода, уязвимостей MIME типов, XSS-атак и т.д., то данная инструкция будет вам полезна.
В этой статье я расскажу о разных заголовках HTTP для использования с различными веб-серверами, сетевой периферией или сетями доставки контента, чтобы повысить уровень защищенности сайта.
В общем, как я уже читал тут в комментах: «целые статьи пишут на то, как добавить 5 символов и пробел в конфиг». Все бы хорошо, если бы не google chrome. Они решили прекратить поддержку SPDY и NPN(кому интересно, вот комментарий chromium по этому поводу).
В общем, мы с коллегами собрали подборку эпических случаев с ТЗ, которая, возможно, поможет кому-то не повторить наших ошибок. Ну, или повеселит.
Однажды мне достался проект, рассчитанный на полтора года с ооочень трудным заказчиком. Статус: прошло полгода, но всё ещё идут согласования технического задания. Подписались на одно, но заказчик упорно продолжал выдвигать новые требования. Задача ставилась даже не закончить вовремя или заработать, а выйти достойно, с минимальными для всех потерями.
Было сложно — не то слово. В длинном перелёте я читал ТЗ на 20 страниц. В нём была такая особенность: если читать его бегло, то может показаться, что оно написано правильно и точно. Но если начать копать в детали инженерной реализации, то всплывало сразу много нежданчиков. Некоторые требования подпунктов, вроде 3.2.5 и 4.8.2.9, могли противоречить друг другу или быть просто взаимно невыполнимыми в реальном мире.
В процессе работы над проектом с использованием Node.js в качестве серверсайда, возникла задача запуска JS скрипта в качестве сервиса, со всем плюшками типа start, stop, restart. По этой теме в принципе уже достаточно информации, но она в основном сводится к использованию Monit + Init под линуксом, либо кратких советов типа «use nodemon, Luke».
В моём случае в качестве продакшн-сервера была машина на FreeBSD. В качестве утилиты запускающей JS файл как процесс мне приглянулся forever. Эта штука, в отличии от nodemon, умеет следить за запущенными под ней процессами и поднимать их при падении без ожидания изменения в исходниках скрипта, что очень удобно именно на продакшене. К тому же forever умеет показывать текущий список запущеных процессов, с отображением их аптайма, ну и позволяет останавливать/перезапускать процессы по имени или индексу.
По ходу работы над CoreOS и Kubernetes мне приходилось часто воспроизводить окружения пользователей, чтобы помочь им решить проблему. Согласитесь, что при запуске OS при помощи контейнера, не всегда можно добиться полного функционала OS, т.к. часто приходилось решать вопросы, связанные с systemd.
Так и родилась идея написать костыли, которые с легкостью помогут мне поднять кластер из почти любой оперционной системы, эдакий OpenStack в миниатюре. В настоящий момент в качестве гостевых полностью поддерживаются следующие OS:
openSUSE (требуется ручная настройка сети и ssh ключей)
Windows (в консоль не попадёшь, но при помощи virt-manager можно пользоваться графическим интерфейсом)
Публикации поспособствовал коллега, который случайно увидел, как я тестирую код. А теперь о преимуществах перед Vagrant. Первое преимущество — время. Например, три виртуальные машины создаются всего за 20-30 секунд.
Данная статья не раскрывает всех премудростей перемещения по тексту или его редактирования. Основные движения можно узнать в vimtutor, остальные комбинации изучаются в процессе работы. Некоторые из них, особо важные в процессе программирования, я освещу позже.
Я достаточно долгое время использовал sublime (около 4 лет) в качестве основной среды разработки, но в последнее время кое-что изменилось: я освоил слепой 9-ти пальцевый метод печати. В тот момент я начал понимать людей, которым неудобно тянуться к мышке или стрелочкам. Убирать пальцы с «домашних» позиций стало неестественно и непродуктивно. Тогда я включил vintage. Проблема, вроде бы, стала неактуальна, но чего-то не хватало. Не помню, что заставило меня пересесть за vim, но мне всегда нравилось, как в нем выделяются фигурные скобки (MatchParen) и как выглядит курсор :). Vim я пробовал и до этого, когда правил конфиги на сервере, правда, вся «магия» ограничивалась переходом в режим вставки и успешным сохранением/выходом из редактора.
Небольшое вступление. Сегодня попросили помочь в одной дружеской сети. Имеем: небольшой ISP, достаточно распределенной структуры, некоторая часть на радиоканалах, авторизации нет, есть привязка к mac и ip адресам. На одном из направлений перестало хватать полосы радиоканала, встала необходимость поднять второй канал и перекинуть часть пользователей на него. Кажется все просто и тривиально, но адреса и все настройки у клиентов заданы статически (да дурость, но работаем с тем что дали) и необходимо чтоб сеть остались рабочей у всех абонентов, без каких-либо телодвижений с их стороны.
Почти через двести лет после того, как Бессель ввёл свои одноименные функции, были найдены выражения для их производных по параметрам, справедливые во всей комплексной плоскости
В этом блоге мы приведём и прокомментируем некоторые ранее неизвестные производные специальных функций (в первую очередь функций Бесселя и связанных с ними функций), а также коснёмся истории и текущего состояния дифференцирования по параметрам гипергеометрических и других функций. Одной из основных новых формул (более подробно ниже) является замкнутое выражение для первой производной одной из самых популярных специальных функций — функции Бесселя J: