Базовые и продвинутые рекомендации по настройке безопасности для VPS/VDS на Linux
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы

1001 и 1 книга  
19.03.2018г.
Просмотров: 9862
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8073
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8177
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5181
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5854
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Базовые и продвинутые рекомендации по настройке безопасности для VPS/VDS на Linux

Просмотров: 711

Всё, что взаимодействует с безбрежным пространством Интернета, сталкивается с риском стать жертвой всевозможных ботов, киберпреступников и других неявных угроз. Это, в частности, относится и к ресурсам выделенных серверов или аренды VPS/VDS

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

Рассмотрим несколько базовых методов защиты вашего VPS, а к концу обсудим пару более продвинутых техник. Приведенные в статье команды основаны на ОС Ubuntu.

Основы безопасности паролей

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

Поэтому стоит обратить внимание на следующие рекомендации по безопасности:

  • Обновляйте пароль для вашего VPS/VDS хотя бы раз в квартал.
  • Убедитесь, что ваш новый пароль содержит как минимум 12 символов, включая цифры, разные буквы обоих регистров и специальные символы, разрешенные провайдером. Для генерации используйте инструменты вроде openssl:
    openssl rand <длина пароля> -<формат вывода (hex, base64 и т. д.)>
    Или pwgen:
    pwgen <длина пароля> <количество паролей>
  • Рассмотрите использование менеджеров паролей, таких как LastPass. Это освободит от необходимости запоминать доступы ко всем ресурсам. 
  • Если вы ищете более продвинутые решения, рассмотрите возможность генерации одноразовых паролей.

А еще лучше — настройте вход по SSH. 

Доступ с использованием SSH-ключей

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

SSH-ключ состоит из двух частей: публичного и приватного ключей (другое их название — открытый и закрытый соответственно) максимальной длиной до 4096 бит. Публичная часть размещается на сервере, в то время как приватная находится у пользователя и не должна попасть в чужие руки. При попытке подключения сервер создает случайное сообщение и шифрует его открытым ключом. Это сообщение может быть дешифровано только с помощью соответствующего закрытого ключа.

Сгенерировать SSH-ключ вы можете следующей командой:

ssh-keygen -t rsa

Далее введите название ключа и, при желании, дополнительную кодовую фразу для защиты. Эти два шага можно пропустить и просто нажать Enter. В результате будет сгенерировано два файла: id_rsa (приватный ключ) и id_rsa.pub (публичный ключ).

Для копирования публичной части на сервер используйте:

ssh-copy-id id_rsa.pub root@<адрес сервера>

На этом этапе нужно будет ввести пароль root.

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

ssh root@<адрес сервера> -p <номер порта SSH>

Обычно порт SSH — 22, но подробнее этот момент разберем ниже.

Двухфакторная аутентификация в личном кабинете и панели управления хостинга

Это эффективный инструмент безопасности, представляющий собой ввод временного кода (помимо пароля и логина), который отправляется на электронную почту или мобильный телефон. Даже если кто-то узнает ваш пароль, он не получит доступ к серверу без этого кода. Исключение — случай утери или кражи вашего телефона или электронной почты.

Обновление программного обеспечения 

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

В операционной системе Ubuntu обновление ПО сводится к двум командам:

  1. Для начала актуализируйте список доступных пакетов:
    sudo apt update
  2. Затем примените обновления для всех установленных программ:
    sudo apt upgrade

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

Создание резервных копий

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

  • Настройка резервного копирования всего сервера (предпочтительный вариант) или только важных его частей через контрольную панель. Однако такие бэкапы со временем могут исчерпать доступное дисковое пространство. Альтернативно можно выбрать облачное хранилище, но и там требуется следить за доступным местом. Идеально держать копии данных в разных местах и подготовиться таким образом к любым неожиданностям.
  • Использование услуги автоматического создания бэкапов, чтобы ежедневно сохранять данные на отдельном сервере. В таком случае вы не будете беспокоиться о свободном месте, так как ответственность будет лежать на плечах провайдера. Но не забывайте также сохранять копии и локально, не полагаясь только на решения хостера.

Заметка! Для дополнительной безопасности вы можете совмещать оба варианта.

Мониторинг журналов сервера

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

В Linux ключевая папка для этого — /var/log. В ней собраны записи о действиях системы, ядра, менеджеров пакетов и других серверных приложений.

Запрет на использование общественных сетей

