Я делаю все заново …

.. что-то раз в год, что-то раз в месяц. Очень помогает в очищении от накопившегося старого барахла. Недавно решил сменить основной домен. Просто внезапно обнаружил, что я как kiltum в сети нахожусь гораздо лучше, чем просто multik.

multik.org был зарегистрирован в феврале 2005 года. Сегодня, в 2017м, все мои сервисы переезжают на домен kiltum.tech.

Вместе со сменой домена меняется так же вся низлежащая технология. Вместо физического сервера и кучей виртуалок на нем теперь меньшая куча, но в облаке амазона. В процессе переезда пришлось вспомнить много старого и изучить много нового, так что теперь есть о чем писать.

Ура мне!

Circuit Studio

Прилетела тут реклама: новая версия софта для разработки плат от производителей, которые на этом съели собаку. 30 лет и все такое.

Стал читать. Оказалось, Circuit Studio – это этакий Altium для бедных. Немного урезанный функционал, но зато гораздо дешевле. Зато доступ до “ваще всех” элементов и компонент.

Ну ок, я люблю новый софт. Поставил, зарегистрировался и первый же тест: есть ли в закромах stm32f042 или Atmel 328p? Ни одна программа не смогла его преодолеть. Где-то есть одно, где-то другое. Так и тут: сердце наноардуинки есть, а stm нет. Жить можно.

Второй тест еще проще: размещаем несколько элементов на плате, соединяем и пробуем их подвигать.

altiumsuck

Красивая картинка? Верхний транзистор я чуть подвинул вверх, и прекрасно видно что произошло с базой и эмиттером. А нижний транзистор пережил пару поворотов. В итоге он тупо потерял соединения.

А представьте, что у вас схема чуть сложнее? В ней не обойтись без “растаскивания” элементов …

И это называется “профессиональным софтом”? И за это просят 1000 баксов сразу и потом по 150 в год? Это EAGLE в другой обертке. Рисовать мультивибраторы пойдет, а что-то сложнее будет заполнено мукой и страданиями …

CentOS 7 80×24

Новые инсталляции CentOS раздражают тем, что по умолчанию переключают экран в большое разрешение. Даже для текстовой консоли. Лично мне это неудобно, ибо 99% машин у меня в виртуалках …

Решение простое

- vi /etc/default/grub # удалить ‘rhgb quiet’, добавить ‘nomodeset’
- grub2-mkconfig -o /boot/grub2/grub.cfg
- reboot

Контроллер версия 1

Тут можно и подлиннее, чем в фейсбучике.

Как-то раз ко мне пришел заказчик. И захотел он странного для меня: шилд для ардуины. Вернее, первоначально задача была поставлена еще проще: вот есть нцать шилдов, собери их в одну кучу, что бы без проводов. И что бы arduino uno управляла всем этим. После выяснения, где и что будет этим управлять, я немного офигел. Оказывается, в вентиляции и теплоснабжении есть куча мест, которые требуют простого и тупого управления в духе “вон там сигнал появился? Ну и щелкни вот тут”. И ничего больше не надо. Вообще.

Но почему-то ничего простого не доступно от слова совсем. Либо дорогущие контроллеры от именитых производителей, либо чуть более доступные, но от наших. Но все равно стоимость получается внушительной.

Поговорили, почесали макушки и ударили по рукам. Я пошел делать, заказчик пошел переводить денег.

Долго ли, коротко, но я сделал первую версию контроллера. 4 входа 220в, 4 переключающих реле, выход 0-10В, и развязанный rs-485. Плюс пара подтянутых выходов для 1-Wire и все это под управлением ардуинки, запрограммированной в fl-prog. Ну и питаться может от 7В до 40В.

photo_2017-02-03_09-44-40

photo_2017-02-03_09-44-33

В общем-то ничего особенного от слова вообще. Обычный навороченный шилд для ардуины и особенного в нем только то, что он у меня первый. Ну не делал я раньше шилдов для ардуинок 🙂

Первым же неприятным фактом стало то, что ардуинка отказывалась прошиваться, когда она стоит в контроллере. Это 100% мой косяк, ибо “сделай как там” привело к тому, что я использовал драйвер rs-485 “как у китайцев”. А этот ADM485 при отсутствии сигнала на линии тупо подтягивает линию RX в 1. Ну ладно, прошить можно и вытащив ардуинку из платы.

Второй проблемой стало то, что при “автономной” работе rs-485 не работал. То есть питаешь плату через ардуинку – все ок. Питаешь через внешний источник – rs-485 мертв. Проблема осложнялась тем, что у меня все работало, а у заказчика – нет. На одном и том же коде.

Опуская подробности, оказалось, что в мире существует две версии arduino nano. “Дешевая” версия и “дорогая”. Естественно, что “дешевой” версией забиты все магазины Москвы и алиэкспресса. Разница только в одном – чипы мостов usart-usb. На дешевой версии стоит CH340, на дорогой – FTDI.

И этот дешевый CH340 при питании “снаружи” видя, что на входе usb у него ничего нет, тупо подтягивает RX/TX в ноль. А дорогой FTDI – ставит в Z.

Вышли из положения, заиспользовав Software Serial, откусили ножки на самой ардуине и тупо бросили два проводка на плате. То, что у меня заинвертирован RE/DE сигнал, решили ручной правкой кода. Ну не умеет flprog в такое. У них все прямо …

Следующей претензией стало, что “даю 220в, датчик показывает 0, но это ок. Не ок, когда секунд через 40 он переходит в 1, и еще через 40 обратно”. Тут я офигел мрачно.

После разбирательств стало понятно, что ардуинка насколько перегружена кодом от flprog, что тупо не успевает реагировать на полуимпульсы от опторазвязки. А в прерывания оно не умеет. Мы взяли 20МГц чип и тормознули его до 50Гц. Ну почти до 50 …

Не, я и там дунул-плюнул и поправил.

И тут оказалось, что вообще-то такие простые контроллеры очень нужны совершенно другим людям. Например, местные любители самогоноварения очень возбудились на характеристики и стоимость контроллера. Настолько, что наплевав на все, отобрали у меня единственный рабочий экземпляр (остальные у заказчика) на тест.

В результате по вечерам я проектирую новую, улучшенную версию контроллера. Для безопасности добавлю опторазвязку вообще на все выходы, ибо пользователи явно его будут совать куда не попадя, наплевав на правила техники безопасности. Будет изолировано все от всего. Люблю ночью спать спокойно.

В качестве главного процессора будет STM32F072. Мощный, умеет программироваться через USB и имеет кучку ножек. А ардуинка … ну дам ей “кроватку”. Пусть используют те, кто привык 🙂

Пробую ATI 2017 на зуб. День 3. Разрыв шаблонов.

Сегодня я хотел заняться версией Acronis True Image для Windows, но в комментах меня спросили: а каким образом ATI для Android восстанавливает программы? И в самом деле, такой функционал не был заявлен … Результат: я посыпаю голову пеплом и каюсь в своем несовершенстве. Программы и прочее восстановил толи гугл, толи самсунг своим софтом. У меня SGS6 и пока я там вводил пароли и делал прочие действия после сброса, эти злобные искажатели истины все вернули “как было”. Издержки цифрового мира с хорошим каналом в интернет.

Не проблема, опять сброс, но теперь я везде жамкаю “отмена”, “не надо” и “нету у меня никаких паролей”. Ставлю ATI и прошу вернуть все назад. Крутится индикатор и на телефон постепенно возвращаются мои смски и фотографии. Никаких обид и разочарований. Но я не я, если бы не нашел один обидный ляп.

ati03-01

Не важно, из-за чего произошла ошибка (в данном случае я злобно выключил WiFi прямо на взлете), ATI будет висеть на этом экране, даже если условия изменились. Проверил путем оставления телефона на ночь. Мелочь, но очень неприятная мелочь. (делая пассы руками в сторону офиса Acronis) я полностью уверен что скоро это поправят …

А теперь об обидном для меня. Я как-то привык, что софт для маков лучше и функциональней софта для виндовса. Или как минимум выходит раньше. Или хотя-бы просто симпатичней. Но ATI для виндовса полностью порвал мне этот шаблон. Windows версия превосходит OS X версию как президентский лимузин ржавую “копейку”. И то и то доставит вашу пятую точку из пункта А в пункт Б, но на лимузине это будет приятней.

Так вот. ATI для Windows и есть тот самый лимузин. Сравните окно настроек для OS X (честно, я его нашел только после того, как мне виндовс версия ненавязчиво так его подсунула)

ati03-02

И окно настроек для Windows

ati03-03

И да. Данные окна прямо и однозначно указывают на мою ошибку вчера. Acronis True Image является полноценным софтом для резервного копирования и только Android версия ущемленная. Расставив галочки как вам надо, можно получить любую схему копирования. В общем, был категорически не прав, в чем и подписываюсь.

А сколько в Windows-версии опций! Начиная от возможности слать оповещения о проведенном копировании и предупреждения о заканчивающемся месте и заканчивая мелочами типа “при копировании на внешний диск сделай так, что бы с него можно было загрузиться”. Про приятные мелочи типа “разбивай архив так, что бы залез на CD/DVD/BlueRay/Ещекуда” даже не стоит упоминать. Оно там просто есть.

На этом моменте проверяю, что все везде зелененькое …

ati03-04

… все везде копируется и “в облако” и “на диск”. Теперь я насильно “забуду” про софт на некоторое время, а потом посмотрю, что надо будет делать, когда “внезапно” что-нибудь случится.

Пробую ATI 2017 на зуб. День 2. Восстановление …

Прверил в очередной раз, что все статусы везде зелененькие, я решил внезапно вспомнить и попробовать восстановить удаленное. И тут меня ждал грандиозный облом. Но давайте поподробнее.

Если коротко, то опять во всем виноваты мои любимые маркетолухи. Дело в том, что Acronis True Image – это софт не для резервного копирования, а для disaster recovery. Дословный перевод: “восстановление после аварии”. В чем разница?

Классический софт для резервного копирования обеспечивает возможность вернуть состояние чего-либо назад с определенной гранулярностью. Например, в течении дня – на любой час, в течении недели – на любой день, в течении месяца – на любое воскресенье, а в течении года – на любое первое число.

Софт для восстановления после аварии действует по другому. Вся его задача это обеспечить максимально быстрое восстановление системы “как было ДО”. И вот Acronis True Image – именно софт для восстановления после аварии. Остальное по такому же принципу, что и в “облаках”.

Хорошо это или плохо? Для обычного пользователя – однозначно хорошо. Нет никаких заморочек со всякими планами, зато есть уверенность в том, что все будет хорошо.

Решил и я проверить, насколько будет мне хорошо. Беру телефон и сбрасываю его в “заводские” настройки. Прохожу все положенные “далее-далее” и первым делом ставлю ATI. Там сразу же давлю на “восстановление”.

Точно такой же экран, как и при копировании, только про восстановление. И … это было реально быстро. Буквально за 5 минут я получил свой телефон назад. Со всем настроенным и предустановленным софтом. Единственное напоминание, что текущее состояние не забекаплено:

ati02-01

Повторный бекап прошел минуты за две. И опять все зеленое и симпатичное. Это реально впечатляет.

Теперь с десктопным софтом. А вот тут все плохо. Вообще и полностью.

Во-первых, функционал “архива”. Ну это классический dropbox/onedrive/придумайте сами. Выглядит это так

ati02-02

То есть два каких-то диска/шары. “выброс” любого одного ведет к полному выключению функционала. И это не включить назад до перезагрузки. На мой взгляд, это ужасно.

Во-вторых, любая попытка восстановить файл/диск отправляет на веб-страницу. Там может показать что-то полезное, но в 95% вы увидите что-то вроде этого

ati02-03

Пару раз у мне улыбалась удача и я смог добраться до каталога своих файлов. Более того, пару раз мне удалось получить окошко с предложением чуть-чуть подождать и получить свой файл

ati02-04

И даже более того, один раз я все-таки скачал назад свой удаленный файл. Да, я скачал назад удаленное.

Но представьте свое состояние “у меня все упало, все разрушилось”, а тут такое …

Пробую ATI 2017 на зуб. День 1. Бэкап …

Зачем нужно резервное копирование, если сейчас все можно хранить в облаках? Ответ простой: облака обеспечивают доступность, а резервное копирование – сохранность. Толку иметь доступ к облаку, если до этого из них удалил самый нужный на текущий момент файл? Да, некоторые облачные провайдеры дают “хранение 5ти последних копий”, но в реальности от этого смысла мало: при регулярном сохранении файла эти 5 копий исчерпывают себя в течении часа.

Конечно, есть и встроенные решения в современные операционные системы (та же Time Machine в OS X), но они сделаны по остаточному принципу. Кому-то везет, но лично у меня с ними больше проблем, чем радости. Поэтому я решил взять и пощупать Acronis True Image 2017. По уверениям рекламы самый-самый, сохраняет быстро, а восстанавливает еще быстрее.

Что самое важное в резервном копировании? Две вещи: скопировать нужное и дать доступ до нужного после “того случая”. Все остальное – пыль и тлен.

Ок, берем триальный Acronis True Image и ставим на ноутбук и телефон. Процесс установки ничем оригинальным не блещет (и это хорошо), поэтому описание пропускаю.

После запуска предложили выкинуть то, что в “облаках”.

ati01-01

Но почему не предложили исключить из бекапа программы? С одной стороны, будет уверенность, что после восстановления у меня будут именно те версии, с которыми я работал, а с другой – смысл мне бекапить Microsoft Office? Недочет? Недосмотр? Дизайнерский вывих?

Ну ладно, снимаю-ставлю галочки и запускаю первоначальный процесс резервного копирования. Копирование идет далеко не быстро, это минус.

ati01-02

А вот то, что процессор и диск при этом не перегружены и ноутбуком можно пользоваться без завываний вентилятора системы охлаждения – это плюс.

ati01-03

Оставляю копироваться ноутбук и беру в руки мобильный телефон, отмечаю все галочками …

ati01-04

Засекаю, сколько будет идти полное копирование телефона и сколько есть сейчас батарейки …

ati01-05

и фиксирую окончание

ati01-06

45 минут и и 6% батарейки на Samsung Galaxy S6. Не знаю как вам, но по-моему очень хорошо.

(пропущена ночь)

Дожидаюсь, когда на веб-панели мне сообщат, что всё отлично, все забекаплено и вообще шикарно.

ati01-09

Что в следующем шаге? А в следующем шаге обычная работа и утеря чего-либо очень-очень важного для меня.

На роль важного в мобильном телефоне выступит спам от МГТС. Делаю скрин на память.

ati01-08

А на роль очень важного на десктопе выступит скриншот из игры Elite:Dangerous. Название файла space_is_beatiful.jpg и он расположен прямо в моем домашнем каталоге.

ati01-10

Считаем, что смс и файлик мне дороги как память, поэтому с чистой совестью удаляем и чистим корзины.

Теперь ждем завтрашнего дня, когда я внезапно обнаружу, что кто-то (ну не я же, правда?) удалил эти важные частички моей цифровой жизни. Восстановить не получится, ибо в процессе работы место на диске и в телефоне перетерто уже много раз. Но это будет завтра.

Пробую KIS на зуб. День третий, детский

За всеми этими развлечениями я пропустил (ну или специально оставил на вкусное) одну из самых главных штук от “касперского” – Kaspersky Safe Kids.

Ну там “вы знаете, где ваш ребенок, с кем он общается и вообще, злые дяди не дремлют”. На папу в моем лице это действует. Поэтому беру свой андроид и айпад и ставлю туда Safe Kids.

Ставится просто, говоришь пароль от кабинета, потом указываешь, кто пользуется этим устройством. Почему-то нельзя сделать совместное. Или родители или дети.

После установки согласно возрасту ребенка, рейтингу программ и какой-то внутренней базы делается сопоставление, какие программы можно запускать ребенку, а какие – нет. Про те, что не попадают в базу – запрашивается разрешение у родителя.

kis03-01

Если программа однозначно не попадает, то на андроиде ребенку можно попросить разрешения ее запустить. На apple ребенок не сможет – он просто не увидит “вредного”

kis03-02

После прогулки по кабинету я увидел ужасное. Пиарщики “касперского” потеряли офигенный шанс. Чем отличается платная от бесплатной? А фиг его знает – купи, там увидишь.

kis03-03

На самом деле там обещается дать возможность видеть где устройство и если android, то еще и читать смски ребенка (iOS не дает сторонним программам доступа к смс).

Еще в “детях” обещается дать возможность лимитировать время использования устройства и объемы трафика, но это я не исследовал, ибо на мой взгляд это бессмысленно.

Поигравшись еще немного, я с чистой совестью могу вынести вердикт.

Kasperksy Safe Kids for Android – полезная и хорошая штука. Если у вашего ребенка планшет-телефон на андроиде, то рекомендую купить и настроить. Как ни странно мне писать, но в данном случае “касперский” закрывает кучку ляпов гугла и сводит управление в одно место.

Kasperksy Safe Kids for Apple – бесполезная штука. iOS прямо “из коробки” предоставляет полный набор для управления детскими устройствами. Более того, “продвинутый” ребенок спокойно снесет Safe Kids “без шума и пыли”. Да, опять же можно отобрать пароли на установку-удаление программ, но это сводит весь смысл защиты в ноль.

На этом тестирование программ “от Касперского” считаю нужным прекратить. Из всего многообразия предложений для меня мог бы подойти “детский вариант”. Но у моего ребенка айпад, а там все есть давно …

ЗЫ и еще у меня есть две лицензии для “кисы”. если кому горит, могу поделиться.

Пробую KIS на зуб. День 2. Android.

Вообще-то KIS в данном контексте следует звать KISA. Kaspersky Internet Security for Android. Правда для меня лично “Киса” совершенно однозначно ассоциируется с Кисой Воробьяниновым. Но миллионы хомячков ошибаться не могут …

Установка проходит как обычно. Заходим в play store, кликаем, ставим, открываем. Одно неловкое движение и …

kis02-01

… минус 300 рублей. Очень хорошо сделано это место, можно ставить пятерку с плюсом. Ну, хорошо, премиум так премиум.

Проверяюсь от и до. Вдруг у меня уже злобные трояны сидят?

kis02-02

И тут опять отличились маркетолухи. Кнопка ОК никак не подсвечена, зато Recommend Protection нажимается на автомате и вызывает мессенджер, в который засовывается реклама.

kis02-03

Ну ок. Отрекламировались (обратите внимание: на картинке планшет весь в вирусах). Проверили телефон. Теперь я как обычный пользователь, решаю пойти найти приключений на свой смартфон. Скажу сразу, у меня не очень большой опыт в этом деле, но я постарался. Я даже язык для телефона сменил, что бы было понятней.

Пытаюсь скачать классический тест для антивируса.

kis02-04

Провал. Пробую второй тест

kis02-05

Поймал. Ну .. ладно, eicar в принципе для десктопа, ловить особого смысла на смартфоне нет, ибо десктоп должен защищать десктопный антивирус.

А теперь реальная жизнь. Из-за стоимости андроидов и либеральной политики гугла очень значительная часть пользователей любит халяву. Это факт и с этим надо жить.

В общем, я решил поставить какую-то игрушку с одного из порталов. Все мои жопные чуйства говорят о том, что меня будут иметь. Но мне можно, я знаю, как с этим бороться. Но предупреждаю: без подготовки такое кончится плохо!

Первое предупреждение. От браузера.

kis02-06

Второе предупреждение. От андроида.

kis02-07

Третье предупреждение. От андроида же.

kis02-08

… и все. Приложение установилось. И запустилось.

А Киса? А Киса считает, что все хорошо. Даже после полного пересканирования системы. даже когда я подождал (ну вдруг оно сигнатуры отсылает и базы обновляет?)

kis02-09

Я не поверил. Переустановил кису. Снова заплатил еще 300 рублей (да, они молодцы, я же уже говорил?), снова просканировал … Пусто.

Да даже если бы киса где-то бы и возмутилась, пользователь, пропустивший столько предупреждений, точно так же бы проигнорировал и это.

Результат: Kaspersky Internet Security for Android абсолютно бесполезная штука за 300 рублей. И батарейку не жрет.

ЗЫ А тот магазин, как и положено, засунул мне в календарь кучку событий типа “успей скорее скачать” и чего-то еще. Но аккаунт был тестовый, поэтому грохнул и все.

Пробую KIS на зуб. День 1. Десктоп.

У Касперского всегда были хорошие пиарщики. Любую фигню способны преподнести так, что человеку неподготовленному кажется, что еще чуть-чуть и все. На этот раз в мою ленту прорвались стенания о том, что злобный Microsoft ужасно гнусно поступает с белым и пушистым Касперским и вообще, всячески ему не докладывает мяса. А пользователи все поголовно под угрозой и страдают.

Голова у меня была переполнена вопросами по работе, поэтому для “перезагрузки” и “отдупливания” решил взять и посмотреть, что же изменилось с “касперским” за те года, когда я его последний раз удалял с машины благодарного (потом) пользователя.

Пробовать буду на всем доступном мне зоопарке машин и планшетов. Основная цель: выяснить для себя, стоит ли платить за предлагаемое. Цель: проверить насколько Kaspersky Internet Security со товарищами способен защитить меня и моего ребенка от ужасов из интернета. При этом я не буду использовать свои навыки для преодоления препятствий. Ну и кроме “касперского” все защитное будет отключено.

Первым делом примеряю на рабочий ноут. MacBook Pro и прочие ретины. Ставлю, запускаю, обновляю и иду по галочкам.

Первый минус. По умолчанию не включена защита от отслеживания.

kis01-00

И тут же обнаруживается второй минус. В “исключениях” обнаруживаются сайты, которые занесли денег, что бы им было можно. Стыдливо скрыто за “будут проблемы”

kis01-01

Смело снимаем галки, ибо проблем там не будет. Надеюсь, нигде нету третьего списка, в котором вообще самые привилегированные сайты …

Проверяю еще раз, что все включено по максимуму и иду в гугл с запросом “мокрые киски”.

kis01-02

Иду по сайтам, отмеченными как безопасные (зелененький логотип рядом с ссылками). Большинство недоступно из-за включенных фильтров, но буквально пятая или шестая ссылка дают искомое.

kis01-03

Я специально отмотал страницу так, что бы ничего этакого не было видно. Но по кликам там видно все.

Где-то тут я обнаружил, что музыка в iTunes умолкла. Быстрое расследование показало, что “касперский” заблокировал сервис.

kis01-04

Категория конечно, притянута за уши, но ладно. Добавил в исключения, музыка заиграла.

Решил попробовать вести себя как ребенок.

kis01-05

Пара кликов и результат

kis01-06

На скриншоте уже видно, что кусочек заблокирован. Покликав по ссылкам, я выяснил подробности про монастырский чай, морщины и алкоголизм без каких-либо проблем. Но при попытке купить “касперский” немного реабилитировался.

kis01-07

Кстати, а можно почитать про конкурентов?

kis01-08

Странно, при этом сам сайт “касперского” доступен и я прекрасно дошел до стадии “нажми на кнопку и купи”. Попробуем почитать документацию про микроконтроллеры

kis01-09

Или этот сайт

kis01-10

Перехожу на Виндовс. Обычный десктоп, Win10 со всем включенным. Для начала мне предложили поставить шпиона за мной. Не понял, “касперский” защищать меня должен или как?

kis01-11

Опять прошелся по всем галочкам, поснимал “разрешить” и повключал “заблокировать”. Результат превзошел все ожидания. Любое открытие любой страницы превращается в пару минут бульканий от оповещений. Очень информативно, да?

kis01-12

Да, страницы нынче все забиты маяками, счетчиками и шпионами. Но обычный пользователь озвереет от всего этого бульканья очень быстро и тупо разрешит виндовсу заблокировать это приложение. Да, виндовс реально заботится о пользователе и понимает, что когда какое-то приложение начинает спамить, то это явно не то, что ожидает пользователь. А отключение оповещалок в самом “касперском” запрятано настолько далеко и неочевидно, что лично я нашел страницу не с первого раза. Да и вообще, я бы уже удалил “касперского”, но решил досмотреть.

После всех выключений на экран выползло приглашение воспользоваться защищенным соединением. Типа пароли своруют и деньги с карточки тоже. Ну ок, давай. В бесплатной версии можно только “в россии” быть, поэтому на порнохаб зайти не удалось. Да и вообще никуда не удалось.

kis01-13

Как видно по счетчику, какой-то трафик идет, но ничего не открывается. Я как обычный пользователь, попробовав пару раз, закрою эту штуку и больше никогда не открою и не вспомню. Как админ я на соседнем компе запустил tcpdump, поглядел на происходящее в сети, нашел причину и тоже больше никогда не открою и не вспомню про эту штуку.

Что там еще? В настройках меня настойчиво приглашали пройти в “мой кабинет”. Ок. Тыкаюсь.

kis01-14

Странно, да? Мобильных телефонов два, хотя это один и тот же, а десктопа с виндовсом нет. Проверил еще раз и даже попробовал вручную добавить.

kis01-15

Нету. Мало того, этот сайт постоянно желает свернуться в одну колонку, что раздражает неиллюзорно.

Что у нас осталось? Вирусы-квартирусы? Ну ок, открываю папку Junk в почтовом клиенте. У меня много широко известных адресов, поэтому троянов и прочей гадости мне сыпят много и регулярно. Открываю письма и пытаюсь скачать приложенный файл, одновременно поверяя его на virustotal.

