# Консольный доступ pfSense - консоль, SSH, восстановление

> Управление pfSense через консольное меню, последовательную консоль и SSH: все пункты меню, настройка доступа и восстановление системы

Source: https://opennix.org/docs/pfsense/configuration/pfsense-console-access/


Консольный доступ к pfSense предоставляет административные функции, доступные без веб-интерфейса: от базовой диагностики до полного сброса к заводским настройкам. Консоль является критически важным инструментом при потере доступа к GUI, восстановлении после сбоев и первоначальной настройке сетевых интерфейсов. Параметры последовательной консоли и SSH настраиваются в разделе [расширенных настроек](/docs/pfsense/configuration/pfsense-advanced-settings/).

## Способы доступа к консоли

pfSense предоставляет три способа доступа к консольному меню:

| Способ | Применение | Требования |
|---|---|---|
| Клавиатура и монитор | Физический сервер с видеовыходом | VGA/HDMI-подключение, USB/PS2-клавиатура |
| Последовательная консоль | Безголовые системы, встраиваемые устройства | Кабель DB-9/RJ-45, терминальная программа |
| SSH | Удалённое администрирование | Включённый SSH-демон, сетевая связность |

### Подключение через клавиатуру и монитор

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

### Подключение через последовательную консоль

Для безголовых систем и встраиваемых устройств (Netgate 1100, 2100, 4100 и аналогичные) последовательная консоль является основным интерфейсом управления.

#### Параметры подключения

| Параметр | Значение |
|---|---|
| Скорость (Baud Rate) | 115200 (по умолчанию) |
| Биты данных | 8 |
| Стоп-биты | 1 |
| Чётность | Нет (None) |
| Управление потоком | Нет (None) |

#### Терминальные программы

| Платформа | Программа | Пример команды |
|---|---|---|
| Linux | minicom, screen, picocom | `screen /dev/ttyUSB0 115200` |
| macOS | screen, CoolTerm | `screen /dev/tty.usbserial 115200` |
| Windows | PuTTY, Tera Term | Выбрать Serial, указать COM-порт и скорость |
| FreeBSD | cu, tip | `cu -l /dev/cuaU0 -s 115200` |

При использовании USB-адаптера последовательного порта убедитесь, что драйвер установлен и устройство определяется операционной системой.

#### Настройка в pfSense

Последовательная консоль включается в System > Advanced > Admin Access:

1. Установите флажок **Serial Terminal**
2. Выберите скорость в поле **Serial Speed** (115200 для большинства устройств)
3. При необходимости измените **Primary Console** на Serial
4. Сохраните настройки и перезагрузите систему

> **Warning**:
>
> На устройствах Netgate с последовательной консолью в качестве единственного интерфейса не изменяйте Primary Console на Video - это приведёт к потере доступа к консольному меню.

### Подключение через SSH

SSH обеспечивает удалённый доступ к консольному меню и командной оболочке через защищённое соединение.

#### Включение SSH

SSH включается двумя способами:

**Через веб-интерфейс:**
1. Перейдите в System > Advanced > Admin Access
2. Установите флажок **Enable Secure Shell**
3. Выберите метод аутентификации в **SSHd Key Only**
4. При необходимости измените порт в **SSH Port**
5. Сохраните настройки

**Через консольное меню:**
1. Подключитесь к консоли (клавиатура или последовательный порт)
2. Выберите пункт **14) Enable/Disable Secure Shell (sshd)**

#### Аутентификация по ключам

Для production-сред рекомендуется использовать аутентификацию только по ключам:

1. Сгенерируйте ключевую пару на клиентской машине:

```bash
ssh-keygen -t ed25519 -C "admin@firewall"
```

2. В веб-интерфейсе pfSense перейдите в System > User Manager
3. Откройте настройки пользователя
4. Вставьте содержимое файла `id_ed25519.pub` в поле **Authorized SSH Keys**
5. В System > Advanced > Admin Access установите **SSHd Key Only** в значение **Public Key Only**

После этого аутентификация по паролю будет отключена. Убедитесь, что ключ работает, прежде чем отключать парольный доступ.

