> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/guide/nachalo-raboty/centr-bezopasnosti/konfiguraciya-brandmauera-ufw.md).

# Конфигурация брандмауэра UFW

UFW (Uncomplicated Firewall) — это встроенный брандмауэр Linux, который позволяет контролировать входящие сетевые подключения к серверу.

С помощью UFW можно разрешить доступ только к необходимым сервисам и автоматически блокировать все остальные подключения.

Для проектов iEXExchanger использование брандмауэра является обязательной мерой безопасности и рекомендуется для всех серверов без исключения.

***

## Что защищает UFW

После настройки UFW позволяет:

* ограничить доступ к серверу только необходимыми портами;
* скрыть неиспользуемые сервисы от внешней сети;
* снизить количество автоматических атак и сканирований;
* ограничить доступ к панели управления сервером;
* защитить внутренние сервисы от прямого доступа из Интернета.

***

## Перед началом

Перед настройкой убедитесь, что:

* сервер работает под управлением Debian 12;
* установлен FastPanel;
* имеется SSH-доступ к серверу;
* вы знаете используемый SSH-порт.

Если используется стандартный SSH-порт, обычно это:

```
22
```

Если ранее порт был изменён, используйте свой номер порта.

***

## Важное предупреждение

Перед включением UFW обязательно разрешите доступ к SSH.

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

***

## Подключение к серверу

Подключитесь к серверу по SSH.

{% content-ref url="/spaces/uyjsNtEAtO6Sby8CHWyD/pages/cCEoFDjTDIufy3NUEakd" %}
[Подключение к серверу по SSH](/help-center/upravlenie-serverom/podklyuchenie-k-serveru-po-ssh.md)
{% endcontent-ref %}

Пример:

```bash
ssh root@IP_АДРЕС_СЕРВЕРА
```

После подключения выполните настройку.

***

## Установка UFW

Обновите список пакетов:

```bash
apt update
```

Установите UFW:

```bash
apt install ufw -y
```

Проверьте состояние:

```bash
ufw status
```

Если брандмауэр ещё не включён, будет отображено:

```
Status: inactive
```

***

## Сброс старых правил

Если сервер использовался ранее и вы не уверены в существующих настройках, рекомендуется очистить конфигурацию.

```bash
ufw reset
```

Подтвердите действие:

```
y
```

***

## Настройка политики безопасности

Запретить все входящие подключения по умолчанию:

```bash
ufw default deny incoming
```

Разрешить исходящие подключения:

```bash
ufw default allow outgoing
```

Проверить настройки:

```bash
ufw status verbose
```

***

## Разрешение SSH

Если используется стандартный SSH-порт:

```bash
ufw allow 22/tcp
```

или

```bash
ufw allow ssh
```

Если используется нестандартный порт, например:

```
2222
```

выполните:

```bash
ufw allow 2222/tcp
```

***

## Разрешение доступа к сайтам

Для работы сайта необходимо открыть HTTP и HTTPS.

```bash
ufw allow 80/tcp
```

```bash
ufw allow 443/tcp
```

***

## Разрешение доступа к FastPanel

По умолчанию FastPanel использует порт:

```
8888
```

или

```
8080
```

в зависимости от версии панели.

Если панель работает через порт 8888:

```bash
ufw allow 8888/tcp
```

Если используется порт 8080:

```bash
ufw allow 8080/tcp
```

Если доступ к панели управления ограничен по IP, рекомендуется разрешать доступ только со своего IP-адреса.

Пример:

```bash
ufw allow from 203.0.113.10 to any port 8888 proto tcp
```

***

## Redis

Если Redis используется только внутри сервера, открывать порт Redis не требуется.

Порт:

```
6379
```

должен быть доступен только локально.

Проверить:

```bash
ss -tulpn | grep 6379
```

Если Redis слушает:

```
127.0.0.1:6379
```

дополнительная настройка не требуется.

***

## Laravel Reverb и WebSocket

Если используется Laravel Reverb, обычно применяется порт:

```
8080
```

или другой внутренний порт.

Если подключение происходит через Nginx Proxy Pass, открывать данный порт в UFW не требуется.

Рекомендуется оставлять WebSocket доступным только локально:

```
127.0.0.1
```

***

## Включение брандмауэра

После добавления всех необходимых правил включите UFW:

```bash
ufw enable
```

Подтвердите действие:

```
y
```

После включения появится сообщение:

```
Firewall is active and enabled on system startup
```

***

## Проверка правил

Посмотреть текущие правила:

```bash
ufw status numbered
```

Пример:

```
Status: active

[1] 22/tcp      ALLOW IN Anywhere
[2] 80/tcp      ALLOW IN Anywhere
[3] 443/tcp     ALLOW IN Anywhere
[4] 8888/tcp    ALLOW IN Anywhere
```

***

## Удаление правила

Чтобы удалить правило:

```bash
ufw status numbered
```

Найдите номер правила.

Например:

```
[4] 8888/tcp
```

Удалите его:

```bash
ufw delete 4
```

***

## Временное отключение UFW

При необходимости:

```bash
ufw disable
```

Повторное включение:

```bash
ufw enable
```

***

## Проверка открытых портов

Проверить активные сервисы:

```bash
ss -tulpn
```

Проверить прослушиваемые порты:

```bash
ss -tulpn | grep LISTEN
```

После настройки рекомендуется убедиться, что открыты только необходимые порты.

***

## Рекомендуемая конфигурация для iEXExchanger

Для большинства проектов достаточно следующего набора:

<table><thead><tr><th width="222.02734375">Порт</th><th>Назначение</th></tr></thead><tbody><tr><td>22</td><td>SSH</td></tr><tr><td>80</td><td>HTTP</td></tr><tr><td>443</td><td>HTTPS</td></tr><tr><td>8888 или 8080</td><td>FastPanel</td></tr></tbody></table>

Все остальные входящие подключения рекомендуется блокировать.

***

## Дополнительная защита

Для повышения безопасности рекомендуется дополнительно настроить:

* Fail2Ban;
* Cloudflare;
* ограничение доступа к административной панели по IP;
* двухфакторную аутентификацию;
* защиту Origin Server от прямого доступа;
* регулярное обновление системы.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/guide/nachalo-raboty/centr-bezopasnosti/konfiguraciya-brandmauera-ufw.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
