Takip et

Ubuntu 16.04 Üzerine Virtualmin, Webmin, LAMP, BIND ve Postfix Kurulum Rehberi

Ubuntu 16.04 Üzerine Virtualmin, Webmin, LAMP, BIND ve Postfix Kurulum Rehberi Giriş Bir web sunucusu kurmak, web sitelerini barındırmak, e-posta

Ubuntu 16.04 Üzerine Virtualmin, Webmin, LAMP, BIND ve Postfix Kurulum Rehberi

Giriş

Bir web sunucusu kurmak, web sitelerini barındırmak, e-posta hizmetleri sunmak ve DNS yönetimi yapmak isteyenler için karmaşık bir süreç olabilir. Ancak Virtualmin ve Webmin gibi güçlü kontrol panelleri, bu görevleri büyük ölçüde basitleştirir. Bu rehberde, Ubuntu 16.04 LTS (Uzun Süreli Destek) işletim sistemi üzerine Virtualmin ve Webmin’i, temel bileşenleri olan LAMP (Linux, Apache, MySQL/MariaDB, PHP), BIND (DNS sunucusu) ve Postfix (e-posta sunucusu) ile birlikte adım adım nasıl kuracağınızı detaylı bir şekilde anlatacağız. Ubuntu 16.04, eski bir sürüm olmasına rağmen, birçok sistemde hala kullanılmakta olup bu rehber, bu özel sürüme odaklanacaktır.

Bu kapsamlı kurulum, size tam işlevsel bir web barındırma platformu sağlayacak, böylece birden fazla web sitesini, e-posta hesabını ve veritabanını kolayca yönetebileceksiniz.

Ön Gereksinimler

Kuruluma başlamadan önce, sisteminizin aşağıdaki ön koşulları karşıladığından emin olun:

* Ubuntu 16.04 Sunucusu: Temiz bir Ubuntu 16.04 LTS kurulumu önerilir. Virtualmin, mevcut bir sunucuya kurulabilir ancak çakışmaları önlemek için temiz bir kurulum en iyisidir.
* Minimum Sistem Kaynakları:
* RAM: En az 2 GB (4 GB veya üzeri önerilir, özellikle birden fazla site barındıracaksanız).
* CPU: En az 1 çekirdek (2 çekirdek veya üzeri önerilir).
* Disk Alanı: En az 20 GB boş alan (50 GB veya üzeri önerilir).
* Statik IP Adresi: Sunucunuzun internete açık, statik bir IP adresi olmalıdır.
* Kök (root) Erişimi veya Sudo Yetkilerine Sahip Kullanıcı: Kurulum için yönetici ayrıcalıkları gerekecektir.
* Güncel Sistem: Kuruluma başlamadan önce sistemin güncel olduğundan emin olun.
* FQDN (Tam Nitelikli Alan Adı): Sunucunuz için bir FQDN belirlemiş ve DNS kayıtlarını doğru şekilde ayarlamış olmanız önemlidir. Örneğin, sunucu.alanadiniz.com. Bu FQDN, sunucunuzun statik IP adresine işaret etmelidir.

Sistem Güncelleme ve Temel Ayarlar

İlk adım olarak, sunucunuzu güncelleyelim ve temel ayarları yapalım.

1. Sistemi Güncelleyin:

sudo apt update
    sudo apt upgrade -y
    sudo apt dist-upgrade -y
    sudo apt autoremove -y

Bu komutlar, paket listelerini günceller, yüklü paketleri en son sürümlerine yükseltir ve artık gerekmeyen bağımlılıkları temizler.

2. Hostname ve FQDN Ayarları:
Sunucunuzun hostname’ini ve FQDN’ini doğru bir şekilde ayarlamak kritik öneme sahiptir.

sudo hostnamectl set-hostname sunucu.alanadiniz.com

/etc/hosts dosyasını düzenleyerek sunucunuzun IP adresini FQDN’e eşleyin:

sudo nano /etc/hosts

Dosyaya aşağıdaki satırı ekleyin (kendi IP adresiniz ve FQDN’inizle değiştirin):

127.0.0.1       localhost
    127.0.1.1       sunucu.alanadiniz.com sunucu
    [Sunucu_IP_Adresiniz] sunucu.alanadiniz.com sunucu

Dosyayı kaydedip kapatın (CTRL+O, Enter, CTRL+X). Değişikliklerin etkili olması için sunucuyu yeniden başlatmanız gerekebilir:

sudo reboot

Yeniden başlattıktan sonra hostname’in doğru ayarlandığını kontrol edin:

hostname -f

Bu komut, FQDN’inizi döndürmelidir.

LAMP Yığınının Kurulumu (Apache, MariaDB, PHP)

Virtualmin, web hizmetlerini sunmak için bir LAMP (Linux, Apache, MySQL/MariaDB, PHP) yığınına ihtiyaç duyar. Ubuntu 16.04’te MySQL yerine MariaDB tercih edilir.

Apache Web Sunucusu Kurulumu

Apache, web sitelerinizi yayınlayacak olan web sunucusudur.

sudo apt install apache2 -y

Kurulumdan sonra Apache’nin çalıştığından emin olun:

sudo systemctl status apache2

Tarayıcınızdan sunucunuzun IP adresine giderek Apache varsayılan sayfasını görmelisiniz.

MariaDB Veritabanı Sunucusu Kurulumu

MariaDB, MySQL’in geliştirilmiş bir çatalıdır ve Virtualmin tarafından desteklenir.

sudo apt install mariadb-server mariadb-client -y

Kurulumdan sonra MariaDB’nin güvenliğini sağlamak için mysql_secure_installation betiğini çalıştırın:

sudo mysql_secure_installation

Bu betik size aşağıdaki soruları soracaktır:
* Enter current password for root (enter for none): İlk kurulumda root şifresi yoktur, bu yüzden direkt Enter tuşuna basın.
* Set root password? [Y/n] Y yazıp Enter’a basın ve güçlü bir root şifresi belirleyin.
* Remove anonymous users? [Y/n] Y
* Disallow root login remotely? [Y/n] Y (Güvenlik için root kullanıcısının uzaktan bağlanmasını engelleriz.)
* Remove test database and access to it? [Y/n] Y
* Reload privilege tables now? [Y/n] Y

PHP ve Gerekli Modüllerin Kurulumu

PHP, dinamik web siteleri için sunucu taraflı bir betik dilidir. Virtualmin ve çeşitli web uygulamaları için birçok PHP modülü gereklidir. Ubuntu 16.04, varsayılan olarak PHP 7.0 ile gelir.

sudo apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-xml php7.0-zip php7.0-json php7.0-cgi php7.0-fpm php-pear php-imagick php-common php-cli php-xmlrpc -y

Kurulumdan sonra Apache’yi yeniden başlatın ki PHP modülü etkinleşsin:

sudo systemctl restart apache2

BIND DNS Sunucusu Kurulumu

BIND (Berkeley Internet Name Domain), internetin en yaygın kullanılan DNS sunucusudur. Virtualmin, alan adlarınız için DNS kayıtlarını otomatik olarak yönetmek üzere BIND’i kullanır.

sudo apt install bind9 bind9utils bind9-doc -y

Kurulumdan sonra BIND’in otomatik başlamasını sağlayın ve durumunu kontrol edin:

sudo systemctl enable bind9
sudo systemctl status bind9

BIND’in varsayılan yapılandırmasını kontrol edelim. Genellikle Virtualmin, BIND’i kendi ihtiyaçlarına göre yapılandırır, ancak temel bir kurulumun çalıştığından emin olmak önemlidir.
/etc/bind/named.conf.options dosyasında, DNS sorgularının yönlendirileceği genel DNS sunucularını (forwarders) belirleyebilirsiniz. Örneğin Google DNS:

sudo nano /etc/bind/named.conf.options

options { ... } bloğunun içine aşağıdaki satırları ekleyin:

forwarders {
                8.8.8.8;
                8.8.4.4;
        };
        dnssec-validation auto;

Dosyayı kaydedip kapatın. BIND yapılandırmasını test edin ve yeniden başlatın:

sudo named-checkconf
sudo systemctl restart bind9

Eğer herhangi bir hata mesajı almazsanız, yapılandırma doğrudur.

Postfix Mail Sunucusu Kurulumu

Postfix, güvenli ve esnek bir e-posta sunucusudur. Virtualmin, alan adlarınız için e-posta hizmetlerini yönetmek üzere Postfix’i kullanır.

sudo apt install postfix postfix-mysql -y

Kurulum sırasında bir yapılandırma ekranı açılacaktır.
* General type of mail configuration: Internet Site seçeneğini seçin.
* System mail name: Sunucunuzun FQDN’ini girin (örneğin, sunucu.alanadiniz.com).
* Diğer seçenekleri varsayılan olarak bırakabilirsiniz.

Postfix’in varsayılan yapılandırmasını kontrol edelim. Virtualmin, kurulumdan sonra bu yapılandırmayı kendi ihtiyaçlarına göre düzenleyecektir.

sudo nano /etc/postfix/main.cf

myhostname ve mydestination gibi parametrelerin sunucunuzun FQDN’ini içerdiğinden emin olun.
Postfix’i yeniden başlatın:

sudo systemctl restart postfix

Dovecot Kurulumu (IMAP/POP3 Desteği İçin)

E-posta istemcilerinin (Outlook, Thunderbird vb.) e-postaları sunucudan alabilmesi için bir IMAP/POP3 sunucusuna ihtiyacımız var. Virtualmin genellikle kurulum betiği sırasında Dovecot’u da kurar, ancak manuel olarak da kurabiliriz.

sudo apt install dovecot-imapd dovecot-pop3d dovecot-mysql -y

Dovecot’u başlatın ve durumunu kontrol edin:

sudo systemctl enable dovecot
sudo systemctl status dovecot

Webmin ve Virtualmin Kurulumu

Tüm temel bileşenleri kurduktan sonra, Virtualmin ve Webmin’i yükleyebiliriz. Virtualmin, Webmin’in üzerine kurulu bir modüldür ve web barındırma işlevselliği sağlar. Virtualmin’in resmi kurulum betiğini kullanmak, tüm bağımlılıkları doğru bir şekilde yapılandıracağı için en kolay ve önerilen yoldur.

1. Kurulum Betiğini İndirin:

cd /tmp
    wget http://software.virtualmin.com/gpl/scripts/install.sh

2. Betiği Çalıştırılabilir Hale Getirin:

chmod +x install.sh

3. Kurulum Betiğini Çalıştırın:
Bu betik, tüm gerekli bağımlılıkları kontrol edecek, eksik olanları yükleyecek ve Virtualmin’i yapılandıracaktır. Bu işlem biraz zaman alabilir (10-30 dakika).

sudo ./install.sh

Kurulum sırasında size bazı sorular sorulabilir (örneğin, SSL kurulumu için). Genellikle varsayılan seçenekleri (Y) kabul edebilirsiniz. Betik, tüm LAMP, BIND, Postfix ve diğer bağımlılıkları Virtualmin ile entegre edecek ve yapılandıracaktır.

Kurulum tamamlandığında, betik size Virtualmin’e erişmek için bir URL, kullanıcı adı ve parola verecektir. Genellikle https://sunucu.alanadiniz.com:10000 veya https://[Sunucu_IP_Adresiniz]:10000 adresinden erişebilirsiniz.

Virtualmin İlk Yapılandırması ve Sonrası

Kurulum betiği tamamlandıktan sonra, web tarayıcınızı kullanarak Virtualmin arayüzüne erişebilirsiniz.

1. Virtualmin’e Erişin:
Tarayıcınızda https://sunucu.alanadiniz.com:10000 veya https://[Sunucu_IP_Adresiniz]:10000 adresine gidin.
Güvenlik uyarısı alabilirsiniz çünkü Virtualmin, varsayılan olarak kendi kendine imzalı (self-signed) bir SSL sertifikası kullanır. Bu uyarıyı geçerek devam edin.
Giriş ekranında, root kullanıcı adını ve sunucunuzun root parolasını veya kurulum sırasında oluşturduğunuz sudo kullanıcısının parolasını girin.

2. Post-Kurulum Sihirbazı:
İlk girişte, Virtualmin sizi bir “Post-Installation Wizard” (Kurulum Sonrası Sihirbazı) ile karşılayacaktır. Bu sihirbaz, Virtualmin’i sisteminize daha iyi entegre etmek için bazı temel yapılandırmaları yapmanıza yardımcı olur.
* Preload Virtualmin Libraries? (Virtualmin kütüphanelerini önceden yükle?) Genellikle No seçeneğini seçmek daha iyidir, aksi takdirde daha fazla RAM tüketebilir.
* Run email domain lookup server? (E-posta etki alanı arama sunucusu çalıştır?) Genellikle Yes seçeneğini seçin.
* Run ClamAV server? (ClamAV sunucusu çalıştır?) E-posta taraması için gereklidir, ancak RAM tüketimi yüksektir. İhtiyacınıza göre Yes veya No seçeneğini seçin. Daha sonra da kurabilirsiniz.
* Run SpamAssassin server? (SpamAssassin sunucusu çalıştır?) Spam filtrelemesi için gereklidir. İhtiyacınıza göre Yes veya No seçeneğini seçin.
* Run MySQL server? (MySQL sunucusu çalıştır?) Zaten MariaDB kurduğumuz için Yes olmalı.
* Run PostgreSQL server? (PostgreSQL sunucusu çalıştır?) Eğer PostgreSQL kullanmayacaksanız No seçeneğini seçin.
* Setup root password for MySQL? (MySQL için root şifresi ayarla?) Zaten mysql_secure_installation ile ayarladık, bu yüzden No seçeneğini seçin.
* Configure Apache virtual hosts? (Apache sanal ana bilgisayarlarını yapılandır?) Yes seçeneğini seçin.

Sihirbaz tamamlandığında, Virtualmin sizi ana kontrol paneline yönlendirecektir.

3. Sistem Kontrolü (System Information):
Virtualmin ana ekranında, “System Information” bölümünde, sisteminizdeki servislerin durumunu ve kaynak kullanımını görebilirsiniz. Her şeyin yeşil renkte ve “Running” (Çalışıyor) olarak görünmesi gerekir. Herhangi bir uyarı veya hata varsa, “Re-Check Configuration” (Yapılandırmayı Yeniden Kontrol Et) düğmesine tıklayarak sorunları tespit etmeye çalışabilirsiniz.

Sanal Sunucu (Domain) Oluşturma

Artık Virtualmin kurulu ve çalışır durumda. İlk web sitenizi veya sanal sunucunuzu oluşturmaya başlayabiliriz.

1. “Create Virtual Server” (Sanal Sunucu Oluştur) Seçeneğini Kullanın:
Virtualmin sol menüsünden “Create Virtual Server” seçeneğine tıklayın.
2. Sanal Sunucu Ayarlarını Yapılandırın:
* Domain name: Alan adınızı girin (örneğin, ornekalanadi.com).
* Description: İsteğe bağlı bir açıklama girin.
* Administration password: Bu sanal sunucu için bir yönetici şifresi belirleyin.
* Server owner: Varsayılan olarak “admin” kalabilir veya yeni bir kullanıcı oluşturabilirsiniz.
* Enabled features: Genellikle tüm varsayılan özellikler (Apache, DNS, Mail, MySQL, Webalizer, AWStats, SpamAssassin, ClamAV) seçili gelir. İhtiyaçlarınıza göre ayarlayabilirsiniz.
* PHP execution mode: FPM (FastCGI Process Manager) genellikle daha iyi performans ve güvenlik sağlar.
* SSL certificate: Eğer Let’s Encrypt kullanmak istiyorsanız, bu aşamada veya sanal sunucu oluşturulduktan sonra kolayca etkinleştirebilirsiniz.

3. Sanal Sunucuyu Oluşturun:
“Create Server” düğmesine tıklayın. Virtualmin, alan adınız için gerekli tüm dizinleri, DNS kayıtlarını, e-posta ayarlarını ve Apache sanal ana bilgisayar yapılandırmasını otomatik olarak oluşturacaktır.

4. DNS Kayıtlarını Kontrol Edin:
Sanal sunucu oluşturulduktan sonra, Virtualmin sizin için DNS kayıtlarını (A, MX, NS vb.) oluşturacaktır. Ancak, alan adınızın dışarıdan erişilebilir olması için, alan adı kayıt kuruluşunuzun (domain registrar) panelinden nameserver’larınızı (NS kayıtları) sunucunuzun FQDN’ine (örneğin, ns1.alanadiniz.com ve ns2.alanadiniz.com gibi, bunlar Virtualmin tarafından otomatik olarak oluşturulur) veya doğrudan sunucunuzun IP adresine işaret edecek şekilde ayarlamanız gerekecektir.

5. Let’s Encrypt SSL Kurulumu:
Oluşturduğunuz sanal sunucuyu seçin, sol menüden “Server Configuration” -> “SSL Certificate” yolunu izleyin. “Let’s Encrypt” sekmesine tıklayın ve sertifika talebinde bulunun. Bu, web sitenizin HTTPS üzerinden güvenli bir şekilde yayınlanmasını sağlayacaktır.

Güvenlik Önlemleri

Bir sunucu kurduktan sonra güvenliği sağlamak hayati öneme sahiptir.

1. Güvenlik Duvarı (UFW):
Ubuntu’nun varsayılan güvenlik duvarı olan UFW’yi etkinleştirin ve gerekli portlara izin verin.

sudo ufw enable
    sudo ufw allow ssh     # SSH (Port 22)
    sudo ufw allow http    # HTTP (Port 80)
    sudo ufw allow https   # HTTPS (Port 443)
    sudo ufw allow 10000/tcp # Webmin/Virtualmin (Port 10000)
    sudo ufw allow 53/udp  # DNS (BIND)
    sudo ufw allow 53/tcp  # DNS (BIND)
    sudo ufw allow smtp    # SMTP (Port 25)
    sudo ufw allow smtps   # SMTPS (Port 465)
    sudo ufw allow submission # Submission (Port 587)
    sudo ufw allow pop3    # POP3 (Port 110)
    sudo ufw allow pop3s   # POP3S (Port 995)
    sudo ufw allow imap    # IMAP (Port 143)
    sudo ufw allow imaps   # IMAPS (Port 993)
    sudo ufw status verbose

2. SSH Güvenliği:
* Parola yerine SSH anahtarları kullanın: Parola tabanlı kimlik doğrulamasını devre dışı bırakın.
* Varsayılan SSH portunu değiştirin: Saldırıları azaltmak için SSH portunu 22’den farklı bir porta taşıyın.
* Root ile SSH erişimini devre dışı bırakın: Sadece sudo yetkilerine sahip normal kullanıcılarla bağlanın.

3. Fail2ban Kurulumu:
Fail2ban, sunucunuza yapılan kaba kuvvet saldırılarını engelleyen bir yazılımdır.

sudo apt install fail2ban -y

Kurulumdan sonra /etc/fail2ban/jail.local dosyasını oluşturarak veya düzenleyerek yapılandırın.

sudo nano /etc/fail2ban/jail.local

Örnek yapılandırma:

