Centos 7 Nginx phpMyAdmin Kurulumu
Serverlar da olmazsa olmazlardan olan meşhur phpMyAdmin veritabanı yönetimi arayüzünün kurulumunun nasıl olduğunu anlatmaya çalışacağız.
Üzerinde çalıştığımız server Centos 7 - Nginx dir. Bu sistemi neden kullandığımızı önceki makalemiz de anlatmıştık ve şimdi tekrara girmeden kuruluma geçelim.
Centos 7 de phpMyAdmin default olarak gelmiyor.Bu öncelikle sebeple epel deposunu kurmamız gerekiyor.
sudo yum install epel-release
Artık phpMyAdmini aşağıdaki komut vasıtasıyla kurabiliriz.
sudo yum install phpmyadmin
Kurulum tamamlandı ve şimdi de nginx kök dizinine phpMyAdmin yükleme dosyalarından bir bağlantıyı aşağıdaki komut ile oluşturalım.
sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html
İşlem tamamlanmıştır. Php yeniden başlatıp ayarlarımızı aktifleştiriyoruz.
sudo systemctl restart php-fpm
phpMyAdmin yönetim paneline bağlanmak için aşağıdaki gibi bir yol izlemeniz gerekir.
**http://server_domain_veya_IP/phpMyAdmin**
Giriş yaparken mysql veya mariaDB veritabanı kullanıcı adınız ve şifrenizi kullanmanız gerekir.
Bu dersimizi burada sonlandırıyoruz.Bir sonraki dersimiz de sitelerimiz için kritik öneme sahip olan phpMyAdmin dan veritabanımıza sızma girişimlerini bertaraf etmek için ciddi önlemler alacağız. phpMyAdmin güvenliği konusundaki dersimizi mutlaka uygulamanızı tavsiye ederiz.
phpMyAdmin Yüksek Güvenlik Duvarı Ayarlamaları
phpMyAdmin veritabanı yönetim arayüzü sisteminin nasıl kurulacağını önceki dersimiz de anlatmıştık.Bu dersimize gitmek için buraya tıklayın.Şimdi de güvenlik düzeyinde kritik öneme sahip bu sistemi nasıl koruyacağımızdan bahsedeceğiz.
Adım 1 - phpMyAdmin erişim url adresini değiştirme
phpMyAdmin yönetim panelimize http://İP-veya-DomainAdı/phpMyAdmin şeklinde bağlanabiliyorduk. Şimdi bu url'yi http://İP-veya-DomainAdı/xyzveritabani şekline getirip url adresini gizliyoruz.Buradaki xyzveritabani kısmına istediğiniz tahmini zor bir kelime girebilirsiniz.Biz örnek çalışmamız da bu ismi kullanacağız.
Öncelikle kök dizinimizi listeleyerek yapmaya çalıştığımız işlemi gözler önüne serelim.
cd /usr/share/nginx/html
ls -l
Bu kod sonrası yaklaşık olarak aşağıdaki gibi bir tablo ile karşılaşacaksınız.
-rw-r--r-- 1 root root 537 Aug 5 08:15 50x.html
-rw-r--r-- 1 root root 612 Aug 5 08:15 index.html
lrwxrwxrwx 1 root root 21 Aug 6 17:29 phpMyAdmin -> /usr/share/phpMyAdmin
İşte buradaki phpMyAdmin ismini xyzveritabani şeklinde değiştireceğiz.Bunun için aşağıdaki komutu kullanıyoruz.
sudo mv phpMyAdmin xyzveritabani
ls -l
Ve şimdi biraz evvelki tablo yaklaşık olarak şöyle olması gerekiyor.
total 8
-rw-r--r-- 1 root root 537 Aug 5 08:15 50x.html
-rw-r--r-- 1 root root 612 Aug 5 08:15 index.html
lrwxrwxrwx 1 root root 21 Aug 6 17:29 xyzveritabani -> /usr/share/phpMyAdmin
Artık veritabanına aşağıdaki url ile bağlanılması durumunda 404 Not Found hatasıyla karşılaşılacak.Çünkü böyle bir url artık yok.
http://server_domain_veya_IP/phpMyAdmin
Ancak veritabanımıza yaptığımız son düzenleme ile şu url bağlantısı ile bağlanabilirsiniz.
http://server_domain_veya_IP/xyzveritabi
Adım 2 - Kimlik Doğrulama Kapısı Kurma
Bir şekilde Adım 1 atlatılıp veritabanı arayüzünüze erişilmesi senaryosunda ikinci bir önlem almamız gerekir. Bu da phpMyAdmin erişmek için ekstra bir kullanıcı adı ve şifre tanımlamaktan geçiyor.
Şimdi aşağıdaki kod ile bir şifre oluşturacağız.
openssl passwd
Yukarıdaki komuttan sonra sizden bir şifre girmeniz istenecek. Şifreyi aşağıdaki tarz da oluşturabilirsiniz. Fazla karakter girmeniz durumunda long tarzında hata iletisi alabilirsiniz.Bu durumda karakter sayısını azaltabilirsiniz.
AnkaAkademi
Şifrenizi girdikten sonra size otomatik olarak bir anahtar şifre verilecek.Bu anahtar şifreyi bir kenara daha sonra kullanılmak üzere kayıt edelim.
Kullanıcı adı ve şifremizi tanımlayacağımız bir dosya oluşturmak için aşağıdaki komutu kullanalım.
sudo nano /etc/nginx/pma_pass
Bu dosyaya tıpkı şöyle bir girdi de bulunmamız gerekiyor.
demo:AnkaAkademi
demo = phpMyAdmin'e erişmeden önceki güvenlik duvarının kullanı adıdır. İstediğiniz şekilde tahmini zor olmasına dikkat ederek giriniz. Karşısındaki AnkaAkademi şifresi yerine daha önce sistemin otomatik olarak verdiği anahtar şifreyi giriyoruz.Boşluk olmamasına dikkat edin.
Artık sona doğru yaklaştık. Şimdi nginx conf. dosyamızı düzenleyelim.
sudo nano /etc/nginx/conf.d/default.conf
Aşağıdaki gibi bir bloğu default.conf dosyamıza ekleyelim.
server {
. . .
location / {
try_file $uri $uri/ =404;
}
location /xyzveritabani {
auth_basic 'Admin Login';
auth_basic_user_file /etc/nginx/pma_pass;
} . . .
}
Son olarak nginx yeniden başlatıp yaptığımız ayarları aktifleştirelim.
sudo systemctl restart nginx
Ve kontrol edelim.Aşağıdaki bağlantı ile veritabanına bağlanmaya çalışalım.
http://server_domain_veya_IP/xyzveritabi
Aşağıdaki gibi bir güvenlik duvarıyla karşılaşacaksınız.
Kullanıcı adını Demo
Şifreyi ise AnkaAkademi olarak belirlemiştik.Bu bilgileri kullanarak giriş yapıyoruz. Artık phpMyAdmin yönetim arayüzündeyiz.Buradan sonra da mysql kullanıcı adınızı ve şifrenizi kullanarak veritabanınıza bağlabilirsiniz. Böylece 3 kadameli bir güvenlik ağını kurmuş olduk.