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

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

Как использовать это руководство

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

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

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

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

sudo ufw deny from 15.15.15.51

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

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

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

sudo ufw deny in on eth0 from 15.15.15.51

Это то же самое, что и в предыдущем примере, с добавлением in on 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 15.15.15.0/24  to any port 22

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

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

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

sudo ufw allow from 15.15.15.0/24 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 15.15.15.0/24 to any port 3306

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

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

sudo ufw allow in on eth1 to any port 3306

Сервис: PostgreSQL

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

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

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

sudo ufw allow from 15.15.15.0/24 to any port 5432

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

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

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

sudo ufw allow in on eth1 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

Примечание. Обычно SMTP-серверы используют порт 587 для исходящей почты.

Разрешить все входящие 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 — очень гибкий инструмент, поэтому не стесняйтесь смешивать и подбирать команды с различными параметрами, чтобы соответствовать вашим конкретным потребностям, если они здесь не рассматриваются.


By Mitchell Anicas

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *