Это старая версия документа!
Содержание
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
Чтобы проверить, является ли он активным или неактивным
sudo ufw status
Если он активен, вы получите вывод ниже
Если он неактивен, вы получите вывод ниже
Чтобы включить UFW с набором правил по умолчанию, запустите
sudo ufw enable
Чтобы отключить запуск брандмауэра
sudo ufw disable
Использование IPv6 с UFW
sudo nano /etc/default/ufw
После внесения изменений сохраните и выйдите из файла. Если вы используете nano, нажмите CTRL + X, Y, а затем ENTER.
Теперь перезапустите брандмауэр, сначала отключив его:
sudo ufw disable
Затем включите его снова:
sudo ufw enable
Ваш брандмауэр UFW теперь настроен для настройки брандмауэра как для IPv4, так и для IPv6, когда это необходимо. Далее вы настроите правила по умолчанию для подключений к брандмауэру.
Настройка параметров UFW по умолчанию
Вы можете повысить эффективность своего брандмауэра, определив правила по умолчанию для разрешения и запрета подключений. По умолчанию UFW запрещает все входящие соединения и разрешает все исходящие соединения. Это означает, что любой, кто попытается подключиться к вашему серверу, не сможет подключиться, в то время как любое приложение на сервере может подключиться извне. Чтобы обновить правила по умолчанию, установленные UFW, сначала обратитесь к правилу входящих подключений:
sudo ufw default deny incoming
Затем обратитесь к правилу исходящих соединений:
sudo ufw default allow outgoing
Примечание. Если вы хотите ввести более строгие ограничения, вы можете запретить все исходящие запросы. Этот вариант основан на личных предпочтениях. Например, если у вас есть общедоступный облачный сервер, это может помочь предотвратить любые подключения к удаленной оболочке. Однако это делает ваш брандмауэр более громоздким в управлении, поскольку вам также придется устанавливать правила для всех исходящих соединений. Вы можете установить это значение по умолчанию, выполнив следующие действия:
sudo ufw default deny outgoing
Разрешение подключений к брандмауэру
Разрешение подключений требует изменения правил брандмауэра, что можно сделать, введя команды в терминале. Например, если вы сейчас включите брандмауэр, он запретит все входящие соединения. Если вы подключены к своему серверу через SSH, это будет проблемой, поскольку вы будете заблокированы на своем сервере. Чтобы этого не произошло, включите SSH-подключения к вашему серверу:
sudo ufw allow ssh
Если ваши изменения прошли успешно, вы получите следующий вывод:
UFW поставляется с некоторыми настройками по умолчанию, такими как sshкоманда, использованная в предыдущем примере. Альтернативно вы можете разрешить входящие подключения к порту 22/tcp, который использует протокол управления передачей (TCP) для достижения той же цели:
sudo ufw allow 22/tcp
Если ваш SSH-сервер работает на порту 2222, вы можете разрешить соединения с тем же синтаксисом, но заменить его на порт 2222. Обратите внимание, что если вы используете номер порта сам по себе, это также повлияет tcp на :udp
sudo ufw allow 2222/tcp
Если вы хотите удалить правило, запустите
sudo ufw delete allow 2222/tcp
Чтобы увидеть все услуги, которые могут быть разрешены или запрещены в системе проверьте файл /etc/services.
cat /etc/services | less
Защита веб-серверов
Чтобы защитить веб-сервер с помощью протокола передачи файлов (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
Указание IP-адресов
Вы можете разрешить подключения с определенного IP-адреса, как показано ниже. Обязательно замените IP-адрес своей собственной информацией:
sudo ufw allow from 192.165.1.117
Запрет соединений
Если вы хотите открыть все порты вашего сервера ( что не рекомендуется ), вы можете разрешить все соединения, а затем запретить любые порты, к которым вы не хотите предоставлять доступ. В следующем примере показано, как запретить доступ к порту 80:
sudo ufw deny 80/tcp