Записки коммандера. 15 августа.

Носился по галактике в попытке найти хоть один метасплав. Абсолютно безрезультатно и фатально.

Смог сделать сэлфи с барнаклами. Стоимость сэлфи – 1,700,000 Cr

Screenshot_0169

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

Записки коммандера. До 14 августа 3302

Все это время я летал. Много летал. На разных типах кораблей, в разные части галактики. Повторюсь, очень много летал. Под конец выходных задача “смотаться на 300 световых лет” занимала минут 15 …

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

Day_14aug_3

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

Robingo. Первый чит, обнаруженный народом. Сейчас забит миссиями в 2-3 миллиона на скрытую перевозку рабов. Минусы: далеко (350+), корабль надо S или M, надо статус friendly с федерацией.

Sothis и Ceos. Точки прокачки отношений с федерацией. Куча миссий по доставке данных туда и обратно. Есть и миссии на 2-3 миллиона по доставке биомусора в обитаемую часть. Минусы: далеко (400+), посредине встречаются цепочки “незаправляющих” звезд, поэтому некоторым будет тяжело.

Fehu. Станция попрошаек. Чего/кого качает, даже смотреть не стал.

Aditi. Станция прокачки отношений с империей. Из плюсов – более близкое расположение (250+), больше обитаемых систем рядом, поэтому качаться интересней. Из минусов: есть “пиратопривлекающие” грузы. Летать на “пустом” грузовике гораздо тяжелее.

Maia. Система для набивания бабла. Прилетел туда, набрал миссий и улетел обратно. Миссии на доставку данных ни о чем. Из плюсов: можно посмотреть на охрененно большой корабль. “Звездный пост” или как-то так. Висит в соседней системе (координаты дадут в мисках) прямо около навигационного бакена.

Побочный плюс: если вы достаточно умны и купили advanced сканер как я, то большинство “кружков” за ништяками приносят дополнительный барыш:

Day_14aug_1

Небольшой приварок, но приятный.

Теперь про корабли.

Day_14aug_4

ASP Explorer. Лучший корабль из тех, на которых летал. После небольшого тюнинга (ссылка, да. там мой фит) способен на всё необходимое. Пустой прыгает на 31 год, полностью загруженный (80т) на 24. В одно лицо способен разобрать любого пирата, который встретится на пути. Обратного пока не встречал. Если лень воевать, то бустерится до 390 и мощи хватает бустериться так долго как надо, попутно выдерживая далекие и поэтому редкие попадания по щитам. Как-то от скуки я таскал за собой пирата минут 15. Но обычно пара бустов, FSD и всё …

Hauler. Маршрутка. Недалеко, мало, но быстро. Качать “миски” очень удобно и приятно. Именно на нем я насобирал на asp.

Type 7. Ужас. Не рулится, не прыгает, цепляется горбом за все вокруг. Из-за низкой скорости меня постоянно стращали “вы закрыли вход на станцию, освобождайте, а то расстреляем”. Вдобавок он большой, поэтому никаких оутпостов. Продал после первого же круга.

Python. Кошмар, ползущий на крыльях ночи. Купил в надежде сделать шаг от asp. Даже на круг не пошел. Основная проблема: FSD только 5го класса. В итоге либо мы крутые, но летаем недалеко (очень недалеко, 11 световых лет на всем А – это предел), либо мы никакие, но даже пустые с трудом дотягиваем до 24х …

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

FSD. Чем круче, тем дальше прыгаем. Чем дальше прыгаем, тем меньше прыжков. Чем меньше прыжков, тем меньше устаем и больше фана.

Trusters. Чем круче, тем лучше рулится. И быстрее летает в обычном космосе. И буст мощнее. И в прицел загнать противника проще.

Power dispenser. Чем круче, тем дольше можно бабахать или бустериться. Полоски на панели, power capacitor, заряжаются именно через него.

Реактор. Обеспечивает энергией все ништяки. Если электричества мало, то вырубается все на этом уровне. Вот прямо так тупо: достаешь пушки, а у тебя вырубается все. Уровни настраиваются на правой панели. Но у меня 100% хватает на все в выпущенном состоянии.

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

Fuel scope. Если вы летаете внутри обитаемого пузыря, абсолютно ненужная штука. Потери времени и денег дикие. Но если вы уходите за пределы живого мира или делаете длинные трипы, то становится очень нужной и максимального уровня. Плюс позволяет показывать разные фиги пиратам. Пример:

Day_14aug_2

Итак, у вас длинный и большой трип. С чем-нибудь очень привлекательным для пиратов. Вы “вываливатесь” в обычный космос около солнца и тут же получаете спам от пирата. Сразу становитесь боком к солнцу и зажимаете “влево” или “вправо” так, что бы не удаляться от солнца. На type7 этого хватает, а на asp приходится еще подрабатывать вертикальной тягой. Тут главное далеко от солнца не удаляться, но и близко не подлетать. Через положенные 4 секунды включается fuel scope и начнет заправлять. Теперь смотрите на компас на предмет “куда дальше”, подрабатывая вниз-вверх так, что бы цель оказалась посредине. Если посмотреть издалека, то очень похоже, как будто “снимаете стружку по кругу”. Как яблоки в рекламе чистят. Как только цель станет “прямо слева” или “прямо справа”, то разворачиваемся прямо на нее. Ждем, пока остынет реактор и запускаем FSD.

В чем цель этих телодвижений? Во-первых, когда корабль боком к солнцу, он медленнее нагревается. Во-вторых, такой танец вокруг солнца не дает пирату пристроиться к вам в хвост. На скорости 0.32-0.33 между ним и вами всегда будет солнце. И наконец, показанное на картинке финальное “па” размещает звезду прямо у вас за спиной. Что опять же препятствует заходу пирата вам в хвост и включению перехвата. В результате получаете двойное удовольствие: и на пирата времени не тратите и заправляетесь.

Что касается уровня fuel scope: для полной заправки 32х тонного бака 5й уровень позволяет сделать один оборот вокруг звезды, а 3й требует минимум два. Быстрее и меньше шансов вскипятиться.

Из абсолютно бесполезных штук в моей практике:

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

– chaff лаунчеры. Выбрасывают блески в надежде сорвать наводку. Красиво и бесполезно.

– heat sink лаунчер. Типа позволяют забрать тепло и отстрелить болванку. Одновременно и остудит корабль и собьет наводку. Ни разу не пригодились.

Из оружия.

Для начинающих: никаких лазеров. Вот это все “пиу-пиу” красиво, но они жрут энергию, которой у вас и так мало и отвлекают внимание, которого у вас в бою катастрофически не хватает. Во все слоты засуньте seeker missile. Немного дороговато, но зато надо один раз удержать около прицела чужака дольше 7 секунд, что бы сработал захват и можете о нем забыть. Максимум три залпа и любой пират испаряется. Один раз потребовалось 4 на толстого и жирного питона. А ракет в первом классе 6 штук, а во втором аж 18.

Не ведитесь на торпеды: они одноразовые и прекрасно сбиваются. А потом вы останетесь с голой жопой.

Для продвинутых: можно пробовать другое оружие. В турельках и прочем. Для asp наиболее выгодной оказалась конфигурация, когда в мощных слотах стоят два beam лазера, а в дохлых – пулеметы. Лазерами снимаем защиту и кипятим, а пулеметы крушат внутренности. Пока самый крутой пират потребовал трех заходов. И то потому что я еще криворук и рукожоп.

Для крутых: я еще не стал им, поэтому советовать не могу.

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

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

И наконец, мое состояние на сегодня:

Day_14aug_5

Записки коммандера. День 15

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

Оказывается, умный я, когда готовился к полетам по галактике, сменил генератор щитов с 5го класса на 3й. Ну или говоря по-простому, просто урезал переносимый урон в 2 раза. Для исследователя пойдет, а для торговца, у которого случаются контракты на 700 тыщ за раз – нет.

Заодно заменил 4 установки для запуска ракет на лазеры и добавил усилителей щита. Результат не заставил себя ждать.

Day14_1

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

Day14_2

Записки коммандера. День 13-14

Летал, зарабатывал деньги, покупал более навороченные модули, снова зарабатывал деньги.

Наблюдал сошедших с ума пилотов, на вылете бьющихся в стену. Запостил баг.

Day13_1

Видел офигенный город на планете.

Day13_2

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

Day13_3

Теперь знаю: дай сделать хотя бы выстрел в твою сторону и штрафа не будет.

И самое обидное, под конец воскресенья был убит пиратами же аж 3 раза. Подряд. Загруженным под завязку ништяками. И если первые два раза все было практически по-честному, мордобой на последних процентах жизни и всё такое, то последний расколошматил меня очень быстро. Величину потерянного можете оценить сами.

Day13_4

Записки коммандера. День 11-12

Решил прошвырнуться по галактике. Продал хаулер, купил asp explorer, набил всякой всячиной. Сделал круг на пару тысяч световых лет.

В результате стал первооткрывателем кучки маленьких планет и заработал без малого миллион.

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

Записки коммандера. Дни 9-10

Девятый день выпал на понедельник, а понедельник даже в космосе считается тяжелым днем. Не летал.

На десятый день решил попробовать себя в деле изучения неизвестного. Выбрал систему, где меня любят, выкинул все из трюмов и полетел. Ну и что, что всего два прыжка? Зато кучка enexplored объектов. Какие-то сканятся с 70 световых секунд, а каким-то надо 20-30.

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

Решил потренироваться пострелять по обломкам кораблей. Нашел USS, только прицелился, как прилетел пират. Опять буквально 3 секунды и меня нет. Причем на этот раз я специально смотрел – щиты были на полную и не пробиты. Обидно, прям хоть на форумы лезь или в техподдержку. Залетел на верфь, поприкидывал, чем меня можно так быстро разобрать. Не нашел.

Утешился перевозкой пары бумок и пошел спать.

Day09_1

Записки коммандера. Дни 6-8

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

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

Во-вторых, поменял корабли. Кобра оказалась … вообще не оказалась. Поэтому соскочил на хаулер, а с него на тип 6.

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

Day07_1

Ну и без сканера обнаружить такое … В общем, нереально

Day07_2

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

Пару раз останавливался на USS.

Day07_3

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

Сканер рулит!

Day07_4

За каждый открытый объект дают по 500-1000 кредов. А так как шастаю я обычно неисследованными тропами, то копеечка падает сама собой … Вот результат небольшого бизнес-трипа по делам.

Day07_5

Считаю, что неплохо, на халяву-то. Заодно получил инвайт от инженерши

Day07_6

Ну чего, говорят они круты. Слетал, посмотрел.

Day07_7

Чего такое meta-alloys? Фиг знает, надо будет поискать. Прямо так в заначке корабля не обнаружилось.

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

Day07_8

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

Поэтому мне нужно было оружие, которое не жрет энергию, умеет само донацеливаться и при этом наносить приличный ущерб. Единственным выходом для меня оказались seeker missile. Урону ровно в 10 раз больше, чем от доступного мне лазера, энергии не жрут практически и умеют летать за кораблем сами. Турели воткнул на сдачу, испытать пока не получилось.

Практика показала, что пока встреченные пираты разваливаются от третьего-четвертого залпа. Четвертый нужен тем, кто покруче и первый залп сбивает ECM. На остальные он не успевает перезарядиться. Окупаемость ракет на пиратах: 50 на 50. Или ракет выпускаешь на 4000 кредов, в получаешь 1200. Или выпускаешь на 2000, а получаешь 12000. Фиг поймешь.

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

Day07_9

Записки коммандера. День 5

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

Но омрачает только одно: я чего-то не понимаю и корабль отказывается прыгать дальше 11 световых лет. Даже со всем выкинутым барахлом вроде пушек и грузовых трюмов. Попытка взять моторчик классом повыше 4Е приводит к сообщению об уменьшении длины прыжка еще больше. В характеристиках пишут про то, что моторчик 4Е везет 130 тонн, а 2А – 60 (или 80 – не помню точно). А у меня корабль 230 минимум.

Чего-то я не понимаю.

Записки коммандера. День 4

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

Day04_1

Продаю все навесное, иду покупать грузовик. Оказывается, я вполне себе платежеспособный клиент. Загружаюсь, лечу, получаю много-много денежек. Клиенты в противоборствующих державах, да еще по пути 3 системы с войной. Это дорого стоит!

Day04_2

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

Day04_3

Да! Та самая культовая кобра, на которой я гонял таргоидов в 86м! Ничего, что не совсем обвешанная, даже вернее сказать, что совсем не обвешанная – это дело наживное. На той станции, где я её купил, просто модулей не было. Ну и денег у меня после покупки двух кораблей не так-то уж и много …

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

Для этого в правой панели находим fire groups и пробелом расставляем пушки в одну, а сканер в другую. Включаем оружие (кнопка U) и затем переключаемся с помощью N между тем, что сейчас надо: сканер или лазеры. Ну а потом “стреляем” сканером. Более того, сканировать можно даже в суперкруизе. Я теперь сразу после прыжка сканером стреляю, пока гипердвигатель перезаряжается. Не смотря на то, что сканер стоковый, уже 19 новых объектов настрелял. Отлечу подальше – сдам, денежку малую подниму. Мелочь, а приятно.

Day04_4

Записки коммандера. День 3

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

Day03_2

Да, я наконец-то нашел актуальные данные о корабле. Как ни странно, но они оказались на правой панели.

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

Day03_0

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

Day03_1

Во-вторых, меня чуть не расстреляли.

Day03_4

Попался какой-то упорный и сильный бот. Снес мне защиту буквально за несколько секунд и начал ковырять корпус. Благодаря крутым моторчикам я успел перезарядиться и смотаться, но опять надо думать, чего прикупить. То ли корабль новый (200к есть на счете, да еще можно где-то на сотню моторчиков продать), то ли защиту покруче.

Буду думать. А пока можно любоваться двойной звездой

Day03_3

Записки коммандера. День 2

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

Отличие пошло сразу. На первом же прыжке меня перехватил бот. Ну сначала покрутило с “rescue vector”, а потом выбросило в обычный космос.

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

Day02_1

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

Улетел.

И так почти каждый прыжок. Ну и что, что в системе война? Я же маленький сайдвиндер, никому ничего не делаю, примусю тут потихоньку …

Один раз меня перехватили, сделали пару выстрелов и прилетели полицейские. Досматривать шоу не стал, помогать тоже. “Ковырялки” у меня слабые, поэтому удовольствия никакого.

Из замеченного и странного: иногда пропадают задания. То есть взял, вылетел, прилетел, а задания нет. Один раз дали задание, прилетаю, а станции нет. Система есть, а станции в ней нет. Тоже странно …

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

Попробовал компьютер для стыковки. Хорошо. Самое главное преимущество: пока корабль ожидает очереди (да, на маленьких, но нужных станциях мест мало, а желающих много), крутит кораблем и так далее – можно пойти сбегать к холодильнику за очередной банкой пива или в туалет. Да и сажает он быстрее, чем я руками. В общем, годная вещь.

Видел и реальных игроков. Два раза. Разошлись бортами.

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

Day02_2

Записки коммандера. День 1

Наконец-то я задушил свою жабу и поставил Elite:Dangerous. Вроде тот же самый автор, те же самые правила, да всё то же самое. Читать гайды, лазить по форумам и прочее принципиально пока не буду. Иначе что за интерес? Тем более для Элиты разлива 86-87 годов.

Итак, я фиг знает кто, фиг знает где. Для начала выберем обучение. Сразу предлагают посмотреть видео – не хочу. Давай постреляем …

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

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

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

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

Пора полетать в реальном мире!

Запускаю игру в режиме “соло”. Это, как я понял, включает “все как в жизни, только игроки тебя не видят”. Ну ок. Пошли шариться по менюшкам. Будем торговать!

У меня свободен (и в наличии) один грузовой отсек. 2 тонны. В кошельке цельная тыща кредов. Это хорошо – раньше сотню давали и крутись как можешь. Покупаю какую-то машинерию и сразу же ищу, куда бы её сплавить.

Обнаруживаю на левом экране галактическую карту и тупым перебором выбираю планету с сельским хозяйством. Тыкаю на первую галочку и вылетаю!

Летят утки .. и два гуся! Старые навыки не дают пропасть и я буквально за пару минут обнаруживаю, что гиперпривод не включается, если из корабля что-то торчит. А торчат у меня посадочные опоры и пушки. Пару минут перебора клавиатуры и выясняется, что опоры убираются кнопочкой L, а пушки – правой кнопкой мышки. Если с опорами понятно, то когда я успел вытащить пушки – не помню. Жамкаем J – получаем фигу. Разгоняемся и снова жамкаю – теперь получилось.

