🐧 Советы по обеспечению безопасности сервера CentOS — часть 1 — Information Security Squad
🐧  Советы по обеспечению безопасности сервера CentOS — часть 1

В этом руководстве рассматриваются только общие советы по безопасности для CentOS 8/7, которые можно использовать для усиления защиты системы.

Подсказки по чеклисту предназначены для использования в основном на различных типах серверов с открытым исходным кодом или на компьютерах (физических или виртуальных).

Однако некоторые из советов могут быть успешно применены и к машинам общего назначения, таким как настольные компьютеры, ноутбуки и одноплатные компьютеры размером с карточку (Raspberry Pi).

1. Физическая защита

Заблокируйте доступ к вашим серверным комнатам, используйте стеллажи для блокировки доступа и видео наблюдения.

Учтите, что любой физический доступ к серверным комнатам может подвергнуть ваш компьютер серьезным проблемам с безопасностью.

Пароли BIOS можно также можно изменить, установив перемычки на материнской плате или отсоединив батарею CMOS.

Кроме того, злоумышленник может украсть жесткие диски или напрямую подключить новые жесткие диски к интерфейсам материнской платы (SATA, SCSI и т. д.), а затем загрузиться с live-дистрибутива Linux и клонировать или копировать данные, не оставляя следов программного обеспечения.

2. Ослабить влияние других физических каналов

В случае высокочувствительных данных вам, вероятно, следует использовать расширенную физическую защиту, такую как размещение и блокировка сервера в клетке Фарадея, или использовать военные решения по физ. защите, чтобы свести к минимуму влияние угроз через радио или электрические утечки.

3. Безопасный BIOS / UEFI

Запустите процесс усиления защиты вашей машины, обеспечив защиту настроек BIOS / UEFI, а имегно установите пароль BIOS / UEFI и отключите загрузочные носители (CD, DVD, отключите поддержку USB), чтобы предотвратить несанкционированное  изменение настроек BIOS или системных настроек. установив приоритет загрузочного устройства и запрет загрузки машины с альтернативного носителя.

Чтобы применить этот тип изменений к вашей машине, вам нужно обратиться к руководству производителя материнской платы за конкретными инструкциями.

4. Безопасный загрузчик

Установите пароль GRUB, чтобы злоумышленники не могли вмешиваться в последовательность загрузки ядра или уровни запуска, редактировать параметры ядра или запускать систему в однопользовательском режиме, чтобы нанести вред вашей системе, и сбросить пароль root для получения привилегированного контроля.

Как защитить паролем загрузчик GRUB в Linux

5. Используйте отдельные разделы диска

При установке CentOS в системах, предназначенных в качестве производственных серверов, используйте выделенные разделы или выделенные жесткие диски для следующих частей системы:

/(root) 
/boot  
/home  
/tmp 
/var

6. Используйте LVM и RAID для файловой системы.

Раздел /var — это место, где записываются на диск ваши логи.

Эта часть системы может экспоненциально увеличиваться в размерах на серверах с интенсивным трафиком, которые предоставляют сетевые службы, такие как веб-серверы или файловые серверы.

Таким образом, используйте большой раздел для /var или рассмотрите возможность настройки этого раздела с использованием логических томов (LVM) или объедините несколько физических дисков в одно большее виртуальное устройство RAID 0 для поддержки больших объемов данных.

Что касается данных, избыточность следует учитывать при использовании компоновки LVM поверх уровня RAID 1.

Для настройки LVM или RAID на дисках следуйте нашим полезным руководствам:

Как настроить RAID6 в centos 7

Как настроить RAID5 в CentOS 7

🐧 Как увеличить существующую файловую систему XFS на логический том LVM

7. Измените параметры fstab для защиты разделов данных

Защитите отдельные разделы, предназначенные для хранения данных и предотвращения выполнения программ, файлов устройств или setuid на этих типах разделов, путем добавления следующих параметров в файл fstab, как показано на следующем фрагменте:

/dev/sda5 	 /nas          ext4    defaults,nosuid,nodev,noexec 1 2

Чтобы предотвратить повышение привилегий и выполнение произвольных скриптовв, создайте отдельный раздел для /tmp и смонтируйте его как nosuid, nodev и noexec.

/dev/sda6  	/tmp         ext4    defaults,nosuid,nodev,noexec 0 0

8. Зашифруйте жесткие диски с помощью LUKS.

Эти меры применяются в целях защиты конфиденциальных данных в случае физического доступа к жестким дискам машины.

Я предлагаю вам узнать, как зашифровать диск, прочитав наши статьи:

#️⃣ Как зашифровать диски с помощью LUKS в Fedora Linux

Как создать зашифрованный образ LUKS и смонтировать его при загрузке в CentOS / RHEL

9. Используйте PGP и криптографию с открытым ключом

Чтобы зашифровать диски, используйте PGP и криптографию с открытыми ключами или команду OpenSSL для шифрования и дешифрования конфиденциальных файлов с помощью пароля.

🔐 Как зашифровать файлы для защиты персональных и коммерческих данных?

10. Установите только минимальное количество необходимых пакетов

