Захищений LAMP-сервер для виробничого використання


10

Яка процедура забезпечення Linux, Apache, MySQL, PHP Server (або навіть Perl) для виробничого використання?

Крім встановлення пароля MySQL та кореневого пароля для Linux, які інші (можливо, не настільки очевидні) кроки слід зробити?

Крім того, які кроки я можу зробити, якщо я збираюся бути додатковим параноїком, це, як правило, не потрібно?

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


Загартовування Apache на веб-сайті сестри.
Marcin

Відповіді:


13

Ці рекомендації не входять у верхню частину моєї голови і не мають на меті бути всебічними.

Перевірте Bastille, це серія сценаріїв, яка реалізує кращі практики в Linux.

Не надсилайте дані автентифікації через протоколи простого тексту. Наприклад, відключити FTP. Якщо ви надсилаєте дані автентифікації через Apache, використовуйте SSL.

Вимкніть та видаліть зайве програмне забезпечення, включаючи інтерфейс GUI.

Перевірте будь-які файли із встановленим бітом SUID та видаліть. (Це суттєво обмежить некорінні здібності. Розумійте наслідки для кожної окремої зміни.)

Перевірте загальнодоступні каталоги, що записуються, і видаліть біт, що можна записати. (Залиште / tmp у спокої.)

Уникайте використання будь-якого демона як кореня.

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

Уникнення додавання користувачів до системи - один з найкращих підходів. Багатокористувацькі системи потребують більшої уваги до деталей.

Забезпечення стандартів паролів. Наприклад: мінімум 10 символів, не буквено-цифрові символи, використовуючи букви та цифри. Це може зробити більш жорстоким форсування в разі компромісу файлів паролів. Забезпечте це за допомогою системи.

Блокуйте користувачів після 5 невдалих спроб аутентифікації з мінімальним 10-хвилинним блокуванням. Підтримуйте історію паролів, щоб користувачі не могли використовувати останні 5 паролів.

Якщо у вас є більш широке середовище, використання мережевої сегрегації з кількома підмережами для виділення ризику є абсолютною вимогою. Якщо середовище менше, рекомендується запустити брандмауер в локальній системі для обмеження впливу. Наприклад, лише дозволити SSH до вашої IP-адреси. tcpwrappers також можна використовувати для додаткового шару. (/etc/hosts.allow, /etc/hosts.deny)

І, звичайно, постійне оновлення всього програмного забезпечення. Особливо перед громадськими демонами.

З SSH:

  • Вимкнути протокол SSH 1
  • Дозволити тільки кореневу автентифікацію without-password(лише ключ)

З Apache:

  • Вимкніть будь-які модулі, які не потрібні
  • Вимкнути .htaccess та загальнодоступні каталоги
  • Вимкніть FollowSymlink та будь-які непотрібні параметри
  • Не встановлюйте PHP, якщо він вам не потрібен.

З MySQL:

  • Вимкнути користувачів за замовчуванням.
  • Не використовуйте хост-символи.
  • Не забудьте встановити унікальний хост для кожного користувача.
  • Не слухайте на tcp, якщо не потрібно. (Незвичайно неминуче.)
  • Максимально обмежте права доступу користувачів програми. (SELECT, INSERT, UPDATE, DELETE ідеально підходить для запису та SELECT для читання)

Я рекомендую спеціально дослідити налаштування php.ini для безпеки. За замовчуванням це ризикованіше програмне забезпечення.

Бастилія



2

Ось хороша стаття, яку ви можете використовувати в якості основи для налаштування та відповідно змінити свій розподіл: http://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web- сервер-з -центром-5-36786


Але в основному не завантажуйте модулі, які вам явно не потрібні, приховуйте всі номери версій та сторінки налагодження / інформації, створюйте користувача mysql для кожної програми із загартованими паролями, люди завжди працюватимуть на вашому сервері, використовуючи звичайний обліковий запис користувача, і робіть їх sudo якщо їм потрібні права доступу до кореневих файлів, використовуйте брандмауер, як iptables, і лише відкриті порти, залежно від того, що вам абсолютно потрібно, щоб увійти до вашої скриньки ... Цей плюс останніх патчів вже дасть вам безпечну настройку.
Олександр Нізо

Ця стаття не є доброю. Вимкнення selinux, нічого про загартовування mysql, відключення непотрібних модулів apache ...
sumar

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.