Masaüstü bilgisayarı sunucuya dönüştürmek, öğrenme, test ve ev sunucusu gibi küçük çaplı ihtiyaçlar için oldukça mantıklı bir yaklaşımdır. Sunucu kavramı çoğu zaman pahalı donanımlar, rack kabinetler ve karmaşık altyapılarla ilişkilendirilir.
Bu rehberde bir masaüstü bilgisayarı, sıfırdan çalışan bir Linux sunucuya dönüştüreceğiz.
Masaüstü Sunucu Kullanım Amacı Belirlenmeli
Web sitesi barındırma, dosya paylaşımı, yedekleme, test ortamı veya Docker container çalıştırma gibi her senaryo farklı gereksinimler içerir.
Donanım Uyumluluğu
Kullanım amacından sonra donanım kontrol edilmelidir. Çok çekirdekli bir işlemci çoğu durumda yeterlidir. Ram tarafında ise 16GB tercih edilir. İşletim sistemi mutlaka SSD üzerinde çalışmalı veriler için ayrı bir disk kullanılmalıdır.
İşletim Sistemi Seçimi
Sunucu tarafında daha az kaynak tüketimi ve uzaktan erişimi kolay olduğu için genellikle Linux tercih edilir. Bu nedenle Ubuntu Server ve Debian en çok kullanılan sistemlerdir.
⚠️Windows yalnızca RDP, Active Directory veya Windows tabanlı uygulama gerekiyorsa seçilir çünkü sunucu için oldukça yük oluşturur.
Yazılım tarafında Ubuntu Server LTS ISO dosyası ve bu ISO’yu USB belleğe yazmak için bir araç yeterlidir. Masaüstü Ubuntu yerine server sürümü tercih edilir çünkü grafik arayüzü sunucu için gereksiz kaynak tüketir.
Ubuntu Server Kurulum USB’sini Hazırlayalım
Ubuntu Server ISO dosyasını USB belleğe yazdırdıktan sonra bilgisayarı USB’den başlatalım. BIOS veya boot menüsünden USB aygıtı seçildiğinde Ubuntu Server kurulum ekranı açılacaktır.


Ubuntu Server Kurulumu
Kurulum başladığında dil ve klavye ayarları yapılır. Ardından ağ yapılandırma ekranına geçilir. Ethernet bağlantısı varsa sistem otomatik IP alabilir. Ancak sunucu kurulumu yapıldığı için statik IP tanımlanmalıdır.


Disk Yapılandırması Nasıl Yapılır?
Ubuntu Server kurulumunda disk işlemleri Storage configuration ekranında yapılır. Bu ekrana geldiğinizde sistemde takılı olan tüm diskler listelenir.
Masaüstü bilgisayarı sunucuya dönüştürdüğümüz için, işletim sistemini kuracağımız ana diski seçmemiz gerekir. Bu disk genellikle sda ya da NVMe sistemlerde nvme0n1 olarak görünür. Doğru diskin üzerine gelelim ve Enter tuşuna basalım.

Daha sonra ekranda yükleyici diski nasıl kullanmak istediğinizi sorar. Burada Use an entire disk seçeneğini seçelim ve devam edelim.

İşlemleri tamamladığımızda Set up this disk as an LVM group? sorusu gelir. Burada evet seçeneği ile devam edelim.

Son adımda Done seçeneğine basalım. Diskteki tüm verilerin silineceğini belirten bir uyarı görebilirsiniz. Doğru diski seçtiğinizden eminsek Continue diyerek onaylayalım.
Kurulumdan Sonra Disk Yapısını Kontrol Edelim
Kurulum tamamlanıp sunucu açıldıktan sonra disk yapısını kontrol etmek için aşağıdaki komutu kullanabiliriz.
lsblk
df -hKullanıcı, Hostname, SSH Ayarları
Ubuntu Server kurulumunda disk ve ağ ayarlarından sonra Identity setup ekranına geçilir. Bu ekran, sunucunun adı, yönetici kullanıcısı ve uzaktan erişim ayarlarının yapıldığı bölümdür.
Hostname Belirleme
Sunucuya bir hostname verilir. Hostname, sunucunun ağ üzerindeki adıdır ve terminalde görünür.
hostname: homeserverBu isim daha sonra SSH bağlantılarında ve sistem loglarında kullanılır.

