Полная установка FreePBX 17 в LXC-контейнере Debian 12 (с двумя сетевыми интерфейсами)
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| README.md | ||
Полная установка FreePBX 17 в LXC-контейнере Debian 12 (с двумя сетевыми интерфейсами)
1. Создание LXC-контейнера в Proxmox
Загрузка шаблона Debian 12:
- В веб-интерфейсе Proxmox перейдите в "Local (pve)" → "CT Templates"
- Нажмите "Templates" и выберите
debian-12-standard_12.2-1_amd64.tar.zst
Параметры контейнера:
- Hostname: freepbx
- Password: задайте сложный пароль
- Storage: выберите локальное хранилище
- Disk (GB): 10 ГБ (минимально 6 ГБ с учётом роста)
- CPU cores: 2
- Memory (MiB): 4096
- Swap (MiB): 4096
- Network:
- eth0: для управления (статический IP)
- eth1: для VoIP-трафика (статический IP)
Настройка двух сетевых интерфейсов:
nano /etc/network/interfaces
auto lo
iface lo inet loopback
# Управляющий интерфейс
auto eth0
iface eth0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
dns-nameservers 8.8.8.8 1.1.1.1
# VoIP интерфейс
auto eth1
iface eth1 inet static
address 10.218.40.225/27
# Без gateway, только маршрут до нужной сети
2. Базовая настройка Debian 12
# Обновление системы
apt update && apt upgrade -y
# Установка базовых пакетов
apt install -y wget curl sudo locales
# Настройка локали
dpkg-reconfigure locales
# Рекомендуемый вариант: en_US.UTF-8 UTF-8
# Для русской локали можно дополнительно включить: ru_RU.UTF-8 UTF-8
# Настройка часового пояса
timedatectl set-timezone Asia/Tomsk
# Создание административного пользователя (дополнительно)
useradd -m -s /bin/bash admin
passwd admin
usermod -aG sudo admin
3. Настройка маршрутизации для двух интерфейсов
Добавление постоянного маршрута через eth1:
nano /etc/network/if-up.d/route-eth1
#!/bin/sh
if [ "$IFACE" = "eth1" ]; then
ip route add 10.218.0.0/16 via 10.218.40.250 dev eth1
fi
chmod +x /etc/network/if-up.d/route-eth1
Создание скрипта для удаления маршрута:
nano /etc/network/if-down.d/route-eth1
#!/bin/sh
if [ "$IFACE" = "eth1" ]; then
ip route del 10.218.0.0/16 via 10.218.40.250 dev eth1
fi
chmod +x /etc/network/if-down.d/route-eth1
Проверка маршрутизации:
# Проверка добавленных маршрутов
ip route show
# Проверка доступности через интерфейс eth1
ping -I eth1 10.218.40.1
# Проверка, что маршрут активен
ip route get 10.218.40.224
4. Установка FreePBX
Скачивание и запуск официального установщика:
cd /tmp
wget https://github.com/FreePBX/sng_freepbx_debian_install/raw/master/sng_freepbx_debian_install.sh -O /tmp/sng_freepbx_debian_install.sh
bash /tmp/sng_freepbx_debian_install.sh
Обновление GPG-ключа:
fwconsole util updategpgkey
5. Управление файерволом FreePBX
Первый запуск мастера файервола:
После установки запустите мастер для первоначальной настройки:
fwconsole firewall start
В процессе мастера ответьте на вопросы:
- Использовать Sangoma Smart Firewall? → Да
- Доверять текущему клиенту? → Да
- Включить адаптивный межсетевой экран? → Да (если есть удалённые клиенты)
- Автонастройка IP Asterisk? → Да
Все последующие настройки файервола (доверенные сети, исключения, параметры Fail2Ban) выполняются через веб-интерфейс FreePBX в разделе "Admin" → "Firewall".
Основные команды управления файерволом из консоли (для быстрых действий):
# Включение/отключение файервола
fwconsole firewall enable
fwconsole firewall disable
fwconsole firewall stop
fwconsole firewall sttart
fwconsole firewall restart
fwconsole firewall status
# Добавление доверенной сети
fwconsole firewall trust 192.168.0.0/16
# Удаление доверенной сети (пример)
fwconsole firewall untrust 192.168.0.0/16
# Просмотр списка доверенных сетей
fwconsole firewall list trusted
# Просмотр всех зон
fwconsole firewall listzones
Команды для работы с Fail2Ban (снятие блокировок):
Если ваш IP был заблокирован, используйте:
# Снять бан с конкретного IP для веб-интерфейса
fail2ban-client set pbx-gui unbanip 192.168.2.78
# Снять все баны со всех jail
fail2ban-client unban --all
# Проверить статус jail
fail2ban-client status pbx-gui
# Просмотреть список игнорируемых IP (настраивается в веб-интерфейсе)
fail2ban-client get pbx-gui ignoreip
Примечание: Для постоянного добавления IP в исключения используйте веб-интерфейс FreePBX (раздел Firewall → Fail2Ban), чтобы изменения сохранялись после перезагрузки.
6. Создание пользователя (Extensions)
- Войдите в веб-интерфейс:
http://192.168.1.100 - Логин:
admin/ Пароль: ваш пароль - Перейдите в "Applications" → "Extensions"
- Нажмите "Add Extension" → "SIP Extension"
- Заполните:
- Extension:
2001 - Display Name:
User1 - Secret:
R3m0t3P@ssw0rd
- Extension:
7. Настройка транка с другой АТС
- Перейдите в "Connectivity" → "Trunks"
- Нажмите "Add Trunk" → "SIP Trunk"
- Параметры:
- Trunk Name:
External_ATS - Incoming Settings:
- SIP Server: IP удалённой АТС
- Username: логин
- Password: пароль
- Outgoing Settings:
- Peer Details:
type=peer host=10.218.40.226 context=from-trunk
- Peer Details:
- Trunk Name:
8. Бесплатные SIP-клиенты
Для Windows:
- MicroSIP (https://www.microsip.org/)
Для Android:
- Linphone (https://linphone.org/)
- Бесплатный, поддержка нескольких аккаунтов, шифрование (SRTP, ZRTP)
Для iOS:
- Yak - AI SIP Phone (https://apps.apple.com/app/id6763033863)
- Современный интерфейс, поддержка Push-уведомлений
9. Полезные команды
Управление FreePBX:
# Перезагрузка конфигурации
fwconsole reload
# Установка всех модулей
fwconsole ma installall
# Обновление модулей
fwconsole ma updateall
Проверка статуса Asterisk:
# Статус служб
systemctl status asterisk
systemctl status freepbx
# Просмотр SIP-регистраций
asterisk -rx "sip show peers"
# Просмотр активных звонков
asterisk -rx "core show channels"
# Просмотр логов
tail -f /var/log/asterisk/full
tail -f /var/log/freepbx/freepbx.security
Тестовый звонок:
# Настройте SIP-клиент:
# Server: 192.168.1.100
# Username: 2001
# Password: R3m0t3P@ssw0rd
# Наберите *43 (эхо-тест)
📌 Важно! После завершения установки:
- Создайте резервную копию контейнера в Proxmox
- Сохраните пароли администратора и пользователей
- Проверьте работу обоих сетевых интерфейсов