Лечу! Хорошо лечу! И прилетаю прямо в солнце. Ну или звезду. Выруливаю в чистый космос и пытаюсь осмотреться. Старые навыки и знания не дают абсолютно никаких подсказок. Куда лететь – не понятно. Делаю правильный вывод и опять лезу по экранам. Опять же на левом обнаруживаю вкладку “навигация” и там всякие строчки. Выбираю по названию и иконке станцию. Давлю пробел и найденное подсвечивают в качестве цели. Перехожу на основной экран и наблюдаю круговерть звезд и прочих космических объектов. Пока шарился, по-привычке дергал мышкой. А корабль реагировал. Выравниваюсь, нахожу по компасу цель и лечу.

Прилетел. Вернее, пролетел мимо. Скорость большая, а сбрасывается медленно. Развернулся и опять пролетел мимо. Развернулся, сбросил скорость, подкрался. “Безопасный выход готов”. Пока думал, что это значит, опять пролетел мимо. Развернулся, подкрался, “выход готов”. И? Опять пролетел мимо. Отлетел подальше, развернулся и решил убиться от станцию. Прицелился … “аварийный выход”. Облин, так я в гипере все это время летал? Круто.

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

Набаловался, прилетел обратно к станции, выровнялся и полез в шлюз. Тут же выскочило сообщение, что мне предлагают немедленно смыться из занимаемой области, иначе мне будет больно и печально. Хорошо, вылетаю назад и зависаю около станции. Опять тыкаться в менюшках. Достаточно быстро я обнаружил, что вкладки переключаются кнопочками q и e, и там можно выбрать станцию и запросить у нее стыковку. Выбираю, запрашиваю, получаю. Немного волнуясь, залетаю и занимаю выделенное место. Давали 9 минут, справился за 4, вот какой я молодец.

Продаю машинерию и получаю аж 700 кредов прибыли. Заправляюсь на 20 и чувствую, что жить можно. Но скучно. Надо смотреть, как можно денег больше и быстрее заработать. В магазине станции обнаруживаю доску объявлений. Изначально я решил, что доска объявлений – это как новости. Ну там “давайте сбросимся по 10 тыщ на строительство” или “сегодня фракция такая-то объявила этакое”. Оказывается, там есть и задания в духе “мы испытываем бум, надо отвезти эту информацию, получишь денежку и полюсики к репутации”. На плюсики мне пофиг, а вот денег надо.

Беру задание на 12 тысяч кредитов и лечу. Прилетел, сдал, получил. Заправился. Теперь 700 кредитов первой прибыли смотрятся совершенно невыразительно. Беру на 25 тысяч. Лететь далеко, но вроде можно. Что бы не лететь пустым, покупаю чего-то высокотехнологичное.

Прыжок, прилетел, заправился. Пошарился по менюшкам и обнаружил, что с получением корабля дали задание на 10 тысяч. Посмотрел на карту – рядом. Слетал, получил. Задание на 25 тысяч жгет карман. Прыгнул поближе. Звездная система, без станции. Следующая тоже. И судя по названию, следующая тоже. Не долечу – просто горючего не хватит. Прыгаю вбок. Заправляюсь. Думаю.

Иду по менюшкам на предмет “может, задание есть рядом” и обнаруживаю менюшку верфи. А верфь – это такое дело, можно корабль прокачать. Или новый купить.

Хожу, выбираю … либо мне денег не хватает, либо мне это не надо. Думаю. Пока думал, обнаружил в продаже стыковочный компьютер. Я комфорт люблю, поэтому взял. Свободного места больше нет. Задумчиво посмотрел на трюм. Пошел в торговлю, продал содержимое, потеряв тыщу кредов. Вернулся, продал трюм и купил вместо него топливный бак. Заправился. Посмотреть не знаю где, но по ощущениям теперь могу прыгать без дозаправки раз пять. Должно хватить.

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

Наконец, через полчаса прыжков класса “влево-вниз-вбок-хз куда” прилетаю. Высокотехнологичная! Получаю прибыль и сразу же на верфи. Моторчик! Мне нужен моторчик помощнее! На верфях в наличии только один, который одновременно и подходит моему сайдвиндеру и имеет в циферках 0.80 (а 0.80 больше чем 0.60, а значит лучше). Покупаю за 17 тысяч и тут же беру первое попавшееся задание на доставку документов. Пофиг на цену, мне проверить прыгучесть надо.

12! Двенадцать световых лет! А раньше с трудом до 7-8 дотягивал.Ну вроде как можно и 12.2, но я не нашел звезду дальше. Если судить по шкале расхода горючего, то 0.80 – это число едениц горючего, который моторчик может съесть за один прыжок. То есть в идеале я могу прыгнуть 5 раз. По 12 световых лет. Или 60 световых лет на одной заправке. В реальности меньше, ибо для полетов по системе горючее тоже расходуется.

Все, жисть на первый день удалась.

Day01

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

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

Но использовать их у меня не получается: смотреть нечего. То, что предлагают имеющиеся каналы совершенно не удовлетворяет мои вкусы. Телевизор стоящий в спальне гордо имеет на боку какую-то кастрированную 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 видео разных городов с высоты.

Решил написать книгу …

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

Что бы не было скучно, вот вам малюсенький кусочек, можно сказать бета-версия про кварцевые резонаторы и вообще частоты.

Дуэт шариками …

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

Screenshot_2016-01-31-11-17-55

Два шарика на окружности, которые можно вращать по часовой стрелке или против. Примитивные фигуры, мимо которых надо провести шарики. Что может быть проще?

https://youtu.be/8s2M1X7bTWA

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

Берите для iOS и Android, но не говорите потом, что я не предупреждал! 🙂

Игрища с сервером – 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]

Утащил!

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

Игрища с сервером – 2 (openvpn, ssh и freeipa)

Наконец-то можно приступить к самому приятному: выбиванию окон во внешний мир. Или VPN. Ответы на вопросы зачем, почему и куда оставлю за рамками. Мне надо и все тут. Для организации канала буду использовать широко известный openvpn.

Ставим удобности.

yum -y install epel-release mc

Для начала подниму для проверки просто сервер. Без каких-либо излишеств.

yum -y install openvpn easy-rsa
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn
mcedit /etc/openvpn/server.conf

Конфиг после удаления лишнего получился примерно такой

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.100.2.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.100.0.0 255.255.255.0"
;push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 10.100.0.10"
push "dhcp-option DOMAIN local.multik.org"
duplicate-cn
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
verb 3

Полностью по мануалу, без каких-либо отклонений. Значение каждой строчки можно посмотреть в документации.

Теперь ключи. Опять же, не отходя от канонов.

mkdir -p /etc/openvpn/easy-rsa/keys
cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa
mcedit /etc/openvpn/easy-rsa/vars

Тут я поправил строки “по умолчанию”

export KEY_COUNTRY="RU"
export KEY_PROVINCE="RU"
export KEY_CITY="Moscow"
export KEY_ORG="VseMoe"
export KEY_EMAIL="multik@multik.org"
export KEY_OU="Internet"
...
export KEY_NAME="Server"
...
export KEY_CN="vpn.vsemoe.com"

Дальше просто лог команд, везде давим Enter.

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf
cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
cd /etc/openvpn/easy-rsa/keys
cp dh2048.pem ca.crt server.crt server.key /etc/openvpn
cd /etc/openvpn/easy-rsa
./build-key client

Разрешаем форвард

mcedit /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

И стартуем сервер

systemctl enable openvpn@server.service
systemctl start openvpn@server.service

Теперь на хосте надо открыть порт 1194/udp и перебросить его на виртуалку с openvpn

-A INPUT -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT
-A PREROUTING -d 136.243.151.196/32 -i eth0 -p udp --dport 1194 -j DNAT --to-destination 10.100.0.133

И на самой виртуалке открыть тем или иным образом порт

firewall-cmd --add-service=openvpn --permanent
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload

Теперь перетаскиваем на клиента все client* файлы и ca.crt и делаем конфиг (обычный текстовый файл)

client
dev tun
proto udp
remote 136.243.151.196 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca ca.crt
cert client.crt
key client.key

Пробуем соедениться

$ sudo openvpn --config confif.vpn
Wed Jan 27 03:55:22 2016 OpenVPN 2.3.8 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Aug 4 2015
Wed Jan 27 03:55:22 2016 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06
Wed Jan 27 03:55:22 2016 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Wed Jan 27 03:55:22 2016 Socket Buffers: R=[212992->131072] S=[212992->131072]
Wed Jan 27 03:55:22 2016 UDPv4 link local: [undef]
Wed Jan 27 03:55:22 2016 UDPv4 link remote: [AF_INET]136.243.151.196:1194
Wed Jan 27 03:55:22 2016 TLS: Initial packet from [AF_INET]136.243.151.196:1194, sid=3dd59a35 34ce24da
Wed Jan 27 03:55:22 2016 VERIFY OK: depth=1, C=RU, ST=RU, L=Moscow, O=VseMoe, OU=Internet, CN=vpn.vsemoe.com, name=Server, emailAddress=multik@multik.org
Wed Jan 27 03:55:22 2016 VERIFY OK: depth=0, C=RU, ST=RU, L=Moscow, O=VseMoe, OU=Internet, CN=server, name=Server, emailAddress=multik@multik.org
Wed Jan 27 03:55:23 2016 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Jan 27 03:55:23 2016 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Jan 27 03:55:23 2016 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Jan 27 03:55:23 2016 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Jan 27 03:55:23 2016 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Wed Jan 27 03:55:23 2016 [server] Peer Connection Initiated with [AF_INET]136.243.151.196:1194
Wed Jan 27 03:55:25 2016 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Wed Jan 27 03:55:25 2016 PUSH: Received control message: 'PUSH_REPLY,route 10.100.0.0 255.255.255.0,dhcp-option DNS 10.100.0.10,route 10.100.2.1,topology net30,ping 10,ping-restart 120,ifconfig 10.100.2.14 10.100.2.13'
Wed Jan 27 03:55:25 2016 OPTIONS IMPORT: timers and/or timeouts modified
Wed Jan 27 03:55:25 2016 OPTIONS IMPORT: --ifconfig/up options modified
Wed Jan 27 03:55:25 2016 OPTIONS IMPORT: route options modified
Wed Jan 27 03:55:25 2016 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed Jan 27 03:55:25 2016 ROUTE_GATEWAY 172.16.137.2/255.255.255.0 IFACE=eno16777736 HWADDR=00:0c:29:fa:0a:54
Wed Jan 27 03:55:25 2016 TUN/TAP device tun1 opened
Wed Jan 27 03:55:25 2016 TUN/TAP TX queue length set to 100
Wed Jan 27 03:55:25 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Jan 27 03:55:25 2016 /usr/sbin/ip link set dev tun1 up mtu 1500
Wed Jan 27 03:55:25 2016 /usr/sbin/ip addr add dev tun1 local 10.100.2.14 peer 10.100.2.13
Wed Jan 27 03:55:25 2016 /usr/sbin/ip route add 10.100.0.0/24 via 10.100.2.13
Wed Jan 27 03:55:25 2016 /usr/sbin/ip route add 10.100.2.1/32 via 10.100.2.13
Wed Jan 27 03:55:25 2016 Initialization Sequence Completed

