Как защитить ваш облачный сервер (Ubuntu и CentOS)?

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

Сеть переходит в облако с общего хостинга, что дает множество преимуществ.

  • Более быстрое время отклика, поскольку ресурсы не используются другими пользователями
  • Полный контроль над технологическим стеком
  • Полный контроль над операционной системой
  • Бюджетный
Распространение доли веб-сайтов с использованием веб-хостингов

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

Давайте перейдем к практическому руководству по безопасности Ubuntu и CentOS VM.

1. Изменение стандартного SSH порта

По умолчанию SSH прослушивает 22 порт. Это означает, что если кто-то обнаружит ваш IP адрес, то сможет попитаться подключиться к вашему серверу

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

Лучше всего изменить порт SSH на что-то другое, поэтому, даже если кто-то знает IP-адрес, он не сможет попытаться подключиться с использованием порта SSH по умолчанию.

Изменить порт SSH на Ubuntu / CentOS очень просто.

  • Войдите в свою виртуальную машину с правами суперпользователя (sudo)
  • Сделайте резервную копию sshd_config (/etc/ssh/sshd_config)
  • Откройте файл с помощью редактора VI (редактор на ваше усмотрение)
vi /etc/ssh/sshd_config
  • Ищите строку, которая имеет значение Port 22 (обычно в начале файла)
# What ports, IPs and protocols we listen for
Port 22
  • Замените 22 на другой номер ( запомните, так-как вам это понадобится для подключения). Скажем 5000
Port 5000
  • Сохраните файл и перезапустите SSH.
service sshd restart

Теперь вы или кто-либо другой не сможете подключиться к вашему серверу через порт SSH по умолчанию (22). Вместо этого вы можете использовать новый порт для подключения.

Если вы используете SSH-клиент или Терминал на MAC, вы можете использовать -p для определения пользовательского порта.

ssh -p 5000 [email protected]

2. Защита от атак грубой силы (Brute-force)

Одним из распространенных механизмов, используемых хакером для получения контроля над вашим сервером, является инициирование атак методом перебора на сервер и веб-платформу, такую ​​как WordPress , Joomla и т.д.

Это может быть опасно, если не принимать всерьез. Есть две популярные программы, которые вы можете использовать для защиты Linux от Brute-force.

SSH Guard

SSHGuard контролирует запущенные сервисы из файлов системного журнала и блокирует повторные неудачные попытки входа в систему.

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

  • Pure FTP, PRO FTP, VS FTP, FreeBSD FTP
  • Exim
  • Sendmail
  • Dovecot
  • Cucipop
  • UWimap

Вы можете установить SSHGuard с помощью следующих команд.

Ubuntu:

apt-get install SSHGuard

CentOS:

wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/hornos:/centos/CentOS_CentOS-6/x86_64/sshguard-1.5-7.1.x86_64.rpm
rpm -ivh sshguard-1.5-7.1.x86_64.rpm

fail2ban

Fail2Ban - еще одна популярная программа для защиты SSH. Fail2Ban автоматически обновляет правило iptables, если неудачная попытка входа в систему достигает определенного порога.

Установка fail2ban:

Ubuntu:

apt-get install fail2ban

CentOS:

yum install epel-release
yum install fail2ban

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

3. Отключить аутентификацию на основе пароля

Если вы входите на сервер с одного или двух компьютеров, вы можете использовать аутентификацию на основе SSH-ключа.

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

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

Примечание: предполагается, что вы уже настроили обмен ключами SSH.

  • Измените файл /etc/ssh/sshd_configс помощью редактора vi (редактор на ваше усмотрение)
  • Добавьте следующую строку или раскомментируйте ее, если она существует
PasswordAuthentication no
  • Перезагрузите SSH

4. Защита от DDoS-атак

DDoS (Distributed Denial of Service) может происходить на любом уровне, и это последнее, что вы хотите иметь, как владелец бизнеса.

Поиск исходного IP-адреса возможен, и в качестве лучшей практики не следует раскрывать IP-адрес своего сервера общедоступному интернету. Есть несколько способов скрыть Исходный IP, чтобы предотвратить DDoS на ваш сервер.

Используйте балансировщик нагрузки (LB)

Внедрить балансировщик нагрузки с выходом в интернет, чтобы IP-адрес сервера не был открыт для сети. Существует множество балансировщиков нагрузки: Google Cloud LB, AWS ELB, Linode Nodebalancer, DO LB и т.д.

Использовать балансировщик нагрузки

Используйте CDN

CDN (сеть доставки контента) - один из лучших способов повысить производительность и безопасность веб-сайта.

При реализации CDN вы настраиваете запись DNS с произвольным IP-адресом, предоставленным поставщиком CDN. Делая это, вы афишируете IP-адрес CDN-провайдера для своего домена, а источник не раскрывается.

Существует множество провайдеров CDN для ускорения работы сайта, защиты от DDoS, WAF и многих других функций.

Так что выберите поставщика CDN, который обеспечивает производительность и безопасность.

Настройте параметры iptables

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

Используйте брандмауэр

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

Их много, но одним из самых популярных является UFW (Uncomplicated Firewall) для Ubuntu и FirewallD для CentOS.

5. Регулярное резервное копирование

Бэкап твой друг! Когда ничего не работает, резервная копия спасет вас.

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

Узнайте у своего провайдера VPS, как включить службу резервного копирования. Если вы используете Google Compute Engine или AWS, запланируйте ежедневный снимок.

Резервное копирование позволит вам быстро восстановить всю виртуальную машину, и вы снова вернетесь в бизнес.

6. Регулярное обновление

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

В Ubuntu вы можете запустить  apt-get update убедиться, что установлены последние пакеты.

В CentOS вы можете использовать yum update

7. Не оставляйте открытые порты

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

Сохранение нежелательных открытых портов, является желательным для злоумышленника. Если вы просто размещаете свой сайт на своей виртуальной машине, то, скорее всего, вам нужен порт 80 (HTTP) или 443 (HTTPS).

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

Если вы используете Google Cloud, разрешите необходимые порты, используя «Firewall rules».

Заключение

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