Следующая версия | Предыдущая версия |
software:linux_server:ubuntu_server_setting_firewall_ufw [2024/03/01 08:40] – создано vladpolskiy | software:linux_server:ubuntu_server_setting_firewall_ufw [2024/03/01 11:40] (текущий) – [Сброс настроек по умолчанию] vladpolskiy |
---|
| |
Чтобы следовать этому руководству, вам понадобится сервер под управлением Ubuntu или Debian. На вашем сервере должен быть пользователь без полномочий root с привилегиями sudo. Чтобы настроить это для Ubuntu, следуйте нашему руководству по начальной настройке сервера с Ubuntu 20.04 . Чтобы настроить это для Debian, следуйте нашему руководству по начальной настройке сервера с Debian 11 . Оба этих руководства по начальной настройке сервера гарантируют, что на вашем компьютере установлен UFW и что у вас есть безопасная среда, которую вы можете использовать для практики создания правил брандмауэра. | Чтобы следовать этому руководству, вам понадобится сервер под управлением Ubuntu или Debian. На вашем сервере должен быть пользователь без полномочий root с привилегиями sudo. Чтобы настроить это для Ubuntu, следуйте нашему руководству по начальной настройке сервера с Ubuntu 20.04 . Чтобы настроить это для Debian, следуйте нашему руководству по начальной настройке сервера с Debian 11 . Оба этих руководства по начальной настройке сервера гарантируют, что на вашем компьютере установлен UFW и что у вас есть безопасная среда, которую вы можете использовать для практики создания правил брандмауэра. |
| |
| =====Установка UFW===== |
| |
| По умолчанию начиная с Ubuntu 18.04 программа поставляется с установленной UFW. Однако, для более ранних систем, вы должны выполнить команду ниже |
| |
| <code> |
| apt-get install ufw |
| </code> |
| |
| Для того, чтобы проверить, является ли UFW запущенным: |
| |
| <code> |
| systemctl status ufw |
| </code> |
| |
| {{:software:linux_server:ufw_12.png?|}} |
| |
| Чтобы проверить, является ли он активным или неактивным |
| |
| <code> |
| sudo ufw status |
| </code> |
| |
| Если он активен, вы получите вывод ниже |
| |
| {{:software:linux_server:ufw_13.png?|}} |
| |
| Если он неактивен, вы получите вывод ниже |
| |
| {{:software:linux_server:ufw_15.png?|}} |
| |
| Чтобы включить UFW с набором правил по умолчанию, запустите |
| |
| <code> |
| sudo ufw enable |
| </code> |
| |
| {{:software:linux_server:ufw_16.png?|}} |
| |
| Чтобы отключить запуск брандмауэра |
| |
| <code> |
| sudo ufw disable |
| </code> |
| |
| {{:software:linux_server:ufw_14.png?|}} |
| |
| |
=====Использование IPv6 с UFW===== | =====Использование IPv6 с UFW===== |
Ваш брандмауэр UFW теперь настроен для настройки брандмауэра как для IPv4, так и для IPv6, когда это необходимо. Далее вы настроите правила по умолчанию для подключений к брандмауэру. | Ваш брандмауэр UFW теперь настроен для настройки брандмауэра как для IPv4, так и для IPv6, когда это необходимо. Далее вы настроите правила по умолчанию для подключений к брандмауэру. |
| |
| =====Настройка параметров UFW по умолчанию===== |
| |
| Вы можете повысить эффективность своего брандмауэра, определив правила по умолчанию для разрешения и запрета подключений. По умолчанию UFW запрещает все входящие соединения и разрешает все исходящие соединения. Это означает, что любой, кто попытается подключиться к вашему серверу, не сможет подключиться, в то время как любое приложение на сервере может подключиться извне. Чтобы обновить правила по умолчанию, установленные UFW, сначала обратитесь к правилу входящих подключений: |
| |
| <code> |
| sudo ufw default deny incoming |
| </code> |
| |
| {{:software:linux_server:ufw_4.png?|}} |
| |
| Затем обратитесь к правилу исходящих соединений: |
| |
| <code> |
| sudo ufw default allow outgoing |
| </code> |
| |
| {{:software:linux_server:ufw_5.png?|}} |
| |
| <WRAP left round info 100%> |
| Примечание. Если вы хотите ввести более строгие ограничения, вы можете запретить все исходящие запросы. Этот вариант основан на личных предпочтениях. Например, если у вас есть общедоступный облачный сервер, это может помочь предотвратить любые подключения к удаленной оболочке. Однако это делает ваш брандмауэр более громоздким в управлении, поскольку вам также придется устанавливать правила для всех исходящих соединений. Вы можете установить это значение по умолчанию, выполнив следующие действия: |
| <code> |
| sudo ufw default deny outgoing |
| </code> |
| {{:software:linux_server:ufw_6.png?|}} |
| </WRAP> |
| |
| =====Разрешение подключений к брандмауэру===== |
| |
| Разрешение подключений требует изменения правил брандмауэра, что можно сделать, введя команды в терминале. Например, если вы сейчас включите брандмауэр, он запретит все входящие соединения. Если вы подключены к своему серверу через SSH, это будет проблемой, поскольку вы будете заблокированы на своем сервере. Чтобы этого не произошло, включите SSH-подключения к вашему серверу: |
| |
| <code> |
| sudo ufw allow ssh |
| </code> |
| |
| Если ваши изменения прошли успешно, вы получите следующий вывод: |
| |
| {{:software:linux_server:ufw_7.png?|}} |
| |
| UFW поставляется с некоторыми настройками по умолчанию, такими как sshкоманда, использованная в предыдущем примере. Альтернативно вы можете разрешить входящие подключения к порту 22/tcp, который использует протокол управления передачей (TCP) для достижения той же цели: |
| |
| <code> |
| sudo ufw allow 22/tcp |
| </code> |
| |
| {{:software:linux_server:ufw_8.png?|}} |
| |
| Если ваш SSH-сервер работает на порту **2222**, вы можете разрешить соединения с тем же синтаксисом, но заменить его на порт 2222. Обратите внимание, что если вы используете номер порта сам по себе, это также повлияет **tcp** на :**udp** |
| |
| <code> |
| sudo ufw allow 2222/tcp |
| </code> |
| |
| {{:software:linux_server:ufw_9.png?|}} |
| |
| Если вы хотите удалить правило, запустите |
| |
| <code> |
| sudo ufw delete allow 2222/tcp |
| </code> |
| |
| {{:software:linux_server:ufw_17.png?|}} |
| |
| Чтобы увидеть все услуги, которые могут быть разрешены или запрещены в системе проверьте файл /etc/services. |
| |
| <code> |
| cat /etc/services | less |
| </code> |
| |
| {{:software:linux_server:ufw_18.png?|}} |
| =====Защита веб-серверов===== |
| |
| Чтобы защитить веб-сервер с помощью протокола передачи файлов (FTP), вам необходимо разрешить соединения для порта **80/tcp**. |
| |
| Разрешение подключений для порта 80полезно для веб-серверов, таких как Apache и Nginx, которые прослушивают запросы HTTP-соединения. Для этого разрешите подключения к порту **80/tcp:** |
| |
| <code> |
| sudo ufw allow 80/tcp |
| </code> |
| |
| UFW обычно предоставляет профилям правила, необходимые для работы веб-сервера. В противном случае профили веб-сервера можно сохранить как **«WWW»** и открыть как **ftp** или **tcp**, как в следующих примерах: |
| |
| <code> |
| sudo ufw allow www |
| </code> |
| |
| Вы также можете использовать **ftp** или порт **21**, чтобы разрешить FTP-соединения: |
| |
| <code> |
| sudo ufw allow ftp |
| </code> |
| |
| <code> |
| sudo ufw allow 21/tcp |
| </code> |
| |
| Для FTP-подключений вам также необходимо разрешить подключения для порта 20: |
| |
| <code> |
| sudo ufw allow 20/tcp |
| </code> |
| |
| Ваши настройки будут зависеть от того, какие порты и службы вам нужно открыть, и может потребоваться тестирование. Не забудьте также оставить разрешенным ваше SSH-соединение. |
| |
| =====Указание диапазонов портов===== |
| |
| Вы также можете указать диапазоны портов, которые можно разрешить или запретить с помощью UFW. Для этого необходимо сначала указать порт в нижней части диапазона, после него поставить двоеточие ( :), а затем указать верхний конец диапазона. Наконец, вы должны указать, к какому протоколу (или tcpили udp) вы хотите применить правила. |
| |
| Например, следующая команда разрешит TCP-доступ ко всем портам от 1000 до 2000 включительно: |
| |
| <code> |
| sudo ufw allow 1000:2000/tcp |
| </code> |
| |
| Аналогично, следующая команда запретит UDP-подключения к каждому порту от 1234до 4321: |
| |
| <code> |
| sudo ufw deny 1234:4321/udp |
| </code> |
| |
| {{:software:linux_server:ufw_10.png?|}} |
| |
| =====Указание IP-адресов===== |
| |
| Вы можете разрешить подключения с определенного IP-адреса, как показано ниже. Обязательно замените IP-адрес своей собственной информацией: |
| |
| <code> |
| sudo ufw allow from 192.165.1.117 |
| </code> |
| |
| {{:software:linux_server:ufw_11.png?|}} |
| |
| =====Запрет соединений===== |
| |
| Если вы хотите открыть все порты вашего сервера ( что не рекомендуется ), вы можете разрешить все соединения, а затем запретить любые порты, к которым вы не хотите предоставлять доступ. В следующем примере показано, как запретить доступ к порту 80: |
| |
| <code> |
| sudo ufw deny 80/tcp |
| </code> |
| |
| {{:software:linux_server:ufw_19.png?|}} |
| |
| =====Удаление правил===== |
| |
| Если вы хотите удалить некоторые правила, которые вы администрировали, используйте delete и укажите правило, которое вы хотите удалить (пример диапазон портов 1000:2000): |
| |
| <code> |
| sudo ufw delete allow 1000:2000/tcp |
| </code> |
| |
| {{:software:linux_server:ufw_20.png?|}} |
| |
| Если правила длинные и сложные, существует альтернативный двухэтапный подход. Сначала создайте нумерованный список текущих правил: |
| |
| <code> |
| sudo ufw status numbered |
| </code> |
| |
| {{:software:linux_server:ufw_21.png?|}} |
| |
| Затем с помощью этого нумерованного списка просмотрите, какие правила разрешены в данный момент, и удалите правило, сверившись с его номером: |
| |
| Например, если диапазон портов 1234:4321/udp в списке имеет номер 6, вы должны использовать следующий синтаксис. Вам также может быть задан вопрос, хотите ли вы продолжить операцию. Вы можете решить да Y или нет N: |
| |
| <code> |
| sudo ufw delete 6 |
| </code> |
| |
| {{:software:linux_server:ufw_22.png?|}} |
| |
| Вывод на экран: |
| |
| {{:software:linux_server:ufw_23.png?|}} |
| |
| Вы также можете использовать **verbose** для более полного вывода: |
| |
| <code> |
| sudo ufw status verbose |
| </code> |
| |
| {{:software:linux_server:ufw_24.png?|}} |
| |
| =====Сброс настроек по умолчанию===== |
| |
| Если по какой-то причине вам необходимо сбросить правила вашего облачного сервера к настройкам по умолчанию, вы можете сделать это с помощью **ufw reset** команды. Обратите внимание, что вы получите приглашение написать Y или N перед сбросом всех данных, поскольку это может нарушить существующие соединения SSH: |
| |
| <code> |
| sudo ufw reset |
| </code> |
| |
| Сброс настроек по умолчанию отключит 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: общие правила и команды брандмауэра»]]. |