![](https://habrastorage.org/webt/m2/yq/r4/m2yqr4ewbmug2jpbx8yqwnagdqw.png)
Статистика в сфере информационной безопасности остается неутешительной. Так, DDoS-Guard зафиксировала в России 384,8 тыс DDoS–атак — и это только в первом квартале 2023 года. А по данным «РТК-Солар», количество кибератак в этот период выросло до 290 тыс. Это в полтора раза больше, чем в первом полугодии 2022 года.
Чтобы не пополнить статистику и защитить свою инфраструктуру, важно заранее позаботиться о безопасности серверов. Есть разные способы защиты, например, можно использовать файрвол или iptables. Они фильтруют входящий и исходящий трафик и отсекают нелегитимные подключения.
В этой статье мы подробнее расскажем о нашем решении — облачном файрволе Selectel. Покажем, как настроить правила трафика и установить защиту за пару кликов. Подробности под катом.
Используйте навигацию, если не хотите читать текст целиком:
→ Вспомнить все
→ Правила сетевой безопасности
→ Инструменты для защиты: облачный файрвол Selectel vs iptables
→ Как создать файрвол
→ Частые кейсы при работе с облачным файрволом
→ Заключение
Вспомнить все
Ниже мы будем говорить о приватных сетях и публичных адресах. Давайте вспомним, что это такое.
Публичные адреса — это уникальные IP-адреса, которые могут быть доступны из интернета. Они нужны для связи с устройствами в глобальной сети. Приватные подсети предназначены для использования внутри частных сетей организации и не могут напрямую общаться с интернетом.
Представьте, что у вас есть приватная подсеть с двумя серверами, на которых запущен сайт. При этом один сервер — резервный. Если первый упадет, то пользовательский трафик, который поступает по публичному адресу вашей приватной подсети, сможет маршрутизироваться на второй сервер (если это настроить).
Публичный адрес приватной подсети — ключевой элемент для доступа к вашему сайту извне. Это точка входа для пользователей. Если один из серверов перестанет работать, этот адрес позволит перенаправить трафик на вторую, резервную, машину.
![](https://habrastorage.org/webt/-3/eo/o-/-3eoo-bfp2svz-d3xtcx15pj0rw.png)
Правила сетевой безопасности
Правил сетевой безопасности много. И пусть их соблюдение не гарантирует 100% безопасности, ваша сеть станет гораздо более защищенной.
Размещайте виртуальные машины в приватной сети за роутером. Он находится между интернетом и ВМ и транслирует трафик снаружи в приватную сеть. Роутер помогает публиковать в интернете только необходимые сервисы, и с ним злоумышленникам будет сложнее получить доступ к неопубликованным машинам.
Если у вас небольшая инфраструктура, используйте для публичного доступа публичные адреса. Трафик, идущий на такие адреса, проходит через облачный роутер и может фильтроваться с помощью файрвола.
Давайте публичный доступ к серверу лишь тогда, когда это действительно нужно. Например, базы данных лучше оставлять в приватной сети, без доступа в интернет.
Держите порты закрытыми — открывайте только нужные. Открытые порты могут подвергнуть виртуальную машину атаке — злоумышленники сканируют порты в поисках уязвимостей.
Разрешайте доступ только с доверенных IP и подсетей. Это поможет предотвратить попадание нежелательного трафика в вашу сеть и уменьшит вероятность атак хакерами или вредоносными программами.
![](https://habrastorage.org/webt/nb/lo/t_/nblot_ve1t3hcw5bluwc_-did08.png)
Инструменты для защиты: облачный файрвол Selectel vs iptables
Простой способ придерживаться базовых правил безопасности сети — использовать подходящий инструмент, например, iptables или облачный файрвол.
Iptables — это программный межсетевой экран, инструмент управления сетью в Linux. Он помогает администраторам управлять входящими и исходящими пакетами данных.
Облачный файрвол Selectel позволяет настраивать сетевую безопасность для приватных подсетей и публичных IP-адресов в облачной платформе. Он назначается на внутренний порт роутера, подключенного к приватной сети, и фильтрует весь трафик, который отправляется с виртуальной машины в интернет и идет из интернета на виртуальную машину.
Что выбрать, iptables или облачный файрвол, — зависит от предпочтений администратора.
Облачный файрвол удобен, когда нужно быстро развернуть защиту. С ним даже без технических знаний и всего за пару кликов можно обезопасить всю сеть. Вся работа выполняется в удобной панели, и даже не обязательно создавать кастомные правила для трафика — можно воспользоваться шаблоном.
Iptables настраивается в консоли. Для него нужно вручную прописывать каждое правило для каждого сервера, поэтому работа занимает больше времени, особенно если серверов несколько. Кроме того, если вы удалите виртуальную машину, придется заново настраивать Iptables.
Преимущества облачного файрвола Selectel
- Простой и понятный интерфейс. Файрвол создается в панели управления. В ней легко настроить правила.
- Корректная работа. Все правила работают так, как вы их настроили.
- Сохранение состояния. Файрвол обеспечивает базовую фильтрацию входящего и исходящего трафика на транспортном уровне с сохранением состояния (stateful).
- Возможность закрыть подсеть целиком. Можно создать файрвол и применить сразу на всю подсеть, а не настраивать отдельно для каждого сервера.
- Шаблоны. Добавлены шаблоны самых популярных правил, не нужно создавать правила с нуля.
- Бесплатный. За файрвол не нужно платить.
- Удобно использовать и для стабильной инфраструктуры, и для тестов. Можно создать виртуальную машину для тестов и сразу же обеспечить для нее базовую сетевую безопасность.
Как создать файрвол
Если у вас есть один или несколько серверов, вы можете закрыть одним файрволом всю подсеть. Для этого в панели управления создайте файрвол и выберите подсеть — файрвол будет назначен на порт роутера.
![](https://habrastorage.org/getpro/habr/post_images/f3f/71d/93f/f3f71d93fdb252ede0f4e441cbc0337e.png)
Кнопка создания файрвола в панели управления Selectel.
![](https://habrastorage.org/getpro/habr/post_images/9dd/87c/d82/9dd87cd82eab9c6f0b67283e15abdf7b.png)
Выбрали подсеть.
Как создавать правила
Пока вы не разрешите легитимный трафик, файрвол будет блокировать все входящие запросы. Правила можно добавить входящего трафика — который идет в подсеть из интернета или другой приватной сети. Или для исходящего — который идет из подсети в интернет.
В правиле задаются следующие параметры:
- направление трафика: входящий или исходящий;
- действие: запретить или разрешить трафик;
- протокол: TCP, UDP, ICMP или все сразу;
- source: подсеть (CIDR), конкретный IP-адрес или все адреса — откуда идет трафик;
- source-порт — порт, с которого идет подключение к виртуальной машине или подключается ВМ;
- destination: CIDR, конкретный IP-адрес или все адреса — куда идет трафик;
- destination-порт — порт, на который идет трафик.
![](https://habrastorage.org/getpro/habr/post_images/ff6/c54/e85/ff6c54e8544a383a2ec5c5f07c81e15b.png)
Поля для создания правила. Здесь мы разрешаем входящий UDP-трафик на порт 1194.
Для разных задач подходят разные протоколы и порты. Для подключения по SSH (по умолчанию 22 порт) используют TCP, потому что он гарантирует точность передачи данных при удаленном доступе. Для OpenVPN (1194 порт) нужен UDP-протокол, так как здесь важнее скорость и эффективность соединения. ICMP, который используется для пинга, вообще не предполагает указание порта, потому что это сетевой, а не транспортный протокол.
Важно: правила привязываются не к конкретному устройству, а к IP-адресу. Если создать виртуальную машину, удалить и пересоздать вновь, правило продолжит работать для того же IP, который вы указали ранее.
Правила в списке обрабатываются сверху вниз. Например, если на пакет трафика назначить два правила, сработает то, что находится выше. Чтобы изменить приоритет, нужно поменять порядок.
![](https://habrastorage.org/getpro/habr/post_images/f4c/98d/67b/f4c98d67b82444ba9d6fa57302cdfa45.png)
Правила входящего трафика. Каждое можно изменить, поднять выше или перенести вниз. Сам файрвол можно переименовать, отключить или удалить.
Шаблоны правил
В панели управления есть шаблоны для быстрого создания популярных правил. Например, можно разрешить весь входящий трафик, открыть 22 (SSH/TCP) или 80 (HTTP/TCP) порты. Можно выбрать шаблоны на FTP, OpenVPN, ICMP или других протоколах, если они подходят под ваши задачи:
![](https://habrastorage.org/getpro/habr/post_images/a7f/435/92a/a7f43592ab1130aef31ec2fe33b74f10.png)
Примеры шаблонов.
Это не исчерпывающий список. Внутри правил есть другие шаблоны, например, для IPsec или WireGuard.
Пример создания файрвола
Частые кейсы при работе с облачным файрволом
Файрвол для веб-сервиса
Если вы размещаете на сервере какой-то веб-сервис, например, сайт или приложение, то, скорее всего, вам понадобится создать три правила.
- Открыть 443 порт, чтобы клиенты могли заходить на ваш сайт через браузер по HTTPS. Для этого создайте правило фильтрации по протоколу TCP с dst. port 443 или используйте шаблон.
- Открыть 80 порт, чтобы клиенты могли заходить на ваш сайт по HTTP. Для этого создайте правило фильтрации трафика по протоколу TCP с dst. port 80 или используйте шаблон.
- Открыть 22 порт, чтобы вы могли подключаться к ВМ по SSH из дома или офиса. Для этого создайте правило фильтрации по протоколу TCP с dst. port 22 и укажите в качестве source ваш домашний IP-адрес или CIDR подсети вашего офиса. Только обязательно убедитесь, что у вас статический домашний IP — иначе ваш адрес может меняться с каждым подключением.
Также вам понадобится одно разрешающее правило для исходящего трафика — разрешить весь трафик. С ним ваши виртуальные машины, например, смогут ходить в интернет за нужными обновлениями.
Шаблоны помогают настроить любое правило за несколько секунд.
Работа с белыми и черными списками
Для сетевой безопасности важно работать по черным и белым спискам. Они позволяют администраторам контролировать, какие сетевые соединения разрешены, а какие нет.
Черные списки содержат IP-адреса и порты, трафик с которых нужно заблокировать.
Белые списки включают доверенные IP-адреса и порты, которым разрешен доступ.
Чтобы добавить доверенным подсетям доступ к вашим виртуальным машинам, впишите их в разрешающее (allow) правило в поле source.
Порой бывает нужно запретить часть трафика, например, если вас сканировали или пытались проникнуть в сеть с определенного IP. Чтобы это сделать, внесите нежелательный адрес в запрещающее (deny) правило в поле source. И если кто-то попытается подключиться к вашему серверу с этого IP, файрвол не пропустит трафик.
![](https://habrastorage.org/getpro/habr/post_images/77e/831/9a2/77e8319a25efdc4515dc501690a9ca8a.png)
Добавили IP в белый список и целую подсеть — в черный.
За облачным роутером находится балансировщик и кластер Kubernetes
Файрвол подходит для базовой сетевой защиты не только одной или нескольких виртуальных машин, но и большой инфраструктуры. За роутером может находиться облачный балансировщик, а за ним — кластер Managed Kubernetes и виртуальные машины, на которые балансируется трафик.
В таком случае балансировщику назначается публичный IP. Весь трафик, который идет на этот адрес, проходит через роутер с файрволом и фильтруется. В результате балансировщик получает разрешенный трафик и только его балансирует по виртуальным машинам.
Мы разрешаем создавать до 100 правил на проект, чтобы можно было отфильтровать все, что нужно. Вы можете увеличить лимит через запрос в техподдержку.
Заключение
Облачный файрвол Selectel покрывает базовую сетевую безопасность. Он ограничивает весь трафик и разрешает доступ лишь с тех адресов или подсетей, которым вы доверяете.
Для защиты данных также важно придерживаться определенных правил. Например, размещать виртуальные машины в приватной сети за роутером, открывать доступ только с доверенных IP и подсетей и держать порты закрытыми.