Ці рекомендації не входять у верхню частину моєї голови і не мають на меті бути всебічними.
Перевірте 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 для безпеки. За замовчуванням це ризикованіше програмне забезпечення.
Бастилія