Открыть порт Ubuntu ufw
Обновлено: 21.11.2024
UFW или Uncomplicated Firewall — это интерфейс командной строки для iptables, специально разработанный для упрощения процесса настройки брандмауэра.
Iptables – чрезвычайно гибкая утилита брандмауэра, созданная для операционных систем Linux. Iptables — отличный инструмент со множеством функций, которые можно использовать для защиты вашей системы Linux от нежелательного трафика. Однако новичкам может быть сложно научиться правильно использовать его при настройке брандмауэра. В результате UFW хорошо подходит для начинающих, и вы можете легко изучить, настроить и использовать его.
UFW – отличный брандмауэр, предназначенный для работы на узлах или серверах. Он разрешает или блокирует входящие и исходящие соединения с сервером и с него. Вы можете заблокировать порты, IP-адреса или даже целые подсети с помощью UFW. Он не такой гибкий, как iptables, но гораздо проще для основных операций. Он призван предоставить простой в использовании интерфейс для людей, незнакомых с концепцией брандмауэра, и в то же время упростить сложные команды iptables, чтобы помочь администратору, который знает, что делает.
В этом руководстве мы покажем вам, как использовать брандмауэр UFW, на практических примерах.
Обратите внимание: выполнение этих действий может привести к простою вашего сервера, если вы не будете осторожны. Не делайте этого на живом сайте, если вы точно не знаете, что делаете. Рекомендуется создать новый сервер из моментального снимка и протестировать его, а затем перенести изменения обратно на рабочий сервер, как только вы убедитесь, что все работает.
Предпосылки
- Экземпляр Ubuntu в облаке Webdock
- У вас есть доступ через оболочку (SSH) к вашему VPS.
Убедитесь, что UFW установлен
Брандмауэр UFW предварительно установлен на серверах Webdock. По умолчанию разрешены входящие подключения к портам 21, 22, 80, 443 и 50000-50099.
Вы можете проверить все правила, добавленные брандмауэром UFW, с помощью следующей команды:
Вы должны получить следующий результат:
Примечание. Не удаляйте ни одно из приведенных выше правил, если вы не знаете, что делаете, поскольку они необходимы для работы нашего стека LAMP/LEMP.
Разрешение входящих подключений с помощью UFW
Вы можете добавить правила UFW, указав номер службы или порта.
Например, чтобы добавить правило UFW, разрешающее TCP-порты 80 и 443, выполните следующую команду:
Добавьте правило UFW, разрешающее UDP-порт 21, с помощью следующей команды:
Вы также можете разрешить определенный диапазон портов через брандмауэр UFW. Например, добавьте правило UFW, чтобы разрешить порт TCP с 6000 по 6500, выполните следующую команду:
Вы также можете разрешить определенному IP-адресу (192.168.0.100) доступ ко всем портам через брандмауэр UFW, как показано ниже:
Чтобы разрешить определенному IP-адресу (192.168.0.200) доступ к определенному порту 8088, выполните следующую команду:
Чтобы разрешить определенной подсети сети (192.168.2.0/24) доступ ко всем портам, выполните следующую команду:
Отказ от входящих подключений с помощью UFW
По умолчанию UFW блокирует все входящие подключения, поэтому обычно не требуется добавлять определенные правила запрета. Однако, если вы, например, разрешили диапазон портов, может оказаться целесообразным добавить определенные правила запрета или, например, если вы хотите запретить трафик с определенных IP-адресов.
В качестве примера правила UFW для запрета службы SMTP выполните следующую команду:
Чтобы запретить TCP-порт 389, выполните следующую команду:
Чтобы запретить UDP-порт 137, выполните следующую команду:
Чтобы запретить все подключения с определенного IP-адреса (192.168.0.150), выполните следующую команду:
Чтобы запретить определенный диапазон портов (8000:8200), выполните следующую команду:
Чтобы объединить две команды, чтобы запретить трафик с определенного IP-адреса на определенный диапазон портов, вы просто выполните
Список правил UFW
Если вы хотите вывести список всех добавленных правил UFW, выполните следующую команду:
Вы должны увидеть все правила UFW в следующем выводе:
Удаление правил UFW
Есть два способа удалить правила UFW.
Удаление правил по спецификации
Самый простой и легкий способ удалить правило UFW — указать фактическое правило.
Чтобы удалить правило UFW "разрешить mysql", выполните следующую команду:
Чтобы удалить правило UFW "разрешить 443/tcp", выполните следующую команду:
Чтобы удалить правило UFW "разрешить 21/udp", выполните следующую команду:
Удаление правил по номеру правила
Если вы хотите удалить правила UFW, используя номер правила, вам сначала нужно перечислить все ваши правила UFW по номеру правила.
Вы можете запустить следующую команду, чтобы перечислить все правила брандмауэра по номерам.
Вы должны получить следующий результат:
После того как у вас есть все правила UFW с номером, вы можете использовать команду "ufw delete", за которой следует номер правила, которое вы хотите удалить.
Например, чтобы удалить правило UFW с номером 20, выполните следующую команду:
Вас попросят подтвердить удаление правила:
Введите y и нажмите Enter, чтобы удалить правило.
Важно! Номер правила изменится автоматически после удаления правила. Поэтому рекомендуется перечислить правила перед удалением другого правила.
Отключение брандмауэра UFW
Если вы хотите отключить брандмауэр UFW, выполните следующую команду:
Вы можете снова включить брандмауэр UFW в любое время, просто выполнив следующую команду:
Если вы хотите полностью сбросить настройки брандмауэра UFW и удалить все существующие правила, вы можете использовать следующую команду:
Вам будет предложено сбросить все правила до правил по умолчанию, как показано ниже:
Введите y и нажмите Enter, чтобы удалить все правила:
Обратите внимание: если вы управляете своим сервером через SSH, не удаляйте правило UFW, разрешающее трафик SSH (обычно через порт 22), так как это лишит вас доступа к оболочке. Вы будете заблокированы для доступа к своему серверу и не сможете подключиться к своему серверу Webdock, не связавшись со службой поддержки, чтобы мы могли снова разрешить доступ.
Проверка, сработали ли ваши правила
Заключение
Как видите, UFW — это простой и удобный инструмент для настройки и управления брандмауэром iptables. Все команды, которые вы видели в приведенном выше руководстве, важны для понимания того, как работает брандмауэр UFW и как вы можете использовать его в производственной среде. Надеюсь, теперь вы знаете, как ограничить нежелательные подключения с помощью брандмауэра UFW.
- Связанные
- Контрольный список безопасности сервера
- Как проверить наличие открытых портов на сервере Ubuntu
- Настройки безопасности SSH
- Как настроить Fail2Ban для общих служб
- Как защитить Nginx с помощью брандмауэра Naxsi на Ubuntu 18.04 VPS
- Как защитить Nginx с помощью брандмауэра Naxsi на Ubuntu 20.04 VPS
- Как настроить заголовки безопасности в Nginx и Apache
- Как включить шифрование для MariaDB
Если вам нужна помощь по этой статье или у вас есть какие-либо вопросы относительно хостинга в целом, свяжитесь с нами.
Webdock – это хостинг-провайдер мирового уровня, предназначенный для профессионалов и полупрофессионалов и предлагающий абсолютно потрясающий и надежный хостинг.
UFW, или Uncomplicated Firewall, — это интерфейс для iptables, предназначенный для упрощения процесса настройки брандмауэра. Хотя iptables является надежным и гибким инструментом, новичкам может быть сложно научиться использовать его для правильной настройки брандмауэра. Если вы хотите начать защищать свою сеть и не знаете, какой инструмент использовать, UFW может быть для вас правильным выбором.
В этом руководстве показано, как настроить брандмауэр с помощью UFW в Ubuntu 18.04.
Предпосылки
Чтобы следовать этому руководству, вам потребуется:
- Один сервер Ubuntu 18.04 с пользователем без полномочий root, который можно настроить, выполнив шаги 1–3 в руководстве по начальной настройке сервера с Ubuntu 18.04.
UFW устанавливается по умолчанию в Ubuntu. Если он был удален по какой-либо причине, вы можете установить его с помощью sudo apt install ufw .
Шаг 1. Убедитесь, что IPv6 включен
В последних версиях Ubuntu IPv6 включен по умолчанию. На практике это означает, что большинство правил брандмауэра, добавленных на сервер, будут включать как версию IPv4, так и версию IPv6, последняя идентифицируется как v6 в выводе команды состояния UFW. Чтобы убедиться, что IPv6 включен, вы можете проверить файл конфигурации UFW в /etc/default/ufw. Откройте этот файл с помощью nano или вашего любимого редактора командной строки:
Затем убедитесь, что для параметра IPV6 установлено значение yes . Это должно выглядеть так:
Сохраните и закройте файл. Если вы используете nano , вы можете сделать это, нажав CTRL+X , затем Y и ENTER для подтверждения.
Когда UFW будет включен на следующем этапе этого руководства, он будет настроен на запись правил брандмауэра IPv4 и IPv6.
Шаг 2 — Настройка политик по умолчанию
Если вы только начинаете работать с UFW, в первую очередь рекомендуется проверить политики брандмауэра по умолчанию. Эти правила определяют, как обрабатывать трафик, который явно не соответствует другим правилам.
По умолчанию UFW запрещает все входящие подключения и разрешает все исходящие. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, в то время как любое приложение на сервере сможет получить доступ к внешнему миру. Дополнительные правила, разрешающие определенные службы и порты, включены в качестве исключений из этой общей политики.
Чтобы убедиться, что вы сможете следовать остальной части этого руководства, вы сейчас настроите политики UFW по умолчанию для входящего и исходящего трафика.
Чтобы установить политику входящих сообщений UFW по умолчанию для отказа , выполните:
Чтобы разрешить исходящую политику UFW по умолчанию, запустите:
Эти команды по умолчанию запрещают входящие и разрешают исходящие соединения.Одних только этих настроек брандмауэра по умолчанию может быть достаточно для персонального компьютера, но серверам обычно необходимо отвечать на входящие запросы от внешних пользователей. Мы рассмотрим это позже.
Шаг 3. Разрешение SSH-соединений
Разрешение профиля приложения OpenSSH UFW
После установки большинство приложений, использующих сетевые подключения, регистрируют профиль приложения в UFW, что позволяет пользователям быстро разрешать или запрещать внешний доступ к службе. Вы можете проверить, какие профили в настоящее время зарегистрированы в UFW, с помощью:
Чтобы включить профиль приложения OpenSSH, выполните:
Это создаст правила брандмауэра, разрешающие все подключения к порту 22 , который по умолчанию прослушивается демоном SSH.
Разрешение SSH по имени службы
Еще один способ настроить UFW для разрешения входящих SSH-подключений — указать имя службы: ssh .
UFW знает, какие порты и протоколы использует служба, на основе файла /etc/services.
Разрешение SSH по номеру порта
В качестве альтернативы вы можете написать эквивалентное правило, указав порт вместо профиля приложения или имени службы. Например, эта команда работает так же, как и предыдущие примеры:
Если вы настроили демон SSH для использования другого порта, вам нужно будет указать соответствующий порт. Например, если ваш SSH-сервер прослушивает порт 2222 , вы можете использовать эту команду, чтобы разрешить подключения на этом порту:
Теперь, когда ваш брандмауэр настроен на разрешение входящих SSH-подключений, вы можете включить его.
Шаг 4. Включение UFW
Теперь ваш брандмауэр должен быть настроен на разрешение подключений SSH. Чтобы проверить, какие правила были добавлены на данный момент, даже когда брандмауэр все еще отключен, вы можете использовать:
Подтвердив, что у вас есть правило, разрешающее входящие SSH-соединения, вы можете включить брандмауэр с помощью:
Вы получите предупреждение о том, что команда может прервать существующие SSH-соединения. Вы уже настроили правило брандмауэра, разрешающее SSH-подключения, поэтому можно продолжить. Ответьте на приглашение с помощью y и нажмите ENTER .
Теперь брандмауэр активен. Запустите команду sudo ufw status verbose, чтобы просмотреть установленные правила. В оставшейся части этого руководства более подробно рассказывается, как использовать UFW, например разрешать или запрещать различные типы подключений.
Шаг 5. Разрешение других подключений
На этом этапе вы должны разрешить все другие подключения, на которые должен отвечать ваш сервер. Соединения, которые вы должны разрешить, зависят от ваших конкретных потребностей. Вы уже знаете, как писать правила, разрешающие соединения на основе профиля приложения, имени службы или порта; вы уже сделали это для SSH на порту 22. Вы также можете сделать это для:
Не забудьте проверить, какие профили приложений доступны для вашего сервера, с помощью sudo ufw app list.
Есть несколько других способов разрешить подключения, помимо указания порта или известного имени службы. Мы увидим некоторые из них далее.
Определенные диапазоны портов
Вы можете указать диапазоны портов с помощью UFW. Некоторые приложения используют несколько портов вместо одного порта.
Например, чтобы разрешить подключения X11, использующие порты 6000–6007, используйте следующие команды:
При указании диапазонов портов с помощью UFW необходимо указать протокол ( tcp или udp ), к которому должны применяться правила. Мы не упоминали об этом раньше, потому что не указание протокола автоматически разрешает использование обоих протоколов, что в большинстве случаев допустимо.
Конкретные IP-адреса
При работе с UFW вы также можете указать IP-адреса в своих правилах. Например, если вы хотите разрешить подключения с определенного IP-адреса, такого как рабочий или домашний IP-адрес 203.0.113.4, вам нужно использовать параметр from, указав затем IP-адрес, который вы хотите разрешить:
Вы также можете указать порт, к которому разрешено подключение IP-адреса, добавив к любому порту номер порта. Например, если вы хотите разрешить 203.0.113.4 подключаться к порту 22 (SSH), используйте следующую команду:
Подсети
Если вы хотите разрешить подсеть IP-адресов, вы можете сделать это, используя нотацию CIDR для указания сетевой маски. Например, если вы хотите разрешить все IP-адреса в диапазоне от 203.0.113.1 до 203.0.113.254, вы можете использовать эту команду:
Аналогичным образом вы также можете указать порт назначения, к которому разрешено подключение подсети 203.0.113.0/24. Опять же, в качестве примера мы будем использовать порт 22 (SSH):
Подключения к определенному сетевому интерфейсу
Если вы хотите создать правило брандмауэра, которое применяется только к определенному сетевому интерфейсу, вы можете сделать это, указав «разрешить вход», а затем имя сетевого интерфейса.
Возможно, вы захотите просмотреть свои сетевые интерфейсы, прежде чем продолжить. Для этого используйте эту команду:
Выделенный вывод указывает имена сетевых интерфейсов. Обычно они называются eth0 или enp3s2 .
Или, если вы хотите, чтобы ваш сервер базы данных MySQL (порт 3306) прослушивал соединения, например, через частный сетевой интерфейс eth1, вы можете использовать эту команду:
Это позволит другим серверам в вашей частной сети подключаться к вашей базе данных MySQL.
Шаг 6. Отказ в подключении
Если вы не изменили политику по умолчанию для входящих подключений, UFW настроен на запрет всех входящих подключений. Как правило, это упрощает процесс создания политики безопасного брандмауэра, требуя от вас создания правил, которые явно разрешают определенные порты и IP-адреса.
Однако иногда вам может понадобиться запретить определенные подключения на основе исходного IP-адреса или подсети, возможно, потому, что вы знаете, что ваш сервер подвергается атаке оттуда. Кроме того, если вы хотите изменить политику входящих подключений по умолчанию на разрешающую (что не рекомендуется), вам потребуется создать запрещающие правила для любых служб или IP-адресов, для которых вы не хотите разрешать подключения.
Чтобы написать запрещающие правила, вы можете использовать ранее описанные команды, заменив allow на deny.
Или, если вы хотите запретить все соединения с 203.0.113.4, вы можете использовать эту команду:
В некоторых случаях вы также можете заблокировать исходящие соединения с сервера. Чтобы запретить всем пользователям использовать порт на сервере, например порт 25 для SMTP-трафика, вы можете использовать команду deny out, за которой следует номер порта:
Это заблокирует весь исходящий SMTP-трафик на сервере.
Шаг 7 — Удаление правил
Умение удалять правила брандмауэра так же важно, как и умение их создавать. Существует два разных способа указать, какие правила следует удалить: по номеру правила или по его удобочитаемому названию (аналогично тому, как правила указывались при их создании).
Удаление правила UFW по номеру
Удаление правила UFW по имени
Вместо использования номеров правил вы также можете ссылаться на правило по его удобочитаемому наименованию, которое зависит от типа правила (обычно разрешает или запрещает) и имени службы или номера порта, которые были целью для этого правила. , или имя профиля приложения, если оно использовалось. Например, если вы хотите удалить разрешающее правило для профиля приложения под названием Apache Full, которое ранее было включено, вы можете использовать:
При удалении правил UFW по имени удаляются как правила IPv4, так и правила IPv6, если они существуют.
Шаг 8. Проверка статуса и правил UFW
В любое время вы можете проверить статус UFW с помощью этой команды:
Если функция UFW отключена по умолчанию, вы увидите что-то вроде этого:
Если UFW активен, что должно быть, если вы выполнили шаг 3, в выводе будет указано, что он активен, и будут перечислены все установленные правила. Например, если брандмауэр разрешает подключения SSH (порт 22) из любого места, вывод может выглядеть примерно так:
Используйте команду status, если хотите проверить, как UFW настроил брандмауэр.
Шаг 9. Отключение или сброс UFW (необязательно)
Если вы решите, что не хотите использовать UFW, вы можете отключить его с помощью этой команды:
Все правила, созданные с помощью UFW, больше не будут активны. Вы всегда можете запустить sudo ufw enable, если вам понадобится активировать его позже.
Если у вас уже настроены правила UFW, но вы решили начать заново, вы можете использовать команду сброса:
Это отключит UFW и удалит все ранее определенные правила. Это должно дать вам новый старт с UFW. Имейте в виду, что исходные настройки политик по умолчанию не изменятся, если вы их когда-либо изменяли.
Заключение
Теперь ваш брандмауэр настроен на разрешение (по крайней мере) SSH-соединений. Обязательно разрешите любые другие входящие подключения, которые требуются вашему серверу, и ограничьте любые ненужные подключения, чтобы ваш сервер был функциональным и безопасным.
Чтобы узнать о более распространенных конфигурациях UFW, ознакомьтесь с руководством UFW Essentials: Common Firewall Rules and Commands.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
UFW (несложный брандмауэр) – это инструмент настройки брандмауэра, работающий поверх iptables и включенный по умолчанию в дистрибутивы Ubuntu. Он предоставляет упрощенный интерфейс для настройки распространенных вариантов использования брандмауэра с помощью командной строки.
Это руководство в виде памятки содержит краткий справочник по распространенным вариантам использования и командам UFW, включая примеры того, как разрешать и блокировать службы по порту, сетевому интерфейсу и исходному IP-адресу.
Как пользоваться этим руководством
- Это руководство представлено в формате шпаргалки с автономными фрагментами командной строки.
- Перейти к любому разделу, имеющему отношение к задаче, которую вы пытаетесь выполнить.
- Когда вы видите выделенный текст в командах этого руководства, имейте в виду, что этот текст должен относиться к IP-адресам из вашей собственной сети.
Помните, что вы можете проверить текущий набор правил UFW с помощью sudo ufw status или sudo ufw status verbose .
Подтвердить статус UFW
Чтобы проверить, включен ли ufw, запустите:
Вывод покажет, активен ли ваш брандмауэр или нет.
Включить UFW
Если вы получили сообщение Статус: неактивно при запуске ufw status , это означает, что брандмауэр еще не включен в системе. Вам нужно будет запустить команду, чтобы включить его.
По умолчанию при включении UFW блокирует внешний доступ ко всем портам на сервере. На практике это означает, что если вы подключитесь к серверу через SSH и включите ufw до того, как разрешите доступ через порт SSH, вы будете отключены. Убедитесь, что вы следуете разделу о том, как включить доступ по SSH в этом руководстве, прежде чем включать брандмауэр, если это ваш случай.
Чтобы включить UFW в вашей системе, запустите:
Вы увидите следующий вывод:
Чтобы узнать, что в данный момент заблокировано или разрешено, вы можете использовать подробный параметр при запуске ufw status , как показано ниже:
Отключить UFW
Если по какой-то причине вам нужно отключить UFW, вы можете сделать это с помощью следующей команды:
Имейте в виду, что эта команда полностью отключит службу брандмауэра в вашей системе.
Заблокировать IP-адрес
Чтобы заблокировать все сетевые подключения, исходящие с определенного IP-адреса, выполните следующую команду, заменив выделенный IP-адрес IP-адресом, который вы хотите заблокировать:
В этом примере from 203.0.113.100 указывает исходный IP-адрес «203.0.113.100».
Если вы сейчас запустите sudo ufw status, вы увидите, что указанный IP-адрес указан как запрещенный:
Все соединения, входящие и исходящие, блокируются для указанного IP-адреса.
Заблокировать подсеть
Если вам нужно заблокировать всю подсеть, вы можете использовать адрес подсети в качестве параметра from команды ufw deny. Это заблокирует все IP-адреса в примере подсети 203.0.113.0/24:
Блокировка входящих подключений к сетевому интерфейсу
Чтобы заблокировать входящие подключения с определенного IP-адреса к определенному сетевому интерфейсу, выполните следующую команду, заменив выделенный IP-адрес IP-адресом, который вы хотите заблокировать:
Параметр in указывает ufw применять правило только для входящих подключений, а параметр on eth0 указывает, что правило применяется только для интерфейса eth0. Это может быть полезно, если у вас есть система с несколькими сетевыми интерфейсами (включая виртуальные) и вам нужно заблокировать внешний доступ к некоторым из этих интерфейсов, но не ко всем.
Разрешить IP-адрес
Чтобы разрешить все сетевые подключения, исходящие с определенного IP-адреса, выполните следующую команду, заменив выделенный IP-адрес IP-адресом, которому вы хотите разрешить доступ:
Если вы сейчас запустите sudo ufw status, вы увидите вывод, похожий на этот, со словом ALLOW рядом с только что добавленным IP-адресом.
Вы также можете разрешить подключения из всей подсети, указав соответствующую маску подсети для хоста, например 203.0.113.0/24 .
Разрешить входящие подключения к сетевому интерфейсу
Чтобы разрешить входящие подключения с определенного IP-адреса к определенному сетевому интерфейсу, выполните следующую команду, заменив выделенный IP-адрес IP-адресом, который вы хотите разрешить:
Параметр in указывает ufw применять правило только для входящих подключений, а параметр on eth0 указывает, что правило применяется только для интерфейса eth0.
Если вы сейчас запустите sudo ufw status, вы увидите вывод, похожий на этот:
Удалить правило UFW
Чтобы удалить правило, которое вы ранее установили в UFW, используйте ufw delete, затем правило (разрешить или запретить) и целевую спецификацию. В следующем примере удаляется правило, ранее установленное для разрешения всех подключений с IP-адреса 203.0.113.101 :
Еще один способ указать, какое правило вы хотите удалить, — указать идентификатор правила. Эту информацию можно получить с помощью следующей команды:
Из вывода видно, что есть два активных правила. Первое правило с выделенными значениями запрещает все подключения с IP-адреса 203.0.113.100. Второе правило разрешает подключения к интерфейсу eth0 с IP-адреса 203.0.113.102 .
Поскольку по умолчанию UFW уже блокирует любой внешний доступ, если это явно не разрешено, первое правило является избыточным, поэтому его можно удалить. Чтобы удалить правило по его идентификатору, выполните:
Вам будет предложено подтвердить операцию и убедиться, что предоставленный вами идентификатор относится к правильному правилу, которое вы хотите удалить.
Если вы снова отобразите свои правила с помощью sudo ufw status , вы увидите, что правило было удалено.
Список доступных профилей приложений
При установке приложения, использующие сетевые подключения, обычно настраивают профиль UFW, который можно использовать для разрешения подключения с внешних адресов. Часто это то же самое, что и запуск ufw allow из , с тем преимуществом, что предоставляется ярлык, который абстрагирует конкретные номера портов, которые использует служба, и предоставляет удобную номенклатуру для служб, на которые ссылаются.
Чтобы получить список доступных профилей, выполните следующее:
Если вы установили службу, например веб-сервер или другое программное обеспечение, зависящее от сети, а профиль не был доступен в UFW, сначала убедитесь, что служба включена. Для удаленных серверов у вас обычно будет легко доступный OpenSSH:
Включить профиль приложения
Чтобы включить профиль приложения UFW, запустите ufw allow, а затем имя профиля приложения, которое вы хотите включить, которое можно получить с помощью команды sudo ufw app list. В следующем примере мы включаем профиль OpenSSH, который разрешает все входящие подключения SSH через порт SSH по умолчанию.
Отключить профиль приложения
Чтобы отключить профиль приложения, ранее настроенный в UFW, необходимо удалить соответствующее правило. Например, рассмотрим следующий вывод sudo ufw status :
Помните, что вы можете перечислить все доступные профили приложений с помощью sudo ufw app list .
Разрешить SSH
При работе с удаленными серверами убедитесь, что порт SSH открыт для подключений, чтобы вы могли удаленно войти на сервер.
Следующая команда активирует профиль приложения OpenSSH UFW и разрешит все подключения к порту SSH по умолчанию на сервере:
Хотя альтернативный синтаксис менее удобен для пользователя, можно указать точный номер порта службы SSH, который по умолчанию обычно равен 22:
Разрешить входящий SSH с определенного IP-адреса или подсети
Чтобы разрешить входящие подключения с определенного IP-адреса или подсети, вы должны включить директиву from для определения источника подключения. Это потребует, чтобы вы также указали адрес назначения с параметром to. Чтобы заблокировать это правило только для SSH, вы ограничите протокол (протокол) до tcp, а затем используете параметр порта и установите для него значение 22 , порт SSH по умолчанию.
Следующая команда разрешает только подключения SSH с IP-адреса 203.0.113.103 :
Вы также можете использовать адрес подсети в качестве параметра from, чтобы разрешить входящие SSH-соединения из всей сети:
Разрешить входящую Rsync с определенного IP-адреса или подсети
Программу Rsync, работающую через порт 873, можно использовать для передачи файлов с одного компьютера на другой.
Чтобы разрешить входящие подключения rsync с определенного IP-адреса или подсети, используйте параметр from, чтобы указать исходный IP-адрес, и параметр port, чтобы установить порт назначения 873. Следующая команда разрешит только соединения Rsync с IP-адреса 203.0.113.103:
Чтобы разрешить всей подсети 203.0.113.0/24 синхронизироваться с вашим сервером, выполните:
После установки веб-сервер Nginx устанавливает на сервере несколько разных профилей UFW. После того, как вы установили и включили Nginx в качестве службы, выполните следующую команду, чтобы определить, какие профили доступны:
После установки веб-сервер Apache устанавливает на сервере несколько разных профилей UFW. После того, как вы установили и включили Apache как службу, выполните следующую команду, чтобы определить, какие профили доступны:
Разрешить подключение к MySQL с определенного IP-адреса или подсети
MySQL прослушивает клиентские подключения через порт 3306 . Если ваш сервер базы данных MySQL используется клиентом на удаленном сервере, вам потребуется создать правило UFW, чтобы разрешить такой доступ.
Чтобы разрешить входящие подключения MySQL с определенного IP-адреса или подсети, используйте параметр from, чтобы указать исходный IP-адрес, и параметр port, чтобы установить порт назначения 3306 .
Следующая команда позволит IP-адресу 203.0.113.103 подключиться к порту MySQL сервера:
Чтобы разрешить всей подсети 203.0.113.0/24 подключаться к вашему серверу MySQL, выполните:
Разрешить подключение PostgreSQL с определенного IP-адреса или подсети
PostgreSQL прослушивает клиентские подключения через порт 5432 . Если ваш сервер базы данных PostgreSQL используется клиентом на удаленном сервере, вы должны обязательно разрешить этот трафик.
Чтобы разрешить входящие соединения PostgreSQL с определенного IP-адреса или подсети, укажите источник с параметром from и установите порт 5432 :
Чтобы разрешить всей подсети 203.0.113.0/24 подключаться к вашему серверу PostgreSQL, выполните:
Блокировка исходящей SMTP-почты
Почтовые серверы, такие как Sendmail и Postfix, обычно используют порт 25 для трафика SMTP. Если ваш сервер не должен отправлять исходящую почту, вы можете заблокировать такой трафик.Чтобы заблокировать исходящие SMTP-соединения, выполните:
Это настраивает ваш брандмауэр так, чтобы он пропускал весь исходящий трафик через порт 25 . Если вам нужно отклонить исходящие соединения через другой номер порта, вы можете повторить эту команду и заменить 25 номером порта, который вы хотите заблокировать.
Заключение
UFW — это мощный инструмент, который при правильной настройке может значительно повысить безопасность ваших серверов. В этом справочном руководстве рассматриваются некоторые распространенные правила UFW, которые часто используются для настройки брандмауэра в Ubuntu.
Большинство команд в этом руководстве можно адаптировать для различных вариантов использования и сценариев, изменив такие параметры, как исходный IP-адрес и/или порт назначения. Для получения более подробной информации о каждом параметре команды и доступных модификаторах вы можете использовать утилиту man для проверки руководства UFW:
Официальная страница UFW в документации по Ubuntu — это еще один ресурс, который вы можете использовать в качестве справочного материала для более сложных вариантов использования и примеров.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
В этом учебном пособии UFW мы узнаем, как открыть порт в брандмауэре Ubuntu.
ufw позволяет использовать команду для открытия порта в брандмауэре Ubuntu. По умолчанию, если вы не указали протокол, порт будет открыт как для протоколов TCP, так и для протоколов UDP.
ufw разрешить номер порта/протокол
Приведенное выше правило открывает TCP- и UDP-порт 53 для всех сетей.
ufw разрешить 22/tcp
Это правило откроет TCP-порт 22 для всех сетей.
Мы можем удалить правила брандмауэра с помощью команды ufw delete
ufw разрешить удаление 22/tcp
Открыть порт по имени службы в брандмауэре Ubuntu
Также можно открыть порт по имени службы вместо номера порта.
Это правило разрешает протокол ssh (который по умолчанию использует TCP-порт 22) из брандмауэра Ubuntu.
ufw проверит файл /etc/services на наличие соответствующего порта, если мы укажем протокол по имени службы вместо номера порта.
Открыть порт для определенного IP-адреса в UFW
Вместо того, чтобы открывать порт для всех, UFW позволяет открывать порты для определенного IP-адреса, используя следующий формат.
ufw разрешает с на порт
ufw разрешает с 192.168.1.50 на любой порт 53
Разрешить доступ с IP-адреса 192.168.1.50 на TCP- и UDP-порт 53 (поскольку протокол не указан).
ufw разрешает с 192.168.1.50 на любой порт 22 proto tcp
Это правило открывает TCP-порт 22 для удаленного IP-адреса 192.168.1.50 из брандмауэра Ubuntu.
ufw разрешить от 192.168.1.50 до 192.168.1.200 порт 22 proto tcp
Это правило брандмауэра открывает порт 22 для IP-адреса 192.168.1.50, но соединение можно установить только через локальный IP-адрес (192.168.1.200). Это полезно, если вы настроили более одного IP-адреса на своем сервере Ubuntu.
Открыть порт в сеть
Используя маску подсети, мы можем открыть сетевой порт для всей сети или диапазона IP-адресов.
ufw разрешает с 192.168.1.0/24 любой порт 22 proto tcp
Это правило брандмауэра откроет TCP-порт 22 для всей сети 192.168.1.0.
Открыть несколько портов из одного правила брандмауэра
Мы можем открыть несколько портов, разделив порты запятой или диапазоном портов, используя двоеточие.
ufw разрешает с любого на любой proto tcp порт 21,22
Откройте порты 21 и 22 в брандмауэре Ubuntu.
ufw разрешает с любого на любой proto tcp порт 8080:8090
Это правило брандмауэра откроет TCP-порты с 8080 по 8090 из брандмауэра Ubuntu.
Пример дополнительных правил брандмауэра
ufw разрешает 80/tcp
ufw разрешить 21/tcp
Откройте FTP-порт 21 в брандмауэре.
ufw разрешает с 192.168.1.10 на любой порт 21 proto tcp
Откройте FTP-порт 21 для IP-адреса 192.168.1.10
Резюме. Что мы узнали
В этом учебном пособии по UFW мы узнали, как открыть порт из брандмауэра Ubuntu с помощью команды ufw allow.
Читайте также: