Одне, що потрібно пам’ятати, коли викладаєте перегородки, - це режими відмов. Зазвичай це питання має форму: "Що відбувається, коли розділ x заповнюється?" Найближчий voretaq7 вивів ситуацію з повною мірою, що /
спричинило будь-яку кількість важких для діагностики проблем. Давайте розглянемо деякі більш конкретні ситуації.
Що станеться, якщо ваш розділ, що зберігає журнали, заповнений? Ви втрачаєте дані аудиту / звітності, а зловмисники іноді використовуються для приховування своєї активності. У деяких випадках ваша система не автентифікує нових користувачів, якщо не зможе записати їх події входу.
Що відбувається в системі на основі RPM, коли /var
вона заповнена? Менеджер пакунків не встановлюватиме та не оновлюватиме пакунки, і, залежно від конфігурації, може мовчати.
Заповнення розділу легко, особливо коли користувач здатний писати на нього. Для задоволення, запустіть цю команду і подивитися , як швидко ви можете зробити досить великий файл: cat /dev/zero > zerofile
.
Це також виходить за межі заповнення розділів, коли ви розміщуєте місця на різних точках монтажу, ви також можете налаштувати їх параметри кріплення.
Що відбувається, коли /dev/
не встановлено noexec
? Оскільки /dev
зазвичай вважається, що він підтримується ОС і містить лише пристрої, він часто (а іноді й досі є) використовується для приховування шкідливих програм. Якщо вийти, noexec
ви можете запускати бінарні файли, які зберігаються там.
З усіх цих причин і багато іншого багато керівників із загартовування будуть обговорювати розділення як один із перших кроків, які потрібно виконати. Справді, якщо ви будуєте новий сервер , як розбити диск є майже точно перший , що ви повинні прийняти рішення про, і часто найбільш важко пізніше зміни. Існує група під назвою " Центр Інтернет-безпеки", яка виробляє набори зручних посібників з конфігурації. Ви, ймовірно, можете знайти керівництво для вашої конкретної операційної системи та побачити будь-які конкретні дані, які вони можуть сказати.
Якщо ми подивимось на RedHat Enterprise Linux 6, рекомендована схема розподілу така:
# Mount point Mount options
/tmp nodev,nosuid,noexec
/var
/var/tmp bind (/tmp)
/var/log
/var/log/audit
/home nodev
/dev/shm nodev,nosuid,noexec
Принцип усіх цих змін полягає в тому, щоб запобігти їх впливу один на одного та / або обмежити те, що можна зробити на певному розділі. Візьмемо, наприклад, варіанти /tmp
. Це говорить про те, що там не можна створювати вузли пристроїв, звідти не можна виконувати жодних програм, а встановлений біт set-uid не може бути встановлений ні на що. За своєю суттю /tmp
майже завжди є записаним у світі та часто є особливим типом файлової системи, яка існує лише в пам'яті. Це означає, що зловмисник міг би використовувати його як просту процедуру для скидання та виконання шкідливого коду, після чого при збої (або просто перезавантаженні) система видалить усі докази. Оскільки функціональність /tmp
не вимагає жодної з цих функцій, ми можемо легко відключити функції та запобігти цій ситуації.
Місце зберігання журналів /var/log
і /var/log/audit
вирізане, щоб допомогти їх захистити від виснаження ресурсів. Крім того, аудид може виконувати деякі особливі речі (як правило, у більш високих середовищах безпеки), коли його сховище журналу починає заповнюватися. Розмістивши його на своєму розділі, ця система виявлення працює краще.
Щоб бути більш детальним і цитувати mount(8)
, саме так описані вище варіанти:
noexec Не допускати прямого виконання будь-яких бінарних файлів у змонтованій файловій системі. (До недавнього часу можна було запустити бінарні файли в будь-якому випадку за допомогою команди на зразок /lib/ld*.so / mnt / binary. Цей трюк виходить з ладу з Linux 2.4.25 / 2.6.0.)
nodev Не інтерпретувати символи та не блокувати спеціальні пристрої у файловій системі.
nosuid Не дозволяйте набір ідентифікатора користувача set або біт-ідентифікатор групи набути чинності. (Це здається безпечним, але насправді є досить небезпечним, якщо у вас встановлений suidperl (1).)
З точки зору безпеки, це дуже хороші варіанти, які слід знати, оскільки вони дозволять встановити захист самої файлової системи. У високобезпечному середовищі ви навіть можете додати цю noexec
опцію /home
. Вашому звичайному користувачеві буде складніше писати сценарії оболонки для обробки даних, скажімо, аналізувати файли журналів, але це також заважатиме виконувати їх бінарний файл, що підвищить привілеї.
Крім того, майте на увазі, що домашня директорія root за замовчуванням є /root
. Це означає, що це буде у /
файловій системі, а не в /home
.
Точно те, скільки ви даєте кожному розділу, може сильно відрізнятися залежно від завантаженості системи. Типовий сервер, яким я керував, рідко вимагає взаємодії з особами, і тому такий /home
розділ взагалі не повинен бути дуже великим. Те саме стосується, /var
оскільки воно, як правило, зберігає досить ефемерні дані, які часто створюються та видаляються. Однак веб-сервер, як правило, використовує /var/www
як свою ігрову площадку, це означає, що або це повинно бути також на окремому розділі, або /var/
його потрібно зробити великим.
Раніше я рекомендував наступне як базові лінії.
# Mount Point Min Size (MB) Max Size (MB)
/ 4000 8000
/home 1000 4000
/tmp 1000 2000
/var 2000 4000
swap 1000 2000
/var/log/audit 250
Їх потрібно переглянути та відкоригувати відповідно до призначення системи та того, як працює ваше середовище. Я також рекомендував би використовувати LVM і проти виділення всього диска. Це дозволить вам легко виростити або додати розділи, якщо такі речі потрібні.