Siber Güvenlik İçin Linux Temelleri: Kapsamlı Başlangıç Rehberi

Siber güvenlik dünyasına adım atan her uzmanın ve meraklının bilmesi gereken en temel konulardan biri Linux işletim sistemidir. Günümüzde sunucuların, bulut altyapılarının, ağ cihazlarının ve güvenlik araçlarının büyük bir kısmı Linux çekirdeği üzerinde çalışır.

1. Linux Nedir?

Linux; sunucularda, bulut sistemlerinde, masaüstü bilgisayarlarda, ağ cihazlarında, gömülü sistemlerde ve siber güvenlik araçlarında yaygın olarak kullanılan açık kaynaklı, Unix benzeri bir işletim sistemi çekirdeğidir.

  • Öne Çıkan Özellikleri: Kararlı (stable), esnek, betiklenebilir (scriptable) ve yüksek derecede özelleştirilebilir bir yapıya sahiptir.

  • Ana Hedef: Siber güvenlikte daha etkili ve verimli bir operatör olmak için Linux sistemlerine hakim olmaktır.

2. Siber Güvenlikte Neden Linux Tercih Edilir?

Siber güvenlik uzmanlarının ve sızma testi (penetrasyon) uzmanlarının Linux kullanmasının başlıca nedenleri şunlardır:

  • Açık Kaynak ve Şeffaflık: Kod yapısının açık olması, sistemin arka planında ne çalıştığını tam olarak görmenizi sağlar.

  • Güçlü İzin Modeli: Kullanıcı ve dosya yetkilendirme mimarisi oldukça güvenlidir.

  • Güçlü Komut Satırı ve Betik Desteği: İşlemleri otomatize etmek ve gelişmiş komut satırı (CLI) araçlarını kullanmak son derece kolaydır.

  • Hafif ve Verimli: Sistem kaynaklarını bilindik kapalı işletim sistemlerine göre çok daha az tüketir, hızlı çalışır.

  • Geniş Araç Desteği: Güvenlik ve test araçlarının büyük çoğunluğu öncelikli olarak Linux için geliştirilir.

  • Tekrarlanabilirlik (Repeatability): Otomasyon sayesinde güvenlik testleri kolayca tekrarlanabilir.

3. Popüler Linux Dağıtımları (Distros)

Farklı kullanım amaçlarına göre özelleştirilmiş birçok Linux dağıtımı mevcuttur:

  • Kali Linux: Sızma testleri ve güvenlik denetimleri için özel araçlarla yüklü gelir.

  • Parrot Security: Güvenlik testleri, gizlilik ve adli bilişim (forensics) odaklı dağıtımdır.

  • Ubuntu: Genel kullanım ve başlangıç seviyesi için en popüler dağıtımdır. Normal kullanıcı ihtiyaçlarını tam olarak karşılar.

  • Debian: Kararlılığıyla bilinen, birçok dağıtımın (Kali ve Ubuntu dahil) temelini oluşturan sistemdir.

  • Rocky Linux: Kurumsal seviyede ve sunucu altyapılarında tercih edilen RHEL tabanlı dağıtımdır. CentOS kurucularının CentOS devamı niteliğinde kurduğu bir dağıtımdır.

  • Arch Linux: Tamamen kullanıcı tarafından özelleştirilebilen minimalist bir yapıdır.

4. Linux Dosya Sistemi Hiyerarşisi

Linux’ta her şey bir dosyadır ve hiyerarşi kök (/) dizininden başlar:

DizinKullanım Amacı
/

Kök (root) dizin. Bütün dosya sisteminin başlangıç noktasıdır.

/bin

Temel sistem komutları ve çalıştırılabilir ikili (binary) dosyalar.

/etc

Sistem yapılandırma dosyaları.

/home

Kullanıcıların kişisel dosya dizinleri.

/var

Loglar, önbellek ve değişken verilerin tutulduğu alan.

/usr

Kullanıcı programları ve paylaşılan veriler.

/tmp

Geçici dosyalar (sistem yeniden başladığında genellikle temizlenir).

/opt

İsteğe bağlı / üçüncü taraf yazılımların kurulduğu dizin.

5. Mutlaka Bilinmesi Gereken Temel Komutlar

