> 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/learn/server-domeny-i-infrastruktura/overview/initial-security.md).

# Первичная защита сервера

Эти действия выполняет системный администратор сразу после создания сервера и до публикации DNS. Сохраните рабочую аварийную консоль провайдера: ошибка SSH или сетевого экрана может закрыть обычный вход.

## Проверка исходного состояния

Подключитесь по SSH, сверив отпечаток сервера с первым доверенным подключением. Проверьте имя узла, ОС, диски, память, время и слушающие порты:

```bash
hostnamectl
timedatectl
lsblk
free -h
ss -lntup
```

Команды выполняйте из административной сессии. Не публикуйте полный вывод: он может содержать адреса, имена процессов и структуру сети.

## Обновления и время

Установите штатные обновления безопасности для выбранной ОС и повторно загрузите сервер только тогда, когда пакет или ядро действительно требуют этого. До перезагрузки убедитесь, что доступ через консоль провайдера работает.

Временная зона журнала должна быть известна, а системное время синхронизировано. Неверное время нарушает TLS, подписи callback, сроки заявок и сопоставление журналов.

## Учётные записи и SSH

Создайте отдельную административную учётную запись для каждого специалиста и добавьте его публичный ключ. Проверьте вход в новой сессии, прежде чем запрещать пароль или вход root. Приватный ключ никогда не копируется на сервер и не отправляется в поддержку.

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

## Сетевой экран

На этапе установки достаточно:

| Порт         | Доступ                                                                    |
| ------------ | ------------------------------------------------------------------------- |
| SSH          | Только доверенные административные адреса                                 |
| HTTP и HTTPS | После настройки сайта; затем через Cloudflare и подтверждённые интеграции |
| FASTPANEL    | Только доверенные адреса или VPN                                          |

Не публикуйте PostgreSQL, Redis, SSR, Supervisor и внутренний канал реального времени. Сначала измените правило в новой сессии, затем проверьте существующую и новую SSH-сессию. Не закрывайте текущий терминал до подтверждения входа.

## Системные и прикладные пользователи

Не запускайте приложение, планировщик, очереди и Node.js-процесс от root. В FASTPANEL создайте отдельного владельца клиентского сайта и отдельного владельца серверной части. Это ограничивает последствия ошибки и не даёт одному компоненту изменять файлы другого.

Права на каталоги должны позволять веб-процессу записывать только в предусмотренные приложением каталоги. Не выдавайте запись всем пользователям как исправление ошибки доступа. Установите правильного владельца и минимальные права после определения процесса, который должен выполнять запись.

## Секреты и журналирование

Файл окружения, приватные ключи, токены, пароли базы и резервного хранилища доступны только владельцу серверной части и необходимому процессу. Не включайте секреты в историю shell, cloud-init, снимок экрана или обращение в поддержку.

Включите журнал входов, событий панели и операций провайдера. Определите срок хранения и внешний канал оповещения, который продолжит работать при недоступности сервера.

## Проверка

1. Войдите отдельным ключом в новой сессии.
2. Убедитесь, что неизвестные публичные порты отсутствуют.
3. Проверьте синхронизацию времени и свободное место.
4. Проверьте сетевые правила у провайдера и в ОС.
5. Создайте снимок исходной защищённой системы.
6. Зафиксируйте способ аварийного входа и возврата сетевых правил.


---

# 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/learn/server-domeny-i-infrastruktura/overview/initial-security.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.