#### Подключение по SSH

```bash
# Стандартное подключение
ssh admin@192.168.1.1

# С указанием нестандартного порта
ssh -p 2222 admin@192.168.1.1

# С указанием ключа
ssh -i ~/.ssh/id_ed25519 admin@192.168.1.1
```

После подключения отображается консольное меню, идентичное локальной консоли, за исключением дополнительного пункта **0) Logout**.

## Консольное меню

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

### Полный список пунктов меню

#### 0) Logout (только SSH)

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

#### 1) Assign Interfaces

Перезапускает мастер назначения интерфейсов. Позволяет:

- Создавать VLAN-интерфейсы
- Назначать физические и VLAN-интерфейсы ролям WAN, LAN, OPT
- Переназначать интерфейсы при замене сетевых адаптеров

Используется при первоначальной настройке и при изменении физической конфигурации сети. Подробнее о настройке интерфейсов - в разделе [интерфейсы pfSense](/docs/pfsense/interfaces/).

#### 2) Set interface(s) IP address

Настраивает IP-адреса на интерфейсах WAN, LAN и OPT. Функции:

- Назначение статического IP-адреса, маски подсети и шлюза
- Включение/отключение DHCP-клиента на интерфейсе
- Переключение GUI с HTTPS на HTTP (при проблемах с сертификатом)
- Восстановление правила Anti-Lockout на LAN-интерфейсе
- Настройка диапазона DHCP-сервера на LAN

Этот пункт часто используется для восстановления доступа к веб-интерфейсу, когда IP-адрес LAN был изменён некорректно.

#### 3) Reset admin account and password

Сбрасывает учётную запись и пароль администратора. Возможности:

- Сброс пароля пользователя admin к значению по умолчанию
- Восстановление удалённой учётной записи admin
- Повторная активация заблокированной учётной записи
- Возврат аутентификации к локальной базе данных (если был настроен LDAP/RADIUS и сервер недоступен)

Начиная с версии 24.03, при первом подключении к консоли после установки или сброса к заводским настройкам система принудительно требует установить новый пароль admin.

#### 4) Reset to factory defaults

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

#### 5) Reboot system

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

#### 6) Halt system

Корректно останавливает систему. В зависимости от оборудования выполняет полное выключение питания или останов процессора. Всегда используйте этот пункт перед физическим отключением питания - прямое обесточивание может привести к повреждению файловой системы.

#### 7) Ping host

Отправляет три ICMP-запроса на указанный хост для проверки связности. Для IPv4-адресов и доменных имён используется `ping`, для IPv6 - `ping6`. Базовый инструмент диагностики сетевых проблем.

#### 8) Shell

Открывает командную оболочку (`tcsh` или `sh`). Предоставляет полный доступ к операционной системе FreeBSD, включая:

- Просмотр и редактирование конфигурационных файлов
- Запуск диагностических утилит (`ifconfig`, `netstat`, `tcpdump`)
- Управление сервисами
- Выполнение скриптов

> **Warning**:
>
> Некорректные действия в оболочке могут привести к неработоспособности системы. Используйте shell только при понимании выполняемых команд. Для возврата в консольное меню введите `exit`.

#### 9) pfTop

Отображает в реальном времени таблицу состояний межсетевого экрана с информацией об активных соединениях и объёме переданных данных. Позволяет:

- Определить наиболее активные соединения
- Диагностировать проблемы с пропускной способностью
- Проверить работу NAT и правил межсетевого экрана

#### 10) Filter Logs

Отображает записи журнала межсетевого экрана в реальном времени в необработанном формате. Содержит больше деталей, чем журнал в веб-интерфейсе, и полезен для оперативной диагностики заблокированного трафика. Для расширенного мониторинга рассмотрите интеграцию с [системами SIEM](/docs/pfsense/pfsense-wazuh-integration/).

#### 11) Restart GUI

Перезапускает процесс веб-сервера nginx. Используйте при зависании веб-интерфейса, когда страницы не загружаются или возвращают ошибки.

