Takip et

phpMyAdmin’i Nginx ile Ubuntu 20.04 Sunucusuna Kurma ve Güvenliğini Sağlama

phpMyAdmin’i Nginx ile Ubuntu 20.04 Sunucusuna Kurma ve Güvenliğini Sağlama Giriş phpMyAdmin, MySQL ve MariaDB veritabanlarını web tabanlı bi

phpMyAdmin’i Nginx ile Ubuntu 20.04 Sunucusuna Kurma ve Güvenliğini Sağlama

Giriş

phpMyAdmin, MySQL ve MariaDB veritabanlarını web tabanlı bir arayüz üzerinden yönetmek için kullanılan, açık kaynaklı ve popüler bir araçtır. Veritabanı yöneticileri ve geliştiriciler için tabloları, sütunları, indeksleri, ilişkileri, kullanıcıları, izinleri ve daha fazlasını kolayca oluşturma, değiştirme ve silme imkanı sunar. SQL sorgularını çalıştırma, veritabanlarını içe ve dışa aktarma gibi kritik işlemleri grafiksel bir arayüzle basitleştirir.

Nginx, yüksek performanslı, kararlı ve kaynak dostu bir web sunucusu ve ters proxy’dir. Apache HTTP Sunucusu’na kıyasla daha az bellek tüketimi ve yüksek eşzamanlı bağlantıları işleme yeteneği ile bilinir. Ubuntu 20.04 LTS (Focal Fossa), uzun süreli destek sunan popüler bir Linux dağıtımı olup, sunucu ortamları için güvenilir bir temel sağlar.

Bu makale, phpMyAdmin’i Nginx web sunucusu üzerinde, Ubuntu 20.04 işletim sistemine nasıl kuracağınızı ve kurulum sonrası güvenliğini nasıl sağlayacağınızı adım adım açıklamaktadır. Amaç, veritabanı yönetimi için güçlü ve güvenli bir platform oluşturmaktır. Nginx’in verimliliği ve phpMyAdmin’in kullanım kolaylığı birleştiğinde, veritabanı yönetimi süreçleriniz önemli ölçüde hızlanacaktır. Ancak, phpMyAdmin gibi web tabanlı yönetim araçları, doğru yapılandırılmazsa önemli güvenlik riskleri taşıyabilir. Bu nedenle, makalenin güvenlik adımları bölümü büyük önem taşımaktadır.

Önkoşullar

Bu kılavuzu takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

* Ubuntu 20.04 Sunucusu: Temiz bir Ubuntu 20.04 sunucusu kurulumu.
* Sudo Ayrıcalıklarına Sahip Kullanıcı: Sunucunuzda sudo ayrıcalıklarına sahip, root olmayan bir kullanıcı hesabı. Güvenlik nedeniyle doğrudan root kullanıcısı ile çalışmamanız önerilir.
* Temel Ağ Bilgisi: SSH aracılığıyla sunucuya bağlanma ve temel Linux komutlarını kullanma bilgisi.
* Domain Adı (İsteğe Bağlı ama Önerilir): phpMyAdmin’e bir alan adı üzerinden erişmeyi planlıyorsanız, alan adınızın sunucunuzun IP adresine yönlendirilmiş olması gerekir. Güvenli bir HTTPS bağlantısı için bu gereklidir.
* Güvenlik Duvarı (UFW): Ubuntu’da varsayılan olarak gelen UFW (Uncomplicated Firewall) güvenlik duvarının temel olarak yapılandırılmış olması. Bu, sunucunuza gelen istenmeyen bağlantıları engellemek için önemlidir.

Bu önkoşulların sağlanması, sorunsuz bir kurulum süreci ve daha güvenli bir ortam için temel oluşturacaktır.

Adım 1: Nginx ve PHP-FPM Kurulumu

phpMyAdmin, PHP ile yazılmış bir uygulamadır ve Nginx, PHP kodunu doğrudan çalıştıramaz. Bunun yerine, PHP kodunu işlemek için PHP-FPM (FastCGI Process Manager) kullanır. Bu adımda Nginx ve PHP-FPM ile gerekli PHP modüllerini kuracağız.

Sistem Güncellemesi

İlk olarak, sunucunuzdaki paket listelerini güncelleyelim ve mevcut paketleri yükseltelim:

sudo apt update
sudo apt upgrade -y

Nginx Kurulumu

Nginx web sunucusunu kurun:

sudo apt install nginx -y

Nginx servisini kontrol ederek çalıştığından emin olun:

sudo systemctl status nginx

Çıktıda active (running) ifadesini görmelisiniz.

PHP-FPM ve Gerekli PHP Modüllerinin Kurulumu

phpMyAdmin’in düzgün çalışması için PHP-FPM ve bazı PHP modüllerine ihtiyacı vardır. Ubuntu 20.04 varsayılan olarak PHP 7.4 ile gelir.

sudo apt install php-fpm php-mysql php-cli php-json php-curl php-mbstring php-xml php-zip php-gd php-imagick php-bz2 php-intl -y

* php-fpm: Nginx ile PHP kodunu işlemek için gereklidir.
* php-mysql: phpMyAdmin’in MySQL/MariaDB veritabanlarına bağlanmasını sağlar.
* php-mbstring: Çok baytlı karakter dizileri için destek sağlar, phpMyAdmin için kritik öneme sahiptir.
* php-gd: Görüntü işleme yetenekleri için gereklidir.

PHP-FPM servisini kontrol edin:

sudo systemctl status php7.4-fpm

Yine active (running) ifadesini görmelisiniz.

Güvenlik Duvarı Yapılandırması (UFW)

Eğer UFW kullanıyorsanız, Nginx’in HTTP (80) ve HTTPS (443) portlarından gelen trafiğe izin vermesi gerekir.

sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status

Nginx Full profili, hem HTTP hem de HTTPS trafiğine izin verir. sudo ufw enable komutu güvenlik duvarını etkinleştirecektir. sudo ufw status komutu ile kuralları kontrol edebilirsiniz.

Adım 2: MySQL/MariaDB Kurulumu ve Yapılandırması

phpMyAdmin, bir veritabanı yönetim aracı olduğu için bir MySQL veya MariaDB veritabanı sunucusuna ihtiyacımız var. Bu bölümde MariaDB’yi kuracağız, çünkü MySQL ile tam uyumludur ve açık kaynak topluluğu tarafından aktif olarak desteklenmektedir.

MariaDB Kurulumu

MariaDB sunucusunu kurun:

sudo apt install mariadb-server -y

MariaDB servisini kontrol edin:

sudo systemctl status mariadb

active (running) ifadesini görmelisiniz.

Veritabanı Sunucusunun Güvenliğini Sağlama

Yeni kurulan MariaDB sunucunuzun güvenliğini artırmak için bir güvenlik betiği çalıştırın:

sudo mysql_secure_installation

Bu betik size bir dizi soru soracaktır:

1. Enter current password for root (enter for none):: İlk kurulumda root şifresi olmadığı için doğrudan Enter tuşuna basın.
2. Set root password? [Y/n]: Y tuşuna basarak güçlü bir root şifresi belirleyin. Bu şifreyi asla unutmayın!
3. Remove anonymous users? [Y/n]: Y tuşuna basarak anonim kullanıcıları kaldırın.
4. Disallow root login remotely? [Y/n]: Güvenlik için Y tuşuna basarak root kullanıcısının uzaktan girişini devre dışı bırakın.
5. Remove test database and access to it? [Y/n]: Y tuşuna basarak test veritabanını kaldırın.
6. Reload privilege tables now? [Y/n]: Y tuşuna basarak ayrıcalık tablolarını yeniden yükleyin.

phpMyAdmin İçin Veritabanı Kullanıcısı Oluşturma

phpMyAdmin’in veritabanına bağlanabilmesi için özel bir kullanıcı oluşturmak en iyi güvenlik uygulamasıdır. Doğrudan root kullanıcısını kullanmaktan kaçının.

MariaDB komut istemcisine root olarak giriş yapın:

sudo mysql -u root -p

Az önce belirlediğiniz root şifresini girin.

Yeni bir veritabanı kullanıcısı oluşturun ve ona tüm veritabanları üzerinde gerekli ayrıcalıkları verin. phpmyadminuser yerine istediğiniz bir kullanıcı adını ve YOUR_STRONG_PASSWORD yerine güçlü bir şifreyi kullanın.

CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'YOUR_STRONG_PASSWORD';
GRANT ALL PRIVILEGES ON . TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Not: GRANT ALL PRIVILEGES ON . komutu, bu kullanıcıya tüm veritabanları üzerinde tam yetki verir. Daha sonra “phpMyAdmin Güvenliğini Sağlama” bölümünde bu yetkileri belirli veritabanlarıyla kısıtlamayı ele alacağız, bu daha güvenli bir yaklaşımdır.

Adım 3: phpMyAdmin Kurulumu

Şimdi phpMyAdmin paketini Ubuntu depolarından kurabiliriz.

sudo apt install phpmyadmin -y

Kurulum sırasında size birkaç soru sorulacaktır:

1. Please choose the web server that should be automatically configured to run phpMyAdmin.: Burada Nginx listelenmeyecektir. Bu normaldir, çünkü apt paketi genellikle Apache ve Lighttpd için otomatik yapılandırma sunar. Herhangi bir seçim yapmadan Tab tuşu ile üzerine gelip Enter tuşuna basın. Nginx için yapılandırmayı manuel olarak yapacağız.
2. Configure database for phpmyadmin with dbconfig-common?: Yes seçeneğini seçin. Bu, phpMyAdmin’in kendi dahili veritabanını ve kullanıcılarını otomatik olarak yapılandırmasına yardımcı olur.
3. MySQL application password for phpmyadmin:: Burada dbconfig-common için bir parola girmeniz istenecektir. Bu parola, phpMyAdmin’in kendi dahili yapılandırma veritabanı için kullanılır, MySQL root şifrenizle karıştırmayın. Güçlü bir şifre girin ve onaylayın.

phpMyAdmin dosyaları /usr/share/phpmyadmin dizinine kurulacaktır.

Adım 4: Nginx için phpMyAdmin Yapılandırması

phpMyAdmin dosyalarını kurduktan sonra, Nginx’in bu dosyalara erişebilmesi ve PHP-FPM aracılığıyla işleyebilmesi için bir Nginx sunucu bloğu (server block) yapılandırmamız gerekiyor.

phpMyAdmin Dosyalarını Nginx’in Erişebileceği Bir Konuma Bağlama

Nginx’in varsayılan web kök dizini genellikle /var/www/html‘dir. phpMyAdmin’e bu dizin altından erişmek için bir sembolik bağlantı (symlink) oluşturabiliriz:

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Bu komut, /var/www/html/phpmyadmin adresine giden istekleri /usr/share/phpmyadmin adresine yönlendirecektir. İsterseniz /var/www/html/myadmin gibi farklı bir isim de kullanabilirsiniz.

Nginx Sanal Ana Bilgisayar (Server Block) Yapılandırması

Şimdi Nginx için yeni bir yapılandırma dosyası oluşturalım. Bu dosya, phpMyAdmin’e nasıl erişileceğini belirleyecektir.

sudo nano /etc/nginx/sites-available/phpmyadmin.conf

Aşağıdaki içeriği dosyaya yapıştırın. your_domain.com ve www.your_domain.com kısımlarını kendi alan adınızla veya sunucunuzun IP adresiyle değiştirin.

server {
    listen 80;
    listen [::]:80;
    server_name your_domain.com www.your_domain.com; # Kendi alan adınız veya sunucu IP'niz
    root /var/www/html/phpmyadmin; # phpMyAdmin'in sembolik linki

    index index.php index.html index.htm;

    # phpMyAdmin'in kök dizinine gelen istekleri işler
    location / {
        try_files $uri $uri/ =404;
    }

    # PHP dosyalarını PHP-FPM ile işler
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; # PHP sürümünü kontrol edin (örn: php7.4-fpm.sock)
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # Nginx tarafından işlenmemesi gereken dosyaları engeller
    location ~ /\.ht {
        deny all;
    }

    # phpMyAdmin'in dahili yapılandırma dosyalarını gizle
    location ~ /(config\.inc\.php|README|LICENSE|ChangeLog|setup\.php)$ {
        deny all;
    }
}

* server_name: phpMyAdmin’e erişmek için kullanacağınız alan adını veya IP adresini buraya girin.
* root: phpMyAdmin dosyalarının bulunduğu dizini gösterir.
* location ~ \.php$: Bu blok, Nginx’in PHP dosyalarını PHP-FPM aracılığıyla nasıl işleyeceğini tanımlar. fastcgi_pass satırındaki PHP sürümünün (örneğin php7.4-fpm.sock) sunucunuzdaki PHP sürümüyle eşleştiğinden emin olun.

Yapılandırmayı Etkinleştirme ve Nginx’i Yeniden Başlatma

Yeni yapılandırma dosyasını etkinleştirmek için sites-enabled dizinine bir sembolik bağlantı oluşturun:

sudo ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled/

Nginx yapılandırmanızda bir hata olup olmadığını kontrol edin:

sudo nginx -t

test is successful veya syntax is ok mesajını görmelisiniz.

Her şey yolundaysa, Nginx servisini yeniden başlatın:

sudo systemctl restart nginx

Adım 5: phpMyAdmin Güvenliğini Sağlama

phpMyAdmin, veritabanı yönetiminiz için kritik bir araç olduğundan, güvenliğini sağlamak büyük önem taşır. Bu bölümde çeşitli güvenlik önlemlerini uygulayacağız.

A. Giriş Sayfasını Gizleme (Alias veya Custom Path)

phpMyAdmin’in varsayılan olarak /phpmyadmin yolu üzerinden erişilebilir olması, kötü niyetli kişilerin hedefi haline gelmesini kolaylaştırır. Bu yolu daha karmaşık ve tahmin edilemez bir yolla değiştirebiliriz.

Nginx yapılandırma dosyanızı (/etc/nginx/sites-available/phpmyadmin.conf) açın:

sudo nano /etc/nginx/sites-available/phpmyadmin.conf

Mevcut root /var/www/html/phpmyadmin; satırını ve ana location / bloğunu aşağıdaki gibi değiştirin. myadminsecretpath yerine sadece sizin bileceğiniz benzersiz ve karmaşık bir yol kullanın.

# ... diğer ayarlar ...

server_name your_domain.com www.your_domain.com;

Bu satırı silin veya yorum satırı yapın:

root /var/www/html/phpmyadmin;

Yeni, gizli yolunuzu tanımlayın

location /myadminsecretpath { alias /var/www/html/phpmyadmin/; # phpMyAdmin'in gerçek yoluna işaret eder index index.php index.html index.htm; try_files $uri $uri/ /myadminsecretpath/index.php?$args; # Bu satır önemli # PHP dosyalarını PHP-FPM ile işler (bu bloğu da bu location içine taşıyın) location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $request_filename; # $document_root$fastcgi_script_name yerine include fastcgi_params; } # Nginx tarafından işlenmemesi gereken dosyaları engeller location ~ /\.ht { deny all; } # phpMyAdmin'in dahili yapılandırma dosyalarını gizle location ~ /(config\.inc\.php|README|LICENSE|ChangeLog|setup\.php)$ { deny all; } }

Eğer başka bir web sitesi aynı domain üzerinde çalışıyorsa, ana domain için

ayrı bir root ve location bloğu ekleyebilirsiniz.

Eğer sadece phpMyAdmin çalışıyorsa, bu yeterlidir.

Önemli Not: location ~ \.php$ bloğunu /myadminsecretpath bloğunun içine taşıdık ve fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; yerine fastcgi_param SCRIPT_FILENAME $request_filename; kullandık. Bu, alias ile birlikte çalışırken doğru dosya yolunu sağlamak için gereklidir.

Nginx’i yeniden başlatmayı unutmayın:

sudo nginx -t
sudo systemctl restart nginx

Artık phpMyAdmin’e http://your_domain.com/myadminsecretpath adresinden erişebileceksiniz.

B. Temel Kimlik Doğrulama (Basic Authentication)

phpMyAdmin’e erişmeden önce ek bir HTTP kimlik doğrulama katmanı ekleyebiliriz.

1. apache2-utils Kurulumu: htpasswd komutunu kullanabilmek için bu paketi kurun:

sudo apt install apache2-utils -y

2. Kullanıcı ve Şifre Oluşturma: Bir kullanıcı adı (your_nginx_user) ve şifre oluşturun. Bu, phpMyAdmin girişinden önce sorulacak ayrı bir kimlik doğrulama katmanıdır.

sudo htpasswd -c /etc/nginx/.htpasswd your_nginx_user

your_nginx_user yerine kendi istediğiniz kullanıcı adını kullanın. Şifrenizi iki kez girmeniz istenecektir.

3. Nginx Yapılandırmasına Ekleme: Nginx yapılandırma dosyanızı tekrar açın (/etc/nginx/sites-available/phpmyadmin.conf) ve location /myadminsecretpath bloğunun içine aşağıdaki satırları ekleyin:

location /myadminsecretpath {
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/.htpasswd;
        alias /var/www/html/phpmyadmin/;
        # ... diğer ayarlar ...
    }

Nginx’i yeniden başlatın:

sudo nginx -t
    sudo systemctl restart nginx

Şimdi phpMyAdmin’e erişmeye çalıştığınızda, önce Nginx tarafından belirlenen kullanıcı adı ve şifre istenecek, ardından phpMyAdmin’in kendi giriş ekranı gelecektir.

C. SSL/TLS Şifrelemesi (Certbot ile Let’s Encrypt)

Tüm trafiğin şifrelenmesi, hassas verilerinizi korumanın en kritik yollarından biridir. Let’s Encrypt, ücretsiz SSL/TLS sertifikaları sağlar ve Certbot aracı ile kurulumu kolaydır.

1. Certbot Kurulumu:

sudo apt install certbot python3-certbot-nginx -y

2. Sertifika Alma:

sudo certbot --nginx -d your_domain.com -d www.your_domain.com

Komut sizden e-posta adresi isteyecek ve hizmet şartlarını kabul etmenizi isteyecektir. Ayrıca HTTP trafiğini otomatik olarak HTTPS’e yönlendirmek isteyip istemediğinizi soracaktır. 2: Redirect seçeneğini seçmeniz önerilir.

Certbot, Nginx yapılandırma dosyanızı otomatik olarak güncelleyecek ve SSL sertifikasını kuracaktır.

3. Otomatik Yenilemeyi Test Etme: Let’s Encrypt sertifikaları 90 gün geçerlidir. Certbot, bunları otomatik olarak yenilemek için bir cron işi oluşturur. Yenileme sürecini test edebilirsiniz:

sudo certbot renew --dry-run

Her şey yolundaysa, The dry run was successful mesajını görmelisiniz.

D. IP Adresi Kısıtlaması

Eğer phpMyAdmin’e sadece belirli IP adreslerinden erişim sağlamak istiyorsanız, Nginx yapılandırmasına IP tabanlı kısıtlamalar ekleyebilirsiniz.

Nginx yapılandırma dosyanızı (/etc/nginx/sites-available/phpmyadmin.conf) açın ve location /myadminsecretpath bloğunun içine aşağıdaki satırları ekleyin. YOUR_IP_ADDRESS yerine kendi IP adresinizi yazın.

location /myadminsecretpath {
    allow YOUR_IP_ADDRESS; # İzin verilen IP adresi
    deny all;               # Diğer tüm IP adreslerini engelle
    alias /var/www/html/phpmyadmin/;
    # ... diğer ayarlar ...
}

Birden fazla IP adresine izin vermek için birden fazla allow satırı ekleyebilirsiniz.
Nginx’i yeniden başlatın:

sudo nginx -t
sudo systemctl restart nginx

E. phpMyAdmin Yapılandırma Dosyası Güvenliği (config.inc.php)

phpMyAdmin’in ana yapılandırma dosyası olan config.inc.php üzerinde bazı güvenlik iyileştirmeleri yapabiliriz.

sudo nano /etc/phpmyadmin/config.inc.php

1. blowfish_secret Anahtarı: Bu anahtar, çerez tabanlı kimlik doğrulama için kullanılır ve çok güçlü, rastgele bir dize olmalıdır. Eğer boşsa veya zayıfsa, phpMyAdmin giriş ekranında bir uyarı göreceksiniz.

$cfg['blowfish_secret'] = 'YOUR_SUPER_STRONG_RANDOM_STRING_OF_32_CHARS_OR_MORE'; / YOU MUST FILL IN THIS FOR COOKIE AUTH! /

Güçlü bir dize oluşturmak için örneğin aşağıdaki komutu kullanabilirsiniz:

openssl rand -base64 32

Çıktıyı kopyalayıp blowfish_secret olarak yapıştırın.

2. AllowArbitraryServers: Bu ayar, giriş ekranında herhangi bir sunucuya bağlanma seçeneğini etkinleştirir veya devre dışı bırakır. Güvenlik için devre dışı bırakmak iyi bir fikirdir.

$cfg['AllowArbitraryServers'] = false;

3. LoginCookieValidity: Giriş çerezinin geçerlilik süresini saniye cinsinden ayarlar (varsayılan 1440 saniye = 24 dakika). Daha kısa bir süre, oturum kaçırılma riskini azaltır.

$cfg['LoginCookieValidity'] = 1440; // 24 dakika

4. Hata Mesajlarını Gizleme: Üretim ortamlarında hata mesajlarını gizlemek, saldırganlara sisteminiz hakkında bilgi vermeyi engeller.

$cfg['Error_Handler']['display'] = false;

Değişiklikleri kaydedin ve dosyayı kapatın.

F. phpMyAdmin Kullanıcılarını Kısıtlama

Önceden oluşturduğumuz phpmyadminuser kullanıcısına tüm veritabanları üzerinde GRANT ALL PRIVILEGES vermiştik. Bu, kurulumu kolaylaştırsa da, güvenlik açısından ideal değildir. phpMyAdmin kullanıcısının sadece belirli veritabanlarına veya sadece SELECT, INSERT, UPDATE, DELETE gibi temel işlemlere sahip olması, olası bir ihlal durumunda zararı sınırlar.

MariaDB komut istemcisine root olarak giriş yapın:

sudo mysql -u root -p

Root şifrenizi girin.

Öncelikle mevcut tüm ayrıcalıkları geri çekin (eğer önceden verdiysek):

REVOKE ALL PRIVILEGES ON . FROM 'phpmyadminuser'@'localhost';
FLUSH PRIVILEGES;

Ardından, your_database_name adlı belirli bir veritabanı üzerinde yalnızca temel CRUD (Oluşturma, Okuma, Güncelleme, Silme) ayrıcalıkları verin:

GRANT SELECT, INSERT, UPDATE, DELETE ON your_database_name.* TO 'phpmyadminuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

your_database_name yerine yönetmek istediğiniz veritabanının adını yazın. Eğer birden fazla veritabanı yönetmek istiyorsanız, her biri için ayrı ayrı GRANT komutunu çalıştırmanız gerekir.

Bu, phpmyadminuser‘ın sadece belirtilen veritabanı üzerinde çalışmasını sağlar ve diğer veritabanlarına veya sistem düzeyindeki işlemlere erişimini engeller.

Adım 6: phpMyAdmin Erişimi ve Test Etme

Tüm kurulum ve güvenlik adımlarını tamamladıktan sonra, phpMyAdmin’e web tarayıcınızdan erişerek her şeyin düzgün çalıştığını test etme zamanı.

Web tarayıcınızı açın ve daha önce belirlediğiniz gizli yolu kullanarak phpMyAdmin adresine gidin:

https://your_domain.com/myadminsecretpath

(Eğer SSL kurduysanız https kullanın, aksi takdirde http).

1. Nginx Basic Authentication: Eğer Basic Authentication’ı etkinleştirdiyseniz, tarayıcınız önce bir kullanıcı adı ve şifre penceresi açacaktır. Burada your_nginx_user ve htpasswd ile belirlediğiniz şifreyi girin.
2. phpMyAdmin Giriş Ekranı: Başarılı bir kimlik doğrulamasından sonra phpMyAdmin’in ana giriş ekranını göreceksiniz. Burada MariaDB’de oluşturduğunuz phpmyadminuser kullanıcı adı ve YOUR_STRONG_PASSWORD şifrenizi girin.

Giriş yaptıktan sonra, phpMyAdmin kontrol panelini görmelisiniz. Sol tarafta veritabanlarınız listelenmelidir. Oluşturduğunuz phpmyadminuser kullanıcısının sadece izin verdiğiniz veritabanlarını görebildiğinden emin olun.

* Veritabanlarını ve tabloları görüntülemeyi deneyin.
* Basit bir SQL sorgusu çalıştırmayı deneyin (örneğin, bir tablo oluşturma veya veri ekleme).
* Çıkış yapın ve tekrar giriş yaparak oturum yönetiminin doğru çalıştığını kontrol edin.
* URL’yi yanlış yazarak veya gizli yolu atlayarak phpMyAdmin’e erişmeye çalışın. Nginx Basic Authentication veya IP kısıtlamalarının çalıştığından emin olun.

Tüm bu testler başarılı olursa, phpMyAdmin kurulumunuz Nginx üzerinde güvenli bir şekilde çalışıyor demektir.

Sonuç

Bu kapsamlı kılavuzda, phpMyAdmin’i Ubuntu 20.04 sunucusuna Nginx web sunucusu ile nasıl kuracağınızı ve güvenliğini nasıl sağlayacağınızı adım adım öğrendiniz. Nginx’in verimliliği ve phpMyAdmin’in kullanım kolaylığı birleştiğinde, veritabanı yönetim süreçleriniz için güçlü ve hızlı bir platform elde etmiş oldunuz.

Kurulum sürecinde Nginx ve PHP-FPM’i yapılandırmak, MariaDB sunucusunu kurmak ve güvenliğini sağlamak, phpMyAdmin’i yüklemek ve son olarak Nginx ile entegre etmek gibi temel adımları tamamladık. En önemlisi, phpMyAdmin gibi hassas bir aracı kötü niyetli saldırılardan korumak için giriş yolunu gizleme, HTTP Basic Authentication ekleme, SSL/TLS şifrelemesi kullanma, IP adresi kısıtlaması uygulama ve phpMyAdmin’in kendi yapılandırma dosyasını güçlendirme gibi kritik güvenlik önlemlerini detaylıca ele aldık. Ayrıca, veritabanı kullanıcı ayrıcalıklarını kısıtlamanın önemini vurguladık.

Unutmayın ki güvenlik sürekli bir süreçtir. Sunucunuzu ve yazılımlarınızı (Nginx, PHP, MariaDB, phpMyAdmin) düzenli olarak güncel tutmak, güvenlik yamalarını uygulamak ve sistem günlüklerini izlemek, uzun vadede sisteminizin güvenliğini sağlamak için hayati öneme sahiptir. Güçlü şifreler kullanmaya ve erişimi mümkün olduğunca kısıtlı tutmaya her zaman özen gösterin. Bu kılavuzdaki adımları uygulayarak, veritabanı yönetiminiz için sağlam ve güvenli bir temel oluşturmuş oldunuz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.