Поради адміністраторам Linux-систем, Комерція, Різне, статті

Оновлюйтеся. Самий тривіальний і часто дається порада. На жаль, так само часто не виконується. Адже програма, в якій виявлена ​​помилка, є практично відкритими воротами для зломщика. Але оновлюйтеся тільки в тому випадку, якщо це дійсно необхідно. Утримувати найостанніші версії тільки заради того, “що б були” – це несерйозно. Найяскравіший приклад – це уразливість в ssh. Їй вже купа часу, її навіть встигли показати в “матриці”, а тим не менш серверів з уразливим sshd ще дуже багато. А який був бум зломів через уразливий named … Напевно, якщо добре поритися, можна знайти дуже багато подібних серверів в сучасній мережі.


Розбирайтеся в операційній системі і в складі її сервісів. Вам варто знати, що процес init в системі повинен бути один і у нього повинен бути pid дорівнює одиниці. І те, що демона irqd не існує, теж має бути для вас незаперечним фактом. Ви повинні прекрасно знати, що і на якому етапі працює в системі – як запускаються сервіси, як дізнатися, звідки він був запущений і чому він був запущений саме так. А журнал дій користувача в системі … з чийсь легкої руки час збереження файлів логів в багатьох дистрибутивах поставлено на 4 тижні. Всього лише один місяць. А це дуже короткий термін в сучасному світі. А ви в курсі, що syslogd може відправляти приходять повідомлення на іншу машину? А ви знаєте про те, що rpm може перевірити цілісність всіх програм, встановлених у вас в системі? А ви це використовуєте? Якщо відповіді “так”, то я радий за вас.

Вимкніть непотрібне, а невикористовуване видаліть. Візьмемо до прикладу звичайний linux сервер, встановлений недосвідченим адміністратором. Подивіться на нього і запитайте: “а навіщо там стоїть gcc, nfs і cdparanoia?” Знову хочете приклад? Будь ласка – їх є в мене. Зломщик через ssh або кривої скрипт, запущений на сервері, отримує права користувача nobody. При встановленому gcc йому не важко зібрати або трояна, або використовувати іншу уразливість (Наприклад, та ж проблема з ptrace).


Розберіться c працюючими сервісами і відключіть у них “зайві” можливості. Задайтеся питанням, навіщо в конфігураційному файлі sshd існують такі директиви, як ListenAddress і PermitRootLogin? Потім зверніть увагу на стоїть apache і дізнайтеся, чи потрібні йому модулі mod_cgi або mod_rewrite? Адже кожен зайвий модуль – потенційна лазівка ​​для зломщиків. У вас стоїть PHP? Здорово. А ви в курсі, що у файлі php.ini існує ціла секція, присвячена безпеці? Пошукайте за словом safe_dir – запевняю, в околицях цієї директиви можете знайти багато цікавого. Адже необхідно витратити буквально 10 хвилин і ніякої злий PHP скрипт не зможе прочитати вміст конфігураційних файлів в каталозі / etc. 5 хвилин зверху – і MySQL більше не приймає пакети з усього світу, а мирно працює тільки через unix socket. Буквально годину часу необхідно витратити, щоб навіть відкриті всьому миру сервіси не представляли великої проблеми. А хто з вас витратив цей час?


Користуйтеся вбудованими засобами захисту операційної системи. Згадайте, що Linux, як і всі інші unix “и, спочатку багатокористувацький. Прочитайте про дію команд chroot і ulimit. А прапори для файлової системи? Адже nosuid, noexec і nodev з’явилися не на порожньому місці. А про команду sudo і механізм її роботи ви в курсі?


Використовуйте мережеві засоби захисту. Упередити злом – значить практично запобігти йому. Візьмемо знову ж наш улюблений www сервер. Навіщо йому стирчить у зовнішній світ sshd? А навіщо йому можливість встановити з’єднання з будь-якого порту? Візьміть вбудований файрволл і забороніть на потрібному інтерфейсі прийом і передачу пакетів з усіх портів, крім 80го. Тепер навіть якщо в машину закачають троян, він не зможе з’єднатися зі своїм власником. Дрібниця, а зломщикові вона різко ускладнить задачу. Але це пасивний захист. А ще ж існують і “активні” варіанти, які працюють в тісній зв’язці з IDS, своєчасно попереджаючи адміністратора про потенційні атаках.


Напишіть що-небудь своє. Будь-який грамотний адміністратор зможе написати потрібний йому скрипт на 2-3 мовами. Так чому б не витратити зайві 10 хвилин і не написати примітивну пастку для зломщика? Приміром, в будь-якій системі є скрипти, які обслуговують систему – скористайтеся ними. Скопіюйте / etc / passwd в якій-небудь малопримітного файлик в надрах робочих каталогів скриптів і вставте одну (!) Команду в працюючий скрипт ось вона:

diff /etc/passwd /path/to/saved/passwd

Все. Сама примітивна пастка готова. У звичайному режимі ніяких видимих ​​змін не відбудеться. Однак коли зломщик поміняє вміст / etc / passwd, то diff видасть ті рядки, якими розрізняються файли. А так як скрипти виконуються під crond, то останній переадресує ці відмінності адміністратора. Просто? Просто! Пастка примітивна до неподобства, але дуже важко обнаруживаемая. Проте з двох-трьох подібних пасток при зломі одна обов’язково спрацює. Не хочете зберігати файл passwd – хто заважає вважати для нього контрольну суму за алгоритмом md5? А чим поганий підрахунок контрольної суми програми ps? Ці пастки гарні имено своїм примітивізмом. Навіть те, що їх доводиться періодично “зводити” при оновленні системи або закладі користувача, добре – автоматом ви перевіряєте їх працездатність.


Загалом, не треба сподіватися на те, що “linux – це ніби як unix і його поламати неможливо”. Ламається все. Головне – за який час і з яким шумом.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*