Введение
UFW расшифровывается как uncomplicated firewall. Это интерфейс, который позволяет легко управлять функциями и командами брандмауэра. Вы получаете UFW по умолчанию вместе с вашим Ubuntu сервером. Максимально использовать потенциал команд и функций брандмауэра может быть сложно, если вы еще не знакомы с этим инструментом.
Наша цель — предоставить вам всеобъемлющее руководство, которое вы сможете использовать как новичок. Мы дополним объяснения примерами различных действий, которые вы можете выполнять с помощью UFW. Многие правила будут очень полезны для повседневных служб и задач. Давайте начнем!
Предварительные требования
Прежде чем читать дальше, убедитесь, что для вашего UFW установлен набор правил по умолчанию. Это означает, что брандмауэр разрешает исходящий трафик, но блокирует входящий. Преимущество этого сброса по умолчанию заключается в том, что вы можете выбирать, какой трафик разрешать через брандмауэр. Если вы не уверены в статусе текущего набора правил в вашем UFW, используйте эту команду для проверки: sudo ufw status. Вы также можете использовать эту команду:
|
1 |
sudo ufw status verbose |
Кроме того, вы можете свободно перейти к любому разделу, который наиболее соответствует вашим требованиям. Вам не обязательно использовать каждую команду, представленную в этом руководстве. Вы можете комбинировать их в соответствии со своими личными потребностями.
Как заблокировать IP-адрес
Давайте начнем с одной из самых базовых функций любого брандмауэра: блокировки IP-адресов. Существует очень простая команда, которую вы можете использовать для блокировки любых сетевых подключений, исходящих с определенного IP-адреса. Допустим, к примеру, что конкретный IP-адрес в нашем случае — 15.15.15.51. Вы можете заменить это значение на IP-адрес, который хотите заблокировать с помощью UFW. Вот команда, которую вы будете использовать для этой цели:
|
1 |
sudo ufw deny from 15.15.15.51 |
Здесь from 15.15.15.51 указывает только исходный IP-адрес, то есть «15.15.15.51». Если вместо этого вы хотите указать подсеть, вы можете добавить ее следующим образом: 15.15.15.0/24. Команда будет работать так же хорошо. Вы можете указать этот исходный IP-адрес в любом правиле брандмауэра, например, в разрешающем правиле.
- Блокировка подключений к сетевым интерфейсам
Иногда может потребоваться заблокировать сетевые подключения, исходящие с определенного IP-адреса на определенный сетевой интерфейс. В таком случае нам придется указать сетевой интерфейс вместе с исходным IP-адресом. В этом примере примем исходный IP-адрес за 15.15.15.51, а сетевой интерфейс — за eth0:
|
1 |
sudo ufw deny in on eth0 from 15.15.15.51 |
Как и в случае с исходным IP-адресом, вы также можете указать сетевой интерфейс в любом правиле брандмауэра. Цель этих спецификаций — ограничить данное правило брандмауэра только определенной сетью или подключением.
Как разрешить SSH-подключения
Этот раздел актуален для вас, если вы используете облачный сервер. Чтобы иметь возможность установить соединение с вашим облачным сервером, вам нужно, чтобы брандмауэр разрешал входящие SSH-подключения. Эти SSH-подключения проходят через порт 22. Вы можете следовать этой инструкции, чтобы узнать, как использовать SSH для подключения к удаленному серверу в Ubuntu.
Установив SSH-соединения, вы сможете успешно управлять своим облачным сервером с помощью локального устройства. Здесь мы рассмотрим различные правила брандмауэра, связанные с настройкой SSH:
- Разрешение SSH
Используйте следующую команду, чтобы разрешить все входящие SSH-подключения:
|
1 |
sudo ufw allow ssh |
С другой стороны, вы также можете выполнить команду, указав вместо этого номер порта службы SSH:
|
1 |
sudo ufw allow 22 |
- Разрешение входящего SSH с определенного IP-адреса
Если вы хотите разрешить входящие SSH-подключения только с определенного IP-адреса или подсети, вы можете указать источник. Например, допустим, подсеть, которую вы хотите разрешить, — это 15.15.15.0/24. Вот команда, которую вам нужно будет запустить:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 22 |
- Разрешение входящих подключений Rsync с определенного IP-адреса
Работающий на порту 873, Rsync позволяет выполнять передачу файлов с одной компьютерной системы на другую. Если вы хотите разрешить подключение Rsync только с определенного IP-адреса или подсети (в данном примере 15.15.15.0/24), вы можете сделать это с помощью следующей команды:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 873 |
Это означает, что всей подсети 15.15.15.0/24 будет разрешено подключаться по Rsync к вашему серверу. Здесь также представлено подробное руководство по использованию Rsync для синхронизации локальных и удаленных каталогов на вашем сервере.
Как настроить запросы к веб-серверу
Далее мы перейдем к правилам, связанным со службой веб-сервера. Веб-серверы, такие как Apache и Nginx обычно принимают запросы на HTTP- и HTTPS-соединения с двух портов: порт 80 и порт 443. Порт 80 обслуживает HTTP-запросы. Порт 443 отвечает за HTTPS-запросы.
Как мы обсуждали в предварительных требованиях, вы используете набор правил по умолчанию для UFW. На основе этого набора правил брандмауэр блокирует или отклоняет весь входящий трафик. Поэтому вам придется настроить новые правила, которые позволят серверу принимать и читать эти входящие запросы.
- Разрешение всего HTTP-трафика
Если вы хотите разрешить все HTTP-соединения и запросы, поступающие на порт 80, используйте команду:
|
1 |
sudo ufw allow http |
Вы также можете использовать номер порта (порт 80) для указания службы HTTP в команде:
|
1 |
sudo ufw allow 80 |
- Разрешение всего HTTPS-трафика
Если вы хотите разрешить все HTTPS-соединения и запросы, поступающие на порт 443, выполните следующую команду:
|
1 |
sudo ufw allow https |
Как и в предыдущей команде, вы можете заменить «https» номером порта службы HTTPS:
|
1 |
sudo ufw allow 443 |
- Разрешение всего HTTP- и HTTPS-трафика
Если вы хотите разрешить как HTTP-, так и HTTPS-запросы, вы можете использовать общее правило для них обоих. С помощью этой единственной команды вы можете разрешить входящий трафик как с порта 80, так и с порта 443:
|
1 |
sudo ufw allow proto tcp from any to any port 80,443 |
Команду proto tcp необходимо использовать, когда вы указываете несколько портов одновременно.
Вы также можете воспользоваться следующими подробными руководствами по защите Nginx и Apache с помощью Let’s Encrypt на Ubuntu.
Как разрешить подключения к MySQL
MySQL подключения осуществляются через порт 3306. Вам придется использовать правило для разрешения входящего трафика, если клиент использует вашу базу данных MySQL на удаленном сервере. Следуйте нашему руководству, чтобы изучить основы MySQL и узнать, как настроить MySQL на сервере.
- Разрешение подключений к MySQL с определенного IP-адреса
Как мы уже видели в предыдущих правилах, для разрешения входящих подключений MySQL необходимо указать источник. Источником может быть конкретный IP-адрес или подсеть. В нашем примере мы будем использовать всю подсеть 15.15.15.0/24 для запуска команды:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 3306 |
- Разрешение подключений к MySQL для определенного сетевого интерфейса
Вам понадобится другая команда, если вам также нужно указать сетевой интерфейс, для которого вы разрешаете подключения к MySQL. Предположим, что используемый вами сетевой интерфейс — это частный сетевой интерфейс с именем eth1. Вы можете заменить это значение именем вашего собственного сетевого интерфейса:
|
1 |
sudo ufw allow in on eth1 to any port 3306 |
Как разрешить подключения к PostgreSQL
Подключения к PostgreSQL осуществляются через порт 5432. Как и в случае с подключениями к MySQL, если клиент использует базу данных PostgreSQL на удаленном сервере, вам необходимо разрешить входящий трафик. Вы можете сделать это с помощью следующих команд.
- Разрешение подключений к PostgreSQL с определенного IP-адреса
Если вы знаете, что подключения к PostgreSQL поступают из определенной подсети или IP-адреса, вам необходимо указать источник. Здесь мы снова воспользуемся примером подсети 15.15.15.0/24:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 5432 |
Если ваша политика OUTPUT не установлена в значение ACCEPT, вам придется выполнить вторую команду. Эта команда разрешает исходящий трафик для уже установленных соединений PostgreSQL.
- Разрешение PostgreSQL для определенного сетевого интерфейса
Аналогично предыдущему правилу, мы разрешим подключения PostgreSQL к определенному сетевому интерфейсу. В нашем случае это eth1:
|
1 |
sudo ufw allow in on eth1 to any port 5432 |
Если ваша политика OUTPUT не установлена в значение ACCEPT, вам придется выполнить вторую команду. Эта команда разрешает исходящий трафик для уже установленных соединений PostgreSQL. Вы можете узнать, как настроить PostgreSQL на Ubuntu, следуя нашему подробному руководству.
Как настроить почтовые серверы
Вы также можете использовать почтовые серверы, такие как Sendmail и Postfix в вашей системе. Эти серверы открыты для нескольких портов. Порты, которые они прослушивают, зависят от протоколов, настроенных для доставки почты. Вот почему вам сначала нужно определить, какие протоколы запущены в вашей системе доставки почты. Впоследствии вы разрешите соответствующие типы трафика на основе этой информации.
- Блокировка исходящей почты SMTP
Прежде чем мы перейдем к командам, разрешающим входящий трафик для ваших почтовых серверов, давайте посмотрим, как можно заблокировать исходящую почту SMTP mail. Вы можете использовать эту команду, если не хотите, чтобы ваш сервер отправлял исходящую почту. Почта SMTP использует порт 25. Используйте эту команду для блокировки этого трафика:
|
1 |
sudo ufw deny out 25 |
В результате выполнения этой команды ваш брандмауэр будет сбрасывать весь исходящий трафик на порту 25. Если вы хотите заблокировать другой порт, просто замените порт «25» на соответствующий номер порта.
- Разрешение входящего SMTP
Теперь, когда вы знаете, как заблокировать исходящий трафик, разрешение входящего трафика покажется таким же простым. Используйте эту команду, чтобы разрешить серверу принимать SMTP-соединения на порту 25:
|
1 |
sudo ufw allow 25 |
- Разрешение входящего IMAP
Если вы хотите разрешить серверу устанавливать IMAP-соединение на порту 143, используйте следующую команду:
|
1 |
sudo ufw allow 143 |
- Разрешение входящего IMAPS
Используйте эту команду, чтобы разрешить серверу отвечать на соединения IMAPS на порту 993:
|
1 |
sudo ufw allow 993 |
- Разрешение входящего POP3
Эта команда позволяет вашему серверу отвечать на все POP3-соединения через порт 110:
|
1 |
sudo ufw allow 110 |
- Разрешение входящего POP3S
Наконец, вы можете разрешить вашему серверу принимать запросы на порт 995 для соединений POP3S с помощью этой команды:
|
1 |
sudo ufw allow 995 |
Заключение
Это руководство поможет вам ознакомиться с основными функциями UFW. Мы рассмотрели основные команды, с которыми вам необходимо ознакомиться, чтобы иметь возможность настраивать брандмауэр. Вы можете выбрать команды, которые наилучшим образом соответствуют вашим конкретным требованиям, чтобы создать индивидуальное решение брандмауэра. Гибкость UFW позволяет выполнять такую настройку. Экспериментируйте, чтобы понять, что лучше всего подходит именно вам.
Приятной работы!
Комментарии
Комментариев пока нет. Будьте первым.