Безпека сервера linux

Безпека сервера Linux має дуже важливе значення для захисту ваших даних, інтелектуальної власності, а також часу від рук хакерів. За безпеку операційної системи Linux відповідає системний адміністратор. У цій статті ми розглянемо двадцять речей, які потрібно зробити з вашою операційною системою Linux щоб вона була завжди в безпеці і надійно захищена. Якщо це домашній комп`ютер, то про безпеку, можливо, і немає сенсу турбуватися настільки сильно, досить буде надійних паролів і закриття доступу до портів з мережі інтернет. Але в разі публічного сервера варто звернути увагу на забезпечення його захисту.

Ці інструкції підійдуть для будь-якого дистрибутива, неважливо що ви використовуєте CentOS, Red Hat або Ubuntu, Debian.

1. Шифрування зв`язку

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

Використовуйте scp, ssh, rsync, або sftp для передачі файлів. Можна також змонтувати віддалену файлову систему в ваш домашній каталог за допомогою таких інструментів, як shhfs.

GnuPG дозволяє шифрувати і підписувати ваші дані за допомогою спеціального особистого ключа. Також є функції для управління ключами і доступу до відкритих ключів.

Fugu - це графічний інструмент для передачі файлів по протоколу SFTP. SFTP дуже схожий на FTP, але вся сесія тут зашифрована. Це означає що ніякі паролі або команди не передаються у відкритому вигляді. А тому такі передачі менш уразливі для третіх сторін. Також можна використовувати FileZilla, це багатоплатформовий FTP клієнт з підтримкою роботи FTS через SSH / TLS і SSH File Transfer Protocol (SFTP).

OpenVPN - ефективний і легкий VPN клієнт з підтримкою шифрування по SSH.

2. Постарайтеся не використовувати FTP, Telnet, Rlogin і RSH

У більшості мереж імена користувачів, паролі від FTP, Telnet, RSH команд можуть бути перехоплені ким-небудь з тієї ж самої мережі за допомогою аналізатора пакетів. Загальне рішення цієї проблеми полягає у використанні OpenSSH, SFTP або SFTP, який додає SSL або TLS до звичайного FTP. Виконайте таку команду щоб видалити NIS, RSH і інші застарілі служби:

$ Yum list installed
$ Yum list пакет
$ Yum remove пакет

або:

Відео: 5 порад щодо підвищення безпеки вашого сервера (ssh, iptables, phpmyadmin, wordpress)


$ Dpkg --info пакет
$ Apt-get remove пакет

4. Одна машина - одна служба

Запускайте різні служби на окремих серверах або віртуальних машинах. Це обмежує число сервісів, які можуть бути скомпрометовані. Наприклад, якщо зловмисник зможе зламати Apache, то він отримає доступ до всього сервера. Включаючи такі сервіси, як MySQL, сервер електронної пошти і так далі. Ви можете використовувати таке програмне забезпечення, як XEN або OpenVZ для віртуалізації.

5. Тримайте ядро ​​Linux і ПО в актуальному стані

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

$ Sudo yum update

Або для систем заснованих на Debian:

$ Change -l имя_пользователя

Щоб отримати інформацію про рядку придатності пароля введіть команду:

Також ви можете все налаштувати вручну, в файлі / etc / shadow:

{Користувач}:{Пароль}:{Последнее_ізмененіе}:{Максімум_дней}:{Мінімум_дней}:{Попередження}:{Деактивувати}:{Строк_годності}:

  • мінімум днів - мінімальний інтервал між змінами паролів, тобто наскільки часто користувач може змінювати пароль.
  • максимум днів - скільки днів буде придатний пароль, після закінчення цього терміну користувач буде змушений поміняти пароль.
  • попередження - кількість днів після яких користувач буде попереджений, що йому потрібно змінити пароль.
  • Строк_годності - кількість днів з першого січня 1970 коли аккаунт буде повністю відключений.

Рекомендується використовувати таку команду, замість редагування файлу / etc / shadow вручну:

$ faillog


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

$ Passwd -l користувач

А для розблокування:

$ Awk -F: `($ 2 == "") {print}` / etc / shadow

Далі такі акаунти залишається тільки заблокувати.

Також перевірте чи немає користувачів з групою або ідом 0. Такий користувач повинен бути тільки один, і це root. Перевірити можна за допомогою такої команди:

root: x: 0: 0: root: / root: / bin / bash

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

10. Вимкніть вхід для суперкористувача

Дбаючи про безпеку системи linux ніколи не використовуйте вхід від імені root користувача. Ви можете скористатися sudo, щоб отримати необхідні повноваження і запустити потрібну команду від імені суперкористувача. Ця команда дозволяє не розголошувати пароль суперкористувача іншим адмінам, а також містить інструменти моніторингу, обмеження і відстеження дій.

11. Фізична безпека сервера

Безпека сервера Linux повинна включати фізичну безпеку. Ви повинні обмежити фізичний доступ до консолі сервера. Налаштуйте BIOS так, щоб не підтримувалася завантаження з зовнішніх носіїв, таких як DVD, CD, USB. Також встановіть пароль на BIOS і завантажувач GRUB, щоб захистити їх параметри.

12. Вимкніть непотрібні сервіси

Вимкніть всі невикористовувані сервіси і демони. Також не забудьте видалити ці сервіси з автозавантаження. Ви можете подивитися список всіх активних сервісів в системах Red Hat командою:

$ Service сервіс stop
$ Chkconfig сервіс off

Знайдіть всі відкриті програмами порти:

# Nmap -sT -O localhost


Використовуйте iptables, щоб закрити всі порти, які не повинні бути доступні з мережі. Або зупиніть непотрібні сервіси як описано вище.

13. Видаліть Х сервер

Х сервер на серверному комп`ютері - річ зовсім необов`язкова. Вам не потрібно запускати графічне оточення на виділеному Apache або Email сервері. Видаліть це програмне забезпечення для збільшення безпеки і продуктивності.

14. Налаштуйте Iptables

iptables - це програма простору користувача для налаштування вбудованого в ядро ​​фаервола Netfilter. Він дозволяє фільтрувати весь трафік і вирішувати тільки певні види трафіку. Також використовуйте TCPWrappers - ACL систему для фільтрації доступу в інтернет. Ви можете запобігти безлічі типів DOS атак за допомогою iptables. Мережева безпека в Linux це дуже важливий момент загальної безпеки системи.

15. Налаштуйте ядро

У файлі /etc/sysctl.conf зберігаються настройки ядра, які завантажуються і застосовуються під час запуску системи.

Включити захист від переповнення буфера execshield:


kernel.randomize_va_space = "1

Включити "захист від підробки IP:

net.ipv4.conf.all.rp_filter = 1

Відключити перенаправлення IP адрес:

net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_messages = 1

Логгіровать все підроблені пакети:

$ Find / -perm +4000

Знайти файли з встановленим SGID прапором:

Відео: Ubuntu Server 14.04.2. установка

$ Find / (-perm -4000 -o -perm -2000 ) -print
$ Find / -path -prune -o -type f -perm +6000 -ls

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

20. Загальнодоступні файли

Також бажано знайти файли, які можуть змінювати всі користувачі в системі. Для цього використовуйте таку команду:

$ Find / dir -xdev (-nouser -o -nogroup ) -print

21. Використовуйте централізовану систему аутентифікації

Без централізованої системи аутентифікації призначені для користувача дані стають суперечливими, що може привести до старіння облікових даних, і забування акаунтів, які повинні були б бути вже давно видалені. Централізована служба дозволить підтримувати контроль над обліковими записами і аутентифікаційних даними користувачів на різних системах Linux і Unix. Ви можете синхронізувати дані аутентифікації між серверами. Але не використовуйте службу NIS, краще подивіться в сторону Open DAP.

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

22. Логування і аудит

Налаштуйте логгірованіе і аудит для збору і збереження всіх невдалих спроб входу і спроб злому. За замовчуванням всі логи або, принаймні, більшість з них знаходяться в папці / var / log /. Детальніше, про те, за що відповідають певні лог файли ми говорили в окремій статті.

Ви можете дивитися логи за допомогою таких утиліт, як logwatch або logcheck. Вони дуже сильно спрощують читання логів. Ви можете переглядати не весь файл, а тільки ваші події, а також відправляти собі повідомлення на електронну адресу.

Спостерігайте за системою за допомогою служби auditd. Програма записує на диск всі події аудиту які вас цікавлять. Всі настройки аудиту зберігаються в файлі /etc/audit.rules при запуску системи сервіс прочитує всі правила з цього файлу. Ви можете його відкрити і налаштувати все як потрібно або ж скористатися окремою утилітою - auditctl. Можна налаштувати такі моменти:

  • Події запуску та вимикання системи
  • Дата і час події
  • Призначені для користувача події (наприклад доступ до певного файлу)
  • Тип події (редагування, доступ, видалення, запис, оновлення і т д)
  • Успішність чи збій при виконанні події
  • Запис подій зміни налаштувань мережі
  • Запис зміни користувачів і груп
  • Моніторинг змін файлів

23. Захистіть OpenSSH сервер

OpenSSH рекомендується використовувати для віддаленого доступу до комп`ютера і захищеної передачі даних. Але в той же час сервер схильний багатьом атакам. Наприклад, навіть перебір пароля.

Тому рекомендується відключити використання протоколу SSH1, на користь більш захищеного SSH2. Всі настройки сервера ssh знаходяться в файлі / etc / ssh / sshd_config.

Дозвольте тільки використання протоколу 2:

PermitRootLogin no

Також рекомендується змінити порт ssh на випадковий і взагалі не використовувати паролі для аутентифікації, а тільки ключі.

24. Встановіть IDS

IDS або система виявлення вторгнень намагається виявити підозрілу, шкідливу активність, таку як атака DOS, сканування портів або навіть спроби зламати комп`ютер шляхом моніторингу мережевого трафіку.

Хороша практика - розгорнути подібне програмне забезпечення, перед тим як система стане доступною з інтернету. Ви можете встановити AIDE, це HIDS (Host based IDS) яка може контролювати всі аспекти внутрішнього устрою вашої системи.

Snort - це програмне забезпечення для виявлення спроб вторгнення з мережі. Вона здатна виконувати аналіз і журнал пакетів і аналізувати мережевий трафік в реальному часі.

25. Захистіть ваші файли і каталоги

У Linux є відмінні засоби захисту від несанкціонованого доступу до файлів. Однак дозволу встановлені Linux і файлової системою нічого не значать, коли у зловмисника є фізичний доступ до комп`ютера і він може просто підключити жорсткий диск комп`ютера до іншої системи, щоб скопіювати ваші дані. Але ви можете легко захистити свої файли за допомогою шифрування:

  • Для шифрування і розшифровки файлу по паролю використовуйте GPG
  • Також можна захищати файли за допомогою OpenSSL
  • Шифрування каталогів виконується за допомогою ecryptfs
  • TrueCrypt - вільний інструмент для шифрування дисків в Windows і Linux

висновки

Тепер безпеку ос linux на вашому комп`ютері буде набагато збільшена. Не забувайте ставити складні паролі і час від часу перевіряти систему на руткіти. Напишіть в коментарях свій улюблений інструмент для забезпечення безпеки системи.

Поділися в соціальних мережах:

Схожі
Встановлюємо параметри ядра в grubВстановлюємо параметри ядра в grub
Статистика використання linuxСтатистика використання linux
Дізнаємося хто використовує мережу в linuxДізнаємося хто використовує мережу в linux
Lame - linux administration made easyLame - linux administration made easy
Установка astra linuxУстановка astra linux
Установка telegram ubuntu 16.04Установка telegram ubuntu 16.04
Як видалити користувача в linuxЯк видалити користувача в linux
Установка і настройка freenxУстановка і настройка freenx
Установка ssh ubuntu 16.04Установка ssh ubuntu 16.04
Адміністрування linuxАдміністрування linux
» » Безпека сервера linux