Linux terminalinde en çok karşılaşacağınız temel komutlar (bazıları MS-DOS ve MacOS komutları ile aynıdır) şunlardır:

  • ls: Dosya ve dizinleri listeler.

  • cd: Dizin değiştirir.

  • pwd: Bulunduğunuz mevcut dizin yolunu gösterir.

  • cat [dosya]: Dosya içeriğini gösterir.

  • less [dosya]: Dosya içeriğini sayfa sayfa görüntüler.

  • cp [kaynak] [hedef]: Dosya veya dizinleri kopyalar.

  • mv [kaynak] [hedef]: Dosyayı taşır veya adını değiştirir.

  • rm [dosya]: Dosyayı siler.

  • touch [dosya]: Boş bir dosya oluşturur.

  • mkdir dir: Yeni bir dizin (klasör) oluşturur.

  • rmdir dir: Boş dizini siler.

  • man cmd: Komutun kullanım kılavuzunu açar.

  • history: Geçmişte çalıştırılan komutları listeler.

  • clear: Terminal ekranını temizler.

  • whoami: Aktif olan kullanıcı adını gösterir.

  • id: Kullanıcı ve grup kimlik (ID) bilgilerini verir.

  • uname -a: Çekirdek ve sistem bilgilerini gösterir.

6. Dosya İzinleri (File Permissions) ve Yetkilendirme

Linux’ta dosya güvenliği izinler üzerinden sağlanır. ls -l script.sh komutunu çalıştırdığınızda şu çıktıyı görürsünüz:

-rwxr-x--- 1 user group 1234 January 01 11:00 script.sh

İzin Yapısı:

  1. Dosya Tipi (-): Normal dosya (-) veya dizin (d).

  2. Sahibi (Owner – rwx): Dosya sahibinin okuma, yazma ve çalıştırma izinleri.

  3. Grubu (Group – r-x): Grubun izinleri.

  4. Diğerleri (Others – ---): Diğer tüm kullanıcıların izinleri.

İzin Değerleri:

  • r (read / okuma) = 4

  • w (write / yazma) = 2

  • x (execute / çalıştırma) = 1

Örnek Kullanım: chmod 750 script.sh (Sahibine rwx=7, Gruba r-x=5, Diğerlerine =0 verir). Sahiplik Değiştirme: chown user:group script.sh

Siber Güvenlik İlkesi (En Az Yetki Prensibi – Least Privilege): Kullanıcılara ve süreçlere yalnızca ihtiyaç duydukları minimum izinler verilmelidir.

7. Süreç (Process) Yönetimi

Sistemde çalışan süreçleri izlemek ve yönetmek için kullanılan komutlar:

  • ps aux: Çalışan tüm süreçleri detaylıca listeler.

  • top: Çalışan süreçleri canlı/anlık olarak izler.

  • htop: top komutunun daha gelişmiş ve görsel halidir.

  • kill [PID]: Belirtilen Süreç Kimliğine (PID) sahip süreci sonlandırır.

  • kill -9 [PID]: Süreci zorla sonlandırır (dikkatli kullanılmalıdır).

  • pgrep [isim]: İsme göre süreçlerin PID numarasını bulur.

8. Kullanıcı Yönetimi

Kullanıcı ve grup yönetimi komutları:

  • sudo adduser [kullanıcı]: Yeni kullanıcı ekler.

  • sudo userdel [kullanıcı]: Kullanıcıyı siler.

  • sudo usermod -aG [grup] [kullanıcı]: Kullanıcıyı bir gruba ekler.

  • su - [kullanıcı]: Başka bir kullanıcıya geçiş yapar.

  • whoami: Mevcut kullanıcıyı gösterir.

  • cat /etc/passwd: Sistemdeki kullanıcı hesaplarının listesini görüntüler.

9. Paket Yönetimi (Yazılım Kurulumu)

Farklı Linux dağıtımları farklı paket yöneticileri kullanır:

Debian / Ubuntu Tabancı (apt):

sudo apt update          # Paket indeksini günceller
sudo apt upgrade         # Kurulu paketleri yükseltir
sudo apt install <pkg>   # Yeni paket kurar
sudo apt remove <pkg>    # Paketi kaldırır

RHEL / Rocky / Fedora Tabancı (dnf / yum):

sudo dnf check-update # Güncellemeleri kontrol eder
sudo dnf install <pkg> # Paket kurar 
sudo dnf remove <pkg> # Paketi kaldırır

