Image

Bilgi Veritabanı → MariaDB Veritabanına Uzaktan Erişim Ayarları

[Virtual sunucular]
Yayın tarihi: 17.10.2023

Güvenlik amacıyla MariaDB veritabanı servisine uzaktan erişim varsayılan olarak kapalıdır. Bu rehberde, veritabanına belirli bir IP adresi üzerinden uzaktan erişim ayarlarını ele alacağız.

Elimizde iki sunucu olduğunu varsayalım: Biri üzerinde sistem (site/CRM) bulunuyor, diğerinde ise veritabanı tutulacak. Veritabanına bağlanmak için giriş bilgilerini (kullanıcı adı, parola ve IP adresi) kullanacağız.


1. Yapılandırma için Hazırlık

1.1 Konfigürasyon Dosyasını Kontrol Edelim

Bağlantı seçeneğinin etkin olduğundan emin olalım:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

...
bind-address = 0.0.0.0
...

Ayarları uygulamak için servisi yeniden başlatalım:

systemctl restart mariadb

1.2 Port Erişimini Kontrol Edelim

netstat -ant | grep 3306

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN

2. Yapılandırma

mysql -u aroot -p

2.1 Veritabanı ve Kullanıcı Oluşturma

CREATE DATABASE base1;
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password';

2.2 Bağlanılacak Sunucu IP Adresini Belirterek Erişim İzni Verme

GRANT ALL ON base1.* to 'user1'@'xx.ip.xx.ip' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Bu bilgilerle bağlanabilirsiniz:

  • base1 - Veritabanı.
  • user1 - Kullanıcı.
  • password - Parola.
  • xx.ip.xx.ip - Bağlanılacak sunucunun IP adresi.

2.3 Diğer Örnekler

2.3.1 Belirli bir IP adresi için tüm veritabanlarına erişim izni
GRANT ALL ON *.* to 'user1'@'xx.ip.xx.ip' IDENTIFIED BY 'password' WITH GRANT OPTION;
2.3.2 base1 veritabanına herhangi bir IP adresinden erişim izni
GRANT ALL ON base1.* to 'user1'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
2.3.3 Belirli bir alt ağdan base1 veritabanına erişim izni
GRANT ALL ON base1.* to 'user1'@'xx.ip.xx.%' IDENTIFIED BY 'password' WITH GRANT OPTION;

3. iptables Güvenlik Duvarı Ayarları

3.1 Sadece Belirli Bir IP’ye İzin Verme

iptables -A INPUT -p tcp -s xx.ip.xx.ip --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

3.2 Tüm IP Adreslerine İzin Verme

iptables -A INPUT -p tcp -m tcp --dport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

3.3 Belirli Bir Alt Ağa İzin Verme

iptables -A INPUT -p tcp -s xx.ip.xx.0/24 --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

4. Sunucu 1’den Bağlantıyı Test Edelim

4.1 mariadb-client Paketini Kuralım

apt install mariadb-client

4.2 Yapılandırılmış Sunucuya Bağlanma

mysql -u wpuser -h ip.xx.ip.xx -p

Enter password:

MariaDB [(none)]> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| base1              |
+--------------------+
2 rows in set (0.10 sec)

Hazır!





No Comments Yet