Публичные Wi-Fi сети всегда были рискованным делом. К тому же в последнее время появилось множество поддельных сетей, таких как Evil Twin, через которые пользовательские данные напрямую попадают к мошенникам. Такие точки доступа сложно отличить на первый взгляд, поэтому лучше воздержаться от подключения через них к своему VPS. Если только вы не используете надежное VPN-соединение, гарантирующее безопасность данных.

Установка SSL-сертификата

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

Практически все VPS/VDS-провайдеры предлагают услугу установки SSL-сертификата. Он может быть предоставлен бесплатно (например, самый популярный — Let’s Encrypt) или за плату. Бесплатные варианты действуют 90 дней, и их нужно обновлять каждые три месяца (впрочем, как правило, настраивается автоматическое продление). Платные же действуют на протяжении до трех лет, уменьшая необходимость частой замены. Если взломают бесплатный сертификат, то ответственность будет лежать на вас, тогда как при проблемах с платным вариантом вы сможете потребовать возмещения убытков от поставщика услуги.

Изменение настройки портов

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

Боты обычно работают по простым алгоритмам и следуют конкретным инструкциям. Если им дана команда атаковать SSH порт, они будут направлены на порт 22, если атака идет на FTP — то на порт 21 и так далее. Один из способов обмануть такие программы — изменить стандартные номера портов и деактивировать те, которые не используются. 

Порядок действий:

  1. Активируем нужный порт с помощью iptables или ufw.
  2. Заменяем старый порт новым.
  3. После этого старый отключаем.

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

В качестве примера рассмотрим изменение 22-го порта SSH. Для этого:

  1. Откройте файл: /etc/ssh/sshd_config.
  2. Найдите строку:
    What ports, IPs and protocols we listen for
    Port 22
  3. Измените номер 22 на другой, убедившись, что он свободен. Желательно выбирать из диапазона 49152-65535.
  4. Сохраните и закройте файл.
  5. Перезапустите SSH командой:
    sudo systemctl restart sshd

Обратите внимание на два нюанса:

  • Теперь при входе по SSH вам придется указывать новый порт:
    ssh root@<адрес сервера> -p <новый номер порта>
  • Боты могут адаптироваться и пробовать разные порты, так что простая подмена не гарантирует полную безопасность.

Перед блокировкой неактивных портов нужно выяснить, какие из них вообще используются. Для этого используйте утилиты netstat и nmap. Затем при помощи утилиты iptables вы можете закрыть ненужные порты:

sudo iptables -A INPUT -p tcp --dport <номер порта> -j DROP

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

sudo iptables-save

Для просмотра текущих правил используйте:

sudo iptables -L -n -v

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

Также возможно блокировать целые сервисы с помощью утилиты update-rc.d, хотя это и не обязательно для большинства пользователей.

Ограничение доступа для root-пользователя

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

Для запрета входа под рутом:

  1. Откройте файл для редактирования:
    nano /etc/ssh/sshd_config
  2. Найдите параметр PermitRootLogin и замените значение yes на no:
    PermitRootLogin=no
  3. После внесения изменений перезагрузите SSH:
    service ssh restart

Теперь при выполнении команд с правами администратора вам придется каждый раз добавлять в начало sudo.

Если вы привыкли работать под рутом — не беда. Мы просто запретили удаленное подключение к этой учетной записи через SSH. Вы можете добавить другого пользователя в группу sudo, а затем выполнить команду sudo su и продолжить работу под root-пользователем.

Настройка системы мониторинга

Базовая система мониторинга интегрирована в большинство панелей управления VPS. Она отображает ключевые показатели системы: нагрузку на процессор, использование памяти, состояние диска. Расширенный мониторинг VPS/VDS, включающий в себя показатели работы не только основной системы, но и отдельных сервисов, становится реальным бонусом, если он доступен у вашего провайдера как базовая или дополнительная опция. 

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

Заключение

Как вы могли заметить, существует множество методов защиты VPS на Linux, которые можно реализовать самостоятельно. Если вы ощущаете нехватку опыта в работе с *unix или не стремитесь лично разбираться во всех деталях настройки, рекомендуем обратиться к надежному хостинг-провайдеру, предоставляющему 24/7 профессиональное администрирование VPS/VDS серверов.

Поделитесь в комментариях с другими методами защиты VPS, которые вы знаете!

 

 

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru