Настройка Astra linux ufw

Обновлено: 30.06.2024

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, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Все пакеты? Нет, такие пакеты, как magic-wormhole, установить нельзя.

Для чего перекомпилировать? Не нашел ссылки, если перекомпилирован для какой цели.

Кажется, разницы нет.

Специальное издание Astra Linux.

Только специальное издание.

Кажется, все двоичные файлы подписаны. Сделал тест. Скопировано /bin/nano в /bin/nano-test . Пытался выполнить нано-тест. Успех. Затем отредактировал текстовую строку внутри /bin/nano-test. Попробовал выполнить еще раз. Ошибка сегментации.

Еще один тест. Установите крокодил.

Установка прошла успешно. Пытаюсь выполнить.

Журнал журнала Systemd показывает ошибку DIGSIG.

Можно попробовать подписать.

Но запрашивает пароль, которого я не знаю.

Можно отключить в /etc/digsig/digsig_initramfs.conf, установив DIGSIG_ELF_MODE=0 .

Количество пакетов [ изменить ]

Говорят, что Astra Linux Common Edition основана на Debian Stretch, но его репозиторий, по-видимому, содержит меньше пакетов, чем репозиторий Debian Stretch.

Найдены некоторые пакеты:

Некоторые пакеты отсутствуют:

Репозиторий APT Astra Linux Common Edition с репозиторием APT Debian [ редактировать ]

Возможно. Протестируйте установленный пакет tor.

Смешайте Astra Linux Special Edition с репозиторием APT Astra Linux Common Edition [ редактировать ]

  • с включенной проверкой подписи ELF. в программе установки Astra Linux Special Edition: Нет.
  • в противном случае: Да.

noexec [ изменить ]

Специальное издание Astra:

Отказано в доступе. Использование какой-то программы noexec в домашних условиях.

Но вы все равно можете использовать.

chmod: изменение разрешений '/tmp/a': операция не разрешена

учетная запись root [ изменить ]

Заблокировано по умолчанию.

параметр загрузки в режиме восстановления [ изменить ]

Не работает по умолчанию из-за заблокированной учетной записи root.

подсчитать [ изменить ]

Блокирует учетные записи пользователей после 7 неправильных попыток ввода пароля, аналогично безопасности-разное от Kicksecure.

параметры монтирования [ изменить ]

ядро checksec [ редактировать ]

Astra Linux Special Edition [ редактировать ]

Kicksecure™ / Whonix [править]

Содержит несколько ложных срабатываний. Документировано ниже.

/загрузка [ изменить ]

cat /proc/cmdline [ изменить ]

dpkg -l | grep astra- [править ]

dpkg -l | grep смоленск- [править ]

dpkg -l | grep fly- [править]

Пакеты [ изменить ]

астра-экстра [ изменить ]

Описание: Конфигурация Astra linux

apt-file list astra-extra

astra-safepolicy [ изменить ]

Описание: Средство проверки глобальной политики безопасности

астра-версия [ изменить ]

Описание: Обновление версии Astra

модули linux-astra [ изменить ]

Описание: Несвободные модули ядра Astra Linux

linux-astra-modules-generic [править]

Описание: Несвободные модули ядра Astra Linux

linux-astra-modules-4.15.3-1-generic [править]

astra-nochmodx-module-4.15.3-1-hardened [ изменить ]

astra-nochmodx-module-common [ редактировать ]

apt-cache показать astra-nochmodx-module-common

парсек [ изменить ]

smolensk-security [ редактировать ]

ksysguard-mac [ изменить ]

kcm-grub2 [править]

нажать [ изменить ]

tasksel --list-tasks [ изменить ]

Файлы [ изменить ]

  • /usr/lib/modules-load.d
  • /etc/apt/sources.list.d
  • /etc/apt/preferences.d

стандартная + доверительная настройка компакт-диска

модули ядра [ изменить ]

grep /lib/modules [править]

парсек [ изменить ]

parsec-cifs [ изменить ]

digsig_verif [ изменить ]

lsmod [править]

systemctl list-units [ изменить ]

Обязательный MAC-адрес управления доступом [ изменить ]

AppArmor [ изменить ]

Очевидно, AppArmor не установлен.

SELinux [править]

SELinux явно не установлен.

Шлепнуть [ изменить ]

Видимо, Smack не установлен.

томойо [ изменить ]

Видимо, Tomoyo не установлен.

пожарная тюрьма [ изменить ]

пузырчатая пленка [ изменить ]

Установлен ли другой MAC-адрес обязательного контроля доступа? [править]

sudoers [ изменить ]

Он редактирует /etc/sudoers вместо добавления фрагментов в /etc/sudoers.d для включения sudo без пароля. Это не следование практикам. Когда пакет sudo обновляется, а /etc/sudoers изменяется восходящим потоком, он отображает диалоговое окно интерактивного разрешения конфликтов dpkg. И даже если Astra Linux разветвит пакет и предотвратит это, это приведет к тому, что они будут нести нагрузку по обслуживанию этого diff.

sudo apt установить python-pip

sudo pip install magic-wormhole

червоточина отправить /path/to/filename

Неизвестно. Пытаюсь угадать. Глядя на cat /var/lib/dpkg/status | grep @rusbitech | sort --unique показывает 20 разных полных имен.

  • Как я могу подписать двоичные файлы ELF?
  • Можно ли обновить Astra Special Edition через онлайн-репозиторий APT?

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

Посмотрите новостной блог Kicksecure™.

Kicksecure™ | © ENCRYPTED SUPPORT LP | Программное обеспечение Freedom / Открытый исходный код (почему?)

Личные мнения модераторов или участников проекта Kicksecure™ не отражают проект в целом.

Используя наш веб-сайт, вы подтверждаете, что прочитали, поняли и согласились с нашей Политикой конфиденциальности, Политикой использования файлов cookie, Условиями обслуживания и Согласием на использование электронной подписи.

Примененная ОС, принятая по умолчанию, изменена в правилах iptables без резерва после перезагрузки.
Порядок действий по выбору правил восстановления см. Сохранение и восстановление правил iptables

Эта статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

В состав Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)с установленным оперативным обновлением БЮЛТЕНЬ № 20200327SE16 (оперативное обновление 5) включены пакеты iptables, поддерживающие работу с классификационными метками. Работа с классификационными метками реализуется с помощью дополнительного модуля тестирования astralabel, а затем дает определение параметров атрибутов с использованием опций "–maclev", "–maccat" (подробности см. ниже).

  • iptables-astralabel-generic — для использования с общим доходом;
  • iptables-astralabel-hardened — для использования с ядром hardened;
  • iptables-astralabel-common — общие для общих и усиленных модулей;

Для использования пакетов в межсетевой экран ufw также включена поддержка работы с классификационными метками.

По умолчанию при установке ОС эти пакеты не устанавливаются. Установка пакетов для загруженной версии ядра может выполняться с помощью графического менеджера пакетов или командной строки команды:

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

Модули iptables-astralabel содержат стандартную синтаксис командной строки, включение в iptables, а также получение дополнительных опций для контроля наборов атрибутов пакетов:

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

Неприемлемые пакеты с иерархическими уровнями конфиденциальности от 1 до 3-х:

iptables -A INPUT -m astrolabel --maclev 1:3 -j DROP

Значение фильтра, задаваемого опцией maclev, может быть инвертировано с помощью модификатора "!".

Не пропускаются исходящие пакеты, наблюдается иерархический уровень конфиденциальности недоступности использования:

iptables -A OUTPUT -m астральная метка ! --maclev 0 -j УДАЛИТЬ

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

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

Не запускать исходящие пакеты с установленными параллельными битами категорий 1 и 2:

iptables -A OUTPUT -m astrolabel --maccat 1 --maccat 2 -j DROP

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

Не принимать пакеты с установленными битами категорий 1 и 2 и уровня конфиденциальности 3:

iptables -A INPUT -m astrolabel --maclev 3 --maccat 1 --maccat 2 -j DROP

Если не обнаружены никакие фильтры для сбора пакетов, рекомендуемые ко всем пакетам, недопустимая ненулевая классификационная метку. Т.е. правило

запретит все исходящие пакеты, прошедшие ненулевую классификационную метку (т.е. прошедшие ненулевой уровень конфиденциальности и/или ненулевые категории конфиденциальности).

Для управления сетевыми соединениями с учетом классификационных меток в межсетевой экран ufw добавлены опции maclev и maccat, соответствующие соответствующим параметрам iptables. Для того, чтобы эти операции выполнялись, в системе должен быть установлен пакет iptables-astralabel-common и один из пакетов iptables-astralabel-generic или iptables-astralabel-hardened, используемому используемому ядру.

-A ВЫВОД -p tcp --dport 80 -m astralabel --maccat 3 -j DROP

Приведенные примеры работают с исходящим трафиком (указано направление). Правила для входящих вызовов аналогичны, направлены только на выезд, а не на вход.

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

Другой вариант — UFW или Простой брандмауэр. UFW — это интерфейс для iptables, цель которого — предоставить более удобный интерфейс, чем другие утилиты управления брандмауэром. UFW хорошо поддерживается сообществом Linux и обычно устанавливается по умолчанию во многих дистрибутивах.

В этом руководстве вы настроите брандмауэр с помощью UFW для защиты облачного сервера Ubuntu или Debian. Вы также узнаете, как настроить правила UFW по умолчанию, чтобы разрешать или запрещать соединения для портов и IP-адресов, удалять созданные вами правила, отключать и включать UFW, а также при желании сбрасывать все настройки по умолчанию.

Предпосылки

Чтобы следовать этому руководству, вам понадобится сервер под управлением Ubuntu или Debian. На вашем сервере должен быть пользователь без полномочий root с привилегиями sudo. Чтобы настроить это для Ubuntu, следуйте нашему руководству по начальной настройке сервера с Ubuntu 20.04. Чтобы настроить это для Debian, следуйте нашему руководству по начальной настройке сервера с Debian 11. Оба этих руководства по начальной настройке сервера гарантируют, что на вашем компьютере установлен UFW и что у вас есть безопасная среда, которую вы можете использовать для практики создания правил брандмауэра. .

Использование IPv6 с UFW

Если ваш виртуальный частный сервер (VPS) настроен для IPv6, убедитесь, что UFW настроен для поддержки IPv6, чтобы он настраивал правила брандмауэра IPv4 и IPv6. Для этого откройте файл конфигурации UFW в предпочитаемом вами текстовом редакторе. Здесь мы будем использовать nano :

Подтвердите, что для IPV6 установлено значение yes :

После внесения изменений сохраните и закройте файл. Если вы используете nano , нажмите CTRL + X , Y , а затем ENTER .

Теперь перезапустите брандмауэр, предварительно отключив его:

Затем снова включите его:

Теперь ваш брандмауэр UFW настроен на настройку брандмауэра как для IPv4, так и для IPv6, когда это необходимо. Далее вы настроите правила по умолчанию для подключений к брандмауэру.

Настройка параметров UFW по умолчанию

Вы можете повысить эффективность своего брандмауэра, определив правила по умолчанию для разрешения и запрета подключений. По умолчанию UFW запрещает все входящие подключения и разрешает все исходящие. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, в то время как любое приложение на сервере может подключиться извне. Чтобы обновить правила по умолчанию, установленные UFW, сначала обратитесь к правилу входящих подключений:

Затем настройте правило исходящих подключений:

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

Разрешение подключений к брандмауэру

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

Если ваши изменения были успешными, вы получите следующий вывод:

UFW поставляется с некоторыми настройками по умолчанию, такими как команда ssh, использованная в предыдущем примере. Кроме того, вы можете разрешить входящие подключения к порту 22/tcp , который использует протокол управления передачей (TCP) для достижения той же цели:

Однако, если вы попробовали это после того, как уже запустили allow ssh , вы получите следующее сообщение, поскольку правило уже существует:

Если ваш SSH-сервер работает через порт 2222 , вы можете разрешить подключения с тем же синтаксисом, но замените его портом 2222 . Обратите внимание, что если вы используете номер порта сам по себе, это также влияет на tcp и udp:

Защита веб-серверов

Чтобы защитить веб-сервер с доступом к протоколу передачи файлов (FTP), вам необходимо разрешить подключения для порта 80/tcp .

UFW обычно предоставляет профилям правила, необходимые для работы веб-сервера. В противном случае профили веб-сервера могут быть сохранены как «WWW» и открыты как ftp или tcp, как в следующих примерах:

Вы также можете использовать ftp или порт 21, чтобы разрешить FTP-соединения:

Для FTP-подключений также необходимо разрешить подключения для порта 20:

Ваши корректировки будут зависеть от того, какие порты и службы вам нужно открыть, и может потребоваться тестирование. Не забудьте также оставить разрешенным SSH-соединение.

Указание диапазонов портов

Вы также можете указать диапазоны портов, которые можно разрешить или запретить с помощью UFW. Для этого вы должны сначала указать порт в нижней части диапазона, затем поставить двоеточие ( : ), а затем указать верхнюю часть диапазона. Наконец, вы должны указать, к какому протоколу (tcp или udp) должны применяться правила.

Например, следующая команда разрешит TCP-доступ ко всем портам с 1000 по 2000 включительно:

Аналогичным образом следующая команда запретит UDP-подключения ко всем портам с 1234 по 4321:

Указание IP-адресов

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

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

Отказ в подключении

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

Удаление правил

Если вы хотите удалить некоторые из настроенных вами правил, используйте команду удаления и укажите правило, которое вы хотите удалить:

Если правила длинные и сложные, существует альтернативный двухэтапный подход. Сначала создайте нумерованный список текущих правил:

Затем с помощью этого пронумерованного списка проверьте, какие правила разрешены в настоящее время, и удалите правило, сверившись с его номером:

Например, если порт 80 – номер 4 в списке, вы должны использовать следующий синтаксис. Вам также может быть предложено задать вопрос, хотите ли вы продолжить операцию. Вы можете решить да y или нет n :

Включение UFW

После того как вы определили все правила, которые хотите применить к брандмауэру, вы можете включить UFW, чтобы он начал их применять. Если вы подключаетесь через SSH, убедитесь, что ваш SSH-порт, обычно порт 22, позволяет принимать соединения.В противном случае вы можете заблокировать доступ к своему серверу:

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

Вы также можете использовать verbose для более полного вывода:

Чтобы отключить UFW, выполните следующее:

Сброс настроек по умолчанию

Если по какой-то причине вам нужно сбросить правила вашего облачного сервера до значений по умолчанию, вы можете сделать это с помощью команды сброса ufw. Обратите внимание, что вам будет предложено написать y или n перед сбросом всего, так как это может привести к нарушению существующих SSH-соединений:

Возврат к настройкам по умолчанию отключит UFW и удалит все ранее определенные вами правила. Однако настройки по умолчанию не изменятся на исходные, если вы вообще их изменили. Теперь вы можете начать все заново с UFW и настроить правила и соединения по своему усмотрению.

Заключение

В этом руководстве вы узнали, как установить и настроить облачный сервер, чтобы разрешить или ограничить доступ к подмножеству портов или IP-адресов. Кроме того, вы практиковались в удалении любых правил, которые вам больше не нужны, и подтверждении того, что эти изменения были учтены, путем отключения и последующего включения брандмауэра UFW. Наконец, вы узнали, как восстановить настройки брандмауэра UFW по умолчанию. Чтобы узнать больше о возможностях UFW, ознакомьтесь с нашим руководством по UFW Essentials: Common Firewall Rules and Commands.

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

Читайте также: