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