Как видно по последней строчке, соединение установилось. Пробуем добраться до любого хоста “внутри” сети.

$ ssh root@10.100.0.10
ssh: connect to host 10.100.0.10 port 22: No route to host

Облом. По простой причине – ничего в сети 10.100.0 не знает про сеть 10.100.2, которую я отдал под VPN. Самое простое решение – включить маскарадинг на выходе

firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

Пробую еще раз

$ ssh root@10.100.0.10
The authenticity of host '10.100.0.10 (10.100.0.10)' can't be established.
ECDSA key fingerprint is fb:c1:72:a2:9a:a1:df:f5:d0:95:09:a4:3b:2e:9d:68.

Сработало. Это хорошо. Теперь немного добавим безопасности путем добавление пре-авторизационного ключа. Опять же, по мануалу

openvpn --genkey --secret ta.key
tls-auth ta.key 0

В принципе, тут можно остановиться. Сервер работает, создаешь по ключу на клиента и вперед. Но мне так не охота. Я хочу сделать так, что бы конфигурационный файл был у всех одинаковый, а пользователи авторизовались по классическому логину и паролю. А логины и пароли брались бы из FreeIPA.

Опять же, вариантов много. Самый распространенный – это использование freeipa как ldap сервера. Мне лично лень. Я решил воспользоваться вариантом, когда freeipa авторизует пользователей в системе (так как это стандартный способ), а openvpn авторизовать уже через пользователей в системе.

Ставим на vpn все необходимое и подключаемся к ипе (подробности в ранних постах).

yum install -y ipa-client
ipa-client-install --mkhomedir

И тут оно обламывается. По простой причине – для vpn.local.multik.org нет адреса в базе. А у машины два локальных интерфейса и какой использовать для чего – непонятно.

Идем в виртуалку с ipa и добавляем

[root@ipa ~]# kinit admin
Password for admin@LOCAL.MULTIK.ORG:
[root@ipa ~]# ipa dnsrecord-add
Record name: vpn
Zone name: local.multik.org
Please choose a type of DNS resource record to be added
The most common types for this type of zone are: A, AAAA

DNS resource record type: A
A IP Address: 10.100.0.133
Record name: vpn
A record: 10.100.0.133

И снова пробуем – теперь все получится.

Теперь небольшой трюк. Что бы не давать по умолчанию доступ до VPN всем, я создам новый “сервис”.

cd /etc/pam.d/
ln -s system-auth openvpn

Теперь Осталось мелочь – создать в ипе HBAC сервис openvpn и установить правила. Создаем сервис, группу для него и соединяем вместе

[root@ipa ~]# ipa hbacsvc-add openvpn
----------------------------
Added HBAC service "openvpn"
----------------------------
Service name: openvpn

[root@ipa ~]# ipa hbacrule-add allow_openvpn
-------------------------------
Added HBAC rule "allow_openvpn"
-------------------------------
Rule name: allow_openvpn
Enabled: TRUE

[root@ipa ~]# ipa hbacrule-add-service allow_openvpn --hbacsvcs=openvpn
Rule name: allow_openvpn
Enabled: TRUE
Services: openvpn
-------------------------
Number of members added 1
-------------------------

Проверяю, что натворил.

[root@ipa ~]# ipa hbacrule-find allow_openvpn
-------------------
1 HBAC rule matched
-------------------
Rule name: allow_openvpn
Enabled: TRUE
Services: openvpn
----------------------------
Number of entries returned 1
----------------------------

Добавляю к правилу пользователя и хост

[root@ipa ~]# ipa hbacrule-add-user allow_openvpn --user=multik
Rule name: allow_openvpn
Enabled: TRUE
Users: multik
Services: openvpn
-------------------------
Number of members added 1
-------------------------

[root@ipa ~]# ipa hbacrule-add-host allow_openvpn --hosts=vpn.local.multik.org
Rule name: allow_openvpn
Enabled: TRUE
Users: multik
Hosts: vpn.local.multik.org
Services: openvpn
-------------------------
Number of members added 1
-------------------------

Проверяю, что сработает на меня и на админа (который вроде как и не должен иметь доступ)

[root@ipa ~]# ipa hbactest --user=admin --host=vpn.local.multik.org --service=openvpn
--------------------
Access granted: True
--------------------
Matched rules: allow_all
Not matched rules: allow_openvpn

[root@ipa ~]# ipa hbactest --user=multik --host=vpn.local.multik.org --service=openvpn
--------------------
Access granted: True
--------------------
Matched rules: allow_all
Matched rules: allow_openvpn

Как вижу, в системе есть правило по умолчанию, которое дает доступ всем до всего. Но если его просто выкусить, то я тупо лишусь доступа И по ssh тоже. Поэтому надо сделать аналогичное для ssh

[root@ipa pam.d]# cd
[root@ipa ~]# ipa hbacsvc-add sshd
ipa: ERROR: HBAC service with name "sshd" already exists

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

[root@ipa ~]# ipa hbacrule-add allow_sshd
----------------------------
Added HBAC rule "allow_sshd"
----------------------------
Rule name: allow_sshd
Enabled: TRUE
[root@ipa ~]# ipa hbacrule-add-service allow_sshd --hbacsvcs=sshd
Rule name: allow_sshd
Enabled: TRUE
Services: sshd
-------------------------
Number of members added 1
-------------------------
[root@ipa ~]#

ipa hbacrule-add-user allow_sshd --user=multik
ipa hbacrule-add-host allow_sshd --hosts=vpn.local.multik.org

