Ubuntu Bileşenlerinin Kurulumu ve Yapılandırması: Tam Rehber
Ubuntu, dünyada en popüler Linux dağıtımlarından biri olmaya devam ediyor — ve bunun iyi nedenleri var. Esnekliği, güçlü paket ekosistemi ve güçlü topluluk desteği, onu geliştiriciler, sistem yöneticileri ve işletmeler için ideal bir platform haline getiriyor. İster yerel bir geliştirme makinesi kuruyor ister bulutta bir VPS Hosting ortamı sağlıyor olun, Ubuntu bileşenlerini düzgün şekilde yükleme ve yapılandırma bilgisi, altyapınızın her seviyesinde karşılığını veren temel bir beceridir.
Bu kapsamlı rehber sizi her kritik adımda yürütür: sisteminizi güncelleme, temel paketleri yükleme, güvenlik duvarlarını yapılandırma, veritabanı sunucuları kurma, performansı optimize etme ve çok daha fazlası. Sonunda, Ubuntu sisteminiz sertleştirilmiş, verimli ve üretim iş yükleri için hazır olacaktır.
İçindekiler
- Herhangi Bir Şey Yüklemeden Önce Ubuntu’yu Güncelleme
- Temel Bileşenleri Yükleme
- Yazılım Depolarını Yapılandırma
- UFW ile Güvenlik Duvarını Yükleme ve Yapılandırma
- Veritabanı Sunucularını Yükleme ve Yapılandırma
- Ek Araçlar ve Yardımcı Programları Yükleme
- Ubuntu Sistem Ayarlarını Özelleştirme
- Otomatik Yedeklemeleri Ayarlama
- Sistem İzleme ve Performans Optimizasyonu
- Üretim Hazır Ubuntu Sistemi için Son İpuçları
1. Herhangi Bir Şey Yüklemeden Önce Ubuntu’yu Güncelleme
Tek bir pakete dokunmadan önce, sisteminizi tamamen güncel hale getirin. Bu, en son güvenlik yamaları, hata düzeltmeleri ve yazılım uyumluluğu iyileştirmeleriyle çalıştığınızdan emin olur.
sudo apt update && sudo apt upgrade -yBunu ne yapar:
apt update— Yerel paket dizinini tüm yapılandırılmış depolardan yeniler.apt upgrade -y— Tüm yüklü paketleri en son kullanılabilir sürümlere yükseltir, istemleri otomatik olarak onaylar.
> Pro İpucu: Yeni sağlanan bir sunucuda — özellikle Ubuntu’yu bir Dedicated Server üzerinde çalıştırıyorsanız — bu adım kaçınılmazdır. Eski paketler, güvenlik ihlallerinin en yaygın vektörlerinden biridir.
Yükseltmeden sonra, çekirdek güncellenirse yeniden başlatın:
sudo reboot2. Temel Bileşenleri Yükleme
Ubuntu’nun gücü, genişletilebilirliğinde yatmaktadır. Aşağıdaki alt bölümler, herhangi bir ciddi Ubuntu dağıtımı için en kritik paketleri kapsar.
2.1. Build Essentials
build-essential paketi, kaynak kodundan yazılım derlemek için gereken, GCC (GNU Compiler Collection), Make ve standart C/C++ kütüphaneleri dahil olmak üzere, seçilmiş bir araç seti yükler.
sudo apt install build-essential -yYüklemeyi doğrulayın:
gcc --version
make --versionBu paket, birçok diğer araç ve dil çalışma zamanı için bir ön koşuldur (örneğin, Python uzantıları, Ruby gems, Node.js yerel modülleri).
2.2. Git — Sürüm Kontrol Sistemi
Git, kaynak kodu yönetimi, işbirlikçi geliştirme ve dağıtım boru hatları için endüstri standardı aracıdır.
sudo apt install git -yYüklemeden sonra, global kimliğinizi yapılandırın:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"Yapılandırmanızı doğrulayın:
git config --listİsteğe bağlı ancak önerilen: Varsayılan dal adınızı main olarak ayarlayın, modern kurallarla uyumlu hale getirmek için:
git config --global init.defaultBranch main2.3. Ağ Araçları: curl ve wget
Bu yardımcı programlar, dosya indirme, API’leri test etme ve ağ bağlantısını doğrudan komut satırından hata ayıklama için vazgeçilmezdir.
sudo apt install curl wget -yHızlı kullanım örnekleri:
# Download a file with wget
wget https://example.com/file.tar.gz
# Test an API endpoint with curl
curl -I https://example.comEk yararlı ağ tanılama araçları:
sudo apt install net-tools dnsutils traceroute -ynet-tools—ifconfig,netstatve ilgili komutları sağlar.dnsutils— DNS sorun giderme içindigvenslookupiçerir.traceroute— Uzak bir ana bilgisayara ağ yolunu izler.
2.4. Metin Editörleri
Her sistem yöneticisinin güvenilir bir komut satırı metin editörüne ihtiyacı vardır. Ubuntu, tercihine ve iş akışına bağlı olarak birkaç seçeneği destekler.
Nano (başlangıç dostu):
sudo apt install nano -yVim (güçlü, yüksek oranda yapılandırılabilir):
sudo apt install vim -yEmacs (özellik açısından zengin, genişletilebilir):
sudo apt install emacs -y> Tavsiye: Sunucu ortamları için Vim, en evrensel olarak kullanılabilir ve yeterli seçenektir. Temel komutlarını öğrenmeye zaman ayırın — iş akışınızı önemli ölçüde hızlandıracaktır.
2.5. Web Sunucusu Yükleme
Web sunucusu, web sitelerini, web uygulamalarını ve API’leri barındırmak için gereklidir. Ubuntu’da iki baskın seçenek Nginx ve Apache‘dir.
#### Nginx Yükleme (Yüksek Performans için Önerilen)
sudo apt install nginx -yNginx’i başlatın ve önyükleme sırasında otomatik olarak başlatılması için etkinleştirin:
sudo systemctl start nginx
sudo systemctl enable nginxÇalıştığını doğrulayın:
sudo systemctl status nginxYeniden yüklemeden önce yapılandırmanızı test edin:
sudo nginx -t#### Apache Yükleme
sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2Nginx vs. Apache — Hangisini Seçmelisiniz?
| Özellik | Nginx | Apache |
|---|---|---|
| Yük altında performans | Mükemmel (olay tabanlı) | İyi (işlem/iş parçacığı tabanlı) |
| Statik dosya sunma | Çok hızlı | Hızlı |
| .htaccess desteği | Hayır | Evet |
| Modül ekosistemi | Büyüyor | Kapsamlı |
| Bellek kullanımı | Daha düşük | Daha yüksek |
Çoğu modern dağıtım için — özellikle bulut VPS Hosting ortamlarında — Nginx, eşzamanlı bağlantıları üstün şekilde işlemesi ve daha düşük bellek ayak izi nedeniyle tercih edilen seçenektir.
3. Yazılım Depolarını Yapılandırma
Ubuntu’nun varsayılan yüklemesi yalnızca Main ve Restricted depolarını etkinleştirir. Önemli ölçüde daha geniş bir yazılım yelpazesine erişmek için Universe ve Multiverse depolarını etkinleştirmelisiniz.
Yöntem 1: GUI Kullanma (Masaüstü Ubuntu)
- Uygulama menüsünden Yazılım & Güncellemeler‘i açın.
- Ubuntu Yazılımı sekmesinin altında, Universe ve Multiverse için kutuları işaretleyin.
- Kapat‘ı tıklayın ve istendiğinde paket listesini yeniden yükleyin.
Yöntem 2: Komut Satırını Kullanma (Sunucular için Önerilen)
sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt updateDepo Özeti:
| Depo | İçerik |
|---|---|
| Main | Resmi olarak desteklenen, açık kaynaklı yazılım |
| Restricted | Resmi destek ile tescilli sürücüler |
| Universe | Topluluk tarafından korunan, açık kaynaklı yazılım |
| Multiverse | Lisanslama kısıtlamaları olan yazılım |
Üçüncü Taraf PPA’ları Ekleme
Resmi depolarda bulunmayan yazılım için, Kişisel Paket Arşivleri (PPA) ekleyebilirsiniz:
sudo add-apt-repository ppa:repository-name/ppa
sudo apt update
sudo apt install package-name> Güvenlik Notu: PPA’ları yalnızca güvenilir, iyi bilinen kaynaklardan ekleyin. Üçüncü taraf depoları, sisteminize denetlenmeyen yazılım getirebilir.
4. UFW ile Güvenlik Duvarını Yükleme ve Yapılandırma
Ubuntu, UFW (Uncomplicated Firewall) ile birlikte gelir, bu da iptables için kullanıcı dostu bir ön yüzüdür. Güvenlik duvarınızı düzgün şekilde yapılandırmak, internet’e açık herhangi bir sunucu için en önemli güvenlik adımlarından biridir.
UFW’yi Etkinleştirme
sudo ufw enableTemel Hizmetlere İzin Ver
Güvenlik duvarını etkinleştirmeden önce her zaman SSH’ye izin verin, kendinizi kilitlemekten kaçınmak için:
sudo ufw allow sshVeya bağlantı noktasını açıkça belirtin:
sudo ufw allow 22/tcpWeb sunucuları için HTTP ve HTTPS trafiğine izin verin:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpBelirli uygulama profillerine izin verin:
sudo ufw allow 'Nginx Full'
# or
sudo ufw allow 'Apache Full'Güvenlik Duvarı Durumunu Kontrol Etme
sudo ufw status verboseEk UFW Komutları
# Deny a specific port
sudo ufw deny 8080/tcp
# Delete a rule
sudo ufw delete allow 8080/tcp
# Reset all rules
sudo ufw reset
# Disable UFW
sudo ufw disable> En İyi Uygulama: En az ayrıcalık ilkesini izleyin — yalnızca hizmetleriniz için açıkça gerekli olan bağlantı noktalarını açın. Her gereksiz açık bağlantı noktası, potansiyel bir saldırı yüzeyidir.
5. Veritabanı Sunucularını Yükleme ve Yapılandırma
Veritabanları, neredeyse her web uygulamasının omurgasıdır. Ubuntu, paket depoları aracılığıyla tüm ana ilişkisel ve NoSQL veritabanı sistemlerini destekler.
5.1. MySQL Yükleme
MySQL, dünyanın en yaygın olarak dağıtılan açık kaynaklı ilişkisel veritabanıdır.
sudo apt install mysql-server -yYüklemeden sonra, güvenlik sertleştirme komut dosyasını çalıştırın:
sudo mysql_secure_installationBu etkileşimli komut dosyası şunları yapacaktır:
- Bir kök parolası ayarlayın (veya parola gücünü doğrulayın)
- Anonim kullanıcıları kaldırın
- Uzak kök girişini yasaklayın
- Test veritabanını kaldırın
- Ayrıcalık tablolarını yeniden yükleyin
MySQL’i başlatın ve etkinleştirin:
sudo systemctl start mysql
sudo systemctl enable mysqlHizmetin çalıştığını doğrulayın:
sudo systemctl status mysqlMySQL kabuğuna bağlanın:
sudo mysql -u root -p5.2. MariaDB Yükleme (MySQL Uyumlu Alternatif)
MariaDB, geliştirilmiş performans ve ek özellikler içeren MySQL’in topluluk tarafından geliştirilen bir çatalıdır:
sudo apt install mariadb-server mariadb-client -y
sudo mysql_secure_installation
sudo systemctl enable --now mariadb5.3. PostgreSQL Yükleme
PostgreSQL, standartlara uygunluğu ve genişletilebilirliği ile bilinen güçlü, kurumsal sınıf bir nesne-ilişkisel veritabanı sistemidir.
sudo apt install postgresql postgresql-contrib -yPostgreSQL’i başlatın ve etkinleştirin:
sudo systemctl start postgresql
sudo systemctl enable postgresqlPostgreSQL yönetici kullanıcısına geçin ve kabuğu açın:
sudo -i -u postgres
psqlYeni bir veritabanı ve kullanıcı oluşturun:
CREATE DATABASE myapp_db;
CREATE USER myapp_user WITH ENCRYPTED PASSWORD 'strong_password';
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp_user;
q6. Ek Araçlar ve Yardımcı Programları Yükleme
Temel öğelerin ötesinde, aşağıdaki araçlar üretkenliğinizi, sistem görünürlüğünü ve dağıtım yeteneklerini önemli ölçüde iyileştirir.
Docker — Konteyner Çalışma Zamanı
Docker, uygulamaları ve bunların bağımlılıklarını taşınabilir kapsayıcılara paketlemenizi sağlayarak, geliştirme, hazırlama ve üretim ortamları arasında tutarlılık sağlar.
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable dockerDocker komutlarını sudo olmadan çalıştırmak için kullanıcınızı Docker grubuna ekleyin:
sudo usermod -aG docker $USER
newgrp dockerDocker’ın çalıştığını doğrulayın:
docker run hello-worldÜretim dağıtımları için Docker Compose‘u da yüklemeyi düşünün:
sudo apt install docker-compose -yhtop — Etkileşimli İşlem Görüntüleyici
htop, sistem işlemlerinin, CPU kullanımının, bellek tüketiminin ve daha fazlasının gerçek zamanlı, renkli bir görünümünü sağlar — standart top komutundan çok daha üstündür.
sudo apt install htop -y
htopTemel htop kısayolları:
F6— İşlemleri sütuna göre sıralaF9— Bir işlemi öldürF10— Çık/— Bir işlem ara
Tmux — Terminal Çoklayıcı
Tmux, tek bir SSH bağlantısı içinde birden fazla terminal oturumu oluşturmanıza, yönetmenize ve kalıcı hale getirmenize olanak tanır — uzak sunucularda uzun süreli görevler için değerlidir.
sudo apt install tmux -yTemel Tmux komutları:
# Start a new session
tmux new -s mysession
# Detach from session (keeps it running)
Ctrl+B, then D
# List all sessions
tmux ls
# Reattach to a session
tmux attach -t mysessionEk Önerilen Yardımcı Programlar
# fail2ban — Intrusion prevention system
sudo apt install fail2ban -y
# unzip — Extract ZIP archives
sudo apt install unzip -y
# tree — Display directory structure
sudo apt install tree -y
# ncdu — Disk usage analyzer
sudo apt install ncdu -y
# jq — JSON processor for the command line
sudo apt install jq -y7. Ubuntu Sistem Ayarlarını Özelleştirme
7.1. Otomatik Güvenlik Güncellemelerini Etkinleştirme
Sisteminizi yamalı tutmak kritiktir — özellikle herkese açık sunucularda. Ubuntu’nun unattended-upgrades paketi bu işlemi otomatikleştirir.
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgradesDavranışı özelleştirmek için yapılandırma dosyasını düzenleyin:
sudo nano /etc/apt/apt.conf.d/50unattended-upgradesİncelenecek temel ayarlar:
Unattended-Upgrade::Allowed-Origins— Otomatik güncellemeleri tetikleyen depoları tanımlayın.Unattended-Upgrade::Automatic-Reboot— Çekirdek güncellemelerinden sonra otomatik yeniden başlatmalara izin vermek içintrueolarak ayarlayın.Unattended-Upgrade::Mail— Güncelleme etkinliği için e-posta bildirimlerini yapılandırın.
7.2. Başlangıç Uygulamalarını Yönetme (Masaüstü Ubuntu)
Oturum açmada hangi uygulamaların başlatılacağını kontrol etmek, önyükleme süresini azaltmaya ve sistem kaynaklarını korumaya yardımcı olur.
- GNOME uygulama menüsünde Başlangıç Uygulamaları‘nı arayın.
- Etkinleştirilen başlangıç programlarının listesini gözden geçirin.
- Oturum açmada ihtiyaç duymadığınız uygulamaları kapatın.
- Yeni başlangıç komut dosyalarını veya uygulamalarını kaydetmek için Ekle düğmesini kullanın.
Sunucu ortamları için, systemd ile hizmetleri yönetin:
# Disable a service from starting at boot
sudo systemctl disable service-name
# Enable a service at boot
sudo systemctl enable service-name
# List all enabled services
sudo systemctl list-unit-files --state=enabled7.3. Sistem Saat Dilimini Yapılandırma
Doğru saat dilimi yapılandırması, günlük doğruluğu, zamanlanmış görevleri ve SSL sertifikası doğrulaması için gereklidir.
# Check current timezone
timedatectl
# List available timezones
timedatectl list-timezones
# Set timezone
sudo timedatectl set-timezone Europe/London7.4. SSH’yi Güvenli Uzaktan Erişim için Yapılandırma
Uzak bir sunucu yönetiyorsanız, SSH yapılandırmanızı sertleştirmek çok önemlidir.
sudo nano /etc/ssh/sshd_configÖnerilen güvenlik ayarları:
# Disable root login
PermitRootLogin no
# Disable password authentication (use SSH keys instead)
PasswordAuthentication no
# Change default SSH port (optional but reduces automated scanning)
Port 2222
# Limit login attempts
MaxAuthTries 3Değişikliklerden sonra SSH’yi yeniden başlatın:
sudo systemctl restart sshd> Önemli: Geçerli bağlantınızı kapatmadan önce, yeni SSH yapılandırmanızı ayrı bir terminal oturumunda test edin, dışarıda kalma riskini önlemek için.
8. Otomatik Yedeklemeleri Ayarlama
Veri kaybı yıkıcıdır. Kişisel bir proje veya işletme açısından kritik bir uygulama çalıştırıyor olun, otomatik yedeklemeler kaçınılmazdır.
Ubuntu’nun Yerleşik Yedekleme Aracını Kullanma (Masaüstü)
- Uygulama menüsünde Yedeklemeler (Déjà Dup) arayın.
- Yedekleme hedefini yapılandırın: harici sürücü, ağ paylaşımı veya bulut depolama.
- Zamanlama sekmesinin altında bir yedekleme zamanlaması ayarl
