======Hастройка брандмауэра с помощью UFW Ubuntu Server======
====Введение=====
Настройка работающего брандмауэра имеет решающее значение для защиты вашего облачного сервера. Раньше настройка брандмауэра выполнялась с помощью сложных или непонятных утилит. Многие из этих утилит (например, iptables) имеют множество встроенных функций, но требуют от пользователя дополнительных усилий для их изучения и понимания.
Другой вариант — UFW , или Несложный межсетевой экран . UFW — это интерфейс, целью iptablesкоторого является обеспечение более удобного интерфейса, чем у других утилит управления брандмауэром. UFW хорошо поддерживается сообществом Linux и обычно устанавливается по умолчанию во многих дистрибутивах.
В этом руководстве вы настроите брандмауэр с помощью UFW для защиты облачного сервера Ubuntu или Debian. Вы также узнаете, как настроить правила UFW по умолчанию, чтобы разрешить или запретить соединения для портов и IP-адресов, удалить созданные вами правила, отключить и включить UFW, а также сбросить все настройки обратно к настройкам по умолчанию, если вы предпочитаете.
=====Предварительные условия=====
Чтобы следовать этому руководству, вам понадобится сервер под управлением Ubuntu или Debian. На вашем сервере должен быть пользователь без полномочий root с привилегиями sudo. Чтобы настроить это для Ubuntu, следуйте нашему руководству по начальной настройке сервера с Ubuntu 20.04 . Чтобы настроить это для Debian, следуйте нашему руководству по начальной настройке сервера с Debian 11 . Оба этих руководства по начальной настройке сервера гарантируют, что на вашем компьютере установлен UFW и что у вас есть безопасная среда, которую вы можете использовать для практики создания правил брандмауэра.
=====Установка UFW=====
По умолчанию начиная с Ubuntu 18.04 программа поставляется с установленной UFW. Однако, для более ранних систем, вы должны выполнить команду ниже
apt-get install ufw
Для того, чтобы проверить, является ли UFW запущенным:
systemctl status ufw
{{:software:linux_server:ufw_12.png?|}}
Чтобы проверить, является ли он активным или неактивным
sudo ufw status
Если он активен, вы получите вывод ниже
{{:software:linux_server:ufw_13.png?|}}
Если он неактивен, вы получите вывод ниже
{{:software:linux_server:ufw_15.png?|}}
Чтобы включить UFW с набором правил по умолчанию, запустите
sudo ufw enable
{{:software:linux_server:ufw_16.png?|}}
Чтобы отключить запуск брандмауэра
sudo ufw disable
{{:software:linux_server:ufw_14.png?|}}
=====Использование IPv6 с UFW=====
sudo nano /etc/default/ufw
{{:software:linux_server:ufw_1.png?|}}
После внесения изменений сохраните и выйдите из файла. Если вы используете nano, нажмите CTRL + X, Y, а затем ENTER.
Теперь перезапустите брандмауэр, сначала отключив его:
sudo ufw disable
{{:software:linux_server:ufw_2.png?|}}
Затем включите его снова:
sudo ufw enable
{{:software:linux_server:ufw_3.png?|}}
Ваш брандмауэр UFW теперь настроен для настройки брандмауэра как для IPv4, так и для IPv6, когда это необходимо. Далее вы настроите правила по умолчанию для подключений к брандмауэру.
=====Настройка параметров UFW по умолчанию=====
Вы можете повысить эффективность своего брандмауэра, определив правила по умолчанию для разрешения и запрета подключений. По умолчанию UFW запрещает все входящие соединения и разрешает все исходящие соединения. Это означает, что любой, кто попытается подключиться к вашему серверу, не сможет подключиться, в то время как любое приложение на сервере может подключиться извне. Чтобы обновить правила по умолчанию, установленные UFW, сначала обратитесь к правилу входящих подключений:
sudo ufw default deny incoming
{{:software:linux_server:ufw_4.png?|}}
Затем обратитесь к правилу исходящих соединений:
sudo ufw default allow outgoing
{{:software:linux_server:ufw_5.png?|}}
Примечание. Если вы хотите ввести более строгие ограничения, вы можете запретить все исходящие запросы. Этот вариант основан на личных предпочтениях. Например, если у вас есть общедоступный облачный сервер, это может помочь предотвратить любые подключения к удаленной оболочке. Однако это делает ваш брандмауэр более громоздким в управлении, поскольку вам также придется устанавливать правила для всех исходящих соединений. Вы можете установить это значение по умолчанию, выполнив следующие действия:
sudo ufw default deny outgoing
{{:software:linux_server:ufw_6.png?|}}
=====Разрешение подключений к брандмауэру=====
Разрешение подключений требует изменения правил брандмауэра, что можно сделать, введя команды в терминале. Например, если вы сейчас включите брандмауэр, он запретит все входящие соединения. Если вы подключены к своему серверу через SSH, это будет проблемой, поскольку вы будете заблокированы на своем сервере. Чтобы этого не произошло, включите SSH-подключения к вашему серверу:
sudo ufw allow ssh
Если ваши изменения прошли успешно, вы получите следующий вывод:
{{:software:linux_server:ufw_7.png?|}}
UFW поставляется с некоторыми настройками по умолчанию, такими как sshкоманда, использованная в предыдущем примере. Альтернативно вы можете разрешить входящие подключения к порту 22/tcp, который использует протокол управления передачей (TCP) для достижения той же цели:
sudo ufw allow 22/tcp
{{:software:linux_server:ufw_8.png?|}}
Если ваш SSH-сервер работает на порту **2222**, вы можете разрешить соединения с тем же синтаксисом, но заменить его на порт 2222. Обратите внимание, что если вы используете номер порта сам по себе, это также повлияет **tcp** на :**udp**
sudo ufw allow 2222/tcp
{{:software:linux_server:ufw_9.png?|}}
Если вы хотите удалить правило, запустите
sudo ufw delete allow 2222/tcp
{{:software:linux_server:ufw_17.png?|}}
Чтобы увидеть все услуги, которые могут быть разрешены или запрещены в системе проверьте файл /etc/services.
cat /etc/services | less
{{:software:linux_server:ufw_18.png?|}}
=====Защита веб-серверов=====
Чтобы защитить веб-сервер с помощью протокола передачи файлов (FTP), вам необходимо разрешить соединения для порта **80/tcp**.
Разрешение подключений для порта 80полезно для веб-серверов, таких как Apache и Nginx, которые прослушивают запросы HTTP-соединения. Для этого разрешите подключения к порту **80/tcp:**
sudo ufw allow 80/tcp
UFW обычно предоставляет профилям правила, необходимые для работы веб-сервера. В противном случае профили веб-сервера можно сохранить как **«WWW»** и открыть как **ftp** или **tcp**, как в следующих примерах:
sudo ufw allow www
Вы также можете использовать **ftp** или порт **21**, чтобы разрешить FTP-соединения:
sudo ufw allow ftp
sudo ufw allow 21/tcp
Для FTP-подключений вам также необходимо разрешить подключения для порта 20:
sudo ufw allow 20/tcp
Ваши настройки будут зависеть от того, какие порты и службы вам нужно открыть, и может потребоваться тестирование. Не забудьте также оставить разрешенным ваше SSH-соединение.
=====Указание диапазонов портов=====
Вы также можете указать диапазоны портов, которые можно разрешить или запретить с помощью UFW. Для этого необходимо сначала указать порт в нижней части диапазона, после него поставить двоеточие ( :), а затем указать верхний конец диапазона. Наконец, вы должны указать, к какому протоколу (или tcpили udp) вы хотите применить правила.
Например, следующая команда разрешит TCP-доступ ко всем портам от 1000 до 2000 включительно:
sudo ufw allow 1000:2000/tcp
Аналогично, следующая команда запретит UDP-подключения к каждому порту от 1234до 4321:
sudo ufw deny 1234:4321/udp
{{:software:linux_server:ufw_10.png?|}}
=====Указание IP-адресов=====
Вы можете разрешить подключения с определенного IP-адреса, как показано ниже. Обязательно замените IP-адрес своей собственной информацией:
sudo ufw allow from 192.165.1.117
{{:software:linux_server:ufw_11.png?|}}
=====Запрет соединений=====
Если вы хотите открыть все порты вашего сервера ( что не рекомендуется ), вы можете разрешить все соединения, а затем запретить любые порты, к которым вы не хотите предоставлять доступ. В следующем примере показано, как запретить доступ к порту 80:
sudo ufw deny 80/tcp
{{:software:linux_server:ufw_19.png?|}}
=====Удаление правил=====
Если вы хотите удалить некоторые правила, которые вы администрировали, используйте delete и укажите правило, которое вы хотите удалить (пример диапазон портов 1000:2000):
sudo ufw delete allow 1000:2000/tcp
{{:software:linux_server:ufw_20.png?|}}
Если правила длинные и сложные, существует альтернативный двухэтапный подход. Сначала создайте нумерованный список текущих правил:
sudo ufw status numbered
{{:software:linux_server:ufw_21.png?|}}
Затем с помощью этого нумерованного списка просмотрите, какие правила разрешены в данный момент, и удалите правило, сверившись с его номером:
Например, если диапазон портов 1234:4321/udp в списке имеет номер 6, вы должны использовать следующий синтаксис. Вам также может быть задан вопрос, хотите ли вы продолжить операцию. Вы можете решить да Y или нет N:
sudo ufw delete 6
{{:software:linux_server:ufw_22.png?|}}
Вывод на экран:
{{:software:linux_server:ufw_23.png?|}}
Вы также можете использовать **verbose** для более полного вывода:
sudo ufw status verbose
{{:software:linux_server:ufw_24.png?|}}
=====Сброс настроек по умолчанию=====
Если по какой-то причине вам необходимо сбросить правила вашего облачного сервера к настройкам по умолчанию, вы можете сделать это с помощью **ufw reset** команды. Обратите внимание, что вы получите приглашение написать Y или N перед сбросом всех данных, поскольку это может нарушить существующие соединения SSH:
sudo ufw reset
Сброс настроек по умолчанию отключит UFW и удалит все ранее определенные вами правила. Однако настройки по умолчанию не изменятся на исходные, если вы вообще их измените. Теперь вы можете начать работу с UFW заново и настроить правила и соединения по своему вкусу.
{{:software:linux_server:ufw_25.png?|}}
=====Заключение=====
В этом руководстве вы узнали, как настроить облачный сервер, чтобы разрешить или ограничить доступ к подмножеству портов или IP-адресов. Кроме того, вы попрактиковались в удалении любых правил, которые вам больше не нужны, и подтверждении того, что эти изменения были учтены, отключив, а затем включив брандмауэр UFW. Наконец, вы узнали, как сбросить настройки брандмауэра UFW до настроек по умолчанию. Чтобы узнать больше о возможностях UFW, ознакомьтесь с нашим руководством [[https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands|«Основы UFW: общие правила и команды брандмауэра»]].
=====Ссылки и Дополнения=====
* [[https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu-and-debian-cloud-server|Ссылка на статью автора]]
* [[https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands|«Основы UFW: общие правила и команды брандмауэра»]].