UFW Essentials: общие правила и команды брандмауэра

Вступление

UFW - это инструмент настройки брандмауэра для iptables, который включен в Ubuntu по умолчанию. Это руководство по стилю шпаргалки содержит краткий справочник по командам UFW, которые создадут правила брандмауэра iptables, полезные в обычных повседневных сценариях. Это включает в себя примеры UFW разрешения и блокировки различных служб по порту, сетевому интерфейсу и IP-адресу источника.

Как использовать это руководство
  • Если вы только начали использовать UFW для настройки своего брандмауэра, ознакомьтесь с нашими https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu -14-04 [введение в UFW]

  • Большинство описанных здесь правил предполагают, что вы используете набор правил UFW по умолчанию. То есть он настроен на разрешение исходящего и запрещенного входящего трафика с помощью политик по умолчанию, поэтому необходимо выборочно разрешать трафик в

  • Используйте те разделы, которые применимы к тому, чего вы пытаетесь достичь. Большинство разделов не основаны на других, поэтому вы можете использовать примеры ниже независимо

  • Используйте меню «Содержание» в правой части этой страницы (при большой ширине страницы) или функцию поиска вашего браузера, чтобы найти нужные разделы.

  • Скопируйте и вставьте приведенные примеры командной строки, заменив значения красным на собственные.

Помните, что вы можете проверить свой текущий набор правил UFW с помощью + sudo ufw status + или + sudo ufw status verbose +.

Заблокировать IP-адрес

Чтобы заблокировать все сетевые подключения, которые исходят от определенного IP-адреса, например + 15.15.15.51 +, выполните эту команду:

sudo ufw deny from

В этом примере + из 15.15.15.51 + указывает * исходный * IP-адрес “15.15.15.51”. При желании здесь можно указать подсеть, например + 15.15.15.0 / 24 +. Исходный IP-адрес может быть указан в любом правиле брандмауэра, включая правило * allow *.

Блокировать соединения с сетевым интерфейсом

Чтобы заблокировать соединения с определенного IP-адреса, например, + 15.15.15.51 +, к определенному сетевому интерфейсу, например + eth0 +, используйте эту команду:

sudo ufw deny in on eth0 from

Это то же самое, что и в предыдущем примере, с добавлением + in к eth0 +. Сетевой интерфейс может быть указан в любом правиле брандмауэра, и это отличный способ ограничить правило конкретной сетью.

Сервис: SSH

Если вы используете облачный сервер, вы, вероятно, захотите разрешить входящие SSH-соединения (порт 22), чтобы вы могли подключаться и управлять вашим сервером. В этом разделе описывается, как настроить брандмауэр с различными правилами, связанными с SSH.

Разрешить SSH

Чтобы разрешить все входящие соединения SSH, выполните эту команду:

sudo ufw allow ssh

Альтернативный синтаксис - указать номер порта службы SSH:

sudo ufw allow 22

Разрешить входящий SSH с определенного IP-адреса или подсети

Чтобы разрешить входящие соединения SSH с определенного IP-адреса или подсети, укажите источник. Например, если вы хотите разрешить всю подсеть + 15.15.15.0 / 24 +, выполните эту команду:

sudo ufw allow from   to any port 22

Разрешить входящую Rsync с определенного IP-адреса или подсети

Rsync, работающий через порт 873, может использоваться для передачи файлов с одного компьютера на другой.

Чтобы разрешить входящие соединения rsync с определенного IP-адреса или подсети, укажите исходный IP-адрес и порт назначения. Например, если вы хотите разрешить всей подсети + 15.15.15.0 / 24 + возможность rsync на ваш сервер, выполните эту команду:

sudo ufw allow from  to any port 873

Сервис: веб-сервер

Веб-серверы, такие как Apache и Nginx, обычно прослушивают запросы на порты 80 и 443 для соединений HTTP и HTTPS соответственно. Если ваша политика по умолчанию для входящего трафика настроена на удаление или отклонение, вы захотите создать правила, которые позволят вашему серверу отвечать на эти запросы.

Разрешить все входящие HTTP

Чтобы разрешить все входящие соединения HTTP (порт 80), выполните эту команду:

sudo ufw allow http

Альтернативный синтаксис - указать номер порта службы HTTP:

sudo ufw allow 80

Разрешить все входящие HTTPS

Чтобы разрешить все входящие подключения HTTPS (порт 443), выполните эту команду:

sudo ufw allow https

Альтернативный синтаксис - указать номер порта службы HTTPS:

sudo ufw allow 443

Разрешить все входящие HTTP и HTTPS

Если вы хотите разрешить трафик HTTP и HTTPS, вы можете создать единое правило, которое разрешает оба порта. Чтобы разрешить все входящие соединения HTTP и HTTPS (порт 443), выполните следующую команду:

sudo ufw allow proto tcp from any to any port 80,443

Обратите внимание, что вам нужно указать протокол, используя + proto tcp +, при указании нескольких портов.

Сервис: MySQL

MySQL прослушивает клиентские подключения через порт 3306. Если ваш сервер баз данных MySQL используется клиентом на удаленном сервере, вы должны обязательно разрешить этот трафик.

Разрешить MySQL с определенного IP-адреса или подсети

Чтобы разрешить входящие соединения MySQL с определенного IP-адреса или подсети, укажите источник. Например, если вы хотите разрешить всю подсеть + 15.15.15.0 / 24 +, выполните эту команду:

sudo ufw allow from  to any port 3306

Разрешить MySQL для конкретного сетевого интерфейса

Чтобы разрешить подключения MySQL к определенному сетевому интерфейсу, скажем, у вас есть частный сетевой интерфейс + eth1 +, например, используйте эту команду:

sudo ufw allow in on  to any port 3306

Сервис: PostgreSQL

PostgreSQL прослушивает клиентские соединения через порт 5432. Если ваш сервер баз данных PostgreSQL используется клиентом на удаленном сервере, вы должны обязательно разрешить этот трафик.

PostgreSQL с определенного IP-адреса или подсети

Чтобы разрешить входящие соединения PostgreSQL с определенного IP-адреса или подсети, укажите источник. Например, если вы хотите разрешить всю подсеть + 15.15.15.0 / 24 +, выполните эту команду:

sudo ufw allow from  to any port 5432

Вторая команда, которая разрешает исходящий трафик * установленных * соединений PostgreSQL, необходима, только если для политики + OUTPUT + не установлено значение + ACCEPT +.

Разрешить PostgreSQL для конкретного сетевого интерфейса

Чтобы разрешить подключения PostgreSQL к определенному сетевому интерфейсу, скажем, у вас есть частный сетевой интерфейс + eth1 +, например, используйте эту команду:

sudo ufw allow in on  to any port 5432

Вторая команда, которая разрешает исходящий трафик * установленных * соединений PostgreSQL, необходима, только если для политики + OUTPUT + не установлено значение + ACCEPT +.

Сервис: Почта

Почтовые серверы, такие как Sendmail и Postfix, прослушивают различные порты в зависимости от протоколов, используемых для доставки почты. Если вы используете почтовый сервер, определите, какие протоколы вы используете, и разрешите соответствующие типы трафика. Мы также покажем вам, как создать правило для блокировки исходящей SMTP-почты.

Блокировать исходящую почту SMTP

Если ваш сервер не должен отправлять исходящую почту, вы можете заблокировать этот тип трафика. Чтобы заблокировать исходящую почту SMTP, которая использует порт 25, выполните эту команду:

sudo ufw deny out 25

Это позволяет вашему брандмауэру * отбрасывать * весь исходящий трафик через порт 25. Если вам нужно отклонить другой сервис по номеру порта, а не по порту 25, просто замените его.

Разрешить все входящие SMTP

Чтобы разрешить вашему серверу отвечать на SMTP-соединения, порт 25, выполните следующую команду:

sudo ufw allow 25

Разрешить все входящие IMAP

Чтобы разрешить вашему серверу отвечать на соединения IMAP, порт 143, выполните следующую команду:

sudo ufw allow 143

Разрешить все входящие IMAPS

Чтобы разрешить вашему серверу отвечать на соединения IMAPS, порт 993, выполните следующую команду:

sudo ufw allow 993

Разрешить все входящие POP3

Чтобы разрешить вашему серверу отвечать на POP3-соединения, порт 110, выполните следующую команду:

sudo ufw allow 110

Разрешить все входящие POP3S

Чтобы разрешить вашему серверу отвечать на соединения POP3S, порт 995, выполните следующую команду:

sudo ufw allow 995

Заключение

Это должно охватывать многие команды, которые обычно используются при использовании UFW для настройки брандмауэра. Конечно, UFW - очень гибкий инструмент, поэтому не стесняйтесь смешивать и сочетать команды с различными параметрами, чтобы соответствовать вашим конкретным потребностям, если они здесь не рассматриваются.

Удачи!

Related