Sunucu yönetimi, web sitelerinin ve uygulamaların bel kemiğidir. Bu yönetimin en güvenli ve etkili yollarından biri ise SSH (Secure Shell) kullanmaktır. SSH, sunucunuza uzaktan, şifrelenmiş bir kanal üzerinden bağlanmanızı ve komut satırı aracılığıyla tam kontrol sağlamanızı mümkün kılar. Grafik arayüzü olmayan bu sistem, ilk bakışta korkutucu görünebilir ancak temel komutları öğrendiğinizde, sunucu yönetiminin ne kadar hızlı ve güçlü bir araç olduğunu fark edeceksiniz. Bu makalede, sunucunuza SSH ile bağlandıktan sonra bilmeniz gereken temel komutları, en basit görevlerden başlayarak adım adım ele alacağız.
İçerik Tablosu
SSH’a Giriş ve Temel Kavramlar
Sunucu yönetimine başlarken ilk adım, SSH’ın ne olduğunu ve neden bu kadar önemli olduğunu anlamaktır. SSH, sunucunuzla sizin aranızda güvenli bir iletişim köprüsü kurar. Bu bölümde, SSH’ın temellerini, bağlantı için hangi araçlara ihtiyacınız olduğunu ve ilk bağlantınızı nasıl kuracağınızı öğreneceksiniz.
SSH Nedir ve Sunucu Yönetimindeki Rolü
SSH, yani Secure Shell, ağ üzerindeki iki bilgisayarın, özellikle de bir istemci ile bir sunucunun, güvenli bir şekilde iletişim kurmasını sağlayan bir ağ protokolüdür. Tüm veri akışını güçlü bir şekilde şifreleyerek, dışarıdan dinlemelere ve yetkisiz erişimlere karşı koruma sağlar. Sunucu yönetiminde SSH’ın rolü kritiktir; dosya transferinden yazılım güncellemelerine, sistem kaynaklarını izlemekten güvenlik ayarlarını yapılandırmaya kadar neredeyse tüm yönetimsel görevler SSH üzerinden gerçekleştirilir. Kısacası, SSH, sunucunuzun “anahtarı” gibidir; güvenli, doğrudan ve tam kontrol imkanı sunar.
SSH Bağlantısı İçin Gerekli Araçlar
SSH bağlantısı kurmak için işletim sisteminize uygun bir istemci programa ihtiyacınız vardır. Neyse ki, çoğu modern işletim sistemi bu araçları yerleşik olarak sunar veya kolayca erişilebilir hale getirir.
Windows İçin (PuTTY, Windows Terminal)
Windows kullanıcıları için en popüler ve uzun süredir kullanılan SSH istemcisi PuTTY’dir. Ücretsiz, hafif ve kullanımı kolay olan PuTTY, sunucu IP adresinizi ve port numaranızı girerek hızlıca bağlantı kurmanıza olanak tanır. Alternatif olarak, Windows 10 ve 11 ile birlikte gelen modern Windows Terminal, sekmeli yapısı ve özelleştirilebilir arayüzü ile doğrudan SSH komutlarını destekler, bu da onu güçlü bir seçenek haline getirir.
macOS ve Linux İçin (Terminal)
macOS ve hemen hemen tüm Linux dağıtımları, SSH istemcisini “Terminal” uygulaması içinde yerleşik olarak sunar. Bu işletim sistemlerinde ek bir yazılım kurmanıza gerek yoktur. Sadece Terminal’i açıp standart SSH komutunu yazarak sunucunuza anında bağlanabilirsiniz. Bu entegrasyon, geliştiriciler ve sistem yöneticileri için iş akışını oldukça basitleştirir.
Sunucuya İlk SSH Bağlantısının Kurulması
Gerekli araca sahip olduğunuza göre, ilk bağlantıyı kurma zamanı geldi. Bağlantı için temel olarak üç bilgiye ihtiyacınız var: sunucunuzun IP adresi (veya alan adı), SSH kullanıcı adınız ve şifreniz. Terminal veya PuTTY gibi bir komut satırı aracı açarak aşağıdaki komutu kendi bilgilerinizle değiştirerek girin:
ssh kullanici_adi@sunucu_ip_adresi
Enter tuşuna bastıktan sonra, sunucuya ilk kez bağlanıyorsanız, sunucunun kimliğini doğrulamanızı isteyen bir uyarı alırsınız. “yes” yazıp devam ettiğinizde bu anahtar bilgisayarınıza kaydedilir. Ardından şifreniz istenir. Şifrenizi yazarken ekranda karakterlerin görünmemesi normal bir güvenlik önlemidir. Şifrenizi doğru girdikten sonra, sunucunun komut satırına erişmiş olacaksınız.
Temel Navigasyon Komutları: Sunucu İçinde Gezinme
Sunucuya başarıyla bağlandınız, peki şimdi ne olacak? İlk olarak, bir dosya sistemi içinde olduğunuzu ve tıpkı bilgisayarınızdaki klasörler gibi dizinler arasında gezinmeniz gerektiğini bilmelisiniz. Bu bölüm, sunucu içinde kaybolmadan hareket etmenizi sağlayacak temel navigasyon komutlarına odaklanmaktadır.
Bulunduğunuz Dizini Öğrenme: pwd
Sunucu içinde gezinirken nerede olduğunuzu kaybetmek kolaydır. `pwd` (print working directory – çalışma dizinini yazdır) komutu tam da bu işe yarar. Komutu çalıştırdığınızda, mevcut olarak içinde bulunduğunuz dizinin tam yolunu ekrana basar. Örneğin, `/home/kullanici/public_html` gibi bir çıktı, o anki konumunuzu size net bir şekilde gösterir.
Dizin İçeriğini Listeleme: ls
Bir dizinin içinde hangi dosya ve klasörlerin olduğunu görmek için `ls` (list) komutunu kullanırsınız. Bu komut, bulunduğunuz dizindeki içeriği basit bir liste halinde sıralar. Bu, bir web sitesi dosyalarını kontrol ederken veya belirli bir dosyayı ararken en sık kullanacağınız komutlardan biridir.
Detaylı ve Gizli Dosyaları Gösterme: ls -la
`ls` komutunu ek parametrelerle daha güçlü hale getirebilirsiniz. `ls -la` komutu, standart listeden çok daha fazla bilgi sunar. `-l` parametresi, dosya izinleri, sahibi, boyutu ve son değiştirilme tarihi gibi detayları içeren uzun bir liste formatı sunar. `-a` parametresi ise, isimleri nokta ile başlayan ve normalde gizli olan dosyaları (örneğin, `.htaccess`) da gösterir. Bu komut, bir dizinin içeriğini tüm detaylarıyla analiz etmek için vazgeçilmezdir.
Dizin Değiştirme: cd
Dizinler arasında gezinmek için `cd` (change directory – dizin değiştir) komutu kullanılır. Tıpkı bir klasöre çift tıklamak gibi, `cd` komutundan sonra gitmek istediğiniz dizinin adını yazarsınız. Örneğin, bulunduğunuz dizinde “images” adında bir klasör varsa, `cd images` komutu sizi o klasörün içine götürür.
Bir Üst Dizine Geçme: cd ..
İçine girdiğiniz bir dizinden bir üst seviyeye geri çıkmak için `cd ..` komutunu kullanırsınız. İki nokta (`..`), her zaman bir üst dizini temsil eden özel bir karakterdir. Bu komut, dosya sisteminde yukarı doğru hareket etmenizi sağlar.
Kullanıcı Ana Dizinine Dönme: cd ~
Sunucudaki dosya sisteminin ne kadar derininde olursanız olun, her kullanıcının bir “ana dizini” (home directory) vardır. `cd ~` komutu, nerede olursanız olun sizi anında kendi ana dizininize geri götürür. Tilde (~) karakteri, ana dizininizin bir kısayoludur. Bu, özellikle yolunuzu kaybettiğinizde veya hızlıca başlangıç noktanıza dönmek istediğinizde çok kullanışlıdır.
Dosya ve Dizin Yönetimi: Oluşturma, Silme, Taşıma
Sunucu yönetimi büyük ölçüde dosya ve dizinleri (klasörleri) yönetmekle ilgilidir. Yeni bir proje için klasör oluşturmak, yapılandırma dosyalarını kopyalamak veya gereksiz log dosyalarını silmek gibi işlemler, temel dosya yönetimi komutları ile kolayca yapılabilir. Bu bölümde, dosya ve dizinlerle çalışmak için en temel komutları öğreneceksiniz.
Dizin Oluşturma: mkdir
Yeni bir dizin veya klasör oluşturmak için `mkdir` (make directory – dizin yap) komutu kullanılır. Komutun ardından oluşturmak istediğiniz dizinin adını belirtmeniz yeterlidir. Örneğin, `mkdir yedekler` komutu, bulunduğunuz konumda “yedekler” adında yeni bir dizin yaratır.
Boş Dosya Yaratma: touch
Bazen sadece boş bir dosyaya ihtiyacınız olur. `touch` komutu, belirtilen isimde boş bir dosya oluşturur. Eğer aynı isimde bir dosya zaten varsa, `touch` komutu o dosyanın son değiştirilme tarihini günceller. Örneğin, `touch index.html` komutu ile yeni bir HTML dosyası oluşturabilirsiniz.
Dosya ve Dizin Kopyalama: cp
`cp` (copy – kopyala) komutu, dosya ve dizinleri bir yerden başka bir yere kopyalamak için kullanılır. Temel kullanımı `cp kaynak hedef` şeklindedir. Örneğin, `cp config.php config.bak.php` komutu, “config.php” dosyasının bir yedeğini aynı dizin içinde oluşturur.
Bir Dizini İçeriğiyle Kopyalama: cp -r
Standart `cp` komutu sadece tekil dosyaları kopyalar. Bir dizini ve içindeki tüm dosya ve alt dizinleri kopyalamak için `-r` (recursive – özyinelemeli) parametresini kullanmanız gerekir. `cp -r proje/ yedek/proje/` komutu, “proje” dizinini tüm içeriğiyle birlikte “yedek” dizininin içine kopyalar.
Dosya ve Dizinleri Taşıma veya Yeniden Adlandırma: mv
`mv` (move – taşı) komutu iki temel işlevi yerine getirir: dosya/dizin taşıma ve yeniden adlandırma. Bir dosyayı farklı bir dizine taşımak için `mv dosya.txt /hedef/dizin/` şeklinde kullanılır. Bir dosyayı yeniden adlandırmak için ise hedef olarak yeni bir isim belirtilir: `mv eski_isim.txt yeni_isim.txt`. Her iki işlem için de aynı komutun kullanılması oldukça pratiktir.
Dosya ve Dizin Silme: rm ve rmdir
Dosyaları silmek için `rm` (remove – kaldır) komutu kullanılır. `rm gereksiz_dosya.log` komutu belirtilen dosyayı kalıcı olarak siler. Dizinleri silmek için ise `rmdir` (remove directory – dizin kaldır) komutu kullanılır, ancak `rmdir` sadece boş dizinleri silebilir. `rm` komutu son derece güçlüdür ve silinen dosyalar genellikle geri alınamaz, bu yüzden dikkatli kullanılmalıdır. Özellikle WordPress hosting gibi bir ortamda yanlış bir dosyayı silmek sitenizin çökmesine neden olabilir.
Bir Dizini İçeriğiyle Birlikte Silme: rm -r
İçi dolu bir dizini ve içindeki her şeyi tek seferde silmek için `rm -r dizin_adi` komutu kullanılır. `-r` parametresi, dizinin içindeki tüm dosya ve alt dizinlerin silinmesini sağlar. Bu komut çok tehlikeli olabilir, çünkü yanlışlıkla önemli bir dizini silebilirsiniz. `rm -r /` gibi bir komut, tüm sisteminizi silebilir, bu nedenle bu komutu kullanmadan önce iki kez düşünmek hayati önem taşır.
Dosya İçeriğini Görüntüleme ve Düzenleme
Sunucudaki dosyaları yönetmek sadece onları oluşturmak, silmek veya taşımakla sınırlı değildir. Genellikle log dosyalarını kontrol etmeniz, yapılandırma dosyalarını okumanız veya küçük metin düzenlemeleri yapmanız gerekir. SSH, bu işlemleri doğrudan komut satırı üzerinden yapmanıza olanak tanıyan güçlü araçlar sunar.
Dosya İçeriğini Ekrana Yazdırma: cat
`cat` (concatenate – birleştir) komutu, en temel dosya görüntüleme aracıdır. Bir dosyanın tüm içeriğini standart çıktıya, yani terminal ekranınıza yazdırır. Kısa yapılandırma dosyalarını veya küçük metin dosyalarını hızlıca gözden geçirmek için idealdir. `cat config.php` komutu, dosyanın tamamını ekrana döker. Ancak çok uzun dosyalar için kullanışlı değildir, çünkü metin ekrandan hızla akıp gider.
Sayfa Sayfa Görüntüleme: less ve more
Uzun dosyaların içeriğini kontrol etmek için `cat` yerine `less` veya `more` komutları kullanılır. Bu iki komut, dosya içeriğini sayfa sayfa görüntülemenizi sağlayan “pager” (sayfalayıcı) programlardır. `less dosya.log` komutunu çalıştırdığınızda, dosyanın ilk sayfası ekranda belirir. Ok tuşları ile aşağı yukarı gezinebilir, arama yapabilir ve ‘q’ tuşuna basarak çıkabilirsiniz. `less`, `more` komutuna göre daha modern ve esnektir, bu nedenle genellikle tercih edilir.
Komut Satırı Metin Düzenleyicileri
Bazen dosyaları sadece görüntülemek yetmez, içeriklerini de düzenlemek gerekir. SSH oturumları için tasarlanmış, grafik arayüzü olmayan metin düzenleyicileri bu noktada devreye girer. En yaygın kullanılan iki düzenleyici `nano` ve `vim`’dir.
nano ile Kolay Metin Düzenleme
`nano`, yeni başlayanlar için ideal olan, kullanıcı dostu bir metin düzenleyicisidir. `nano dosya.html` komutu ile bir dosyayı açtığınızda, ekranın altında `^X Exit` (Çıkış), `^O Write Out` (Kaydet) gibi temel komutları gösteren bir menü belirir. Bu menü sayesinde komutları ezberlemenize gerek kalmaz. Basit, hızlı ve etkilidir.
vim ile Gelişmiş Metin Düzenleme
`vim`, çok daha güçlü ve yetenekli ancak öğrenme eğrisi daha dik olan bir metin düzenleyicisidir. Farklı modlarda (komut modu, ekleme modu vb.) çalışır ve tamamen klavye kısayollarına dayanır. Tecrübeli geliştiriciler ve sistem yöneticileri tarafından, verimliliği ve esnekliği nedeniyle sıkça tercih edilir. `vim`’i öğrenmek zaman alsa da, ustalaştığınızda metin düzenleme hızınızı önemli ölçüde artırabilir.
| Özellik | nano | vim |
|---|---|---|
| Kullanım Kolaylığı | Çok kolay, yeni başlayanlar için ideal | Zor, öğrenme eğrisi dik |
| Komutlar | Ekranın altında sürekli görünür | Ezberlenmesi gereken modlar ve kısayollar |
| Yetenekler | Temel metin düzenleme | Gelişmiş metin düzenleme, makrolar, eklentiler |
| Hedef Kitle | Hızlı düzenleme yapmak isteyen herkes | Geliştiriciler, sistem yöneticileri |
İzin (Permission) Yönetimi: Güvenliğin Temeli
Linux tabanlı sistemlerde her dosya ve dizinin kimin tarafından okunabileceğini, yazılabileceğini ve çalıştırılabileceğini belirleyen bir izin sistemi bulunur. Bu izinler, sunucu güvenliğinin temel taşlarından biridir. İzinleri doğru bir şekilde yönetmek, yetkisiz erişimleri önler ve web sitenizin veya uygulamanızın sorunsuz çalışmasını sağlar. Bu bölümde, dosya izinlerini nasıl anlayacağınızı ve yöneteceğinizi öğreneceksiniz.
Dosya ve Dizin İzinlerini Anlama (Okuma, Yazma, Çalıştırma)
Her dosya için üç temel izin türü vardır:
- Okuma (Read – r): Dosyanın içeriğini görüntüleme izni. Dizinler için ise içindeki dosyaları listeleme izni.
- Yazma (Write – w): Dosyanın içeriğini değiştirme veya silme izni. Dizinler için ise içinde yeni dosya/dizin oluşturma veya silme izni.
- Çalıştırma (Execute – x): Dosyanın bir program veya script gibi çalıştırılmasına izin verir. Dizinler için ise o dizine `cd` komutu ile girme izni.
Bu izinler üç farklı kullanıcı kategorisi için ayrı ayrı tanımlanır: Dosyanın sahibi (owner), dosyanın ait olduğu grup (group) ve geri kalan herkes (others).
İzinleri Görüntüleme: ls -l
Bir dosyanın veya dizinin izinlerini görmek için daha önce öğrendiğimiz `ls -l` komutunu kullanırız. Komutun çıktısının en solundaki `-rwxr-xr–` gibi görünen 10 karakterlik kısım izinleri belirtir. İlk karakter dosya tipini ( `-` dosya, `d` dizin), sonraki üç karakter sahibin (owner) izinlerini, sonraki üç karakter grubun (group) izinlerini ve son üç karakter de diğerlerinin (others) izinlerini gösterir.
İzinleri Değiştirme: chmod
Dosya ve dizin izinlerini değiştirmek için `chmod` (change mode – mod değiştir) komutu kullanılır. İzinler iki şekilde değiştirilebilir: sembolik veya sayısal (oktal) yöntemle. Örneğin, bir script dosyasını çalıştırılabilir yapmak için `chmod +x script.sh` komutu kullanılır. Daha yaygın olan sayısal yöntemde ise her izin bir sayıya karşılık gelir (r=4, w=2, x=1). `chmod 755 dosya_adi` komutu, sahibe tüm izinleri (4+2+1=7), gruba ve diğerlerine ise okuma ve çalıştırma (4+1=5) izni verir.
Dosya ve Dizin Sahipliğini Değiştirme: chown
Bazen bir dosyanın veya dizinin sahibini değiştirmeniz gerekebilir. Bu işlem için `chown` (change owner – sahip değiştir) komutu kullanılır. `chown yeni_kullanici:yeni_grup dosya_adi` komutu ile hem dosyanın sahibini hem de grubunu aynı anda değiştirebilirsiniz. Bu komut genellikle sadece root (yönetici) kullanıcısı tarafından kullanılabilir ve sunucu yapılandırmasında önemli bir rol oynar.
Süreç (Process) Yönetimi: Sunucunuzda Neler Oluyor?
Sunucunuzda her an birçok program ve hizmet arka planda çalışır. Bu çalışan programlara “süreç” (process) denir. Sunucunun performansını izlemek, kaynak tüketen bir uygulamayı bulmak veya yanıt vermeyen bir programı sonlandırmak için süreçleri nasıl yöneteceğinizi bilmeniz gerekir. Bu bölüm, sunucunuzdaki aktif süreçleri listeleme, izleme ve kontrol etme komutlarını kapsar.
Çalışan Süreçleri Listeleme: ps
`ps` (process status – süreç durumu) komutu, o anki oturumunuzda çalışan süreçleri listelemek için kullanılır. Tek başına kullanıldığında sınırlı bilgi verse de, parametrelerle birlikte sunucudaki tüm aktiviteyi görmenizi sağlar.
Tüm Süreçleri Detaylı Gösterme: ps aux
`ps aux` komutu, sunucuda çalışan tüm süreçleri, sahiplerini, CPU ve bellek kullanım yüzdelerini, başlangıç zamanlarını ve çalıştırdıkları komutu detaylı bir şekilde gösterir. Bu komut, sunucuda neler olup bittiğini anlık olarak görmek ve anormal bir aktiviteyi tespit etmek için çok güçlü bir araçtır. Özellikle sunucu optimizasyonu yaparken hangi sürecin ne kadar kaynak tükettiğini analiz etmek için sıkça kullanılır.
Sistem Kaynaklarını Canlı İzleme: top ve htop
`top` komutu, sistem kaynaklarının (CPU, RAM) kullanımını ve en çok kaynak tüketen süreçleri canlı olarak gösteren bir terminal uygulamasıdır. Sürekli güncellenen bu liste, sunucu performansını gerçek zamanlı olarak izlemek için vazgeçilmezdir. `htop` ise `top` komutunun daha modern, renkli ve kullanıcı dostu bir versiyonudur. `htop` ile süreçler arasında gezinmek, sıralamayı değiştirmek ve süreçleri sonlandırmak daha kolaydır. Çoğu zaman `htop`’u kurmak (`sudo apt install htop` gibi) ve kullanmak daha verimli bir deneyim sunar.
| Komut | Türü | Kullanım Amacı | Arayüz |
|---|---|---|---|
| ps aux | Anlık Görüntü | Belirli bir andaki tüm süreçlerin detaylı listesini almak | Statik Metin |
| top | Canlı İzleme | Sistem kaynaklarını ve süreçleri gerçek zamanlı izlemek | İnteraktif Metin |
| htop | Canlı İzleme (Gelişmiş) | `top` gibi, ancak daha görsel, kullanıcı dostu ve fare desteği gibi ek özelliklerle | Gelişmiş İnteraktif Metin |
Süreçleri Durdurma ve Sonlandırma: kill
Bazen bir süreç donabilir, kontrolden çıkabilir veya basitçe kapatılması gerekebilir. `kill` komutu, süreçlere belirli sinyaller göndererek onları sonlandırmanızı sağlar. Bir süreci sonlandırmak için öncelikle `ps aux` veya `htop` ile o sürecin kimlik numarasını (PID – Process ID) bulmanız gerekir. Ardından `kill PID_NUMARASI` komutunu çalıştırarak sürece sonlandırma isteği (SIGTERM) gönderirsiniz. Eğer süreç bu isteğe yanıt vermezse, `kill -9 PID_NUMARASI` komutu ile zorla sonlandırma (SIGKILL) sinyali gönderebilirsiniz. `-9` sinyali çok güçlüdür ve sürecin kendini düzgün kapatmasına izin vermeden anında sonlandırır, bu nedenle son çare olarak kullanılmalıdır.
Sistem Bilgisi ve Kaynak İzleme
Sunucunuzun sağlığını ve performansını korumak için sistem kaynaklarının durumunu düzenli olarak kontrol etmek önemlidir. Disk alanınız doluyor mu? Bellek kullanımı çok mu yüksek? Sunucu ne kadar süredir çalışıyor? Bu gibi soruların cevaplarını bilmek, olası sorunları önceden tespit etmenize ve gerekli müdahaleleri yapmanıza yardımcı olur.
Disk Alanı Kullanımını Kontrol Etme: df -h
`df` (disk free – boş disk) komutu, sunucudaki disk bölümlerinin toplam boyutunu, kullanılan ve boş alan miktarını gösterir. `-h` (human-readable – insan tarafından okunabilir) parametresi, çıktıları kilobayt yerine megabayt (M), gigabayt (G) gibi daha anlaşılır birimlerle gösterir. `df -h` komutu, disk alanının dolup dolmadığını hızlıca kontrol etmek için en temel araçtır.
Dosya ve Dizinlerin Boyutunu Öğrenme: du -sh
Diskinizin dolu olduğunu gördünüz, peki hangi dosya veya dizinlerin bu alanı kapladığını nasıl bulacaksınız? `du` (disk usage – disk kullanımı) komutu bu işe yarar. `du -sh *` komutunu bir dizin içinde çalıştırdığınızda, o dizindeki her bir dosya ve alt dizinin toplam boyutunu özetlenmiş (`-s`) ve insan tarafından okunabilir (`-h`) formatta listeler. Bu sayede en çok yer kaplayan öğeleri kolayca tespit edebilirsiniz.
Bellek (RAM) Kullanımını Görüntüleme: free -m
Sunucunuzun bellek (RAM) durumunu kontrol etmek için `free` komutu kullanılır. Bu komut, toplam, kullanılan ve boş bellek miktarını gösterir. `-m` parametresi, çıktıyı megabayt cinsinden verir, bu da yorumlamayı kolaylaştırır. Yüksek bellek kullanımı, sunucunun yavaşlamasına neden olabilir, bu nedenle `free -m` komutuyla bellek durumunu izlemek önemlidir.
Sunucunun Çalışma Süresini Görme: uptime
`uptime` komutu, sunucunuzun en son yeniden başlatılmasından bu yana ne kadar süredir kesintisiz çalıştığını gösterir. Ayrıca sistemdeki mevcut kullanıcı sayısını ve son 1, 5 ve 15 dakikadaki ortalama sistem yükünü (load average) de belirtir. Sistem yükü, sunucunun ne kadar meşgul olduğunu anlamak için önemli bir metriktir. Bu komut, sunucunun genel kararlılığı hakkında hızlı bir fikir edinmenizi sağlar.
Ağ (Network) Komutları
Sunucunuz internete bağlı bir makinedir ve bu nedenle temel ağ yapılandırmasını kontrol etmek ve bağlantı sorunlarını teşhis etmek önemlidir. IP adresinizi öğrenmekten, başka bir sunucuya ulaşıp ulaşamadığınızı test etmeye kadar çeşitli görevler için kullanabileceğiniz basit ama güçlü ağ komutları mevcuttur.
Ağ Arayüzü Bilgilerini Görüntüleme: ip addr veya ifconfig
Sunucunuzun IP adresi gibi ağ arayüzü bilgilerini öğrenmek için `ip addr` komutunu kullanabilirsiniz. Bu komut, sunucudaki tüm ağ arayüzlerini ve onlara atanmış IPv4 ve IPv6 adreslerini listeler. Daha eski sistemlerde bu iş için `ifconfig` komutu da yaygın olarak kullanılır. Her iki komut da sunucunuzun ağdaki kimliğini doğrulamak için temel araçlardır.
Ağ Bağlantısını Test Etme: ping
`ping` komutu, sunucunuz ile başka bir bilgisayar veya alan adı arasındaki ağ bağlantısını test etmenin en basit yoludur. `ping google.com` komutu, google.com sunucusuna küçük veri paketleri gönderir ve geri dönen yanıtları gösterir. Eğer paketler başarıyla gidip geliyorsa, bu sunucunuzun internete bağlı olduğunu ve DNS çözümlemesinin doğru çalıştığını gösterir. Bağlantı sorunlarını teşhis ederken atılacak ilk adımlardan biridir.
İnternetten Dosya İndirme: wget ve curl
Doğrudan sunucunuza internet üzerinden bir dosya indirmeniz gerektiğinde `wget` ve `curl` komutları imdadınıza yetişir. `wget` kullanımı en basit olanıdır; `wget https://ornek.com/dosya.zip` komutu ile belirtilen URL’deki dosyayı doğrudan bulunduğunuz dizine indirir. `curl` ise daha esnek ve güçlü bir araçtır; sadece dosya indirmekle kalmaz, aynı zamanda API’lerle etkileşim kurmak ve web başlıklarını görüntülemek gibi daha karmaşık görevler için de kullanılabilir.
Arama, Arşivleme ve Sıkıştırma
Sunucunuzda binlerce dosya olabilir. Belirli bir dosyayı bulmak, dosyaları yedeklemek için bir araya getirmek veya disk alanı kazanmak için dosyaları sıkıştırmak, sistem yöneticiliğinin rutin görevlerindendir. Bu bölümde, dosya sisteminde arama yapmanızı, dosyaları arşivlemenizi ve sıkıştırmanızı sağlayan komutları ele alacağız.
Dosya Sisteminde Dosya ve Dizin Arama: find
`find` komutu, dosya sisteminde belirli kriterlere göre dosya ve dizin aramak için kullanılan çok güçlü bir araçtır. Örneğin, `find / -name “error.log”` komutu, kök dizinden (`/`) başlayarak tüm sistemde “error.log” ismindeki dosyaları arar. Ayrıca dosya türüne, boyutuna, değiştirilme tarihine ve daha birçok özelliğe göre arama yapabilirsiniz.
Dosya İçinde Metin Arama: grep
Bir dosyanın veya birden çok dosyanın içinde belirli bir metin dizesini aramak istediğinizde `grep` komutu kullanılır. Örneğin, `grep “Hata Mesajı” /var/log/apache2/error.log` komutu, Apache hata log dosyasının içinde “Hata Mesajı” ifadesinin geçtiği tüm satırları bulur ve ekrana yazdırır. `grep`, log dosyalarını analiz etmek ve sorun gidermek için hayati bir araçtır.
Dosyaları Arşivleme ve Sıkıştırma: tar
`tar` (tape archive – teyp arşivi) komutu, birden çok dosyayı ve dizini tek bir arşiv dosyasında birleştirmek için kullanılır. Bu, özellikle yedekleme yaparken veya dosya gruplarını taşırken çok kullanışlıdır. `tar` komutu, arşivleme yaparken aynı anda sıkıştırma da yapabilir. En yaygın kullanımı `tar -czvf arsiv.tar.gz /dizin/` şeklinde olup, belirtilen dizini gzip ile sıkıştırarak bir arşiv dosyası oluşturur.
Zip Formatında Sıkıştırma ve Açma: zip ve unzip
Windows kullanıcılarının daha aşina olduğu `.zip` formatında sıkıştırma ve açma işlemleri için `zip` ve `unzip` komutları kullanılır. Bir dizini sıkıştırmak için `zip -r arsiv.zip dizin/` komutunu, sıkıştırılmış bir dosyayı açmak için ise `unzip arsiv.zip` komutunu kullanabilirsiniz. `tar` kadar esnek olmasa da, platformlar arası uyumluluğu nedeniyle sıkça tercih edilir.
Yetkilendirme ve Sistem Yönetimi
Sunucu yönetiminin önemli bir kısmı, kullanıcı yetkilerini yönetmek ve sistem genelinde yazılım kurma, güncelleme gibi işlemleri gerçekleştirmektir. Normal bir kullanıcı hesabıyla yapılamayan bu tür işlemler, özel yetkiler gerektirir. Bu bölümde, yönetici haklarıyla komut çalıştırma, kullanıcı değiştirme ve yazılım paketlerini yönetme gibi temel sistem yönetimi görevlerini öğreneceksiniz.
Yönetici (Root) Yetkisiyle Komut Çalıştırma: sudo
`sudo` (superuser do – süper kullanıcı olarak yap), bir komutu geçici olarak yönetici (root) yetkileriyle çalıştırmanızı sağlayan en temel komuttur. Birçok sistem komutu, örneğin yazılım kurmak veya önemli yapılandırma dosyalarını düzenlemek, sadece root kullanıcısı tarafından çalıştırılabilir. `sudo apt update` gibi bir komut, `apt update` komutunu yönetici olarak çalıştırır. Güvenlik nedeniyle, doğrudan root olarak oturum açmak yerine `sudo` kullanmak en iyi pratiktir.
Kullanıcı Değiştirme: su
`su` (substitute user – kullanıcı değiştir) komutu, mevcut terminal oturumunuzda başka bir kullanıcı hesabına geçiş yapmanızı sağlar. `su baska_kullanici` komutunu çalıştırdığınızda, o kullanıcının şifresini girerek hesabına geçiş yapabilirsiniz. Parametresiz olarak `su` komutunu kullanmak ise sizi doğrudan root kullanıcısına geçirir (root şifresini bilmeniz gerekir).
Paket Yönetimi ile Yazılım Kurma ve Güncelleme
Linux dağıtımları, yazılımları kurmak, güncellemek ve kaldırmak için “paket yöneticileri” adı verilen merkezi sistemler kullanır. Bu, yazılım yönetimini son derece kolay ve güvenli hale getirir. Her dağıtım ailesinin kendine özgü bir paket yöneticisi vardır.
Debian/Ubuntu için: apt
Debian, Ubuntu ve türevlerinde `apt` (Advanced Package Tool) paket yöneticisi kullanılır. Yeni bir yazılım kurmak için `sudo apt install paket_adi`, mevcut yazılımları güncellemek için ise önce `sudo apt update` (paket listesini yenilemek için) ve ardından `sudo apt upgrade` komutları kullanılır. Bu sistem, hem sunucu uygulamalarını hem de bir VPS server üzerindeki işletim sistemini güncel tutmayı kolaylaştırır.
CentOS/RHEL için: yum
CentOS, RHEL (Red Hat Enterprise Linux) ve Fedora gibi dağıtımlarda ise `yum` (Yellowdog Updater, Modified) paket yöneticisi bulunur. `sudo yum install paket_adi` komutu ile yazılım kurulur. Sistemi güncellemek için `sudo yum update` komutu yeterlidir. `apt` ve `yum` farklı komutlara sahip olsalar da, temel işlevleri aynıdır: sistemdeki yazılımları tutarlı ve güvenli bir şekilde yönetmek.
Güvenli SSH Kullanımı İçin İpuçları
SSH, doğası gereği güvenli bir protokol olsa da, sunucunuzun güvenliğini en üst düzeye çıkarmak için alabileceğiniz ek önlemler vardır. Varsayılan ayarları değiştirmek ve daha güçlü kimlik doğrulama yöntemleri kullanmak, yetkisiz erişim girişimlerine karşı sunucunuzu önemli ölçüde daha dirençli hale getirebilir.
SSH Anahtar (Key) Kullanarak Parolasız Giriş
Şifreler tahmin edilebilir veya kaba kuvvet (brute-force) saldırılarıyla kırılabilir. SSH anahtar tabanlı kimlik doğrulama, çok daha güvenli bir alternatiftir. Bu yöntemde, bilgisayarınızda bir çift anahtar (genel ve özel) oluşturursunuz. Genel anahtarı sunucunuza kopyalarken, özel anahtar bilgisayarınızda güvende kalır. Bağlantı sırasında, sunucu özel anahtarınıza sahip olduğunuzu kriptografik olarak doğrular ve şifre sormadan oturum açmanıza izin verir. Bu yöntem, şifre tabanlı saldırıları tamamen ortadan kaldırır.
Varsayılan SSH Portunu Değiştirme
Tüm dünyadaki otomatik botlar ve saldırganlar, SSH hizmeti için varsayılan port olan 22 numaralı portu sürekli olarak tararlar. SSH sunucunuzun dinlediği portu, standart olmayan bir numarayla (örneğin, 2222) değiştirmek, bu otomatik taramaların büyük çoğundan anında kurtulmanızı sağlar. Bu, “güvenlik için gizleme” (security through obscurity) yöntemidir ve tek başına yeterli olmasa da, basit ve etkili bir ek koruma katmanıdır.
Root Kullanıcısının SSH Girişini Kısıtlama
Sunucudaki en yetkili hesap olan “root” kullanıcısının doğrudan SSH ile oturum açmasına izin vermek büyük bir güvenlik riskidir. Eğer bir saldırgan root şifresini ele geçirirse, sunucu üzerinde tam kontrol sahibi olur. En iyi güvenlik pratiği, SSH yapılandırma dosyasında (`sshd_config`) root kullanıcısının doğrudan girişini yasaklamaktır. Bunun yerine, normal bir kullanıcı ile giriş yapıp, ihtiyaç duyduğunuzda `sudo` komutu ile yönetici yetkileri almalısınız. Bu, hem güvenliği artırır hem de hangi kullanıcının hangi yönetici komutunu çalıştırdığının kaydını tutmayı kolaylaştırır.
Sunucu Yönetimi ve Hosting Hizmetleri İçin Neden İHS Telekom’u Tercih Etmelisiniz?
Bu makalede ele alınan tüm bu komutlar ve yönetim teknikleri, güçlü ve esnek bir altyapı gerektirir. İster yeni bir proje için hosting arıyor olun, ister yüksek performanslı bir VDS sunucu ihtiyacınız olsun, güvenilir bir servis sağlayıcı ile çalışmak kritik öneme sahiptir. İHS Telekom, yılların tecrübesi, güçlü altyapısı ve 7/24 teknik desteği ile sunucu yönetimi yolculuğunuzda size en iyi hizmeti sunar. Yönetimi kolay kontrol panelleri, yüksek uptime oranları ve güvenlik odaklı çözümleri ile projelerinizin kesintisiz ve performanslı çalışmasını sağlar. SSH erişimi ile tam kontrol sağlarken, arkanızda güvenebileceğiniz bir teknik ekip olduğunu bilmenin rahatlığını yaşarsınız.
