Коли мені доведеться адмініструвати наявний сервер Linux, який найкращий спосіб перевірити, чи безпечний він?


9

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

Але що робити, якщо мені доведеться адмініструвати сервер, якийсь інший встановив деякий час тому, і я ще не знаю багато про його конфігурацію?

Чи є якийсь інструмент, який автоматично перевіряє "звичайних підозрюваних" чи якийсь контрольний список, через який я можу перейти, щоб переконатися, що явних отворів у безпеці немає? Чи є веб-сервіси, які віддалено перевіряють уразливість?

Відповіді:


13

Завантажте Nessus і виконайте перевірку мережі. Він розповість про вразливі вразливі місця.

Також встановіть Ossec ; хоча це не є його основною метою, він знайде деякі поширені неправильні конфігурації (наприклад, неправильно налаштовані акаунти). А його основна функція - хост-виявлення вторгнень - допоможе виявити, чи хтось намагається використовувати вразливості.


5
Несс більше не є відкритим кодом. Його вилка з відкритим кодом називається openvas.
Анонім

1
Я знаю. Але це все ще безкоштовне пиво IIRC, і афіша ніколи не говорив, що хоче лише F / OSS.
niXar

+1 Nessus - це дуже добре, я б також здійснив і сканування Nmap, завантажуючи результати в Nessus, може допомогти вирішити ще кілька вразливих місць у деяких випадках.
Марк Девідсон

1
+1 для OSSEC. У ньому також є модуль аудиту rootkit / system audit,
sucuri

5

Я б почав із контрольних списків Центру безпеки в Інтернеті . Це контрольні списки на основі консенсусу, складені фахівцями з безпеки для різних платформ та програмних пакетів. Деякі інструменти, згадані контрольними списками, або інше, як правило, рекомендується, що допоможе у вашому полюванні з питань безпеки:

  • Nessus / OpenVAS (сканер на вразливість)
  • Nmap (сканер портів)
  • TCPdump / Wireshark (захоплення пакету libpcap)
  • SNORT (система виявлення вторгнень)

(tcpdump встановлений у багатьох системах Linux за замовчуванням або може бути легко встановлений із сховища пакетів і має вичерпну сторінку man)

Якщо це стосується компанії, в якій ви працюєте, переконайтесь, що аналіз безпеки дозволений керівництвом, і що сканування не викличуть жодних збоїв або неприємностей програми. Так, простий портативний скан може спричинити проблеми - портатизуйте більш старі принтери HP Laserjet, і вони виплюнуть купу паперу.


4

Як дуже швидка перша перевірка:

Біжи

netstat -ltnp

як корінь. Це покаже вам усі сервіси, які слухають у мережі:

Це може показати вам речі, які ви хочете вимкнути відразу. Тоді ви можете продовжити рішення з інших відповідей.

Для служб, які потрібно запускати, але не бути доступними ззовні (наприклад, локальний сервер БД), подумайте про зміну конфігурації, щоб вона слухала лише у localhost / 127.0.0.1. Таким чином, до нього можуть отримати доступ лише місцеві користувачі.


4

Я б перевірив Bastille-Linux за адресою http://www.bastille-unix.org/ , його набір сценаріїв, які ви можете запустити, і він перевірить системні налаштування, дозволи файлів, налаштування користувача тощо. один або два рази в моїх власних полях, і якщо знаходить проблеми при встановленні за замовчуванням (в основному r_x на утилях rsh / rsync). Він виводить як html / java + прокльони / плоский текст.


3

Який дистрибутив?

Загальне:

  • Перегляньте параметри iptables та / або налаштування брандмауера
  • Перегляньте конфігурації SSHD
  • Перегляньте всі зовнішньо доступні конфігурації сервісу
  • Переконайтеся, що ви використовуєте найновіше доступне програмне забезпечення
  • Перевірте наявність вразливості ядра (uname -a, а потім google)
  • Перегляньте дозвіл користувача та групові дозволи на редаговані файли

Немає спеціального розповсюдження / всі дистрибуції
Даніель Риковський,

Також ви можете захопити список встановлених пакетів. Щось на зразок dpkg --get-select> install_pkgs.txt для дистрибутивів debian.
Девід Рікман

2
Можливо, вам також знадобиться перевірити наявність незвичних файлів setuid / setgid, для яких облікових записів встановлені паролі, що таке оболонка для входу тощо.
мас

Чудова пропозиція, я повністю забув ту, яка є величезною дірою.
Девід Рікман

3

Ще одна хороша перша перевірка - запустити nmap ім'я хоста з іншого хоста в мережі. Це дає стороннім уявленням про те, що netstat показав на хості.


3

Якщо ви переживаєте, я рекомендую дотримуватися тих навчальних посібників, про які ви згадали, та відновити сервер. Особливо, якщо ви думаєте, що інший адміністратор, можливо, залишив щось погане. Як новий адміністратор, ви повинні знати, як все-таки розгорнути будь-яку службу, яку він запускає.

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

Якщо ваш начальник вас не дозволить, то всі інші рекомендації мені звучать добре :-)


+1: Якщо створення / конфігурація не задокументована, і у вас є час, можливо, скористайтеся можливістю відновити її. Замість того, щоб пізніше це робити під примусом. Тоді ви можете бути впевнені, що це надійно, і це буде задокументовано для подальшого використання.
Ден Карлі

2

Окрім деяких дуже хороших відповідей тут, ознайомтесь із http://www.sans.org/ . У них є дуже хороші документи, якщо ви готові трохи прочитати, щоб краще зрозуміти "захист у глибині".

Деякі із самих основних приміщень:

  • тримайте ваші сервери виправленими
  • запускати лише ті сервіси, які потрібно запустити
  • обмежити доступ користувача до сервера

1
Не забудьте обмежити також фізичний доступ не тільки від мережі.
iny

1

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


1

Одне, що ви можете зробити, щоб відчути систему - це розрізати папку / etc проти нового встановлення (із тими ж оновленнями, що застосовуються.) Це дозволить вам сказати, що змінилося, щоб ви могли зосередити свої проблеми на безпеці.


1

Щоб розширити те, що було сказано, ось проста команда find, щоб перелічити всі налаштовані та setgid файли в системі для огляду.

find / -type f \( -perm -4000 -o -perm -2000 \) -print

Звичайно, як і інші казали, це все припускаючи, що машина вже не має руткіту на ній ...


1

Chrootkit / rkhunter - довгий плід. Якщо у вас встановлений руткіт, все, про що повідомляється, буде поставлено під загрозу, і, таким чином, не дуже допоможе, тому, будь ласка, завантажте їх із відомого джерела, не використовуйте ті, які вже є у вікні. Ще одна гарна хитрість - встановити ядро, яке ви знаєте, добре (або з пакунків, або з власної ролі). Перевірте наявність на задньому плані (lsof -i та 0 uid некореневих акаунтів). Перевірка правил брандмауера зазвичай може багато розповісти про звички адміністраторів. Покладіть на нього проводку / фронт, спробуйте помітити щось незвичне. Подивіться, куди йдуть колоди. Перевірте всі файли .profile / .bashrc для будь-яких незвичних команд. Загляньте в .ssh / known_hosts для будь-яких хитрих господарів.

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