Думаю будет лишним объянять, что безопасность крайне важна, когда мы поднимаем собственный сервер.
Необходимо быть уверенным , что только авторизованные пользователи могут получить доступ к нашему серверу, конфигурации и службам.
В Ubuntu есть брандмауэр, который предварительно загружен в системе.
До этого я уже упоминал его в статье OpenVas на Ubuntu, а также в статье про ModSecurity Nginx.
Он называется UFW (Ubuntu-firewall).
Несмотря на то, что UFW – довольно простенький брандмауэр, это удобно для пользователя, выполняет фильтрацию трафика и имеет хорошую документацию.
Немного основных знаний Linux должно быть достаточно, чтобы сконфигурировать этот брандмауэр самостоятельно.
Установка UFW
Заметьте, что UFW обычно устанавлен по умолчанию в Ubuntu.
Но если что, мы можем установить его сами.
Чтобы установить UFW, выполните следующую команду:
# apt-get install ufw
Если мы запускаем веб-сервер, мы, очевидно, хотим, чтобы пользователи этого грешного мира были в состоянии получить доступ к нашему веб-сайту [веб-сайтам].
Поэтому мы должны удостовериться, что порт TCP по умолчанию для сети открыт:
# ufw allow 80/tcp
Запрет соединений
Если мы хотим запретить доступ по определенному порту, используем команду:
# ufw deny <port>/<optional: protocol>
Например, давайте лишим прав доступа к нашему дефолтному порт MySQL.
# ufw deny 3306
UFW также поддерживает упрощенный синтаксис для наиболее распространенных сервисных портов.
root@itsecforu.ru:~$ ufw deny mysql Rule updated Rule updated (v6)
Настоятельно рекомендовано ограничить доступ по порту SSH (по умолчанию, это – порт 22) отовсюду кроме наших IP-адресов, которые являются доверенными [пример: офис или дом].
Предоставление доступа доверенным IP-адресам
Как правило, мы должны были бы предоставить доступ только к публично открытым портам, таким как порт 80.
Доступ ко всем другим портам должен быть запрещен или ограничен.
Мы можем добавить свой IP-адрес дома/офиса в белый список (предпочтительно, он, как предполагается, статический IP-адресс) для доступа к нашему серверу через SSH или FTP к примеру.
# ufw allow from 192.168.0.1 to any port 22
Давайте также предоставим доступ к порту MySQL.
# ufw allow from 192.168.0.1 to any port 3306
Уже ситуация получше. Идем дальше 🙂
Активация UFW
Прежде, чем активировать (или рестартонуть) UFW, мы должны удостовериться, что по порту SSH можно получить соединения от нашего IP-адреса.
Чтобы запустить/включить наш брандмауэр UFW, используем следующую команду:
# ufw enable
Вы увидите следующее:
root@127:~$ sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Нажимаем “y” и вдогонку Enter, чтобы запустить фаервол.
Брандмауэр активен и включен.
Проверка состояния UFW
Можно посмотреть на все наши правила:
# ufw status
Вывод будет следующим:
Firewall loaded To Action From -- ------ ---- 22:tcp ALLOW 192.168.0.1 22:tcp DENY ANYWHERE
Используйте “многословный” параметр, чтобы увидеть более подробный отчет о состоянии:
# ufw status verbose
Отключение/перезагрузка/перезапуск UFW
Чтобы отключить (остановить):
# ufw disable
Если мы хотим перезагрузить UFW (перезагрузить правила), управляйте следующим:
# ufw reload
Чтобы перезапустить UFW, Вы должны будете отключить его сначала, и затем позволить его снова.
# ufw disable # ufw enable
Удаление правил
Чтобы управлять нашими правилами UFW мы должны уметь выводить их список.
Мы можете сделать это, согласовав статус UFW с параметром numbered.
Мы увидим вывод, подобный следующему:
root@itsecforu.ru:~$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN 192.168.0.1 [ 2] 80 ALLOW IN Anywhere [ 3] 3306 ALLOW IN 192.168.0.1 [ 4] 22 DENY IN Anywhere
Включение поддержки IPv6
Если вы используете IPv6 на своем VPS, вы должны быть уверены, что поддержка IPv6 включена в UFW.
Для этого откройте файл конфигурации в текстовом редакторе:
# nano /etc/default/ufw
После того как открыли, удостоверьтесь, что в параметре IPV6 установлена опция “yes”:
IPV6=yes
После внесения этого изменения сохраните файл.
Затем перезапустите UFW, отключая и повторно включая его:
# ufw disable # ufw enable
Сброс настроек UFW
Если необходимо сбросить настройки на дефолтные, можно выполнить:
# ufw reset
Заключение
В целом, UFW в состоянии защитить наш VPS от наиболее распространенных попыток взлома.
Конечно, наши меры по безопасности должны быть более серьезными, чем просто использование UFW.
Если вам нужно больше примеров использования UFW, Вы можете обратиться к UFW – Community Help Wiki.