Скриншоты мне уже делать лень, ибо лицо болит. Но в общем и целом тотальный провал. Все, что свежее и пришло сегодня, открывается без проблем. Дальше в зависимости от удачливости вирусописателя.

То, что пришло вчера, открывается где-то 50 на 50. Логики не уловил, ибо может пропустить одно письмо и заблокировать другое из одной и той же рассылки.

То, что старше пары дней, ловится 100%.

В принципе, такое поведение ожидаемое и понятное, но почему-то польский (не уверен, но вроде да) ArcaBit и Mcaffe ловят практически все, если судить по отчетам virustotal. Нет, у них тоже есть пропуски, но они единичные.

Что в остатке из рекламируемого? Сходим, почитаем, что вообще он должен уметь.

Расширенный уровень защиты. Контроль интернет трафика. Полный провал.
Анти-Спам и Анти-Баннер. Отфильтровывает опасные и нежелательные электронные письма и блокирует рекламу в виде баннеров. Что? Сбегал на anekdot.ru, как на эталонный “есть всио”.

kis01-16

Провал … Дальше?

Родительский контроль. Позволяет отслеживать, ограничивать или блокировать действия детей в интернете. Ну … ок. Как тупой фильтр по адресам вроде работает.

Защита в реальном времени. Обеспечивает защиту компьютеров от известных и новых угроз. Ну на троечку, защищает да.

Остальное не пробовал, ибо либо бессмысленное, либо является попыткой повторить более успешные программы.

Вердикт: Kasperksy Total Security покупать абсолютно бессмысленно. Есть куча программ либо дешевле, либо с более богатым функционалом.

Kaspersky Internet Security … ну если вам некуда деть денег или не хватает разума не открывать все письма и ссылки подряд, то покупайте. Иначе тоже нет смысла.

Делаем пользу из телевизора.

Внезапно у меня образовалось два телевизора. Один на кухне, другой в спальне. Оба подключены к кабельному и еще к чему-то, так что каналов далеко за сотню, хоть есть и повторяющиеся.

Но использовать их у меня не получается: смотреть нечего. То, что предлагают имеющиеся каналы совершенно не удовлетворяет мои вкусы. Телевизор стоящий в спальне гордо имеет на боку какую-то кастрированную OS и умеет ходить в интернет. Там есть всякие “амедиатеки”, “ивиру”, “нетфликсы” и прочий хлам, отличающийся от эфирных каналов лишь ценником. Смотреть там точно так же нечего.

Итак, я сформировал задачу: надо сделать так, что бы телевизор не собирал пыль. Для этого эта штука должна обзавестись следующими навыками:
– Научиться играть музыку. Я практически все делаю под музыку.
– Научиться показывать киношки именно те, которые я хочу и те, когда я хочу. Важное дополнение: некоторые киношки я смотрю на языке оригинала, а некоторые – с расположенного дома сетевого диска (просто по причине их тотального отсутствия в магазинах).
– Не трахать мозги.

Первым в голову пришло собрать домашний медиацентр. Берем Raspberry PI, втыкаем туда что надо и вперед. Идея хорошая, но если честно, то лень. Линуксов и прочего у меня на работе выше крыши, поэтому превращать дом в филиал работы мне не очень хочется. Но как запасной вариант очень даже.

Google Chromecast уже смотрится лучше. Тем более один из телевизоров имеет какую-то старую (ну или аналогичную) версию. Основной минус – трансляция только с телефона/компьютера. Значит, надо иметь постоянно включенным еще один компьютер или держать телефон поблизости. Нет, с компьютерами проблем нет, а вот с телефонами проблема – Chromecast никак не поддерживает Apple.

Куча hdmi-донглов проходит под первым пунктом и точно так же не вызывает энтузиазма.

В итоге остается только новый Apple TV. Старый – он как хромкаст и тоже требует внешнего устройства. Согласно рекламе и описаниям, он умеет делать все, что требуется.

Пошел, купил. Раскрыл коробку, оторвал кучу пленочек, бумажек и прочих признаков тактильного наслаждения распаковкой. Включил.

Первой проблемой было ввести логины-пароли. С учетом того, что они у меня сложные, а экранная клавиатура у эппла рассчитана на домохозяек, это было довольно трудно – я регулярно бегал к компьютеру, что бы набрать пароль и посмотреть буквы.

Второй проблемой стали фильмы. На любой чих приставка выдавала сообщение о неустранимой ошибке и закрывала “приложеньице”. Сказать, что я был огорчен – ничего не сказать. Более того, при попытке играть кино на планшете и потом включение AirPlay приводило к 50% зависанию проигрывания. Отдельные кадры показывает, но кино играть не желает.

Попытка проиграть кино с большого компьютера закончилась сообщением, что играть оно не будет, так как дисплей не поддерживает hdcp.

Перезагрузки и прочие шаманские танцы не помогали точно так же.

Решение оказалось сложным. Что конкретно помогло, я не знаю и знать не желаю. Я просто сбросил приставку в ноль (она при этом заново скачивает прошивку из сети), поставил язык интерфейса английский и подключил appletv по ethernet. Пароли и прочее ввел с помощью планшета (есть при установке такой выбор. я просто в первый раз пропустил)

Все проблемы сняло как рукой. Обычного интернета в 80 мегабит (пиковых,постоянно доступно там 30-40 от силы) в воскресенье вечером хватает на показ фильма в FullHD без каких-либо пауз, квадратиков и прочих аттрибутов.

Поставил VLC. Играет, все что я ему попробовал подсунуть.

Звуковые дорожки переключаются. В iTunes сразу и без проблем, VLC иногда плющит.

Музыка полностью аналогична той же самой на айфонах-айпадах. Все работает.

Задача выполнена и я провел половину воскресенья за пересмотром “звездных войн”. Качественное FullHD на большом экране очень непривычно смотреть. Внезапно обнаружилось, что я как-то уже привык к “мылу”. Как бы не повторилась история с “аудиофильством”

PS Так же внезапно обнаружилось приятное дополнение. Понажимав несколько раз кнопку menu (то есть уйдя на главный экран и попытаться уйти “выше”), можно запустить “скринсейвер”, представляющий собой HD видео разных городов с высоты.

Игрища с сервером – 3 или openvpn и ipv6

Сделав очередной openvpn сервер, я задался вопросом: а нафига я его вообще делал? Нет, что бы добираться безопасно до своих ресурсов, это да. Но одна из главных задач – дать клиенту ipv6 в мире ipv4. И именно её он не выполняет. Значит сейчас починим.

Самый простой вариант “в лоб” – перевести сервер в бридж режим и пусть клиенты будут представляться хост-машине как еще одни виртуалки. Минус – замучаюсь с безопасностью. Плюс – тупо и надежно.

Вариант посложнее – выпилить кусочек ipv6 сети и давать её клиентам. Минус тут один – некоторые клиенты почему-то желают видеть у себя /64 и никак иначе. А у меня всего одна /64. Нет, можно получить еще через любого туннельного брокера, но не хочу.

Значит вариант остается один: взять приватную ipv6 подсеть и сделать раздачу из него. Для выбора сетки мы можем брать все что нам понравится, главное что бы первый байт адреса был fd. Вот тут можно даже побаловаться, просто обновляя страничку.

Я возьму для своих крамольных целей сеть fdab:cdef:1234:5678::/64

Почитав маны, добавляю следующие строчки в конфиг сервера

server-ipv6 fdab:cdef:1234:5678::/64
tun-ipv6
push tun-ipv6

И перезагружаю сервер

systemctl restart openvpn@server.service

Переподключаю клиента и смотрю в логи. Вижу заветную строку.

Fri Jan 29 03:12:31 2016 /usr/sbin/ip addr add dev tun0 local 10.100.2.6 peer 10.100.2.5
Fri Jan 29 03:12:31 2016 /usr/sbin/ip -6 addr add fdab:cdef:1234:5678::1000/64 dev tun0
Fri Jan 29 03:12:31 2016 /usr/sbin/ip route add 10.100.0.0/24 via 10.100.2.5

Пробую с клиента пингануть сервер

$ ping6 fdab:cdef:1234:5678::1 -c 2
PING fdab:cdef:1234:5678::1(fdab:cdef:1234:5678::1) 56 data bytes
64 bytes from fdab:cdef:1234:5678::1: icmp_seq=1 ttl=64 time=48.1 ms
64 bytes from fdab:cdef:1234:5678::1: icmp_seq=2 ttl=64 time=48.2 ms

Работает! Теперь осталось самая мелочь – запушить правило роутинга, адрес ДНС и собственно роутинг сделать.

Строчка конфига

push "route-ipv6 2000::/3"

Заставит маршрутизировать весь ipv6 трафик через openvpn. Почти как redirect-gateway def1, но только для ipv6.

Но так как у нас приватная сеть, то я могу пинговать только openvpn. Другие хосты согласно правилам хорошего тона, такие поползновения обламывают.

К сожалению, тут опять на белый свет выползает firewalld, а вернее его хипстерские правила, которые не умеют ничего, кроме открытия и закрытия портов. Выносим его

systemctl stop firewalld
yum -y install iptables-services
systemctl enable iptables
systemctl enable ip6tables
systemctl start iptables
systemctl start ip6tables

Добавляем правила для SNAT и открываем 1194/udp на вход
-A POSTROUTING -s 10.100.2.0/24 -o eth0 -j SNAT --to-source 10.100.0.133
-A POSTROUTING -s fdab:cdef:1234:5678::/64 -o eth0 -j SNAT --to-source 2a01:4f8:171:1a43:5054:ff:fe0d:da49

-A INPUT -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT

И удаляем мешающееся

-A FORWARD -j REJECT --reject-with icmp6-adm-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

Теперь последний шаг – sysctl.conf

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding=1

То, что надо перечитать – перечитываем, то, что надо перезагрузить – перезагружаем.

Если все сделано правильно, клиент VPN начнет пинговать внешние ipv6 ресурсы. traceroute у меня почему-то обламывался на первом же хопе. Посмотрел tcpdump – видимо, не до конца допилили модуль, отвечающий за NAT: адреса не переписываются. Но с другой стороны – ну и пофиг: если очень надо, то я смогу зайти прямо на хост.

Последняя проверка: а файлики-то клиент утащит?

$ wget -6 google.com
--2016-01-29 04:07:49-- http://google.com/
Resolving google.com (google.com)... 2607:f8b0:4005:800::1002
Connecting to google.com (google.com)|2607:f8b0:4005:800::1002|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://www.google.de/?gfe_rd=cr&ei=5SurVtbrKeaD8Qeu6YvACw [following]
--2016-01-29 04:07:49-- http://www.google.de/?gfe_rd=cr&ei=5SurVtbrKeaD8Qeu6YvACw
Resolving www.google.de (www.google.de)... 2607:f8b0:4010:800::101f
Connecting to www.google.de (www.google.de)|2607:f8b0:4010:800::101f|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

[ <=> ] 19,066 97.8KB/s in 0.2s

2016-01-29 04:07:50 (97.8 KB/s) - ‘index.html’ saved [19066]

Утащил!

Значит, можно удовлетворенно потирать руки и идти спать

Новый сервер с игрищами и блудницами – 5

Или баррикадируемся от подборщиков паролей.

Захожу я утром на свой сервер, а мне добрая система сообщает

Last failed login: Sat Jan 23 10:23:49 MSK 2016 from 183.3.202.106 on ssh:notty
There were 5278 failed login attempts since the last successful login.

Китайцы и прочий народ ломится, пытается пароль к руту пободрать. Не то, что бы это напрягало, но тем не менее, некрасиво.

-A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

Как это работает, можно почитать на хабре в комментах.

Поглядел в логи – ляпота и чистота.

Теперь (лично мне) надо поставить 6ю центось. Надо по двум причинам: попробовать графическую консоль (ибо в полном тексте как 7я оно не ставится), и надо для OpenVZ, у которой опять же с 7й еще есть проблемы.

Поначалу я попробовал SPICE, предлагаемый по умолчанию. Тормозит дико. Даже на толстых каналах. Плюс клиентов нет под всякие разные операционки. Попробовал vnc – вот это другое дело. Не скажу, что прямо как “на настоящем”, но работать вполне можно.

virt-install --name openvz --ram 8912 --disk path=/vm/openvz.qcow2,size=8,bus=virtio,cache=none --vcpus 4 --os-type linux --network bridge=virbr0,model=virtio -c /vm/iso/CentOS-6.7-x86_64-minimal.iso --accelerate --noautoconsole --graphics vnc,password=test,listen=10.100.0.254 -v --input tablet,bus=usb

Теперь ssh -L 5900:10.100.0.254:5900 root@host и любым VNC клиентом на 127.0.0.1:5900. Пароль, как видно из команды – test. Просто, удобно и понятно.

Но мне понравилось, что можно в машину забраться и через virsh console. В винтуальной машине делаем

cat /etc/init/ttyS0.conf
stop on runlevel[016]
start on runlevel[345]
respawn
instance /dev/ttyS0
exec /sbin/mingetty /dev/ttyS0

В самый конец /etc/securetty добавляем
ttyS0

И запускаем

initctl start ttyS0

И в общем, должны попасть через virsh console. Для логов загрузки, для kernel в /etc/grub.conf добавляем

console=ttyS0

У меня все получилось. Дальше иду как написано в вики OpenVZ. Ставлю, мигрирую и так далее.

Новый сервер с игрищами и блудницами – 2

Итак, надо виртуализироваться. Виртуализироваться будем через KVM потому что опять же продвигается редхатом, всеми поддерживается и так далее и тому подобное.

Для начала ставим кучку жутко “необходимого” софта: yum install qemu-kvm libvirt python-virtinst bridge-utils

Затем запускаем установленное

systemctl start libvirtd
systemctl enable libvirtd

Опять же, ничего такого вроде не появилось, за исключением пары интерфейсов с названиями virbr и адресом 192.168.122.1/24.

3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 52:54:00:ba:d8:82 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
link/ether 52:54:00:ba:d8:82 brd ff:ff:ff:ff:ff:ff

Первым делом мне надо добавить ipv6 адрес. Только не вздумайте искать по совпадениям и править руками. Есть гораздо более приятные средства.

virsh net-destroy default
virsh net-edit default

Screenshot 2016-01-16 15.18.40

И добавим еще одно определение сети.

Screenshot 2016-01-16 15.27.38

virsh net-start default

Screenshot 2016-01-16 15.30.24

а в логах должно быть что-то похожее на

Jan 16 13:28:36 tower dnsmasq-dhcp[3544]: DHCP, IP range 10.100.0.100 -- 10.100.0.200, lease time 1h
Jan 16 13:28:36 tower dnsmasq-dhcp[3544]: DHCPv6, IP range 2a01:4f8:171:1a43:8000::1000 -- 2a01:4f8:171:1a43:8000::2000, lease time 1h
Jan 16 13:28:36 tower dnsmasq-dhcp[3544]: router advertisement on 2a01:4f8:171:1a43::
Jan 16 13:28:36 tower dnsmasq-dhcp[3544]: IPv6 router advertisement enabled

Откуда появился 2a01:4f8:171:1a43:8000::2/96 ?

Дело в том, что hetzner выдал мне ipv6 адрес 2a01:4f8:171:1a43::2/64. Типа подсеть на хост и все такое. Я взял с серединки (:8000) кусочек в 32 бита (128-96) или 4 миллиарда адресов. Ну или столько, сколько сейчас адресов в интернете 🙂 Из этого диапазона я выделил малюсенький кусочек в тысячу адресов для виртуалок. Думаю, что мне этого хватит 🙂 Ну и заодно поменял адрес для ipv4 на более подходящий мне.

Теперь самое время проверить доступность с другого хоста.

[root@outpost ~]# ping6 2a01:4f8:171:1a43:8000::2 -c 2
PING 2a01:4f8:171:1a43:8000::2(2a01:4f8:171:1a43:8000::2) 56 data bytes
64 bytes from 2a01:4f8:171:1a43:8000::2: icmp_seq=1 ttl=59 time=0.864 ms
64 bytes from 2a01:4f8:171:1a43:8000::2: icmp_seq=2 ttl=59 time=0.490 ms

--- 2a01:4f8:171:1a43:8000::2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.490/0.677/0.864/0.187 ms
[root@outpost ~]# ping6 2a01:4f8:171:1a43::2 -c 2
PING 2a01:4f8:171:1a43::2(2a01:4f8:171:1a43::2) 56 data bytes
64 bytes from 2a01:4f8:171:1a43::2: icmp_seq=1 ttl=59 time=0.341 ms
64 bytes from 2a01:4f8:171:1a43::2: icmp_seq=2 ttl=59 time=0.452 ms

--- 2a01:4f8:171:1a43::2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.341/0.396/0.452/0.058 ms

В общем, все как в ipv4, только маски дикие по размерам и не привычные.

Теперь надо поднять какую-нибудь виртуалку, что бы протестировать роутинг и прочие штуки.

Добавляем полезную утилиту для лентяев yum install virt-install virt-viewer

И останавливаемся. Потому что нам надо выделить немножко места для виртуалок.

lvcreate -L 100G -n vm vg0
mkfs.xfs /dev/vg0/vm
mkdir /vm
mcedit /etc/fstab
mount /vm

100Гб для начала хватит, а потом по необходимости растяну.

Так как я хардкорничаю, то добавляю необходимое для selinux

yum install policycoreutils-python
semanage fcontext -a -t virt_image_t "/vm(/.*)?"
restorecon -R /vm

И выкачиваю дистрибутив CentOS (Тут немного бальзама: качается по ipv6. Мелочь, а приятно)

mkdir /vm/iso
cd /vm/iso
wget http://ftp.funet.fi/pub/mirrors/centos.org/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso

Ну и теперь пора поставить тестовую машину. Пока без всяких ускорений, акселераций и прочего. Мне надо просто проверить сеть и все, что с ней связано.

virt-install --name test --ram 1024 --disk path=/vm/test.qcow2,size=8 --vcpus 1 --os-type linux --network bridge=virbr0 --location /vm/iso/CentOS-7-x86_64-DVD-1511.iso --extra-args='console=tty0 console=ttyS0,115200n8 serial' --nographics

Значение каждого параметра либо понятны сразу, либо описаны в документации или интернете. Если все сделали правильно (я каюсь, не сразу все сделал правильно, но это оставим за скобками), то вы должны увидеть текстовый интерфейс, очень похожий расположением элементов на графический. Инсталлятор понятен любому, кто хоть раз ставил центось. В общем, после указания всех шагов получим наглядную иллюстрацию процесса инсталляции.

Screenshot 2016-01-16 16.40.05

После установки мы увидим консоль сервера и может туда залогиниться и даже попинговать ipv4 адреса. ipv6 не пингуется, потому что на интерфейсе сидит только локальный адрес.

Screenshot 2016-01-16 17.37.01

Более того, можно даже немного поэстетствовать и использовать графический virt-manager. Правда, придется добавить немного пакетов, что бы графическая часть морды не ругалась.

yum install xauth libcanberra-gtk3 PackageKit-gtk3-module dejavu-lgc-sans-fonts dejavu-lgc-sans-mono-fonts

Если virt-manager ругается на то, что консоль занята, значит вы не отцепились (Ctrl-]) от текстовой в другом терминале

Ну и затем с любого линукса ssh -X на машину и я получаю вот это.

Screenshot 2016-01-16 17.50.45

В принципе, полный контроль над машинами. Иногда очень удобно, иногда нет.

Но я отвлекся. В виртуальной машине ipv4 есть, получен и даже работает, а ipv6 нет. И еще тормозит по диску уж больно жутко.

Диск лечится просто: тормозим машину, virsh edit test и где driver добавляем cache=’unsafe’ (для рабочих не надо так делать). После запускаем и видим вполне себе шустро бегающую машинку.

Теперь с сетью. Заходим на тестовую машину, запускаем dhclient -6 ens3 (ens3 это у меня сетевой интерфейс). И видим в логах

Jan 16 16:30:58 tower dnsmasq-dhcp[3544]: no address range available for DHCPv6 request via virbr0

Оппа! А почему? Вроде же определили все и выдали тоже все …

Прибиваем в тестовой машине адрес 2a01:4f8:171:1a43:8000::99 и пингуем – пингуется, но только с хоста. Это нормально.

Как прибить? В /etc/sysconfig/network-scripts/ifcfg-ens3

#IPV6_AUTOCONF=yes
IPV6ADDR=2a01:4f8:171:1a43:8000::1234

и перезапустить network

Так, раз пингуется, значит проблема не в адресе, а в настройках. Судя по аналогичным сообщениям, у меня проблемы с маской. Почитав еще немного интернетов, я дошел до такой конфигурации.

<ip family='ipv6' address='2a01:4f8:171:1a43:8000::2' prefix='64'>
<dhcp>
<range start='2a01:4f8:171:1a43:8000::100' end='2a01:4f8:171:1a43:8000::200'/>
</dhcp>
</ip>

Как видите, разница только в маске. Как ни странно, но в этом отношении ipv6 (вернее, его роутинг в линуксе) ведет себя немного “странней”, чем для ipv4. Но в любом случае, прочитанное оказалось верным и машина получила свой адрес.

Jan 16 18:03:01 tower dnsmasq-dhcp[5491]: DHCPREQUEST(virbr0) 10.100.0.141 52:54:00:81:5b:8f
Jan 16 18:03:01 tower dnsmasq-dhcp[5491]: DHCPACK(virbr0) 10.100.0.141 52:54:00:81:5b:8f test
Jan 16 18:03:03 tower dnsmasq-dhcp[5491]: RTR-SOLICIT(virbr0)
Jan 16 18:03:03 tower dnsmasq-dhcp[5491]: RTR-ADVERT(virbr0) 2a01:4f8:171:1a43::
Jan 16 18:03:03 tower dnsmasq-dhcp[5491]: DHCPCONFIRM(virbr0) 00:01:00:01:1e:2d:1e:b1:52:54:00:81:5b:8f
Jan 16 18:03:04 tower dnsmasq-dhcp[5491]: DHCPSOLICIT(virbr0) 00:01:00:01:1e:2d:1e:b1:52:54:00:81:5b:8f
Jan 16 18:03:04 tower dnsmasq-dhcp[5491]: DHCPADVERTISE(virbr0) 2a01:4f8:171:1a43:8000::13c 00:01:00:01:1e:2d:1e:b1:52:54:00:81:5b:8f
Jan 16 18:03:05 tower dnsmasq-dhcp[5491]: DHCPREQUEST(virbr0) 00:01:00:01:1e:2d:1e:b1:52:54:00:81:5b:8f
Jan 16 18:03:05 tower dnsmasq-dhcp[5491]: DHCPREPLY(virbr0) 2a01:4f8:171:1a43:8000::13c 00:01:00:01:1e:2d:1e:b1:52:54:00:81:5b:8f

Вывод ip addr

2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:81:5b:8f brd ff:ff:ff:ff:ff:ff
inet 10.100.0.141/24 brd 10.100.0.255 scope global dynamic ens3
valid_lft 3590sec preferred_lft 3590sec
inet6 2a01:4f8:171:1a43:8000::13c/128 scope global dynamic
valid_lft 3595sec preferred_lft 3595sec
inet6 fe80::5054:ff:fe81:5b8f/64 scope link
valid_lft forever preferred_lft forever

Как видно, сервер получил свой персональный ipv6 адрес, но ничего, кроме хоста пинговать не может. Причина простая как грабли – ipv6 не имеет NAT в принципе. Только роутинг.

Косвенным подтверждением является попытка попинговать адрес тестовой машины снаружи

[root@outpost ~]# ping6 2a01:4f8:171:1a43:8000::13c
PING 2a01:4f8:171:1a43:8000::13c(2a01:4f8:171:1a43:8000::13c) 56 data bytes
From 2a01:4f8:171:1a43::2 icmp_seq=1 Destination unreachable: Address unreachable
From 2a01:4f8:171:1a43::2 icmp_seq=2 Destination unreachable: Address unreachable

То есть пинг доходит до хоста, а тот отвечает, что не знает, куда роутить этот адрес. Аналогичное получим, если попытаемся напрямую с хоста попинговать. Ну нету этого адреса в таблице роутинга и все тут. Меняем маску на основном интерфейсе (64->128), что бы таблицу роутинга в порядок привести. Без перезагрузки

ip addr del 2a01:4f8:171:1a43::2/64 dev eth0
ip addr add 2a01:4f8:171:1a43::2/128 dev eth0

А с перезагрузкой в /etc/sysconfig/network-scripts/ifcfg-eth0

Что изменилось? С хоста началась пинговаться виртуалка и все. В общем, лично мне стало понятно, что ipv6 – это нифига не ipv4, только с бОльшими масками.

(чтение мануалов опущено)

В общем, с одной стороны все проще, а с другой – все сложнее. В ipv6 есть такая штука, как SLAAC, которая работает как некий навороченный DHCP сервер. Подробнее в маны.

Поэтому выкидываю нафиг все из настроек dnsmasq (virsh net-edit default) и оставляю только описание интерфейса.

<ip family='ipv6' address='2a01:4f8:171:1a43::3' prefix='64'>
</ip>

Ну и адрес попроще сделал. И сделал /etc/radvd.conf

interface virbr0
{
AdvSendAdvert on;
AdvManagedFlag off;
AdvOtherConfigFlag off;
prefix 2a01:4f8:171:1a43::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
RDNSS 2001:db8:0:a0a1::add:1010
2001:db8:0:a102::add:9999
2001:db8:0:a111::add:9898
{
};
};

Затем

systemctl enable radvd.service
systemctl start radvd.service

и перезагрузка виртуалки. Вуаля! Магия ipv6 сработала и виртуалка получила свой адрес.

inet6 2a01:4f8:171:1a43:5054:ff:fe81:5b8f/64 scope global noprefixroute dynamic
valid_lft 86170sec preferred_lft 14170sec

И даже пинги ходят во все стороны. То, что и требовалось получить.

Для проверки я создал еще одну виртуалочку (теперь с сразу с “быстрым” диском)

virt-install --name test2 --ram 1024 --disk path=/vm/test2.qcow2,size=8,bus=virtio,cache=none --vcpus 1 --os-type linux --network bridge=virbr0 --location /vm/iso/CentOS-7-x86_64-DVD-1511.iso --extra-args='console=tty0 console=ttyS0,115200n8 serial' --nographics

И сеть в ней сразу заработала без каких-либо дополнительных команд. То, что и требовалось получить. Теперь можно и виртуалки клепать.

Как выдаются адреса? А очень просто: простым маппингом мак-адреса сетевой. Опять же за подробностями в документацию.

link/ether 52:54:00:e4:63:05 brd ff:ff:ff:ff:ff:ff
inet6 2a01:4f8:171:1a43:5054:ff:fee4:6305/64 scope global noprefixroute dynamic

Главное изменение теперь в “политике безопасности”.

Раньше: вся сетевая безопасность лежала на хосте. Гости получали уже отфильтрованный трафик, только на те порты, которые разрешены. Можно было спокойно открывать порты, не опасаясь ничего.

Теперь: каждый гость выставлен наружу “напрямую” и требует соответствующей защиты. И не важно, что ipv4 адреса из “приватной” сети. Фаирволл, обновление и выключение ненужного – наше все.

Не страшно и не сложно, но помнить надо.

Итак, считаю, что очередной шаг закрыт. Теперь надо переносить существующее (разумеется, с одновременным апгрейдом)

Новый сервер с игрищами и блудницами – 1

Пришла ко мне рассылка от hetzner. Дескать, дорогой валуабный клиент, сделали мы новую линейку серверов. Памяти больше, проц быстрее, диски толще а денег надо меньше. Приходи и заказывай. Походил я кругами и заказал. А то на старом уже диски сыпаться начали и своп образовываться.

Но просто так переносить сервисы абсолютно не интересно: на старом сервере у меня стоит OpenVZ и весь перенос будет заключаться в паре команд, да смене имен в DNS. Где же развитие и толчок вперед? В общем, потыкался я и решил:

– Сменить основную OS с CentOS 6 на CentOS 7. systemd, firewalld и прочие d в полном изобилии. Некий опыт есть, но чего-то в голову лезут пошлые мысли про RHCE.
– Привести в порядок DNS. Сейчас у меня часть серверов тут, часть там, часть вообще через одно место. Пусть все будет одинаковым и у меня.
– ipv6. Не очень-то и надо, но смотреть выше про развитие.
– SNI. Хватит тратить ipv4 адреса на каждый SSL сервер (да и дешевле будет).
– Да и вообще, надо все закриптовать. А то стыдоба – личный SVN голым ходит.
– Ну и KVM надо. Иногда жутко как требуется винда “в прекрасном и далеком”, а городить туннели не охота. Заодно получится бесплатный терминальный сервер для меня любимого.
– OwnCloud тоже не помешал бы, как и OpenVPN сервер для разностей нехороших.
– Ну и остальное по вкусу.

Практика прошлых лет показала, что принцип “ставим один сервер, выкидываем с него лишнее, а все сервисы в виртуалки” оправдал себя на все 100%. Да, при настройке чуть-чуть подумать надо, но зато потом абсолютно никаких проблем и заморочек. Ни с хакерами, ни с распределением нагрузки, ни с резервным копированием … да вообще ни с чем. Так буду и тут делать.

Идем в админку и заказываем новый сервер. Ждем получения письма, в котором пишут радостное:

Screenshot 2016-01-16 10.52.41

Заходим, нас пускают …

Screenshot 2016-01-16 10.52.57

Для приличия делаем passwd root и начинаем осматриваться. Сразу замечаю, что немцы стойко держат флаг “мы делаем нах ордунг” и сделали два больших рейда по 2Тб. Один отдали под /, другой под /home. Интересно, какой у них был сценарий использования? Но в любом случае, мне такое не надо.

Идем опять в консоль и перегружаемся в rescue

Screenshot 2016-01-16 11.04.38

Выглядит именно тем, что я и заказывал (каюсь, да, не посмотрел раньше). Поэтому сразу набираем installimage

Там нам дают в mcedit поправить конфиг. Там я меняю имя сервера на tower.multik.org и ниже я показал, как указываю 16 гигов свопа, 512 мегабайт для /boot и все остальное отдать в LVM. В LVM прошу создать раздел / размером в 16 гигов. Остальное оставить нетронутым. Почему так мало? Так потому что все остальное – в виртуалки! В корне сервера делать лишнему абсолютно нечего, тут будут только штуки, связанные с внешним миром типа фаирволла.

Screenshot 2016-01-16 11.42.58

Сохраняю (F2 или ESC-2), выхожу (ESC-0 или F10) и жду перезаливки сервера

Screenshot 2016-01-16 11.10.30

Потом reboot, снова захожу (про ключи и их смену не говорю) и вуаля! Я в новом сервере.

Screenshot 2016-01-16 11.23.09

Опять меняю пароль root.

Итак, на этом этапе я получил пустой и голый сервер. Что он умеет? Да ничего. Добрые немцы выкусили из образа вообще все (вот тут реально молодцы!) и на сервере есть только ssh и настроенная ipv4/ipv6 сеть.

Первым (опять первым, но тут все такое) делом обновляемся. yum update

Добавляем полезные программки yum install mc screen bind-utils iotop iftop

Включаем синхронизацию времени systemctl start ntpd && systemctl enable ntpd

и переходим к фаирволлу. yum install firewalld ; systemctl enable firewalld ; systemctl start firewalld (Почему firewalld? Потому что мне лень править правила для ipv4 и ipv6 одновременно. Ну и редхатом проталкивается)

Внешне ничего не изменилось, но теперь снаружи на машину можно зайти только по 22му порту. Проверить можно посмотрев правила iptables. Но я-то двигаюсь вперед, поэтому все должно быть по фен-шую.

systemctl status firewalld

Screenshot 2016-01-16 12.13.29

и побалуемся с командой firewall-cmd

Screenshot 2016-01-16 12.15.57

Если я правильно понял, то никаких активных правил нет, просто стоит public по умолчанию, в которой разрешен только dhcp-клиент и ssh. Все остальное запрещено. Вполне логичные правила, но опять же, мне не сильно подходят. Будем менять.

Для начала попробую

firewall-cmd --zone=public --change-interface=eth0 --permanent
firewall-cmd --get-active-zones

И вижу фигу. Ничего не изменилось. Оказывается, это фича. Скрипт видит, что зона public и так применена (ну и что, что по умолчанию, поэтому ничего не делает).

Меняю зону на home и обратно. Вот теперь показывает

Screenshot 2016-01-16 12.27.56

Но лично мне не нужно, что бы было правило для dhcp клиента

firewall-cmd --zone=public --remove-service=dhcpv6-client --permanent
firewall-cmd --list-all

Ну вот теперь хорошо. Ничего лишнего, все закрыто и замуровано. Остался последний шаг – применить все, что я тут натворил, в реальность

firewall-cmd --reload

Все, теперь и iptables показывает именно то, что полагается.

Как говорится, первый шаг сделан. Следующим – виртуализироваться. Но виртуализироваться хардкорно, поэтому ставим SELINUX=permissive для начала и перезагружаемся, проверяя правильность всего преднастроенного.

У меня выползла одна единственная проблема – предустановленный немцами chrony мешался ntpd. Удаляем его (yum remove chrony) и все.

PS В запоминалку: настроить монитор raid.

ZFS, солярка и все-все-все …

Вообще-то этот пост я задумывал давно. И пытался писать давно – вон, в черновиках штуки три лежит. Но все получалось не то и не туда. Попробую в четвертый раз. Пусть будет нечто вроде сказки про жизнь.

Итак, некоторое время назад ко мне в руки попала инфраструктура, которая за 5 лет сменила пятерых же админов. Самым больным местом были стораджи, с них и начал разборки. Ситуация осложнялась тем, что сисадмины менялись то ли вместе с начальством, то ли у начальства были постоянно меняющиеся вектора “куда мы движемся” – мне выяснять лень.

Первым делом была проведена ревизия, чего же попало ко мне в руки.

