День добрий, п'ятниця ясна, бравий молодець іль дівиця красна!

Можеш мені вірити, можеш мені не вірити, але почався цей розповідь з пари весточек на мою електронну пошту і ось такий ось картини, краси неписаної:



Це 500 бравих молодців онлайн (за депеші від гугла) на движку заморському, wordpress іменованому, на сервері Intel Xeon E3 1245v2 (soyoustart, E3-SSD-3). До полотна була прикладена рукописъ, допомогти в оптимізації цього господарства.

Читати далі →

Впровадження Docker для невеликого проекту Production, частина 3

image

У попередніх частинах ми свамі підготували сервер до використання контейнерів:
Частина 1. Установка CoreOS
Частина 2. Базове налаштування і налаштування безпеки SSH

У цій частині ми навчимося працювати з контейнерами і розгортати стек програм за лічені секунди. Але спочатку я б хотів зробити невеликий відступ на що надійшли коментарі і зауваження.
Читати далі →

Продуктивність Bitrix Старт на Proxmox і Virtuozzo 7 & Virtuozzo Storage


Тестування продуктивності Bitrix Старт на двох принципово різних платформах. Заміряти будемо за допомогою вбудованої панелі продуктивності Bitrix.

C однієї сторони, безкоштовна версія Proxmox 4.4, LXC контейнери з використанням файлової системи ZFS на SSD-дисках.

З іншого боку, ліцензійна Virtuozzo 7 CT + Virtuozzo Storage. У цьому варіанті ми використовуємо звичайні SATA диски + SSD для кеша запису і читання.

Ми враховуємо, що Virtuozzo 7 є комерційною системою, що вимагає обов'язкового ліцензування, а Proxmox 4 можна використовувати безкоштовно, але без технічної підтримки.

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

Читати далі →

Календарні функції в MySQL і MariaDB

Як показує практика, безліч систем з використанням календарів зазвичай будується у вигляді статичних таблиць, в яких перераховані дати і їх відповідність робочим, вихідним, святковим дням. Зазвичай проблеми починаються коли система працює без втручання програмістів досить довго і заповнений календар просто закінчується. Для чергового проекту я вирішив трохи оптимізувати дану ситуацію і написав календар, який створюється або перераховується автоматично, наприклад за вбудованим таймером.
Читати далі →

Security Week 44: zero-day в Windows, вразливість в ботнеті Mirai, серйозні діри в MySQL

У нас чергова тиждень патчів з нюансами. Почнемо з черговою новини про ботнет Mirai, що використовувався для щонайменше двох масштабних DDoS-атак. Завдяки витоку исходников ця здавалося б одноразова історія перетворюється в масштабний серіал з сіквелом і пріквелами. Цього тижня з'явився ще і спін-офф: дослідники з Invincea Labs відкопали в атакуючому коді Mirai три уразливості (докладно этой новини або в оригінальному дослідження).

Сама серйозна вразливість призводить до переповнення буфера в коді Mirai. Проблема полягає в некоректній обробці заголовка HTTP Location, який може бути присутнім у відповіді атакується сервера. Код відповідає за видалення префікса http:// з отриманої рядка. Зроблено це дуже просто: беремо довжину рядка і віднімаємо з неї кількість знаків префікса (сім штук). Якщо підсунути у відповіді дуже короткий заголовок Location (з п'яти символів), то у нас вийде від'ємне число (5-7 = -2), що і призводить до переповнення буфера і збою.

Важливий момент: збій відбувається в процесі, що виконує атаку. Тобто можна таким чином припинити атаку з зараженого пристрою, але не вимкнути його з ботнету. Загалом, виходить якась дуже знайома, але перевернута ситуація. Якщо б мова йшла про легітимною програмі, ми б говорили про «критичну вразливість, яка може бути легко эксплуатирована зловмисником за допомогою спеціально підготовленого відповіді на http-запит» чи якось так. Терміново патчити! А тут? По ідеї, навпаки, з'являється можливість ефективно гасити атаки. Але виникає питання морально-етичного плану: а чи не є ця процедура «зломом у відповідь на злом»?

Читати далі →

Піднімаємо Owncloud з нуля з динамічним IP і let's Encrypt. Тисяча слонів!*



Давно хотів написати цілісний туторіал по підняттю Owncloud в умовах домашнього сервера або невеликої компанії до 500 користувачів. Owncloud — це чудовий open-source проект, який дозволяє на власній інфраструктурі підняти свій варіант сервера синхронізації. По можливостям дуже схожий на Dropbox, а в чомусь і перевершує його. Величезний плюс — відсутність обмежень за обсягами зберігання, повний контроль над сервером. Мінуси теж очевидні: вам самим доведеться стежити за всім цим неподобством і турбуватися про надійність сервера, валяющегося на антресолях або в шафі.

Зовсім недавно мені підвернулася завдання з розгортання Owncloud в домашньо-бойових умовах. Я чесно відпрацював свої два літри кошерного російського імперського стаута і вирішив поділитися своїм досвідом, зібравши все воєдино. Отже, сьогодні ми розглянемо:
  1. Розгортання актуального LEMP-stack
  2. HTTPS. Let's Encrypt для Nginx з автоматичним оновленням сертифіката
  3. Конфігурування Nginx для Owncloud
  4. Кешування php-apcu
  5. Підключення зовнішнього основного сховища по NFS

Читати далі →

MariaDB на Google Summer of Code: Підсумки GSoC16

Дещо запізнілий звіт про MariaDB, наші проекти на останньому GSoC, наших студентів, королів і капусту.

Минулий 2015 — й- GSoC у нас вийшов дуже невдалий. Всього було вісім студентів, але багато провалилися ще в середині літа (на midterm evaluation), причому троє були з одного університету в Камеруні (і явно з одного курсу), з прекрасними заявками, але вони дружно не зробили нічого, від слова «зовсім», ну, може одну сходинку коментаря підправили за півтора місяці. А після провалу на midterm вони намагалися оскаржити наше рішення в Google, і навіть прислали нам лист з туманними погрозами. Мовляв, недобре стільки студентів провалювати, імідж собі псувати, в наступному році Google місць не дасть.

Але Google їх не послухався і дав. І цей рік, напевно за контрастом, вийшов на рідкість вдалий.

Читати далі →

Security Week 37: патчі Windows стануть кумулятивнее, Google проти HTTP уразливість в MySQL

З жовтня Microsoft змінює політику доставки відновлень для ряду операційних систем (новость пост на Technet). З метою спрощення процесу оновлення (і, ймовірно, за численними заявками трудящих) Windows 7 і 8.1, а також Windows Server 2008 і 2012 будуть оновлюватися одним великим патчем раз в місяць. Переваги такого підходу очевидні: досить подивитися на дату останнього оновлення, щоб зрозуміти актуальність встановлених патчів.

Очевидні і недоліки: можливість установки патчів за вибором більше не буде, все буде завантажуватися і ставитися одним шматком. Якщо якийсь патч виявляється несумісним з установленим або певними настройками системи — можна буде відмовитися тільки від всього щомісячного апдейта відразу. Саме з установкою за вибором Microsoft і планує боротися: адже по суті такий підхід призводить до фрагментації, замість однієї версії Windows доводиться мати справу мало не з десятком, що ускладнює і підтримку, і тестування.

Втім, залишається одна лазівка: кумулятивний патч включає в себе і оновлення безпеки, і оновлення, спрямовані на підвищення надійності роботи. Можна вибрати і встановлювати тільки security-фікси і більше нічого, але ця опція розрахована на клієнтів з числа великих компаній. Нова політика може вийти боком при використанні спеціалізованого софту з жорсткими вимогами щодо сумісності. Прикладів, коли вихід патча ламав сумісність чимало: можна згадати проблеми з софтом від Citrix після апдейта Windows 10, або скажімо поломку системи конфігурації через Powershell (ось тут цікавий момент — за посиланням ліва рука Microsoft скаржиться на баги у правій).

Читати далі →

NGINX як балансувальник навантаження для MySQL або MariaDB Galera Cluster

Дана стаття є перекладом оригінальної статьи з сайту Severalnines.

Nginx добре відомий усім за свої розширені можливості і ефективність в якості проксі і/або балансувальника веб-додатків з низьким споживанням пам'яті. Як правило, nginx використовується на першій лінії оборони" веб додатків, щоб розподіляти навантаження на сервера бек-ендом, періодично перевіряючи їх працездатність. Дана технологія досить популярна для додатків, яким потрібна підвищена відмовостійкість.



Читати далі →

Будуємо своє власне надійне хмару на базі OpenNebula з Ceph, MariaDB Galera Cluster і OpenvSwitch



На цей раз я б хотів розповісти, як налаштувати цей сабж, в часності кожен окремий компонент, що б у підсумку отримати своє власне, розширюване, отказоустойчеавое хмару на базі OpenNebula. У даній статті я розгляну наступні моменти:

Теми самі по собі дуже цікаві, так що навіть якщо вас не цікавить кінцева мета, але цікавить налаштування якого-небудь окремого компонента. Ласкаво прошу під кат.


Читати далі →