10. Arama ve Bulma Komutları

Sistemde dosya veya içerik ararken kullanılan komutlar:

  • find / -name dosya.txt — Dosya adıyla arama yapar.

  • find / -type d -name test — Dizin bazlı arama yapar.

  • grep -r "metin" /path — Belirtilen yolda metin içeriğini özyinelemeli (recursive) arar.

  • locate dosya — Hızlı veritabanı indeksli arama yapar.

  • updatedb — Veritabanını günceller.

11. Metin İşleme (Text Processing)

Log analizi ve veri süzme için kritik komutlar:

  • head dosya.txt — Dosyanın ilk satırlarını gösterir.

  • tail dosya.txt — Dosyanın son satırlarını gösterir (Log takibi için idealdir).

  • cut -d ':' -f1 /etc/passwd — Belirli alanları / sütunları kesip alır.

  • sort dosya.txt — Satırları sıralar.

  • uniq dosya.txt — Tekrarlayan satırları temizler.

  • wc dosya.txt — Satır, kelime ve bayt sayısını verir.

  • awk '{print $1}' dosya.txt — Belirli sütunları çeker ve işler.

12. Temel Ağ Komutları

Ağ durumunu incelemek ve bağlantıları doğrulama komutları:

  • ip a — IP adreslerini ve ağ arayüzlerini gösterir.

  • ip r — Yönlendirme (routing) tablosunu listeler.

  • ping example.com — Erişilebilirlik ve bağlantı kontrolü yapar.

  • ss -tulpn — Dinlenen bağlantı noktalarını (listening sockets) ve portları gösterir.

  • curl [http://example.com](http://example.com) — Web sayfasından veri / HTTP isteği çeker.

  • dig example.com — DNS sorgusu yapar.

13. Arşiv ve Sıkıştırma İşlemleri

  • tar -czf dosya.tar.gz /path — .tar.gz arşivi oluşturur.

  • tar -xzf dosya.tar.gz — .tar.gz arşivini çıkartır.

  • zip -r dosya.zip /path — .zip dosyası oluşturur.

  • unzip dosya.zip — .zip dosyasını çıkartır.

14. Sistem Bilgisi Alma

  • uname -a — Çekirdek (kernel) bilgisi.

  • hostnamectl — Ana bilgisayar adı ve OS bilgisi.

  • df -h — Disk kullanımı (insan tarafından okunabilir formatta).

  • free -h — Bellek (RAM) kullanımı.

  • du -sh /path — Belirtilen dizinin kapladığı alan.

  • uptime — Sistemin ne kadar süredir açık olduğu.

15. Shell Betik Yazımına Giriş (Bash Scripting)

Otomasyon için basit bir Bash betiği oluşturma adımları:

  1. Dosya oluşturun: nano script.sh

  2. Shebang satırını ve komutları ekleyin:

    #!/bin/bash
    whoami
    date
    echo "Hello, Linux"
    ```
    
  3. Çalıştırılabilir yapın: chmod +x script.sh

  4. Betiği çalıştırın: ./script.sh

16. Kullanışlı Terminal Kısayolları

  • Ctrl + A — Satırın başına gider.

  • Ctrl + E — Satırın sonuna gider.

  • Ctrl + R — Komut geçmişinde arama yapar.

  • Ctrl + C — Çalışan mevcut komutu durdurur.

  • Ctrl + L — Ekranı temizler.

  • Tab — Komut veya dosya adını otomatik tamamlar.

17. Temel Siber Güvenlik İpuçları

  1. Sistemi Güncel Tutun: Güvenlik yamalarını düzenli olarak uygulayın.

  2. Güçlü Parolalar Kullanın: Karmaşık parola ve parola cümleleri tercih edin.

  3. sudo Kullanımına Dikkat Edin: Gereksiz yere root yetkisiyle komut çalıştırmayın.

  4. Gereksiz Servisleri Kapatın: Kullanılmayan servisleri devre dışı bırakın.

  5. Logları İnceleyin: Sistem ve güvenlik loglarını düzenli kontrol edin.

  6. Minimum Yetki İlkesini Uygulayın: Kullanıcılara sadece ihtiyaçları olan izinleri verin.

  7. SSH Anahtarlarını Tercih Edin: Mümkün olan yerlerde parola yerine SSH Key tabanlı doğrulama kullanın.

Bir yanıt yazın

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