Как настроить внешний доступ к базе данных на FreePBX 17, установленном на Debian?

Добрый день! Я использую Debian 12 с FreePBX 17. У меня возникла задача открыть доступ к базе данных для определенного IP-адреса, чтобы предоставить права на чтение таблиц. Я добавил свой IP в белый список FreePBX согласно инструкции, указанной в статье по следующей ссылке: <a href="https://sangomakb.atlassian.net/wiki/spaces/FCD/pages/9928747/Enable+remote+connection+to+asteriskcdrdb+on+freepbx" rel="nofollow">https://sangomakb.atlassian.net/wiki/spaces/FCD/p...</a>. 

Я смог подключиться через SSH, но прямое подключение не работает. Не могу понять, что именно идет не так. Я выполнил следующую команду: 

`iptables -I INPUT -s МОЙIP -p tcp --dport 3306 -j ACCEPT`

После этого проверяю подключение с помощью telnet, но получаю сообщение, что не удалось открыть соединение на порт 3306: "Сбой подключения". Можете подсказать, в чем может быть ошибка?
  • 18 марта 2025 г. 15:14
Ответы на вопрос 1
Добрый день!

Для настройки внешнего доступа к базе данных MySQL/MariaDB на FreePBX, установленном на Debian, нужно убедиться в нескольких вещах:

1. **Конфигурация MySQL/MariaDB**:
   - Убедитесь, что сервер базы данных настроен на прием удаленных подключений. Откройте файл конфигурации MySQL/MariaDB (обычно это `/etc/mysql/my.cnf` или `/etc/mysql/mariadb.conf.d/50-server.cnf` для MariaDB) и проверьте, есть ли строка:

     ```
     bind-address = 127.0.0.1
     ```

     Если она присутствует, замените `127.0.0.1` на `0.0.0.0`, чтобы сервер принимал подключения с любого IP-адреса или укажите конкретный IP-адрес вашего сервера. После изменений не забудьте перезапустить службу MySQL/MariaDB:

     ```bash
     sudo systemctl restart mysql
     ``` 
     или 
     ```bash
     sudo systemctl restart mariadb
     ```

2. **Пользовательские права**:
   - Убедитесь, что у пользователя, с которым вы пытаетесь подключиться, есть права на доступ из вашего IP-адреса. Для этого выполните в MySQL/MariaDB:

     ```sql
     GRANT SELECT ON asteriskcdrdb.* TO 'your_user'@'your_ip' IDENTIFIED BY 'your_password';
     FLUSH PRIVILEGES;
     ```

     Замените `'your_user'`, `'your_ip'` и `'your_password'` на ваши значения.

3. **Файрвол**:
   - Вы добавили правило в iptables, но также стоит проверить статус iptables, чтобы убедиться, что правило действительно применяется. Выполните:

     ```bash
     sudo iptables -L -n
     ```

     Убедитесь, что ваше правило для порта 3306 видно в выводе. Возможно, стоит проверить также настройки других файрволов, таких как `ufw`, если он установлен:

     ```bash
     sudo ufw status
     ```

4. **Проверка подключения**:
   - После всех этих изменений попробуйте подключиться к базе данных с помощью следующей команды (например, используя `mysql` клиент):

     ```bash
     mysql -u your_user -p -h your_server_ip -P 3306
     ```

   Убедитесь, что вы используете правильный IP-адрес сервера, имя пользователя и пароль.

Если вы все еще не можете подключиться, попробуйте временно отключить iptables, чтобы проверить, является ли это причиной проблемы:

```bash
sudo iptables -F
```

Если подключение сработает, значит, дело в правилах файрвола.

Надеюсь, эти шаги помогут вам настроить внешний доступ к базе данных на FreePBX. Если вы столкнетесь с конкретными ошибками, дайте знать, и я постараюсь помочь с их решением!
Похожие вопросы