# Как закрыть сайт паролем

### Создание файла с логином и паролем

Зайдите в Shell-клиент в ispmanager под <mark style="color:red;">**root-пользователем**</mark>.

<figure><img src="/files/OFSrBKG5RenBUFxi2LOT" alt=""><figcaption></figcaption></figure>

Выполните команду, в которой укажите имя пользователя (в данном случае, для примера будет пользователь sysadmin):\
[`sh -c "echo -n 'sysadmin:' >> /etc/nginx/.htpasswd"`](#user-content-fn-1)[^1]

<figure><img src="/files/MF6qHEXWUNGu2vMdyUlS" alt=""><figcaption></figcaption></figure>

Затем выполните команду, при помощи которой будет зашифрован пароль доступа:\
`sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"`

<figure><img src="/files/DK48WJBEtwhafp9HhbRw" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Пояснение по параметрам команд выше:

**sh** — запуск командной оболочки (shell)

**-c** — ключ, указывающий, что следующая строка — команда для выполнения

**echo** — выводит текст в консоль

**-n** — опция, запрещающая добавлять символ перевода строки (\n) в конце вывода

**'sysadmin:'** — выводимый текст (имя пользователя + двоеточие)

**>>** — оператор перенаправления вывода: добавляет данные в конец файла (не перезаписывает его)

**/etc/nginx/.htpasswd** — путь к файлу, в который добавляется строка

**openssl** — утилита для криптографических операций

**passwd** — подкоманда для генерации хеша пароля

**-apr1** — алгоритм хеширования (Apache mod\_auth\_digest MD5, совместимый с Nginx).
{% endhint %}

**После этого действия система запросит пароль и подтверждение пароля — укажите их.**

Настройка файла с логином и паролем закончена.

### Настройки файла конфигурации nginx:

Под пользователем root зайдите во вкладку "Sites" и выберите в меню "Configuration files"

<figure><img src="/files/nOSJiEBX5jt8iFKhYJpT" alt=""><figcaption></figcaption></figure>

В файле конфигурации найдите блок location, который расположен в блоке server ssl (в конце файла), вставьте следующие строки:

```
allow 123.123.123.123;
deny all;

auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;

satisfy any;
```

<figure><img src="/files/8OgNxwdxNBGb7oqtFhsz" alt=""><figcaption></figcaption></figure>

**IP адрес 123.123.123.123 сервера с сайтом (web), в вашем случае он будет другим!**

После чего сохраните изменения и перегрузите сервер.

<figure><img src="/files/ptnRYwYmLskNBDdM6A42" alt=""><figcaption></figcaption></figure>

Чтобы отключить пароль к сайту, удалите строки (2), сохраните изменения и перегрузите сервер.

[^1]: Расшифровка параметров команд приведена ниже


---

# Agent Instructions: 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:

```
GET https://premium.gitbook.io/main/pered-nachalom-raboty/osnovy-bezopasnosti/kak-zakryt-sait-parolem.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