#### 12) PHP shell + pfSense tools

Запускает интерпретатор PHP в контексте работающей системы. Предназначен для разработчиков и опытных администраторов, позволяя:

- Выполнять PHP-код с доступом к внутренним функциям pfSense
- Читать и модифицировать конфигурацию программно
- Диагностировать проблемы на уровне приложения

#### 13) Upgrade from console

Запускает скрипт обновления pfSense до последней доступной версии. Аналогичен обновлению через GUI, но не требует веб-интерфейса. Подробнее об обновлении - в разделе [обновление pfSense](/docs/pfsense/installation/pfsense-upgrading/).

#### 14) Enable/Disable Secure Shell (sshd)

Переключает состояние SSH-демона. Быстрый способ включить или отключить SSH без доступа к веб-интерфейсу.

#### 15) Restore recent configuration

Отображает список резервных копий конфигурации из истории с временными метками и описаниями изменений. Позволяет восстановить предыдущую конфигурацию при ошибочных изменениях. Каждое сохранение в веб-интерфейсе автоматически создаёт запись в истории.

#### 16) Restart PHP-FPM

Перезапускает PHP-демон для nginx. Используйте, если веб-сервер запущен, но PHP-скрипты не выполняются (пустые страницы, ошибки 502/504).

## Сценарии восстановления

### Потеря доступа к веб-интерфейсу

Если доступ к GUI утрачен, выполните следующие действия через консоль:

1. Подключитесь к консоли (клавиатура, последовательный порт или SSH, если SSH работает)
2. Пункт **2** - проверьте и при необходимости исправьте IP-адрес LAN-интерфейса
3. При запросе **Do you want to revert to HTTP as the webConfigurator protocol?** ответьте `y`, если проблема связана с HTTPS/сертификатом
4. При запросе **Do you want to enable the DHCP server on LAN?** проверьте настройки DHCP
5. При запросе Anti-Lockout Rule ответьте `y` для восстановления правила доступа

### Сброс пароля администратора

1. Подключитесь к физической консоли
2. Выберите пункт **3) Reset admin account and password**
3. Следуйте инструкциям для установки нового пароля
4. Войдите в веб-интерфейс с новым паролем

### Восстановление после неудачного изменения конфигурации

1. Подключитесь к консоли
2. Выберите пункт **15) Restore recent configuration**
3. Из списка резервных копий выберите конфигурацию, предшествующую ошибочному изменению
4. Подтвердите восстановление
5. Система перезагрузится с восстановленной конфигурацией

### Полный сброс к заводским настройкам

В случае невозможности восстановления конфигурации:

1. Подключитесь к консоли
2. Убедитесь, что резервная копия конфигурации сохранена на внешнем носителе
3. Выберите пункт **4) Reset to factory defaults**
4. Подтвердите операцию
5. После перезагрузки выполните настройку с нуля или импортируйте резервную копию через веб-интерфейс

## Безопасность консольного доступа

### Физическая безопасность

Физический доступ к консоли предоставляет полный контроль над системой, включая сброс пароля и доступ к оболочке. Меры защиты:

- Размещайте межсетевой экран в запираемом серверном шкафу
- Ограничивайте доступ в серверное помещение
- Используйте **Console menu protection** (System > Advanced > Admin Access) для парольной защиты консоли
- Для устройств с последовательной консолью обеспечьте защиту терминального сервера

### Безопасность SSH

- Не открывайте SSH-порт на WAN-интерфейсе без крайней необходимости
- Используйте [правила межсетевого экрана](/docs/pfsense/firewall/) для ограничения источников SSH-подключений
- Включите аутентификацию только по ключам
- Регулярно просматривайте логи SSH-подключений
- Рассмотрите использование fail2ban через пакет [pfBlockerNG](/docs/pfsense/pfsense-packages/) для защиты от перебора

### Журналирование

Все действия через консольное меню, SSH-подключения и события аутентификации записываются в системные логи. Для централизованного сбора и анализа логов настройте пересылку syslog на внешний сервер или интеграцию с SIEM-системой.

