summaryrefslogtreecommitdiff
path: root/LINUX/UFW.md
diff options
context:
space:
mode:
authorvlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
committervlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
commite5abc1fe99340b979b18864d978179f71fe8f5c5 (patch)
tree98fd0ad7c6d0744894d6e74e446daacd9e6dd1b5 /LINUX/UFW.md
First
Diffstat (limited to 'LINUX/UFW.md')
-rw-r--r--LINUX/UFW.md165
1 files changed, 165 insertions, 0 deletions
diff --git a/LINUX/UFW.md b/LINUX/UFW.md
new file mode 100644
index 0000000..af92d4e
--- /dev/null
+++ b/LINUX/UFW.md
@@ -0,0 +1,165 @@
+```sh
+sudo su
+
+ufw status
+
+ufw enable
+
+ufw app list
+ufw allow OpenSSH
+
+# Чтобы увидеть, что в настоящее время заблокировано или разрешено, вы можете использовать параметр **verbose** при запуске **ufw status**, как показано ниже:
+
+sudo ufw status verbose
+
+sudo ufw disable
+
+# Блокировка обращения IP-адреса
+# Чтобы заблокировать все сетевые подключения, исходящие с определенного IP-адреса, выполните следующую команду, заменив выделенный IP-адрес на IP-адрес, который вы хотите заблокировать:
+
+sudo ufw deny from 91.198.174.190
+
+# Заблокировать подсеть
+# Если вам нужно заблокировать всю подсеть, вы можете использовать адрес подсети в качестве параметра «from» в команде ufw deny. Это заблокирует все IP-адреса в приведенной в примере подсети 91.198.174.0/24:
+
+sudo ufw deny from 91.198.174.0/24
+
+# Блокирование входящих подключений к сетевому интерфейсу
+# Чтобы заблокировать входящие подключения с определенного IP-адреса к определенному сетевому интерфейсу, выполните следующую команду, заменив IP-адрес на IP-адрес, который вы хотите заблокировать:
+
+sudo ufw deny in on eth0 from 91.198.174.192
+
+# Параметр «in» указывает брандмауэру применять правило только для входящих соединений, а параметр «on eth0» указывает, что правило применяется только для интерфейса eth0.
+# Это может быть полезно, если у вас есть система с несколькими сетевыми интерфейсами (включая виртуальные), и вам нужно заблокировать внешний доступ к некоторым из этих интерфейсов, но не ко всем.
+
+# Разрешить обращения IP-адреса
+# Чтобы разрешить все сетевые подключения, исходящие с определенного IP-адреса, выполните следующую команду, заменив выделенный IP-адрес на IP-адрес, к которому вы хотите разрешить доступ:
+
+sudo ufw allow from 91.198.174.192
+
+# Если теперь вы запустите «sudo ufw status», вы увидите вывод, похожий на этот, с надписью ALLOW рядом с IP-адресом, который вы только что добавили:
+
+# Разрешение входящих подключений к сетевому интерфейсу
+# Чтобы разрешить входящие подключения с определенного IP-адреса к определенному сетевому интерфейсу, выполните следующую команду, заменив IP-адрес на тот, который вы хотите разрешить:
+
+sudo ufw allow in on eth0 from 91.198.174.22
+
+# Параметр «in» указывает брандмауэру применять правило только для входящих соединений, а параметр «on eth0» указывает, что правило применяется только для интерфейса «eth0».
+
+# Удалить правило брандмауэра
+# Чтобы удалить правило, ранее установленное в UFW, используйте **ufw delete**, затем введите правило (allow / deny) и целевую спецификацию. В следующем примере удаляется правило, ранее установленное для разрешения всех подключений с IP-адреса 91.198.174.192:
+
+sudo ufw delete allow from 91.198.174.192
+
+# Другой способ указать, какое правило вы хотите удалить, – это указать ID правила. Эту информацию можно получить с помощью следующей команды:
+
+sudo ufw status numbered
+
+sudo ufw delete 1
+
+# Список доступных профилей приложений
+# При установке приложения, которые полагаются на сетевые коммуникации, обычно устанавливают профиль брандмауэра, который можно использовать для разрешения подключения с внешних адресов. Это часто то же самое, что запустить «ufw allow from», с тем преимуществом, что это ярлык, который абстрагирует конкретные номера портов, используемые службой, и обеспечивает удобную номенклатуру для ссылающихся служб.
+
+sudo ufw app list
+
+# Если вы установили службу, например, веб-сервер или другое сетезависимое программное обеспечение, и профиль не был доступен в брандмауэре, сначала убедитесь, что служба включена.
+
+# В следующем примере мы включаем профиль OpenSSH, который разрешит все входящие SSH-соединения на стандартном порту SSH.
+
+sudo ufw allow OpenSSH
+
+# Отключить профиль для определенного приложения
+# Чтобы отключить профиль приложения, который вы ранее настроили в брандмауэре, вам нужно удалить соответствующее правило.
+
+sudo ufw status
+
+# Этот вывод указывает на то, что профиль приложения «Nginx Full» в настоящее время включен, разрешая любые соединения с веб-сервером как через HTTP[](https://serverspace.ru/support/glossary/http/), так и через HTTPS.
+
+# Если вы хотите разрешить только HTTPS-запросы к вашему веб-серверу, вам нужно сначала включить наиболее ограничивающее правило, которым в данном случае будет «Nginx HTTPS», а затем отключить активное правило «Nginx Full»:
+
+sudo ufw allow "Nginx HTTPS" sudo ufw delete allow "Nginx Full"
+
+# Помните, что вы можете перечислить все доступные профили приложений с помощью:
+
+sudo ufw app list
+
+
+
+ip addr show
+hostname -I
+
+curl -4 icanhazip.com
+```
+=====================================================
+### Шпаргалка по ufw для базовой настройки фаервола
+
+Сетевой безопасностью часто пренебрегают при создании своих проектов на своем сервере. Но даже базовая настройка фаервола уже существенно снижает риски.
+
+`ufw (Uncomplicated Firewall)` - простой способ настроить фаервол на Linux. Работает как обёртка над iptables, но не требует глубоких знаний сетевого стека.
+
+Зачем вообще нужен фаервол?
+
+Когда ты поднимаешь сервер (особенно публичный), он сразу становится видимым всему интернету. И даже если ты не настраиваешь ничего «опасного», какие-то сервисы по умолчанию могут слушать порты.
+
+ufw помогает ограничить доступ: только те порты, которые ты явно разрешил - будут открыты. Если ты только поднял VPS и хочешь защитить сервер - это именно то, что нужно. Если по какой-то причине у тебя ufw не установлен:
+
+`sudo apt install ufw
+
+Перед включением стоит задать основные правила, иначе можно случайно отрезать себя от SSH-доступа (особенно на VPS). Начнем с самого важного:
+
+`sudo ufw allow ssh
+
+Теперь можно активировать фаервол:
+
+`sudo ufw enable
+
+Просмотр статуса и активных правил:
+
+`sudo ufw status verbose
+
+Отключение при необходимости:
+
+`sudo ufw disable
+
+Базовые правила, которые стоить задать
+
+Одно правило по разрешению ssh-доступа мы уже добавили, также будет правильно разрешить веб-траффик (http/https):
+
+
+$ sudo ufw allow 80,443/tcp
+
+
+Полезно запретить весь входящий трафик по умолчанию и разрешить только нужное. Также оставить открытым все на выход:
+
+`sudo ufw default deny incoming
+
+`sudo ufw default allow outgoing
+
+#### Полезные команды:
+
+**Удалить правило:
+
+`sudo ufw delete allow 80/tcp
+
+**Разрешить доступ по конкретному IP:
+
+sudo ufw allow from 192.168.1.10
+
+Это может понадобиться, например, чтобы открыть порты для веб-траффика только Cloudflare или ServicePipe и закрыть для всего остального:
+
+`ufw default deny incoming
+`ufw default allow outgoing
+
+предположим что 192.168.1.10 - IP нашего ServicePipe
+
+`sudo ufw allow from 192.168.1.10 to any port 22
+
+Сбросить все правила и начать с нуля:
+
+`sudo ufw reset
+
+После настройки рекомендую протестировать сервер из другого устройства или использовать онлайн-сервисы вроде portquiz или nmap для сканирования портов. Также полезно мониторить логи:
+
+`sudo less /var/log/ufw.log
+
+Если `ufw` работает - ты увидишь записи о заблокированных соединениях, особенно на нестандартные порты. Даже минимальные настройки ufw — это уже огромный шаг вперёд в безопасности. Он не требует глубокого понимания iptables и легко вписывается в ежедневный рабочий процесс. Один раз настроил — и забыл. \ No newline at end of file