В этой статье показано, как установить и использовать UFW на вашем Ubuntu 20.04 система LTS.
Монтаж
UFW предустановлен в большинстве систем Ubuntu. Если в вашей сборке эта программа еще не установлена, вы можете установить ее с помощью диспетчера пакетов snap или apt.$ sudo snap install ufw
$ sudo apt install ufwЯ лично предпочитаю использовать для этого диспетчер пакетов apt, потому что snap менее популярен, и я не хочу иметь эту дополнительную сложность. На момент написания статьи для UFW опубликована версия 0.36 из 20.04 выпуск.
Входящие vs. Исходящий трафик
Если вы новичок в мире сетевых технологий, первое, что вам нужно уточнить, - это разница между входящим и исходящим трафиком.
Когда вы устанавливаете обновления с помощью apt-get, просматриваете Интернет или проверяете свою электронную почту, вы отправляете «исходящие» запросы на серверы, такие как Ubuntu, Google и т. Д. Для доступа к этим сервисам вам даже не нужен публичный IP. Обычно один общедоступный IP-адрес выделяется, скажем, для домашнего широкополосного подключения, и каждое устройство получает свой собственный частный IP-адрес. Затем маршрутизатор обрабатывает трафик с помощью так называемого NAT или трансляции сетевых адресов.
Подробные сведения о NAT и частных IP-адресах выходят за рамки этой статьи, но приведенное выше видео является отличной отправной точкой. Возвращаясь к UFW, по умолчанию UFW разрешает весь обычный исходящий веб-трафик. Ваши браузеры, менеджеры пакетов и другие программы выбирают случайный номер порта - обычно число выше 3000 - и именно так каждое приложение может отслеживать свои соединения.
Когда вы запускаете серверы в облаке, они обычно имеют общедоступный IP-адрес, и вышеупомянутые правила разрешения исходящего трафика все еще остаются в силе. Поскольку вы по-прежнему будете использовать утилиты, такие как менеджеры пакетов, которые общаются с остальным миром как «клиент», UFW позволяет это по умолчанию.
Веселье начинается с входящего трафика. Приложения, такие как сервер OpenSSH, который вы используете для входа в свою виртуальную машину, прослушивают определенные порты (например, 22) для входящий запросы, как и другие приложения. Веб-серверам нужен доступ к портам 80 и 443.
Это часть работы брандмауэра, позволяющая определенным приложениям прослушивать определенный входящий трафик, блокируя все ненужные. У вас может быть установлен сервер базы данных на вашей виртуальной машине, но обычно ему не нужно прослушивать входящие запросы на интерфейсе с общедоступным IP-адресом. Обычно он просто прослушивает петлевой интерфейс для запросов.
В Интернете существует множество ботов, которые постоянно бомбардируют серверы поддельными запросами, чтобы проникнуть внутрь или выполнить простую атаку типа «отказ в обслуживании». Хорошо настроенный брандмауэр должен уметь блокировать большинство этих махинаций с помощью сторонних плагинов, таких как Fail2ban.
Но пока мы сосредоточимся на очень простой настройке.
Основное использование
Теперь, когда в вашей системе установлен UFW, мы рассмотрим некоторые основные способы использования этой программы. Поскольку правила брандмауэра применяются в масштабе всей системы, приведенные ниже команды запускаются от имени пользователя root. Если хотите, вы можете использовать sudo с соответствующими привилегиями для этой процедуры.
# ufw статусСтатус: неактивен
По умолчанию UFW находится в неактивном состоянии, и это хорошо. Вы не хотите блокировать весь входящий трафик на порту 22, который является портом SSH по умолчанию. Если вы вошли на удаленный сервер через SSH и заблокируете порт 22, вы будете заблокированы для доступа к серверу.
UFW позволяет нам проделать дыру только для OpenSSH. Выполните следующую команду:
[email protected]: ~ # список приложений ufwДоступные приложения:
OpenSSH
Обратите внимание, что я все еще не включил брандмауэр. Теперь мы добавим OpenSSH в наш список разрешенных приложений, а затем включим брандмауэр. Для этого введите следующие команды:
# ufw разрешить OpenSSHПравила обновлены
Обновлены правила (v6)
# ufw enable
Команда может нарушить существующие SSH-соединения. Продолжить операцию (y | n)? у.
Брандмауэр теперь активен и включается при запуске системы.
Поздравляем, UFW теперь активен и работает. UFW теперь позволяет только OpenSSH прослушивать входящие запросы на порту 22. Чтобы проверить состояние вашего брандмауэра в любое время, запустите следующий код:
# ufw статусСтатус: активен
К действию от
-- ------ ----
OpenSSH РАЗРЕШИТЬ В любом месте
OpenSSH (v6) РАЗРЕШИТЬ В любом месте (v6)
Как видите, OpenSSH теперь может получать запросы из любого места в Интернете при условии, что он достигает его через порт 22. Строка v6 указывает, что правила применяются также для IPv6.
Вы можете, конечно, запретить определенные диапазоны IP-адресов или разрешить только определенный диапазон IP-адресов, в зависимости от ограничений безопасности, с которыми вы работаете.
Добавление приложений
Для наиболее популярных приложений команда ufw app list автоматически обновляет список политик при установке. Например, после установки веб-сервера Nginx вы увидите следующие новые параметры:
# apt install nginx# список приложений ufw
Доступные приложения:
Nginx Полный
Nginx HTTP
Nginx HTTPS
OpenSSH
Продолжайте и попробуйте поэкспериментировать с этими правилами. Обратите внимание, что вы можете просто разрешить номера портов, а не ждать, пока появится профиль приложения. Например, чтобы разрешить порт 443 для трафика HTTPS, просто используйте следующую команду:
# ufw allow 443# ufw статус
Статус: активен
К действию от
-- ------ ----
OpenSSH РАЗРЕШИТЬ В любом месте
443 РАЗРЕШИТЬ В любом месте
OpenSSH (v6) РАЗРЕШИТЬ В любом месте (v6)
443 (v6) РАЗРЕШИТЬ В любом месте (v6)
Заключение
Теперь, когда у вас есть основы UFW, вы можете изучить другие мощные возможности межсетевого экрана, начиная с разрешения и блокировки диапазонов IP-адресов. Наличие четких и надежных политик брандмауэра обеспечит безопасность и защиту ваших систем.