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
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
Hazır!
No Comments Yet