Избегайте установки неважных или ненужных программ, приложений или служб, чтобы избежать уязвимостей пакетов.

Это может снизить риск того, что уязвимость части программного обеспечения может привести к компрометации других приложений, частей системы или даже файловых систем, что в конечном итоге приведет к повреждению или потере данных.

11. Чаще обновляйте систему

Регулярно обновляйте систему.

Синхронизируйте ядро Linux с последними обновлениями безопасности и все установленнын программы до последних версий, выполнив следующую команду:

# yum update

12. Отключите Ctrl + Alt + Del

Чтобы пользователи не могли перезагружать сервер после физического доступа к клавиатуре или через приложение удаленной консоли или виртуальную консоль (KVM, интерфейс программного обеспечения виртуализации), необходимо отключить последовательность клавиш Ctrl + Alt + Del, выполнив приведенную ниже команду:

# systemctl mask ctrl-alt-del.target

13. Удалите ненужные программные пакеты

Установите минимальное количество программного обеспечения, необходимое для вашей системы.

Никогда не устанавливайте дополнительные программы или службы.

Устанавливайте пакеты только из доверенных или официальных репозиториев.

Используйте минимальную установку системы в случае, если машине суждено всю жизнь работать как сервер.

Проверьте установленные пакеты, используя одну из следующих команд:

# rpm -qa
Составьте локальный список всех установленных пакетов:
# yum list installed >> installed.txt

Просмотрите список ненужных программ и удалите пакет, выполнив следующую команду:

# yum remove имя_пакета

14. Перезапускайте сервисы Systemd после обновлений Демона

Используйте приведенный ниже пример команды, чтобы перезапустить службу systemd для применения новых обновлений.
# systemctl restart httpd.service

15. Удалите ненужные службы

Определите службы, которые прослушивают определенные порты, используя следующую команду ss.

# ss -tulpn

Чтобы вывести список всех установленных сервисов с их статусом вывода, введите следующую команду:

# systemctl list-units -t service
Например, минимальная установка CentOS по умолчанию идет с установленным по умолчанию демоном Postfix, который запускается под именем master на порту 25.
Удалите сетевую службу Postfix, если ваша машина не будет использоваться в качестве почтового сервера.
# yum remove postfix

16. Шифруйте канал при передаче данных

Не используйте незащищенные протоколы для удаленного доступа или передачи файлов, такие как Telnet, FTP или другие простые протоколы, такие как SMTP, HTTP, NFS или SMB, которые по умолчанию не шифруют сеансы аутентификации или отправленные данные.

Используйте только sftp, scp для передачи файлов и SSH или VNC через туннели SSH для удаленных подключений к консоли или доступа к графическому интерфейсу.

Передача файлов на удаленных серверах с помощью SFTP-команд в Linux

💴 Как использовать команду scp для безопасной передачи файлов с примерами

Для туннелирования консоли VNC через SSH используйте приведенный ниже пример, который перенаправляет порт 5901 VNC с удаленного компьютера на локальный:

# ssh -L 5902:localhost:5901 remote_machine
На локальном компьютере выполните команду, показанную ниже для виртуального подключения к удаленной конечной точке.
# vncviewer localhost:5902

17. Сканируйте сетевые порты

Проведите проверку внешних портов с помощью инструмента Nmap из удаленной системы через локальную сеть.

Этот тип сканирования может использоваться для проверки сетевых уязвимостей или проверки правил брандмауэра.

# nmap -sT -O 192.168.1.10

см. статю 🖧 Как просканировать цель с помощью Nmap?

18. Пакетная фильтрация межсетевого экрана

Используйте утилиту firewalld для защиты системных портов, открытия или закрытия портов определенных служб, особенно известных портов (<1024).

Установите, запустите, включите и перечислите правила брандмауэра, выполнив следующие команды:

# yum install firewalld
# systemctl start firewalld.service
# systemctl enable firewalld.service
# firewall-cmd --list-all

19. Проверьте пакеты протоколов с помощью Tcpdump

Используйте утилиту tcpdump для локального прослушивания сетевых пакетов и проверки их содержимого на наличие подозрительного трафика (порты назначения-источника, протоколы TCP / IP, трафик второго уровня, необычные запросы ARP).

Для лучшего анализа захваченного файла tcpdump используйте более продвинутую программу, например Wireshark.

# tcpdump -i eno16777736 -w tcpdump.pcap

см. статью 🖧 Как захватить и проанализировать сетевой трафик с помощью tcpdump?

Материалы по wireshark:

🖧 10 советов в работе с Wireshark по анализу пакетов в сети

🖧 Как обнаружить злоупотребление сетью с помощью Wireshark

20. Предотвратите DNS-атаки

Проверьте содержимое вашего резолвера, как правило, файл это /etc/resolv.conf, который определяет IP-адрес DNS-серверов, которые он должен использовать для запроса доменных имен, чтобы избежать атак «человек посередине», ненужного трафика корневых DNS-серверов, подделку или создание DOS-атаки.

Это только первая часть.

В следующей части мы обсудим другие советы по безопасности для CentOS 8/7.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *