====== Основные команды UFW ======

===== Установка =====

<code bash>sudo apt update && sudo apt install ufw</code>

===== Проверка статуса UFW =====

<code bash>sudo ufw status</code>

===== Включение UFW =====

<code bash>sudo ufw enable</code>

Чтобы увидеть, что в настоящее время заблокировано или разрешено, вы можете использовать параметр **verbose** при запуске **ufw status**, как показано ниже:

<code bash>sudo ufw status verbose</code>

===== Отключение UFW =====

<code bash>sudo ufw disable</code>

===== Блокировка обращения IP-адреса =====

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

<code bash>sudo ufw deny from 91.198.174.190</code>

В этом примере **from 91.198.174.190** указывает IP-адрес источника «91.198.174.190».

<code bash>sudo ufw status</code>

===== Заблокировать подсеть =====

<code bash>sudo ufw deny from 91.198.174.0/24</code>

===== Блокирование входящих подключений к сетевому интерфейсу =====

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

<code bash>sudo ufw deny in on eth0 from 91.198.174.192</code>

Параметр «in» указывает брандмауэру применять правило только для входящих соединений, а параметр «on eth0» указывает, что правило применяется только для интерфейса eth0.

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

===== Разрешить обращения IP-адреса =====

<code bash>sudo ufw allow from 91.198.174.192</code>

===== Разрешение входящих подключений к сетевому интерфейсу =====

<code bash>sudo ufw allow in on eth0 from 91.198.174.22</code>

===== Удалить правило брандмауэра =====

<code bash>sudo ufw delete allow from 91.198.174.192</code>

Другой способ указать, какое правило вы хотите удалить, – это указать ID правила. Эту информацию можно получить с помощью следующей команды:

<code bash>sudo ufw status numbered</code>

===== Список доступных профилей приложений =====

<code bash>sudo ufw app list</code>

===== Включить профиль для определенного приложения =====

<code bash>sudo ufw app list</code>

<code bash>sudo ufw allow OpenSSH</code>

===== Отключить профиль для определенного приложения =====

<code bash>sudo ufw status</code>

сли вы хотите разрешить только HTTPS-запросы к вашему веб-серверу, вам нужно сначала включить наиболее ограничивающее правило, которым в данном случае будет «Nginx HTTPS», а затем отключить активное правило «Nginx Full»:

<code bash>sudo ufw allow "Nginx HTTPS"
sudo ufw delete allow "Nginx Full"</code>

===== Разрешить SSH =====

<code bash>sudo ufw allow OpenSSH</code>

<code bash>sudo ufw allow 22</code>

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

<code bash>sudo ufw allow from 91.198.174.33 proto tcp to any port 22</code>

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

<code bash>sudo ufw allow from 91.198.174.33 to any port 873</code>

===== Разрешить Nginx HTTP / HTTPS =====

<code bash>sudo ufw app list | grep Nginx</code>

<code bash>sudo ufw allow "Nginx Full"</code>

===== Разрешить Apache HTTP / HTTPS =====

<code bash>sudo ufw app list | grep Apache</code>

<code bash>sudo ufw allow "Apache Full"</code>

===== Разрешить все входящие HTTP (порт 80) =====

<code bash>sudo ufw allow http</code>

<code bash>sudo ufw allow 80</code>

===== Разрешить все входящие HTTPS (порт 443) =====

<code bash>sudo ufw allow https</code>

<code bash>sudo ufw allow 443</code>

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

<code bash>sudo ufw allow proto tcp from any to any port 80,443</code>

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

<code bash>sudo ufw allow from 91.198.174.33 to any port 3306</code>

===== Разрешить подключение к PostgreSQL с определенного IP-адреса или подсети =====

<code bash>sudo ufw allow from 91.198.174.33 to any port 5432</code>

