======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: общие правила и команды брандмауэра»]].