Розповідаємо, як обмежити доступ до баз даних для безпеки вашого віртуального сервера. На прикладі Cloud VPS Hosting від UkrLine.
Для захисту даних на VPS (virtual private server) важливо обмежити доступ до баз даних, щоб запобігти несанкціонованому доступу. Наступні заходи допоможуть налаштувати безпечний доступ та мінімізувати ризики.
Обмеження доступу до баз даних
Обмеження доступу до баз даних – це один з основних заходів безпечного доступу та мінімізація ризику несанкціонованого доступу третіх осіб, часто хакерів. Отже, основні заходи обмеження доступу до баз VPS:
1. Локальне обмеження доступу до БД
Якщо до БД потрібен доступ лише додатків, то налаштуйте базу лише на локальний інтерфейс (127.0.0.1). Це дасть вашим програмам підключатися до БД, але не дасть можливості зовнішнього підключення.
Це можна зробити так:
- MySQL та MariaDB:
У файлі конфігурації
my.cnf
налаштуйте параметрbind-address
:bind-address = 127.0.0.1
- PostgreSQL:
У файлі
postgresql.conf
вкажітьlisten_addresses
тільки якlocalhost
:listen_addresses = 'localhost'
У файлі
pg_hba.conf
залиште з’єднання лише дляlocalhost
.
2. Обмеження доступу за IP-адресою
Якщо потрібний доступ з іншої мережі, то БД налаштовується під доступ із конкретного IP.
Робиться так:
- MySQL та MariaDB:
Створіть користувача бази даних з доступом лише з певної IP-адреси:
CREATE USER 'username'@'specific_ip_address' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON database.* TO 'username'@'specific_ip_address';
- PostgreSQL:
У
pg_hba.conf
додайте правило для конкретного IP:host all all specific_ip_address/32 md5
3. SSH-тунелювання для віддаленого підключення
Це захистить базу даних, якщо потрібний тимчасовий доступ до бази даних із зовнішньої мережі. Зв’язуйтеся з БД захищеним тунелем без відкриття порту.
Це можна зробити так:
- Створіть SSH-тунель із командою:
ssh -L 3306:localhost:3306 user@your_vps_ip
Тут
3306
– порт MySQL, аyour_vps_ip
– IP-адреса VPS.Тепер база даних доступна локально через
localhost:3306
, якби вона знаходилася на вашому комп’ютері.
4. Використання VPN для постійного віддаленого доступу
Це захистить з’єднання шифруванням і не дозволить підключатися користувачам з VPN.
5. Обмеження прав користувачів бази даних
Щоб усунути ризик компрометації облікового запису, створюйте облікові записи з мінімальними правами.
Робиться так:
GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'specific_ip_address';
6. Налаштування брандмауера для бази даних
Обмежте доступ до БД за допомогою брандмауера, щоб підключення йшло тільки з довірених IP-адрес.
Це робиться так:
- Linux Firewall (iptables): Закрийте порт бази даних для всіх, за винятком певних IP.
iptables -A INPUT -p tcp -s specific_ip_address --dport 3306 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP
7. Додаткові заходи безпеки
- Використовуйте складні паролі та, якщо можливо, налаштуйте двофакторну автентифікацію.
- Введіть логін та робіть моніторинг активності. Це головний показник, чи здійснюється на сервері підозріла активність. У разі виявлення такої вживаються заходи.
- Також рекомендуємо налаштувати сигналізацію про підозрілі спроби доступу, такі як повторні помилки авторизації або спроби доступу з невідомих IP-адрес.
Що може запропонувати UkrLine
- Повне налаштування хмарного VPS та всіх сервісних служб.
- Повне адміністрування вашого сервера та оперативне вирішення проблем 24/7/365.
- Пільговий період на початку використання сервісу.
Докладніше ознайомтесь тут: https://ukrline.com.ua/ua/cloud-linux-vds.php