Проверяю

[root@ipa ~]# ipa hbactest --user=admin --host=vpn.local.multik.org --service=sshd
--------------------
Access granted: True
--------------------
Matched rules: allow_all
Not matched rules: allow_openvpn
Not matched rules: allow_sshd
[root@ipa ~]# ipa hbactest --user=multik --host=vpn.local.multik.org --service=sshd
--------------------
Access granted: True
--------------------
Matched rules: allow_all
Matched rules: allow_sshd
Not matched rules: allow_openvpn

Все на месте. Выкусываю нафиг
[root@ipa ~]# ipa hbacrule-disable allow_all
------------------------------
Disabled HBAC rule "allow_all"
------------------------------

Согласно выводу выше, я теперь не могу залогиниться на хост vsemoe-com пользователем multik.

[root@ipa ~]# ssh multik@vsemoe-com
multik@vsemoe-com's password:
Connection closed by UNKNOWN

Не соврала система. “Не пущаит”. Проверяю почему

[root@ipa ~]# ipa hbactest --user=multik --host=vsemoe-com.local.multik.org --service=sshd
---------------------
Access granted: False
---------------------
Not matched rules: allow_openvpn
Not matched rules: allow_sshd

Добавляю хост, как разрешенный к коннекту на него по ssh

[root@ipa ~]# ipa hbacrule-add-host allow_sshd --hosts=vsemoe-com.local.multik.org
Rule name: allow_sshd
Enabled: TRUE
Users: multik
Hosts: vpn.local.multik.org, vsemoe-com.local.multik.org
Services: sshd
-------------------------
Number of members added 1
-------------------------

Будет пускать?

[root@ipa ~]# ipa hbactest --user=multik --host=vsemoe-com.local.multik.org --service=sshd
--------------------
Access granted: True
--------------------
Matched rules: allow_sshd
Not matched rules: allow_openvpn

Должно. Проверяю

[root@ipa ~]# ssh multik@vsemoe-com
multik@vsemoe-com's password:
Last failed login: Thu Jan 28 12:53:43 MSK 2016 from 2a01:4f8:171:1a43:5054:ff:fea4:8c6 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Jan 25 16:51:46 2016 from 10.100.0.254

Как говорится, работает. Теперь последняя проверка: пустит ли пользователя multik на хосте vpn для сервиса openvpn?

[root@ipa ~]# ipa hbactest --user=multik --host=vpn.local.multik.org --service=openvpn
--------------------
Access granted: True
--------------------
Matched rules: allow_openvpn
Not matched rules: allow_sshd

Для vpn пустит, а по ssh не пустит. Теперь остались сущие мелочи. Добавялем в конфиг сервера

plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

а в конфиг клиента

auth-user-pass

и пробуем

$ sudo openvpn --config confif.vpn
Thu Jan 28 04:57:42 2016 OpenVPN 2.3.8 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Aug 4 2015
Thu Jan 28 04:57:42 2016 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06
Enter Auth Username: ******
Enter Auth Password: ***********

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

Сделаем обычный текстовый файлик из 2х строчек: логина и пароля. И укажем его имя сразу после auth-user-pass. Если все сделано правильно, то openvpn ничего не будет спрашивать, а просто возьмет и прицепится.

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

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

key-direction 1

<ca>
—–BEGIN CERTIFICATE—–
ca.crt
—–END CERTIFICATE—–
</ca>

<cert>
—–BEGIN CERTIFICATE—–
client.crt
—–END CERTIFICATE—–
</cert>

<key>
—–BEGIN PRIVATE KEY—–
client.key
—–END PRIVATE KEY—–
</key>

<tls-auth>
—–BEGIN OpenVPN Static key V1—–
ta.key
—–END OpenVPN Static key V1—–
</tls-auth>

Внутрь просто копируем содержимое соответствующих файлов. Любым текстовым редактором. Ну и убираем строки

ca ca.crt
cert client.crt
key client.key

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

Всё. Я получил в свое распоряжение VPN сервер. Управляемый хоть из консоли, хоть из веб-морды (как? я не писал? сходите браузером на адрес ipa сервера). Ну вообще-то не только VPN сервер, но в этой рассказке я писал только про VPN.

Удачи!

Игрища с сервером – 1

Или даешь централизацию! Сервер установлен, некоторые виртуалки перенесены, а некоторые удалены. Надо облегчать себе жизнь.

Уже сейчас на хосте размещено с десяток виртуалок. И уже сейчас всеми ими рулить скучно. Зашел на одну, обновил, сходил на другую, обновил. А пароли поменять? А дать доступ очередному фрилансеру и потом не забыть его отобрать? В общем, тяжело. Было.

Первым делом надо поставить единую систему авторизации. Что бы все пароли были в одном месте и думать не надо было. Так как основной системой везде у меня CentOS, то самым логичным кандидатом на эту тему становится FreeIPA.

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

yum -y install ipa-server bind bind-dyndb-ldap ipa-server-dns
ipa-server-install --setup-dns --mkhomedir

Если что-то где-то накосячили (а вы в первый раз обязательно накосячите), то всегда можно убрать все в первоначальное состояние.
ipa-server-install --uninstall

В процессе установки у меня спросили два пароля – самого главного и админа. Плюс отказался от dns-forwarders (ибо пока в них смысла нет, но если надо, то потом можно поставить), а дальше просто соглашался со всем. Как увидите бегущие пунктики – значит вы прорвались и скоро получите настроенную систему.

Итак, оно вроде сказало, что готово. Чего делаем? Первым делом – сделаем, что бы у пользователей по умолчанию был шелл /bin/bash, а не /bin/sh.

