Ubuntu’da phpMyAdmin Kurulumu ve Güvenliği (Tam Rehber)
phpMyAdmin, MySQL ve MariaDB veritabanlarını tarayıcı tabanlı grafik arayüz aracılığıyla yönetmek için en yaygın olarak kullanılan açık kaynak araçlarından biridir. Geliştirici, sistem yöneticisi veya web sitesi sahibi olsanız da, SQL sorguları çalıştırmaktan veri içe aktarma/dışa aktarmaya kadar karmaşık veritabanı işlemlerini — komut satırı uzmanlığı gerektirmeden — önemli ölçüde basitleştirir.
Ancak phpMyAdmin varsayılan olarak genel bir URL aracılığıyla erişilebildiğinden, bunu güvensiz bırakmak ciddi bir risktir. Bu kapsamlı kılavuz, phpMyAdmin’i Ubuntu 20.04/22.04 üzerine yüklemeniz, Apache ile yapılandırmanız ve yetkisiz erişime karşı birden fazla güvenlik katmanı kullanarak sertleştirmeniz konusunda size yol gösterir.
Ön Koşullar
Başlamadan önce, aşağıdaki gereksinimlerin yerine getirildiğinden emin olun:
- Ubuntu 20.04 veya 22.04 çalıştıran bir sunucu (fiziksel veya sanal)
- MySQL veya MariaDB yüklü ve aktif olarak çalışıyor
- Apache2 web sunucusu yüklü
- sudo ayrıcalıklarına sahip bir kullanıcı hesabı
- Sunucunuza işaret eden bir alan adı veya statik IP adresi
- (Önerilir) Şifreli HTTPS erişimi için geçerli bir SSL sertifikası
> İpucu: Henüz bir sunucu ortamınız yoksa, AlexHost VPS Hosting hizmetini düşünün — anında sağlama, root erişimi ve SSD depolama alanı ile tam yönetimli veya yönetilmeyen Linux VPS planları, phpMyAdmin’i güvenli bir şekilde çalıştırmak için idealdir.
Adım 1 — Sistemi ve Paket İndeksini Güncelle
Her zaman paket listelerinizi yenileyerek ve bekleyen sistem güncellemelerini uygulayarak başlayın. Bu, phpMyAdmin’in en son sürümünü yüklemenizi ve bağımlılık çatışmalarından kaçınmanızı sağlar.
sudo apt update && sudo apt upgrade -yAdım 2 — phpMyAdmin Yükleyin
Resmi Ubuntu APT deposunu kullanarak phpMyAdmin’i yükleyin:
sudo apt install phpmyadmin -yYükleme sırasında etkileşimli bir yapılandırma sihirbazı görünecektir. Bu adımları dikkatle izleyin:
2.1 — Web Sunucusu Seçin
Otomatik olarak yapılandırılacak bir web sunucusu seçmeniz istenecektir:
Please choose the web server that should be automatically configured to run phpMyAdmin.
[*] apache2
[ ] lighttpdapache2 seçmek için spacebar tuşunu kullanın, ardından <Ok> vurgulamak için Tab tuşuna basın ve Enter tuşuna basın.
2.2 — Veritabanını dbconfig-common ile Yapılandırın
Daha sonra, dbconfig-common kullanarak phpMyAdmin için bir veritabanı yapılandırıp yapılandırmayacağınız sorulacaktır:
Configure database for phpmyadmin with dbconfig-common?Evet‘i seçin. Daha sonra phpMyAdmin’in dahili veritabanı kullanıcısı için bir MySQL uygulama parolası girmeniz istenecektir. Güçlü bir parola girin veya otomatik olarak oluşturulması için boş bırakın.
2.3 — Yüklemeyi Doğrulayın
Yükleme tamamlandıktan sonra phpMyAdmin’in yüklendiğini doğrulayın:
dpkg -l phpmyadminYüklü paket sürümünü gösteren bir satır görmelisiniz.
Adım 3 — Apache’yi phpMyAdmin için Yapılandırın
Bazı Ubuntu yapılandırmalarında, phpMyAdmin Apache yapılandırma dosyası otomatik olarak etkinleştirilmez. Manuel olarak kontrol edin ve etkinleştirin.
3.1 — phpMyAdmin Yapılandırmasını Etkinleştirin
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin3.2 — Yapılandırma Dosyasını Doğrulayın
İçeriğini gözden geçirmek için yapılandırma dosyasını açın:
sudo nano /etc/apache2/conf-available/phpmyadmin.confDosya aşağıdaki yönergeleri (veya benzerlerini) içermelidir:
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options Indexes FollowSymLinks
DirectoryIndex index.php
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require all granted
</RequireAny>
</IfModule>
</Directory>
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require all granted
</RequireAny>
</IfModule>
</Directory>Dosyayı CTRL+X, ardından Y, ardından Enter ile kaydedin ve kapatın.
3.3 — Apache’yi Yeniden Başlatın
Yapılandırma değişikliklerini uygulayın:
sudo systemctl restart apache2Apache’nin hatasız çalışıp çalışmadığını doğrulayın:
sudo systemctl status apache2Adım 4 — phpMyAdmin’i HTTP Temel Kimlik Doğrulaması ile Güvenli Hale Getirin
Varsayılan olarak, sunucunuzun IP adresini bilen herkes phpMyAdmin giriş sayfasına erişebilir. HTTP Temel Kimlik Doğrulaması katmanı eklemek, kullanıcılar phpMyAdmin giriş formunu görmeden önce ikinci bir şifre kapısı oluşturur.
4.1 — apache2-utils Yükleyin
sudo apt install apache2-utils -y4.2 — Şifre Dosyası ve Kullanıcı Oluşturun
Bir .htpasswd dosyası oluşturun ve ilk yönetici kullanıcınızı ekleyin. your_admin_user yerine seçtiğiniz kullanıcı adını yazın:
sudo mkdir -p /etc/phpmyadmin
sudo htpasswd -c /etc/phpmyadmin/.htpasswd your_admin_userŞifre girmeniz ve onaylamanız istenecektir. Daha sonra ek kullanıcılar eklemek için (dosyayı üzerine yazacak olan -c bayrağı olmadan):
sudo htpasswd /etc/phpmyadmin/.htpasswd another_user4.3 — phpMyAdmin Apache Yapılandırmasını Güncelleyin
Kimlik doğrulamayı uygulamak için phpMyAdmin yapılandırma dosyasını düzenleyin:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf<Directory /usr/share/phpmyadmin> bloğunu bulun ve içine aşağıdaki satırları ekleyin:
<Directory /usr/share/phpmyadmin>
Options Indexes FollowSymLinks
DirectoryIndex index.php
# HTTP Basic Authentication
AuthType Basic
AuthName "Restricted Access — Authorized Personnel Only"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
<IfModule mod_authz_core.c>
<RequireAny>
Require valid-user
</RequireAny>
</IfModule>
</Directory>Dosyayı kaydedin ve kapatın.
4.4 — Apache’yi Yeniden Başlatın
sudo systemctl restart apache2Şimdi /phpmyadmin adresine gitmek, phpMyAdmin giriş sayfasını göstermeden önce ilk olarak HTTP kimlik doğrulaması kimlik bilgilerini isteyecektir.
Adım 5 — IP Adresine Göre Erişimi Kısıtlayın (İsteğe Bağlı ancak Önerilir)
Daha güçlü bir koruma için phpMyAdmin erişimini yalnızca belirli güvenilir IP adreslerine kısıtlayın. Bu, sunucunuza her zaman sabit bir IP adresinden (örneğin bir ofis ağı veya VPN) erişiyorsanız özellikle yararlıdır.
phpMyAdmin Apache yapılandırmasını düzenleyin:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf<Directory> bloğunu IP tabanlı kısıtlamalar içerecek şekilde değiştirin:
<Directory /usr/share/phpmyadmin>
Options Indexes FollowSymLinks
DirectoryIndex index.php
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /etc/phpmyadmin/.htpasswd
<RequireAll>
Require valid-user
Require ip 203.0.113.50
# Add more trusted IPs below:
# Require ip 198.51.100.0/24
</RequireAll>
</Directory>203.0.113.50 yerine gerçek güvenilir IP adresinizi veya alt ağınızı yazın. Dosyayı kaydedin ve Apache’yi yeniden başlatın:
sudo systemctl restart apache2> Not: IP adresiniz sık sık değişiyorsa, statik IP’ye sahip bir VPN kullanmayı düşünün veya HTTP Basic Authentication’ı SSL ile birlikte kullanın.
Adım 6 — SSL’yi Etkinleştirerek Trafiği Şifreleyin
Veritabanı kimlik bilgilerini düz HTTP üzerinden göndermek kritik bir güvenlik riskidir. Her zaman phpMyAdmin’e HTTPS üzerinden erişmelisiniz. İki ana yaklaşım vardır:
Seçenek A — Let’s Encrypt SSL Sertifikası Kullanın (Ücretsiz)
Sunucunuza işaret eden bir alan adınız varsa, Certbot’u yükleyin:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.comCertbot, Apache’yi HTTP’den HTTPS’ye yönlendirmek için otomatik olarak yapılandıracak ve ücretsiz, otomatik yenilenen bir sertifika yükleyecektir.
Seçenek B — Ticari SSL Sertifikası Kullanın
Hassas veriler işleyen üretim ortamları için, ticari olarak verilen bir SSL sertifikası daha güçlü güven sinyalleri ve garanti koruması sağlar. Güvenilir SSL sertifikalarını doğrudan AlexHost SSL Sertifikaları‘ndan alabilirsiniz; Domain Validation (DV) ile Extended Validation (EV) sertifikalarına kadar seçenekler mevcuttur.
SSL sertifikanızı yükledikten sonra, phpMyAdmin URL’nizin https:// kullandığından emin olun:
https://yourdomain.com/phpmyadminAdım 7 — phpMyAdmin’e Erişim
Kurulum ve güvenlik önlemleri tamamlandıktan sonra, tarayıcınızı açın ve şu adrese gidin:
https://your_server_ip_or_domain/phpmyadminSırasıyla iki kimlik doğrulama istemiyle karşılaşacaksınız:
- HTTP Temel Kimlik Doğrulama istemi —
htpasswdile oluşturduğunuz kullanıcı adı ve parolayı girin - phpMyAdmin giriş sayfası — MySQL/MariaDB kullanıcı adınızı (örn.
root) ve parolasını girin
Başarılı giriş yapıldıktan sonra, phpMyAdmin grafik arayüzü aracılığıyla MySQL veritabanlarınıza tam erişim sağlayacaksınız.
Yaygın Sorunları Giderme
phpMyAdmin 404 Not Found Hatası Döndürüyor
Apache yapılandırması bağlı veya etkin olmayabilir. Şunu çalıştırın:
sudo a2enconf phpmyadmin
sudo systemctl reload apache2Ayrıca symlink’in var olduğunu doğrulayın:
ls -la /etc/apache2/conf-available/phpmyadmin.conf“MySQL Sunucusuna Bağlanılamıyor” Hatası
MySQL/MariaDB’nin çalıştığını kontrol edin:
sudo systemctl status mysql
# or for MariaDB:
sudo systemctl status mariadbDurdurulduysa, başlatın:
sudo systemctl start mysqlHTTP 500 İç Sunucu Hatası
Bu genellikle bir PHP modülünün eksik olduğunu gösterir. Gerekli PHP uzantılarını yükleyin:
sudo apt install php-mbstring php-zip php-gd php-json php-curl -y
sudo systemctl restart apache2Oturum Açtıktan Sonra Boş Sayfa
Tarayıcı önbelleğinizi temizleyin veya ayrıntılar için Apache hata günlüklerini kontrol edin:
sudo tail -f /var/log/apache2/error.logGüvenlik En İyi Uygulamaları Özeti
Canlı yayına geçmeden önce bu güvenlik kontrol listesini gözden geçirin:
| Güvenlik Önlemi | Durum |
|---|---|
| HTTP Basic Authentication etkinleştirildi | ✅ |
| SSL/HTTPS yapılandırıldı | ✅ |
| IP kısıtlaması uygulandı (uygunsa) | ✅ |
| MySQL root girişi uzaktan devre dışı bırakıldı | ✅ |
phpMyAdmin URL’si varsayılandan değiştirildi /phpmyadmin | Önerilen |
| Düzenli sistem güncellemeleri planlandı | ✅ |
| Firewall (UFW) yapılandırıldı | Önerilen |
phpMyAdmin URL’sini Yeniden Adlandırın (Bonus Sertleştirme Adımı)
Varsayılan /phpmyadmin URL yolunu daha az tahmin edilebilir bir şeye değiştirmek, otomatik bot saldırılarını önemli ölçüde azaltır. Apache yapılandırmasını düzenleyin:
sudo nano /etc/apache2/conf-available/phpmyadmin.confDeğiştirin:
Alias /phpmyadmin /usr/share/phpmyadminDaha az belirgin bir şeye:
Alias /db-manager-2024 /usr/share/phpmyadminApache’yi yeniden başlatın ve yer işaretlerinizi buna göre güncelleyin.
Sonuç
Ubuntu’ya phpMyAdmin kurmak basit bir işlemdir, ancak bunu düzgün şekilde güvenli hale getirmek zorunludur. HTTP Basic Authentication, IP tabanlı erişim kısıtlamaları, SSL şifrelemesi ve özel bir URL takma adını birleştirerek, veritabanlarınızı yetkisiz erişim ve otomatik saldırılardan koruyan birden fazla üst üste binmiş savunma katmanı oluşturursunuz.
Ele aldıklarımızı özetlemek gerekirse:
- ✅ Ubuntu 20.04/22.04’e APT aracılığıyla phpMyAdmin yüklendi
- ✅ Apache, phpMyAdmin’i doğru şekilde sunacak şekilde yapılandırıldı
- ✅ HTTP Basic Authentication ikinci bir güvenlik kapısı olarak eklendi
- ✅ Erişim güvenilir IP adresleriyle sınırlandırıldı
- ✅ Tüm trafiği şifrelemek için SSL/HTTPS etkinleştirildi
- ✅ Varsayılan URL’yi yeniden adlandırarak bonus sertleştirme uygulandı
Güvenli bir phpMyAdmin kurulumu, üzerinde çalıştığı sunucu kadar güçlüdür. Güvenilir, yüksek performanslı bir temel için, tam donanım kontrolü için AlexHost Dedicated Servers‘ı keşfedin veya yönetilen bir ortama ihtiyaç duyan hafif projeler için AlexHost Shared Web Hosting‘i kullanın. Sunucunuzu phpMyAdmin’in yanında yönetmek için bir kontrol paneline ihtiyacınız varsa, tümü bir arada yönetim deneyimi için AlexHost VPS with cPanel‘i kontrol edin.
Sisteminizi güncellenmiş tutun, erişim günlüklerinizi düzenli olarak izleyin ve phpMyAdmin’i veya Ubuntu sürümünüzü yükselttiğinizde güvenlik yapılandırmanızı yeniden gözden geçirin. Bugün yapılan birkaç dakikalık proaktif sertleştirme, yarın felaket niteliğinde bir veri ihlalini önleyebilir.
tasarruf edin