Загартування MODX Revolution (переклад)
Огляд, або Навіщо я це читаю
Загартування будь-якого веб-додатки (не виключаючи MODX Revolution) має на увазі уважний аудит всіх компонентів сайту, включаючи сервер, всі його сервіси, сам додаток. Не роби помилку - ти на війні, товаришу! Якщо тобі ще не страшно, значить, ти свідомо закриваєш на це очі. Сам факт, що твій сайт доступний онлайн, гарантовано робить тебе об'єктом хакерської атаки. Мотиви можуть бути різні, але слабка ланка обов'язково будуть шукати, знайдуть і використовують.
Захист - тема об'ємна, так що мета цієї сторінки - допомогти тобі виявити найбільш ймовірні вектори атаки на твій сайт і перекрити їх.
Все, крім самого MODX
Питання захисту сайту включає в себе багато аспектів, які не мають безпосереднього відношення до MODX. Справедливості заради ми їх згадаємо, однак основна мета статті - саме прокачування MODX. Просто переконайся, що приділив увагу безпеці всієї середовища. Далі - по пунктам:
з'єднання
По можливості не використовуй для адміністрування сайту Wi-fi - тільки дротове з'єднання. І вже точно ніколи не довіряй громадським вай-фай точок, які використовують щось менше, ніж WPA2 -шифрування. Надто вже легко перехоплювати пакети, що передаються через роутер, так що навіть з самими скромними хакерськими навичками не важко прочитати твої логіни і паролі, передача яких прямо-таки німбом світиться навколо кофешопи.
Логіни і паролі
Вибирай довгі рандомний паролі і регулярно їх міняй (від перекладача: непоганий генератор паролів тут). Довгі паролі, як правило, математично складніше коротких - навіть тих, в яких використовуються спеціальні символи. Засолка пароля легко запам'ятовується фразою для збільшення його довжини є непоганим захистом від брут-форсу (від перекладача: атаки перебором паролів, хто не знає). Отже, повторимо: ти ЗОБОВ'ЯЗАНИЙ надійно зберігати свій пароль, бажано в зашифрованому вигляді. Набагато краще записати пароль в паперовий блокнот і заховати у себе в столі, ніж зберегти його в текстовому файлі у себе в комп'ютері.
І нарешті, вкрай важливе нагадування: ніколи не використовуй один пароль двічі! Часто хакерські атаки бувають успішними тільки тому, що якийсь один сервіс скомпрометований і пароль дешифрований, а ледар або пофигист розробник використовує той же пароль на інших сайтах і сервісах. НЕ ТРЕБА ТАК.
Дотримуйся чистоту і порядок
Видаляй з сайту все, що не використовуєш. Всі непотрібні картинки, js-файли і т. Д. Особливо шкідливі якісь налагоджувальні php-скрипти або, не дай Боже, zip-архіви з резервних копій, забуті в корені сайту. Вважай свій проект повітряною кулею - якщо щось не потрібно, кидай це за борт до того, як куля впаде або загориться. Якщо не використовуєш якісь плагіни, сніпети або шаблони - видали їх файли. Те, що не підключено, не обов'язково можна використовувати проти тебе.
Резервні копії
Одне з найважливіших, що ти можеш зробити для свого сайту, - це настройка регулярне резервного копіювання поза публічною директорії. Ніколи немає гарантії, що тебе не зламають - так нехай у тебе буде свіжий бекап, якщо і коли це трапиться.
Багато зломи пов'язані зі старою як світ хитрістю - хтось дзвонить або пише тобі і під надуманими приводами просить передати йому інформацію. Не будь простачка. Це ТОЧНО твій клієнт просить надіслати йому втрачений пароль? Або хтось вліз в його пошту? Почитай про Кевіна Митника - чувак отримав вихідний код багатьох ВЕЛИКИХ проектів, тупо переконливо зателефонувавши за потрібне людям.
Тепер сховаємо Modx
Зауваж, що це тільки невелику ділянку того, що потрібно загартувати. Modx - лише один з аспектів середовища розробки, тому не треба геройствовать, нехтуючи попереднім розділом статті.
Перепризначення системних папок
На відміну від Evo, Revolution дозволяє без особливих труднощів змінювати назви системних папок і навіть прибрати папку core за межі кореневого web-каталогу. Зверни увагу, що тільки папка / core може (і повинна) бути винесена за корінь, так як інші папки повинні бути доступні з інтернету. Перейменування директорій критично важливо, якщо хочеш уникнути визначення системи управління сайту хакер-ботами по так званим «списками швидкого набору».
Advanced-дистрибутив Modx дозволяє вказати назви і розташування папок ще в процесі установки, але на деяких хостингах ця збірка не встановлюється.
Перед тим, як щось міняти, обов'язково зроби бекап сайту і бази даних!
- core / config / config.inc.php (змінна $ modx_core_path)
- /config.core.php (в корені сайту)
- /connectors/config.core.php
- /manager/config.core.php
- Таблиця modx_workspaces в базі даних сайту. Правильніше за все - перезапустити установку сайту, як при оновленні або перенесення, щоб переконатися, що все працює правильно.
connectors
Так само, як і з адмінкой, перейменують папку в щось незрозуміле і подредактіруйте core / config / config.inc.php:
Знову ж таки, як і адмінку, цю папку можна розташувати на іншому домені.
І що тепер з цим усім робити?
Зміна сторінки входу
В ідеалі непогано було б переверстати сторінку входу так, щоб не було очевидно, що це MODX. Хоча б прибрати кричущі про це логотип і копірайт. Як працювати з темами оформлення адмінки, читай тут.
Зміна префіксів таблиць бази даних
Найкраще це робити при першій установці, але ніколи не пізно. Відмовитися від дефолтного modx_ на користь кастомними префікса корисно, оскільки це ускладнить роботу хакеру, який якось здобув можливість робити SQL-ін'єкції в твою базу.
Не використовуй ім'я admin
Посильте пропускний режим
Настрій сторінку 404
Наполягаю на SFTP
Головна заповідь цього розділу: «НІКОЛИ НЕ ВИКОРИСТОВУЙ FTP. »Якщо твій сервер не підтримує SFTP, знайди інший хостинг. Навіть загальні сервера в більшості своїй мають загальні сертифікати для безпечного доступу.
Установи SSL-сертифікат для адмінки
Передавати логіни і паролі в нешифрованому вигляді нерозумно - будь-який початківець хакер може їх перехопити. Якщо безпеку в пріоритеті, доступ до адмінки MODX завжди повинен здійснюватися по захищеному протоколу https.
Використання загального сертифіката
Використання самозаверенного сертифіката
Установка довіреної сертифікату
Якщо браузерні попередження для тебе або твого клієнта неприйнятні, тоді доведеться платити. Ціни на сертифікати різняться просто до абсурду. а практичну різницю важко помітити, так що не купуй перший-ліпший - пошукай вигідну пропозицію. Ось кілька посилань для старту:- Thawte
- EV
- Verisign
- Positive SSL
- GeoTrust
- Comodo
Сам ти генеріруешь .crt-файл, або купуєш його, - так чи інакше, мрія збувається - твоє з'єднання зашифровано. Тепер твій сайт можна відкрити по захищеному протоколу. Залишилося зробити це обов'язковою для адмінки.
Примусове SSL-з'єднання для адмінки
Моніторинг сайту і сервера
Одного разу прокачавши систему безпеки свого сайту і сервера, не варто забувати про їх регулярному моніторингу. Існують деякі безкоштовні служби на цю тему. Наприклад, вони можуть відслідковувати зміни певних файлів і повідомляти про них. Адже, якщо, скажімо, раптово на твоєму сайті був відредагований файл index.php, швидше за все це означає, що це зробив хтось сторонній і недобрий.
Відмінно! Величезне спасибі за переклад, буквально минулого місяця робив всі операції по англомовної інструкції, то ще мука була.
Тепер виникло нове питання. Як оновити «загартовану» установку modx. Ось я поміняв всі шляхи, обізвав ассетс і менеджер іншими іменами, виніс core за корінь сайту в public_html і тут побачив, що вийшла версія modx 2.4.3. Як його тепер правильно оновити з усіма цими новими шляхами?
Вибрав оновлення системи без змін, все пройшло успішно. Були невеликі проблеми на сайті, почистив папку cache всередині core і все стало відмінно. Очевидно, робити це потрібно перед оновленням системи))
Потім довелося все зайві папки на хостингу видаляти вручну. Тепер я щасливий володар modx 2.4.3 pl
Сподіваюся, якщо щось зроблено не так, фахівці підправлять
Теж, до речі, думав про те, як оновлювати потім з перейменованими папками)
Що то у мене не сходиться ось ця твоя фраза:
потім переніс вміст всіх перейменованих папок до відповідних По тексту виходить ти переніс вміст зі своїх перейменованих папок в оригінальні нові викачані. А за описом далі навпаки, з нових викачаних в свої перейменовані.
assets -> new_assets, connectors -> new_connectors і т.д Як в результаті правильно робити те?
Вміст папок нового дистрибутива в перейменовані папки.
assets -> new_assets, connectors -> new_connectors і т.д. Тобто нове вміст в старі (перейменовані) папки.
І ще раз уточню, я далеко не спец в розробках і всіх цих серверних справах, сайт поки швидше тестовий, ніж робочий, тому ні чим особливо не ризикував. Не забудь перед оновленням бекап зробити, а то хіба мало
А ось на головній панелі MODX Revo 2.43 є таке повідомлення:
В налаштуваннях системи присутні помилки:
Каталог ядра у відкритому доступі
MODX виявив, що ваш основний каталог (частково) доступний для громадськості. Це не рекомендується з міркувань безпеки. Якщо ваша установка MODX виконується на веб-сервер Apache, вам слід принаймні налаштувати файл .htaccess всередині каталогу з файлами ядра: /home/r/youruser/mysite.ru/public_html/core/. Це можна легко зробити, перейменувавши вже наявний там файл ht.access в .htaccess.
Файл перейменував, але повідомлення залишилося.
Як налаштувати .htaccess і не переносячи ядро за межі кореневого web-каталогу заховати core з відкритого доступу?
Ось вміст файлу /home/r/youruser/mysite.ru/public_html/core/.htaccess:
по-перше, другу і п'яту сходинки можеш сміливо видалити. А по-друге, якщо на хостингу статичні файли віддаються через nginx, то помилка нікуди не дінеться, т. К. Nginx працює повз htaccess. Перевір файлик changelog.txt, якщо відправляє на 403 або 404, значить все норм, забий на повідомлення.
Спасибі за відповідь!
Другу і п'яту сходинки видалив, однак файл changelog.txt продовжує відкриватися ...
Люди добрі допоможіть будь ласка - що мається на увазі під - «відредагувати конфіги» ??
Як саме це зробити? Як я розумію потрібно поміняти шляху, але як правильно це зробити?
Особливо мене інетересует - «Таблиця modx_workspaces в базі даних сайту.»
Бо я поміняв шляху, але мабуть неправильно адже тепер розділ - / manager / не працює
Видає - HTTP ERROR 500 сторінка не працює
«Коли папка перенесена, потрібно відредагувати конфіги:
core / config / config.inc.php (змінна $ modx_core_path)
/config.core.php (в корені сайту)
/connectors/config.core.php
/manager/config.core.php
Таблиця modx_workspaces в базі даних сайту. »
Це відноситься до перенесення папки core. Краще взагалі її не чіпай, якщо виникають проблеми з редагуванням файлів.