kinit admin
ipa config-mod --defaultshell=/bin/bash

И добавлю себя любимого

# ipa user-add
First name: Viacheslav
Last name: Kaloshin
User login [vkaloshin]: multik
-------------------
Added user "multik"
-------------------
User login: multik
First name: Viacheslav
Last name: Kaloshin
Full name: Viacheslav Kaloshin
Display name: Viacheslav Kaloshin
Initials: VK
Home directory: /home/multik
GECOS: Viacheslav Kaloshin
Login shell: /bin/bash
Kerberos principal: multik@LOCAL.MULTIK.ORG
Email address: multik@local.multik.org
UID: 1624000001
GID: 1624000001
Password: False
Member of groups: ipausers
Kerberos keys available: False

и поменяем пароль мне (в принципе можно было это сделать и сразу, но так интересней)

# ipa user-mod multik --password
Password:
Enter Password again to verify:
----------------------
Modified user "multik"
----------------------
User login: multik
First name: Viacheslav
Last name: Kaloshin
Home directory: /home/multik
Login shell: /bin/bash
Email address: multik@local.multik.org
UID: 1624000001
GID: 1624000001
Account disabled: False
Password: True
Member of groups: ipausers
Kerberos keys available: True

Теперь в принципе можно проверить, залогинившись на хост свежесозданным пользователем

# ssh multik@10.100.0.10
multik@10.100.0.10's password:
Password expired. Change your password now.
Creating home directory for multik.
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user multik.
Current Password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Connection to 10.100.0.10 closed.

Как видим, система принудительно заставляет пользователя сменить пароль. Это хорошо.

В принципе, можно все необходимое делать из консоли, а можно и с веб-интерфейса – просто браузером сходите и все сами увидите.

Но это только начало. Нам надо к этой системе подключить остальные виртуалки. Для этого надо сделать две простые вещи: настроить DNS и поставить клиента ipa. Пока для проверки, я это сделаю только на одном хосте.

на виртуалке:

# cat /etc/resolv.conf
search local.multik.org
nameserver 10.100.0.10
nameserver 10.100.0.254

на ipa надо открыть днс:

firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload

и опять на виртуалке

# ping ipa -c 2
PING ipa.local.multik.org (10.100.0.10) 56(84) bytes of data.
64 bytes from ipa.local.multik.org (10.100.0.10): icmp_seq=1 ttl=64 time=0.344 ms
64 bytes from ipa.local.multik.org (10.100.0.10): icmp_seq=2 ttl=64 time=0.461 ms

--- ipa.local.multik.org ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.344/0.402/0.461/0.061 ms

Отлично. Теперь подключим виртуалку

На ipa

firewall-cmd --permanent --add-service={ntp,http,https,ldap,ldaps,kerberos,kpasswd}
firewall-cmd --reload

на виртуалке

yum install -y ipa-client
# ipa-client-install --mkhomedir
Discovery was successful!
Client hostname: vsemoe-com.local.multik.org
Realm: LOCAL.MULTIK.ORG
DNS Domain: local.multik.org
IPA Server: ipa.local.multik.org
BaseDN: dc=local,dc=multik,dc=org

Continue to configure the system with these values? [no]: yes
Synchronizing time with KDC...
Attempting to sync time using ntpd. Will timeout after 15 seconds
User authorized to enroll computers: admin
Password for admin@LOCAL.MULTIK.ORG:
Successfully retrieved CA cert
Subject: CN=Certificate Authority,O=LOCAL.MULTIK.ORG
Issuer: CN=Certificate Authority,O=LOCAL.MULTIK.ORG
Valid From: Mon Jan 25 12:03:20 2016 UTC
Valid Until: Fri Jan 25 12:03:20 2036 UTC

Enrolled in IPA realm LOCAL.MULTIK.ORG
Created /etc/ipa/default.conf
New SSSD config will be created
Configured sudoers in /etc/nsswitch.conf
Configured /etc/sssd/sssd.conf
Configured /etc/krb5.conf for IPA realm LOCAL.MULTIK.ORG
trying https://ipa.local.multik.org/ipa/json
Forwarding 'ping' to json server 'https://ipa.local.multik.org/ipa/json'
Forwarding 'ca_is_enabled' to json server 'https://ipa.local.multik.org/ipa/json'
Systemwide CA database updated.
Added CA certificates to the default NSS database.
Hostname (vsemoe-com.local.multik.org) does not have A/AAAA record.
Missing reverse record(s) for address(es): 10.100.0.178, 2a01:4f8:171:1a43:5054:ff:fe51:f70e.
Adding SSH public key from /etc/ssh/ssh_host_rsa_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ecdsa_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub
Forwarding 'host_mod' to json server 'https://ipa.local.multik.org/ipa/json'
SSSD enabled
Configured /etc/openldap/ldap.conf
NTP enabled
Configured /etc/ssh/ssh_config
Configured /etc/ssh/sshd_config
Configuring local.multik.org as NIS domain.
Client configuration complete.

При этом процессе, сразу создадутся и прямые записи в днс. Почему и как создавать сразу и обратные – я не разбирался.

[root@ipa ~]# host vsemoe-com
vsemoe-com.local.multik.org has address 10.100.0.178
vsemoe-com.local.multik.org has IPv6 address 2a01:4f8:171:1a43:5054:ff:fe51:f70e

Проверяю, как оно работает

[root@tower ~]# ssh multik@10.100.0.178
multik@10.100.0.178's password:
Creating home directory for multik.
[multik@vsemoe-com ~]$ whoami
multik
[multik@vsemoe-com ~]$ id
uid=1624000001(multik) gid=1624000001(multik) groups=1624000001(multik) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

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