– Стораджи на NetApp. Здесь был маленьких плюс: есть человек, которых ими управлял и какого-то внимания с моей стороны не требовал.
– Стораджи на ESX. То есть берем сервер с RAID контроллером, ставим туда ESX и вместе с хостингом виртуалок раздаем еще и диски.
– Стораджи на Nexenta. Некоторые с просроченными лицензиями.
– Стораджи на OmniTI. Некоторые с веб-мордами, некоторые “голые”.

И вот последних двух пунктов было много! Стал разбираться. Что нексента, что OmniTI построены на древнем ядре от solaris. Если кто-то из продаванов нексенты будет втирать, что они там что-то делали, модернизировали и так далее, не верьте – я из любопытства менял и ядра и библиотеки – никаких криков “ой, у меня тут сломалось” не было.

Все отличие нексенты от omniti/openindiana – это веб-мордочка с красивыми графиками, криво обкусанный шелл и всякие параметры по умолчанию.

Родной файловой системой для этих штук является ZFS. Поначалу по чтению документации у меня разгорались глаза: умеет сама делать raid, поддерживает сжатие и дедупликацию на ходу, снапшоты и прочее прилагаются.

Освободил один хост, обновил софт, обновил фирмварь … И все, солярка перестала загружаться – не может проинициализировать дисковый контроллер. Как говорится, оппа. Контроллеру 5 лет, солярка типа с последними обновлениями и не может. Побежал по инету – везде стоны про какое гавно ставит деллы в свои сервера. Поставил для проверки линукс – встал без каких-либо проблем.

Тут у меня поднялся флажочек: если солярка то не трогай фирмварь. 5 лет ей никто не занимался и больше заниматься не будет …

Ладно, благодаря новой политике у меня есть место, куда слить данные и освободить еще пару серверов для “на попробовать”.

Итак, два полностью одинаковых Dell R510. Вообще одинаковых – партнамберы из одной сотни. На одном – поставленная с нуля солярка, на другом – центось седьмая.

На солярке поднял zfs согласно лучшим шаманским методикам (там из духа “если число дисков четное и больше 9 – то лучше raidz3, иначе raidz2 и смотри не перепутай”), на линуксе – тупо software raid той же конфигурации, что и у солярки. И XFS поверх

И начал тупо заливать и сливать данные. NFS3, без каких-либо затей.

Солярка показала чистую, красивую и прибитую гвоздями “полку” на 3,5 гигабита. Линукс честно упирался в скорость сети и рисовал 10ку. Очень удивился. Ведь корпоративная система, типа ого-го и эге-гей!

Полез тюнить. А тюнить-то в общем и нечего. После линукса с его /sys и /proc солярка кажется очень бедным родственником. Методом последовательного теста выяснил, что у сети полка на 5 гигабит. И все – дальше проц умирает по загрузке. Древний драйвер, новее никто не делал.

В более низкой полке виноваты диски, вернее какие-то ядерные потроха этой ZFS. Потому что когда я поставил уже на третий сервер linux, прикрутил к нему zfs с теми же настройками, то он стал выдавать ту же 10ку.

Вывод: в стораджах солярке и ее производным делать нечего. Старый софт, никакой поддержки и теде и тепе. Если кто покажет на сайт соляриса, где типа недавно они выкатили новую версию, спешу огорчить, там то же самое ядро из 2010 года … я пробовал 🙂

Но может быть есть шанс ZFS завести под линуксом? Фигня вопрос: как раз приехал новый сервер. Ставим линукс, ставим ZFS, размечаем диски, запускаем туда клиентов … Поначалу все шло шикарно. Но внезапно клиенты стали жаловаться на то, что их машинки “умирают”. Пошел смотреть.

На сторадже занято примерно 65% диска, до обещанных ораклом 85% еще далеко. Решил посмотреть на производительность и немедленно поджег стул – 5 мегабайт в секунду. Представляете, 24 SAS диска и такая скорость? Сколько нервов я потерял, “раскидывая” этот сторадж и представить тяжело. Причем скорость выросла до приличных значений уже на практически пустом сторадже.

Попытался разобраться и не смог – по всем статьям, хаутушкам и прочим заклинаниям у нас должно быть более чем хорошо – и кешу место выделено и прочему раздано согласно документации. Ан нет – заливаешь на 40Тб сторадж 25ТБ и он “умирает”. И лежит “мертвым” до 5-10Тб занятого. Где-то какой-то глюк в драйверах zfs.

Стало понятно, что и ZFS на сторадже не жить. Перебилдил на софтверный raid, поставил xfs и все – все проблемы ушли.

Однако есть у меня место, где я недавно поставил пару новых хостов на солярке и аккуратно обновил старые. Это специальные хранилки, которые хранят снапшоты клиентских файловых систем. Вот там ZFS развернулась на всю катушку – и сжатие и дедупликация нужны как воздух. Опять же, я провел пару недель, гоняя данные между этими хостами (дедупликация работает гораздо лучше, когда одном сервере “давятся” одни и те же клиентские данные). В результате есть несколько … наблюдений

1. “Свежая” солярка, ZFS 28 и raidz3 – наше все. Оно даже на глаз быстрее работает того, что было 5 лет назад. Но линукс все равно быстрее.
2. Сжатие практически ничего не стоит для процессора, а давит в 1,5-2 раза. Можно включать.
3. Хочешь дедупликацию? Добавь памяти из расчета 1ТБ данных на диске – 5-6ГБ ОЗУ. Иначе будет тормозить.
4. Никогда (слышишь: никогда!) не забивай ZFS на 97-98%. Оно умирает даже на чтение до скоростей 100-200 килобайт в секунду. В принципе, мне именно поэтому не удалось забить на 100% – тесты умирали раньше. И вообще, для ZFS – 85% занятого – уже тревожный звонок.
5. Солярка в изучении чуть сложнее линукса, в основном из-за очень кривой и слабой документации. Изучать целенаправленно смысла нет, разве что в удовольствие.

Места всегда мало! Или ищем место онлайн.

Мы сейчас находимся в период очень интересных ценовых войн за пользователя. Все сервисы пошли в интернет, вместо покупки предлагается подписка и прочее, прочее, прочее. И то, что сначала казалось прорывом, сейчас не вызывает никаких эмоций.

Вот и мне потребовалось найти немного места в онлайне. С одной стороны, искать мне место в онлайне … Ну странно как-то. Есть и свой сервер в германии, где как минимум терабайт простаивает и где можно развернуть тот же owncloud, а с другой стороны, на нем и так уже крутится куча всего полезного, которое неплохо было бы положить еще куда-нибудь.

Итак, что мне надо?

Мне надо некий сервис, в который я положу следующее

Примерно 200Гб всяких штучек, которые мне потерять нет желания.
Примерно 300Гб других штучек, которые мне дороги как память
Ну и примерно 20Гб фотографий.

Ну и как обычно, аппетиты приходят во время еды, поэтому сразу замахнусь на терабайт места.

Что мне надо?

Мне нужна поддержка всех трех платформ – linux, os x, windows. Пусть через нное место, но что бы все работало. Никаких браузеров, “у нас в разработке” и так далее.

Мне нужны “прокачанные” технологии. Сидеть как dropbox на плечах amazon’а конечно хорошо, но охота более прямого контакта. Зачем? Да просто так.

И мне не нужна “халява”. Если халява – значит никаких гарантий и никакой возможности хотя бы покачать права.

Для начала пойдем по отечественным сервисам.

Яндекс.Диск. 200 рублей за 1Тб в месяц. Есть прямой доступ до диска через dav_fs, что для меня является большим плюсом. Минус – как любая компания, живущая от рекламы, Яндекс собирает о пользователе все, до чего сможет дотянуться.

Облако mail.ru. Цен на сайте не нашел, другие сайты говорят про 499 рублей в месяц. Но я имею крайне печальный опыт работы с mail.ru, поэтому данная компания даже не рассматривается и здесь приведена из-за того, что она есть.

В общем-то на этом отечественные провайдеры кончаются, не успев начаться. Пойдем по импортным

Dropbox. Самый первый, самый широко поддерживаемый сервис. За 1Тб желают 10 долларов в месяц или 700 рублей.

iCloud. За терабайт хотят 19 долларов в месяц. Или 1400 рублей в месяц.

Microsoft OneDrive. 199 рублей в месяц. И добавляют еще лицензию на Office 365 (Word, Excel и прочие штуки).

Кажется, тут выбор очевиден. Тем более, я недавно попробовал Windows 10 … и знаете, она мне понравилась.

Update: капиталисты не смогли не подгадить и в итоге не 200 рублей в месяц, а целых 286. Я близок к разорению 🙂