15 простых советов по обеспечению безопасности сервера cPanel

Опубликовано: 2017-06-27

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

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

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

К счастью, однако, безопасность сервера cPanel больше относится к «простому» концу спектра безопасности сервера.

Вот 15 простых способов значительно улучшить безопасность вашего сервера всего за несколько минут.

1. Защита SSH

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

Вот три простых шага, чтобы повысить безопасность вашего SSH.

1. Изменить SSH-порт

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

Вот шаги, чтобы изменить порт SSH.

  1. Войдите на свой сервер через SSH.
  2. Отредактируйте файл конфигурации SSH, расположенный в /etc/ssh/sshd_config , введя следующую команду:
    нано /etc/ssh/sshd_config
  3. Установите случайный порт для SSH-подключения в следующей строке. Оригинал: Порт 22.
    Новая линия: порт 2468.
  4. Теперь перезапустите службу SSH, выполнив следующую команду:
    перезапуск службы sshd

2. Отключить root-вход

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

Вот как:

  1. Войдите на свой сервер через SSH. Прежде чем отключить root-вход, мы создадим пользователя для доступа к серверу:
    adduser новое_имя_пользователя_имя
    пароль новое_имя_пользователя_имя
  2. Вам будет предложено установить пароль для этого нового пользователя. Убедитесь, что пароль максимально надежный (не менее 10 символов с несколькими цифрами и символами), а затем добавьте нового пользователя в группу wheel, предоставив ему доступ к серверу, используя следующую строку кода.
    # usermod -aG колесо new_username_name
  3. Теперь отключите пользователя root. Отредактируйте файл конфигурации SSH, который находится в /etc/ssh/sshd_config .
    нано /etc/ssh/sshd_config
  4. Измените строку: «PermitRootLogin yes» на «PermitRootLogin no»
  5. Теперь перезапустите службу SSH, выполнив следующую команду.
    перезапуск службы sshd

3. Отключите SSH версии 1.

С появлением SSHv2 его предшественник SSHv1 почти устарел, поэтому настоятельно рекомендуется отключить менее безопасный и устаревший SSH для повышения безопасности вашего сервера.

  1. Войдите на свой сервер через SSH и отредактируйте файл конфигурации SSH, который находится в /etc/ssh/sshd_config .
  2. Раскомментируйте следующую строку.
    Протокол 2,1
  3. И измените его на:
    Протокол 2
  4. Теперь перезапустите службу SSH, выполнив следующую команду:
    # перезапуск службы sshd

2. Включение защиты cPHulk

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

cPHulk — это простой в использовании сервис, который защитит ваш сервер от большинства атак грубой силы.

Чтобы включить cPHulk, войдите в WHM → Security CentercPHulk Brute Force Protection и нажмите « Включить ».

Теперь вы можете устанавливать собственные правила на основе имени пользователя cPanel, IP-адреса и других параметров.

Как только будет достигнуто заданное количество неудачных попыток входа в систему, cPHulk заблокирует любые дальнейшие попытки с используемого IP-адреса.

Примечание. Если у вас есть статический IP-адрес, настоятельно рекомендуется добавить его в управление белым списком , чтобы не блокировать доступ к своему серверу.

3. Настройте брандмауэр ConfigServer (CSF)

CSF (ConfigServer Security and Firewall) — один из самых популярных брандмауэров для серверов cPanel.

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

В дополнение к своим основным функциям CSF также предоставляет вам доступ к ряду полезных функций, таких как «Просмотр системных журналов», журналы IPTable, статистика IFD и многое другое.

Установка брандмауэра ConfigServer

Установить CSF на свой сервер с помощью cPanel довольно просто. Пожалуйста, обратитесь к нашему пошаговому руководству Как установить брандмауэр ConfigServer на cPanel/WHM?

После того, как вы следовали указаниям в нашем вышеупомянутом руководстве, вы можете управлять CSF непосредственно из WHM.

Для этого войдите в свой WHM, перейдите в Плагины → ConfigServer Security & Firewall.

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

4. Установите антивирус ClamAV

Хотя серверы Linux обладают более «естественной» устойчивостью к вирусам, чем их аналоги на базе Windows, по-прежнему считается разумным установить дополнительное антивирусное приложение.

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

Опять же, для краткости, пожалуйста, обратитесь к нашему пошаговому руководству Как установить плагин ClamAV от WHM .

После установки ClamAV вы можете сканировать любую конкретную учетную запись cPanel с доступом на уровне пользователя cPanel. Вот наше руководство о том, как запустить сканирование на вирусы ClamAV из cPanel .

5. Переключитесь на CloudLinux

CloudLinux, платная замена бесплатной CentOS, считается одной из самых безопасных операционных систем для серверов cPanel.

С CloudLinux вы можете увеличить плотность и стабильность серверов, сохраняя учетные записи cPanel изолированными друг от друга.

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

ОС «изолирует» пользователей друг от друга, чтобы избежать каких-либо нарушений безопасности. Любой нестабильный или скомпрометированный скрипт или вредоносное ПО не могут распространяться по серверу с помощью любой скомпрометированной учетной записи.

Ниже приведены основные функции безопасности ОС CloudLinux:

  1. КейджФС
  2. ЗакаленныйPHP
  3. Безопасные ссылки

КейджФС

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

→ С CageFS пользователи будут иметь доступ только к безопасным файлам.
→ Пользователи не могут видеть файлы конфигурации сервера, такие как файлы конфигурации Apache.
→ Пользователи не могут видеть других пользователей и не могут обнаружить присутствие других пользователей.
→ Пользователи не могут видеть процессы других пользователей.

ЗакаленныйPHP

Старые версии PHP 5.2, 5.3, 5.4, хотя и широко используются, имеют уязвимости, которые не исправлены сообществом PHP.net.
HardenedPHP в CloudLinux исправляет эти уязвимости и защищает старые и неподдерживаемые версии.

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

Безопасные ссылки

SecureLinks — это технология на уровне ядра, которая укрепляет сервер, предотвращая все известные атаки с символическими ссылками (symlink) и одновременно предотвращая создание злоумышленниками файлов с символическими ссылками.
→ С помощью SecureLink вы можете предотвратить атаки, не позволяя злоумышленникам создавать символические и жесткие ссылки на файлы, которыми они не владеют.
→ Он не позволяет злоумышленникам создавать файлы символических ссылок.
→ Повышает уровень безопасности сервера от атак по символическим ссылкам.

6. Отключить запрос Ping

Пинг — это запрос ICMP (Internet Control Message Protocol), и его следует отключить, чтобы избежать атак «Ping of Death» и «Ping Flood».

Пинг смерти

Ping of Death — это атака типа «отказ в обслуживании», вызванная намеренной отправкой злоумышленником IP-пакета большего размера, чем разрешено IP-протоколом.

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

Пинг-флуд

Ping Flood — это простая атака типа «отказ в обслуживании», при которой злоумышленник перегружает жертву пакетами ICMP в надежде, что жертва ответит упакованным ответом ICMP, таким образом потребляя как входящую, так и исходящую полосу пропускания.

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

Чтобы отключить ответ на пинг, выполните следующую команду от имени пользователя root:
эхо «1» > /proc/sys/net/ipv4/icmp_echo_ignore_all
эхо «1» > /proc/sys/net/ipv4/icmp_echo_ignore_all
Чтобы отключить ответ на пинг с помощью брандмауэра IPtables, выполните следующую команду от имени пользователя root:
iptables -A INPUT -p icmp -j DROP

7. Настройте управление доступом к хосту

В некоторых случаях вы можете захотеть разрешить определенные услуги только для одного IP-адреса. Для достижения этой цели все, что вам нужно сделать, это правильно настроить свой контроль доступа к хосту, который позволяет вам создавать правила, разрешающие или запрещающие доступ к серверу на основе IP-адреса пользователя.

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

Чтобы настроить правило с Host Access Control, вам понадобятся три вещи.

  1. Сервис, для которого вы хотите создать правило
  2. IP-адрес, для которого вы хотите разрешить или запретить привилегии
  3. И действие, которое вы хотите предпринять (например, Разрешить или Запретить)

Чтобы настроить правила в Host Access Control, войдите в свой WHM, перейдите в Центр безопасностиHost Access Control .