[DEFAULT]
    bantime = 1h
    findtime = 10m
    maxretry = 5

    [sshd]
    enabled = true

    [apache-auth]
    enabled = true

    [postfix]
    enabled = true

    [dovecot]
    enabled = true

    [webmin-auth]
    enabled = true
    logpath = /var/webmin/*.log

Fail2ban servisini yeniden başlatın:

sudo systemctl restart fail2ban

4. Düzenli Güncellemeler:
Sisteminizi ve yazılımlarınızı düzenli olarak güncel tutun.

sudo apt update && sudo apt upgrade -y

5. Güçlü Parolalar:
Tüm kullanıcılar ve veritabanları için güçlü, karmaşık parolalar kullanın.

Sorun Giderme ve İpuçları

Kurulum sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:

* Virtualmin’e Erişilemiyor (Port 10000):
* Güvenlik duvarınızın (UFW) 10000 numaralı porta izin verdiğinden emin olun.
* Webmin/Virtualmin servisinin çalıştığından emin olun: sudo systemctl status webmin
* Tarayıcınızda https:// kullandığınızdan emin olun.

* Web Sitesi Çalışmıyor (Apache):
* Apache servisinin çalıştığından emin olun: sudo systemctl status apache2
* Apache loglarını kontrol edin: /var/log/apache2/error.log
* Virtualmin’de sanal sunucunuzun doğru yapılandırıldığından emin olun.

* E-posta Gönderilemiyor/Alınamıyor (Postfix/Dovecot):
* Postfix ve Dovecot servislerinin çalıştığından emin olun: sudo systemctl status postfix ve sudo systemctl status dovecot
* Mail loglarını kontrol edin: /var/log/mail.log
* DNS MX kayıtlarınızın doğru olduğundan ve sunucunuzun IP adresine işaret ettiğinden emin olun.
* Güvenlik duvarınızın e-posta portlarına (25, 465, 587, 110, 995, 143, 993) izin verdiğinden emin olun.

* Veritabanı Bağlantı Sorunları (MariaDB):
* MariaDB servisinin çalıştığından emin olun: sudo systemctl status mariadb
* MariaDB loglarını kontrol edin: /var/log/mysql/error.log veya /var/log/syslog
* MySQL kullanıcı adları ve parolalarının doğru olduğundan emin olun.

* DNS Çözümleme Sorunları (BIND):
* BIND servisinin çalıştığından emin olun: sudo systemctl status bind9
* BIND loglarını kontrol edin: /var/log/syslog veya /var/log/bind/query.log (eğer yapılandırıldıysa).
* named-checkconf ve named-checkzone komutlarını kullanarak yapılandırma dosyalarınızı kontrol edin.
* Alan adı kayıt kuruluşunuzdaki nameserver ayarlarınızın doğru olduğundan emin olun.

* “Re-Check Configuration” Hatası:
Virtualmin’deki “Re-Check Configuration” düğmesine tıklayarak sistemdeki olası hataları tespit edebilirsiniz. Genellikle eksik paketler veya yanlış yapılandırmalar hakkında bilgi verir. Eksik paketleri yükleyip servisleri yeniden başlatarak sorunları çözebilirsiniz.

Sonuç

Bu rehber, Ubuntu 16.04 üzerine Virtualmin, Webmin, LAMP, BIND ve Postfix’i adım adım nasıl kuracağınızı ve yapılandıracağınızı detaylı bir şekilde anlattı. Artık tam işlevsel bir web barındırma kontrol paneline sahipsiniz. Virtualmin’in güçlü arayüzü sayesinde, birden fazla web sitesini, e-posta hesabını, veritabanını ve DNS kaydını kolayca yönetebilirsiniz.

Unutmayın ki sunucu yönetimi sürekli bir süreçtir. Sunucunuzu düzenli olarak güncel tutmak, güvenlik önlemlerini uygulamak ve log dosyalarını izlemek, sisteminizin kararlı ve güvenli kalmasını sağlayacaktır. Bu kurulum, küçük ve orta ölçekli projeler için sağlam bir temel oluştururken, daha büyük ölçekli ve yüksek trafikli ortamlar için ek optimizasyon ve güvenlik önlemleri gerekebilir.

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.