Yönetici Kullanıcı Oluşturma
Aynı ekranda bir yönetici kullanıcı oluşturalım. Ubuntu Server’da root hesabı doğrudan kullanılmaz. Bunun yerine bu kullanıcı sudo yetkileri ile sistemi yönetir.
- SSH ile bağlanmak
- Paket kurmak
- Sistem ayarlarını değiştirmek.
Kurulumdan sonra bu bilgileri terminalden doğrulayabiliriz.
whoami
hostnameOpenSSH Server Kurulumunu Aktif Edelim
Bir sonraki ekranda SSH Setup bölümü gelir. Burada Install OpenSSH Server seçeneği mutlaka işaretlenmeliyiz. Böylelikle, SSH servisi kurulur ve sunucu uzaktan erişime açılır.

Kurulum Sonrası Sunucuya Bağlanalım
Kurulum tamamlandıktan sonra sistem yeniden başlar. Bu noktadan sonra sunucuya fiziksel erişim gerekmez. Yönetim işlemleri başka bir bilgisayardan SSH üzerinden yapılır.
Sunucuya bağlanmak için aşağıdaki komut kullanılır. Buradaki kullanici_adi, kurulum sırasında oluşturulan kullanıcıdır. sunucu_ip ise sunucunun ağ üzerindeki IP adresidir.
ssh kullanici_adi@sunucu_ipBağlantı sağlandıktan sonra ilk iş sistem güncellemesi yapılır.
sudo apt update
sudo apt upgrade -yTemel Güvenlik Yapılandırması
Sunucuya internetten erişim olduğu için yapılandırılması gereken önemli noktalardan biri de firewall yapılandırmasıdır.
Ubuntu Server’da bu işlem iki ana adımdan oluşur, firewall yapılandırması ve SSH erişiminin sıkılaştırılması.
Firewall’ı Aktif Edelim
Ubuntu Server, varsayılan olarak gelen bağlantılara kapalıdır. Ancak bu duruma yalnızca izin verdiğimiz servislerin erişilebilir olmasını sağlamak için firewall aktif edilmelidir.
Öncelikle yalnızca SSH erişimine izin verelim.
sudo ufw allow OpenSSHBu komut, SSH servisinin kullandığı 22 portunu firewall üzerinden erişime açar. Böylece firewall aktif edildiğinde SSH bağlantımız kesilmez.
Ardından firewall’ı aktif edelim.
sudo ufw enableRoot Kullanıcı ile SSH Erişimini Kapatalım
Ubuntu Server’da root hesabı varsayılan olarak pasiftir. Ancak ekstra güvenlik için root kullanıcı ile SSH üzerinden giriş tamamen kapatılmalıdır.
Bunun için SSH yapılandırma dosyasını düzeltelim.
sudo nano /etc/ssh/sshd_configDosya içinde aşağıdaki satırı bulup,
#PermitRootLogin prohibit-passwordbu satırı şu şekilde değiştirelim.
PermitRootLogin noYapılan değişikliğin aktif olması için SSH servisini yeniden başlatalım. Böylelikle root kullanıcı ile SSH bağlantısı denendiğinde erişim reddedilecektir.
Firewall ve SSH erişimi doğru şekilde yapılandırıldıktan sonra sunucunun ağ seviyesindeki temel güvenliği sağlanmış olur. Ancak sunucu üzerinde PHP tabanlı web uygulamaları çalıştırılacaksa yalnızca bu ayarlar yeterli değildir. Uygulama katmanında oluşabilecek güvenlik açıklarını önlemek için PHP yapılandırmalarının da sıkılaştırılması gerekir.
Test Amaçlı Web Sunucusu Kurulumu
Sunucumuzun doğru şekilde kurulumunun tamamlandığını ve çalışabilir yapıda olduğu görmek için basit bir web sunucusu kuralım. Bu test için Nginx ile devam edeceğiz.
Nginx Kurulumu
Öncelikle Nginx paketini sistemimize kuralım.
sudo apt install nginx -yServis durumu kontrolü için aşağıdaki kodu girelim.
systemctl status nginxFirewall aktif olduğu için web trafiğine izin vermemiz gereklidir. Aksi takdirde tarayıcıdan erişim sağlanamaz.
sudo ufw allow 'Nginx Full'<br>sudo ufw statusBu kural HTTP 80 ve 443 portlarının erişimine izin verir. Test için yeterlidir.
Tarayıca Test Edelim

Başka bir bilgisayardan tarayıcı açalım ve bu adresi yazalım ☝️ http://sunucu_ip . Eğer her şey doğru yapılandırılmışsa Nginx karşılama sayfası görüntülenir.
Tüm bu adımlar tamamlandığında masaüstü bilgisayarımız bir Linux Server gibi çalışmaya başlar. Sistem uzaktan yönetilebilir.