Ниже приведен пример блокировки службы SSH:

Демон Список доступа Действие Комментарий
sshd 192.168.3.152 разрешать Разрешить локальный доступ по SSH
sshd 1xx.6x.2xx.2xx разрешать Разрешить SSH с моего конкретного IP
sshd ВСЕ отказываться от Запретить доступ со всех других IP-адресов

Примечание . Правила имеют порядок старшинства. Вам придется поместить правила «разрешить» перед правилами «запретить», если вы решите использовать метод «разрешить» для нескольких, а затем запретить для всех.

8. Настройка Mod_Security

В 2017 году более 70% всех вредоносных серверных атак выполняются на уровне веб-приложений.
Чтобы снизить риск, связанный с вашим конкретным сервером, рекомендуется развертывать WAF или брандмауэр веб-приложений для повышения внешней безопасности и обнаружения/предотвращения атак до того, как они достигнут веб-приложений.

ModSecurity — один из старейших и самых популярных брандмауэров веб-приложений, предназначенный для предотвращения:

  1. SQL-инъекция
  2. iFrame-атаки
  3. Обнаружение веб-шелла/бэкдора
  4. Обнаружение ботнет-атак
  5. HTTP-атаки типа «отказ в обслуживании» (DoS)

Установка mod_security может быть выполнена в течение нескольких минут с небольшими изменениями в существующей инфраструктуре.

Вы можете включить его в конфигурации Easy Apache.

Чтобы создать правила Mod_Security, перейдите в Инструменты ModSeurity и щелкните Список правил.

В новых окнах отобразятся все правила. Вы можете нажать «Добавить правило» , чтобы создать новые правила. Обратите внимание, что вам потребуется перезапустить Apache, чтобы развернуть новые правила.

Чтобы узнать больше об инструментах ModSecurity, нажмите здесь.

9. Сканируйте вашу систему с помощью RootKit Hunter

Rootkit Hunter или rkhunter — это инструмент на основе UNIX, который сканирует руткиты, бэкдоры и возможные локальные эксплойты.

Он сравнивает хэши SHA-1 важных файлов с файлами, расположенными в онлайн-базах данных, чтобы обеспечить целостность файлов.

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

Установка охотника за руткитами

Измените текущий рабочий каталог на желаемый каталог установки.
компакт-диск /USR/локальные/SRC
Загрузите пакет rkhunter с помощью команды wget.
wget http://dfn.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.4.2.tar.gz
Разархивируйте скачанный архив rkhunter.
tar -zxvf rkhunter-1.4.2.tar.gz
Измените текущий рабочий каталог на каталог rkhunter. Убедитесь, что вы заменили имя каталога фактическим именем каталога. В нашем случае это «rkhunter-1.4.2», который можно изменить при выходе новых обновлений.
компакт-диск rkhunter-1.4.2
Установите пакет rkhunter, выполнив скрипт установки.
./installer.sh — макет по умолчанию — установить
Это установит инструмент rkhuter на сервер.

Настройка rkhunter

Вы можете найти файл конфигурации rkhunter по пути /etc/rkhunter.conf . Изменяя значения параметров в этом файле, мы можем изменить свойства rkhunter для защиты сервера. Чтобы разрешить вход root через SSH
ALLOW_SSH_ROOT_USER = да
каталог установки rkhunter
INSTALLDIR=/путь/к/каталогу/установки
Каталог базы данных rkhunter
DBDIR=/var/lib/rkhunter/db
каталог скриптов rkhunter
SCRIPTDIR=/usr/local/lib64/rkhunter/скрипты
временный каталог rkhunter
TMPDIR=/var/lib/rkhunter/tmp

Ручное сканирование с помощью rkhunter

Чтобы запустить ручное сканирование с помощью rkhunter, выполните приведенную ниже команду.
/usr/локальные/бен/rkhunter -c
По умолчанию rkhunter работает в интерактивном режиме. rkhunter выполняет серию сканирований, и после каждого набора сканирований вам нужно будет нажать Enter, чтобы продолжить сканирование.

Чтобы пропустить интерактивный режим, запустите и просканируйте весь набор, используя приведенную ниже команду. Обратите внимание, что -c — для проверки локальной системы, а —sk — для пропуска нажатия клавиш.
/usr/local/bin/rkhunter -c -sk
Чтобы просканировать всю файловую систему, выполните приведенную ниже команду.
rkhunter – проверить

Планирование автоматического сканирования с помощью Rkhunter

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

Если вы хотите запускать сканирование rkhunter ежедневно, загрузите скрипт в каталог /etc/cron.daily и в /etc/cron.weekly для еженедельного сканирования.

Откройте файл в редакторе и напишите приведенный ниже скрипт, чтобы планировать его ежедневно.
vi /etc/cron.daily/rkhunter.sh
Скрипт для планирования ежедневного сканирования

#!/bin/sh

(

/usr/local/bin/rkhunter --versioncheck

/usr/local/bin/rkhunter --update

/usr/local/bin/rkhunter --cronjob --report-warnings-only

) | /bin/mail -s 'rkhunter Daily Run (HostnameOfServer)' youremail@address

Примечание. Убедитесь, что вы изменили HostnameOfServer и youremail@address на фактическое имя хоста сервера и адрес электронной почты, на который должны отправляться уведомления в сценарии.

Обновление и параметры rkhunter

Проверить текущую версию rkhunter.
/usr/local/bin/rkhunter – проверка версии
Обновить версию rkhunter.
/usr/local/bin/rkhunter – обновить
Если файлы базы данных обновлены, проверить и сохранить обновленные значения и свойства.
/usr/local/bin/rkhunter –propupd
Журналы rkhunter хранят все выполненные действия и ошибки, обнаруженные приложением. Чтобы проверить журналы rkhunter.
/var/журнал/rkhunter.log
Вы можете сослаться на другие параметры rkhunter с.
/usr/local/bin/rkhunter – помощь

10. Сканируйте свою систему с помощью Maldet

Maldet, также известный как Linux Malware Detect (LMD), представляет собой сканер вредоносных программ для систем Linux, предназначенный для эффективного обнаружения бэкдоров php, темных почтовых программ и ряда других вредоносных файлов, которые могут присутствовать на взломанных веб-сайтах.

Установка Малдета

  1. SSH к серверу и загрузите tar-файл.
    wget href="http://www.rfxn.com/downloads/maldetect-current.tar.gz">
  2. Извлеките файл.
    tar -xzf maldetect-current.tar.gz
  3. Перейдите в папку maldet.
    компакт-диск maldetect-*
  4. Чтобы установить malde, выполните приведенную ниже команду.
    ш ./install.ш

Используйте Maldet в Linux Server

Вы всегда должны открывать новый сеанс экрана и запускать сканирование, так как сканирование может занять несколько часов в зависимости от использования дискового пространства вашей системой. Чтобы запустить сканирование, используйте команду ниже.
maldet -a /path/to/scan ИЛИ

maldet –сканировать-все /путь/к/сканировать
Вы также можете просто запустить приведенную ниже команду для сканирования всей системы.
малдет -а /
После завершения сканирования сервера вы получите SCAN ID в конце. Для просмотра отсканированного отчета используйте следующую команду. Обратите внимание, что вам нужно будет заменить SCAN ID фактическим идентификатором.
maldet — сообщить SCAN ID
Пример: maldet – отчет 062617-2220.1771

Чтобы поместить в карантин все вредоносные программы, полученные в результате предыдущего сканирования, выполните приведенную ниже команду.
maldet -q ИДЕНТИФИКАТОР СКАНИРОВАНИЯ
Бывший. малдет-карантин 062617-2220.1771

Автоматизировать Малдет

Вы можете отредактировать файл конфигурации maldet conf.maldet , чтобы автоматизировать такие процессы, как:

  1. Установите для email_alert значение 1 , чтобы отправлять отчеты на настроенную учетную запись электронной почты.
  2. В поле email_addr укажите учетную запись электронной почты, на которую вы хотите получать отчеты о сканировании.
  3. Измените quar_hits на 1 , чтобы все обнаруженные вредоносные программы перемещались в каталог « /usr/local/maldetect/quarantine », и вы получали уведомление на настроенный адрес электронной почты.
  4. измените quar_susp на 1 , это позволит приостановить учетную запись пользователей cPanel или установить доступ к оболочке ' /bin/false ' для пользователей, не являющихся пользователями cPanel.

11. Настройте задание Cron для ежедневного запуска ClamAV

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

Вы можете использовать задание cron сканера ClamAV для запуска еженедельных сканирований, которые будут автоматически запускаться в «нерабочее время».

Используйте следующую команду для запуска этого cron.
для i в awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq ; сделать /usr/local/cpanel/3rdparty/bin/clamscan -i -r /home/$i 2>>/dev/null; сделано >> /root/infections&
Эта команда рекурсивно ищет спам и зараженные файлы в домашнем каталоге.

12. Отключить информацию заголовка Apache

Поскольку подпись вашего сервера содержит такую ​​информацию, как версии Apache и ОС, важно, чтобы вы скрыли эту информацию от посторонних глаз, используя WHM Login.

  1. После того, как вы вошли в WHM. Перейдите в раздел « Конфигурация службы»«Конфигурация Apache » → «Глобальная конфигурация ».
  2. Установите следующие значения.
    Подпись сервера = Выкл.
    Токены сервера = только продукт

13. Скрыть информацию о версии PHP

Как и в заголовках Apache, вы не должны раскрывать информацию о версии PHP. Вот шаги, чтобы скрыть эту информацию.

  1. После того, как вы вошли в WHM. Перейдите в раздел « Конфигурация службы»«Редактор конфигурации PHP» .
  2. Установите следующие значения.
    expose_php = «выкл.»

14. Отключить FTP и использовать вместо него SFTP

Хотя вы и не догадались об этом по их названиям, протоколы FTP и SFTP очень сильно отличаются друг от друга.

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

В отличие от стандартного FTP, SFTP (протокол передачи файлов SSH) шифрует как команды, так и данные, предотвращая передачу паролей и конфиденциальной информации в открытом виде по сети.

Нажмите здесь, чтобы узнать, как сгенерировать SSH-ключ и подключиться к серверу через SFTP-клиент.

Если вы просто хотите разрешить SFTP-соединение и отключить план FTP, выполните следующие шаги в WHM/cPanel.

  1. Войдите в свою WHM/cPanel как пользователь root.
  2. Перейдите к настройке FTP-сервера . В разделе «Поддержка шифрования TLS» измените его на «Необходимо (команда)» и нажмите кнопку «Сохранить » .

15. Защита cPanel и доступа к WHM

Принудительный URL-адрес HTTPS для доступа к cPanel/WHM

Чтобы защитить свой вход в cPanel или WHM с помощью шифрования на основе SSL, выполните следующие два простых шага.

  1. Войдите в WHM и перейдите в раздел « Главная» → « Конфигурация сервера » → «Настройки настройки ».
  2. Прокрутите правую сторону до вкладки перенаправления и используйте настройки, показанные на изображении ниже.

Отключение входа в cPanel-ID

Сервер cPanel допускает два типа входа в систему.

Первый — это стандартное/стандартное имя пользователя и пароль для входа, а второй — вход на сервер с помощью идентификатора cPanel.

Идентификатор cPanel позволяет пользователям развертывать одно имя пользователя и пароль, чтобы получить доступ к широкому спектру услуг cPanel.

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

  1. Войдите в WHM и перейдите в раздел « Главная » → « Центр безопасности» → «Управление внешней аутентификацией» .
  2. Измените логин cPanel-ID на отключенный, как показано на изображении ниже.

Вывод

Применив эти 15 простых советов к своему VPS или выделенному серверу, вы немедленно уменьшите свою уязвимость к атакам, как внутренним, так и внешним, и повысите безопасность вашей системы в течение нескольких часов.

И хотя эти советы уменьшат количество угроз для вашего сервера, они не панацея.

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

Тем не менее, уделяя всего несколько часов исследованиям в месяц, вы можете оставаться на переднем крае безопасности cPanel и гарантировать, что вы и ваша компания останетесь в безопасности на долгие годы.

У вас есть вопросы по поводу 15 советов, перечисленных выше? Нашли ли вы какие-либо новые функции безопасности серверов cPanel, которыми хотите поделиться? Дайте нам знать в комментариях ниже.