Как открыть порты 80 (HTTP) и 443 (HTTPS) в UFW

UFW (Uncomplicated Firewall) — это инструмент для обеспечения безопасности, предустановленный в дистрибутивах Linux на базе Ubuntu. Обычно он отключен по умолчанию, но на серверных системах он может быть активен и работать. Это может помешать нам получить доступ к серверным приложениям, таким как Apache и Nginx, которые работают на портах 80 и 443.
Поскольку брандмауэр играет ключевую роль в обеспечении безопасности системы, рекомендуется оставить его включённым и разрешить (или предоставить) доступ к необходимым портам для внешнего подключения. Если вы новичок в Linux и не знаете, как это сделать, эта статья поможет вам.
Проверьте состояние портов 80 и 443 в UFW
UFW работает на основе заданных правил, но при его установке набор правил будет пустым. Однако это может быть не так в предварительно настроенной системе, особенно в системе, настроенной для конкретного приложения, где UFW может быть включен с правилами, запрещающими доступ к портам 80 и 443.
Чтобы проверить, заблокированы ли эти порты с помощью UFW, выполните команду:
$ sudo ufw status
Status active
Как видите, помимо активного статуса, здесь нет никаких указаний на какие-либо правила, а значит, мы можем свободно получать доступ к нужным портам. Однако если бы были какие-то ограничения, вывод UFW выглядел бы так:

Apache Full и его дубликат (v6) — это профили для IPv4 и IPv6, которые включают правила для портов 80 и 443. Название профиля Apache Full указано только потому, что правила были добавлены с использованием этого названия профиля.
Это может сбить с толку некоторых пользователей, поэтому при выполнении команды можно использовать verbose для вывода имени профиля и номера порта.

Наконец-то стало ясно, что порты 80 и 443 заблокированы брандмауэром UFW с использованием профиля Apache Full. Давайте узнаем, как их разрешить.
Разрешить порты 80 и 443 в UFW
Самый простой и быстрый способ снять ограничение с портов 80 и 443, независимо от способа их добавления, — использовать следующую команду:
$ sudo ufw allow 80/tcp
Rule added
Rule added (v6)
$ sudo ufw allow 443/tcp
Rule added
Rule added (v6)
Чтобы убедиться, что этим портам разрешено взаимодействовать, мы можем повторно проверить статус UFW.

Как видите, мы разрешили доступ через порты 80 и 443. Важно отметить, что хотя для Apache Full по-прежнему установлено значение DENY, конкретные правила ALLOW для портов 80 и 443 переопределяют их и не влияют на нас.
Теперь вы можете получить доступ к этим портам как внутри сети, так и за её пределами без каких-либо ограничений.
Запретить доступ к портам 80 и 443 в UFW
При любых обстоятельствах, если вы хотите повторно применить ограничение, вы можете удалить добавленные правила.
$ sudo ufw delete allow 80/tcp
Rule added
Rule added (v6)
$ sudo ufw delete allow 443/tcp
Rule added
Rule added (v6)
Хотя это и не рекомендуется, если вы окажетесь в ситуации, когда вам нужно будет заблокировать их навсегда, вы можете добавить явные правила DENY (однако их можно будет удалить позже).
$ sudo ufw deny 80/tcp $ sudo ufw deny 443/tcp
Кроме того, если вы хотите ограничить доступ к определённому IP-адресу или диапазону IP-адресов, выполните следующую команду:
$ sudo ufw allow from <IP_ADDRESS> to any port 80 $ sudo ufw allow from <IP_ADDRESS> to any port 443
После внесения изменений обязательно перезагрузите брандмауэр.
$ sudo ufw reload
Вот и всё!
Заключение
В этой статье мы узнали, как проверить состояние брандмауэра UFW, чтобы убедиться, что правила для портов 80 и 443 существуют, затем разобрались в разнице между именами профилей и номерами портов в статусе брандмауэра и, наконец, успешно сняли ограничение с этих портов с помощью UFW.
Редактор: AndreyEx