Linux Nedir?

Linux, açık kaynaklı, Unix tabanlı bir işletim sistemidir. 1991 yılında Linus Torvalds tarafından geliştirilmiş olan Linux, zamanla dünya çapında popülerlik kazanarak, kişisel bilgisayarlardan sunuculara, akıllı telefonlardan gömülü sistemlere kadar birçok alanda kullanılmaktadır. Linux, kullanıcıların sistemi istedikleri şekilde değiştirebilmeleri, geliştirebilmeleri ve dağıtabilmeleri için özgür bir yazılımdır. Bu özgürlük, onu Windows veya macOS gibi tescilli işletim sistemlerinden ayıran önemli bir özelliktir.

Linux'un Çekirdeği (Kernel)

Linux'un çekirdeği, işletim sisteminin merkezi bileşenidir ve donanımla doğrudan etkileşim sağlar. Çekirdek, sistem kaynaklarını yönetir, işlemciler arasında görevleri dağıtır, bellek yönetimi yapar, dosya sistemlerini kontrol eder ve donanım aygıtlarını yönlendirir.

Linux'un Temel Özellikleri

  • Açık Kaynak Kodlu: Linux, herkesin erişebileceği, değiştirebileceği ve dağıtabileceği bir yazılımdır. Bu özellik, dünya çapında geliştiricilerin Linux'u sürekli olarak iyileştirmesini sağlar.
  • Çoklu Kullanıcı Desteği: Linux, aynı anda birden fazla kullanıcının sisteme bağlanmasına ve kaynakları paylaşmasına olanak tanır. Her kullanıcı, sistemde bağımsız olarak işlem yapabilir.
  • Çoklu Görev Yönetimi (Multitasking): Linux, birden fazla işlemi aynı anda çalıştırabilir ve yönetebilir. Bu, işletim sisteminin verimli çalışmasını sağlar.
  • Yüksek Güvenlik: Linux, güçlü güvenlik özellikleri sunar. Sistem, kullanıcı izinleri, dosya erişim kontrolü, SELinux (Security-Enhanced Linux) gibi çeşitli güvenlik mekanizmaları ile korunur.
  • Modüler Yapı: Linux, esnek bir yapıya sahiptir. Kullanıcılar, yalnızca ihtiyaç duydukları bileşenleri yükleyebilir ve gereksiz bileşenleri devre dışı bırakabilirler.
  • Dosya Sistemi: Linux, genellikle ext4, XFS, Btrfs gibi dosya sistemlerini kullanır. Linux, her dosyayı ve dizini bir "ağaç yapısı" olarak organize eder ve dosya sistemine erişimi verimli hale getirir.
  • Komut Satırı Arayüzü (CLI): Linux, GUI (grafiksel kullanıcı arayüzü) ile birlikte güçlü bir komut satırı arayüzüne sahiptir. Bu özellik, kullanıcıların daha hızlı ve etkili bir şekilde sistem yönetimi yapmalarını sağlar.
  • Topluluk ve Destek: Linux'un geniş bir kullanıcı ve geliştirici topluluğu vardır. Çeşitli forumlar, dökümantasyonlar ve kaynaklar, kullanıcıların sorunlarına çözüm bulmalarına yardımcı olur.
  • Taşınabilirlik: Linux, çok çeşitli donanım platformlarında çalışabilir. PC'ler, sunucular, akıllı telefonlar, gömülü cihazlar ve daha fazlası, Linux çalıştırabilen cihazlar arasında yer alır.
  • Performans: Linux, genellikle hızlı ve verimli çalışır. Özellikle düşük donanımlarla çalışan sistemlerde yüksek performans gösterir.

Linux'un Kullanım Alanları

  • Sunucular: Web sunucuları, veritabanı sunucuları ve diğer ağ hizmetleri için yaygın olarak kullanılır.
  • Masaüstü Bilgisayarlar: Çeşitli Linux dağıtımları, kişisel bilgisayarlar için kullanıcı dostu ortamlar sunar.
  • Mobil Cihazlar: Android işletim sistemi, Linux tabanlıdır ve mobil cihazlar için yaygın olarak kullanılır.
  • Gömülü Sistemler: Linux, otomobil bilgisayarları, akıllı TV'ler ve diğer gömülü sistemlerde kullanılır.
  • Bilimsel Hesaplamalar: Yüksek performanslı hesaplama (HPC) için Linux sistemleri tercih edilir.

2. Linux Dağıtımları Nelerdir?

  1. Kali Linux

    Tabanı: Debian

    Hedef Kullanıcılar: Siber güvenlik uzmanları, penetrasyon testi yapanlar, etik hackerlar

    Özellikler:

    • Penetrasyon testleri ve adli analizler için geliştirilmiştir.
    • İçerisinde 600’den fazla siber güvenlik aracı bulunur (Metasploit, Wireshark, Burp Suite vb.).
    • Hafif ve hızlı bir masaüstü ortamı olan XFCE kullanır.
    • Live USB ile çalıştırılabilir ve herhangi bir kurulum gerektirmez.
    • Düzenli olarak güncellenir ve topluluk tarafından aktif olarak desteklenir.

    Kullanım Alanları:

    • Web güvenliği testleri
    • Mobil cihaz güvenliği testleri
    • Adli bilişim incelemeleri
  2. Parrot Security OS

    Tabanı: Debian

    Hedef Kullanıcılar: Etik hackerlar, güvenlik araştırmacıları, gizlilik odaklı kullanıcılar

    Özellikler:

    • Kali Linux’a benzer şekilde, siber güvenlik araçları ile doludur.
    • Anonimlik ve gizlilik için optimize edilmiştir; Tor ve AnonSurf gibi araçlar önceden yüklüdür.
    • Hafifliği ile öne çıkar ve eski donanımlarda bile iyi performans gösterir.
    • Penetrasyon testi araçlarının yanı sıra kriptografi, kodlama ve ters mühendislik araçlarını da içerir.

    Kullanım Alanları:

    • Siber güvenlik testleri
    • Anonim tarayıcı kullanımı
    • Adli bilişim incelemeleri
  3. BlackArch Linux

    Tabanı: Arch Linux

    Hedef Kullanıcılar: İleri düzey güvenlik uzmanları ve hackerlar

    Özellikler:

    • 2800’den fazla güvenlik aracı ile en kapsamlı dağıtımlardan biridir.
    • Son derece özelleştirilebilir ve hafif bir yapı sunar.
    • Minimal bir yapı ile gelir, kullanıcıya tam kontrol sağlar.
    • Arch Linux’un Rolling Release sistemi sayesinde sürekli güncel kalır.

    Kullanım Alanları:

    • Penetrasyon testleri
    • Gelişmiş güvenlik değerlendirmeleri
    • Karmaşık sistem yapılandırmaları
  4. Linux Mint

    Tabanı: Ubuntu

    Hedef Kullanıcılar: Masaüstü kullanıcıları, yeni başlayanlar

    Özellikler:

    • Kullanıcı dostu bir arayüze sahiptir (Cinnamon, MATE veya XFCE masaüstü seçenekleriyle gelir).
    • Günlük kullanım için ideal; medya oynatıcılar, ofis uygulamaları ve tarayıcılar önceden yüklüdür.
    • Hafif bir sistemdir, eski bilgisayarlarda bile rahatlıkla çalışabilir.

    Kullanım Alanları:

    • Masaüstü ve dizüstü bilgisayar kullanımı
    • Ofis işleri
    • Geliştirme ortamları
  5. Fedora

    Tabanı: Red Hat

    Hedef Kullanıcılar: Geliştiriciler, sunucu yöneticileri

    Özellikler:

    • Güncel yazılım ve yeni teknolojilere hızlı erişim sağlar.
    • GNOME masaüstü ortamıyla gelir ve modern bir deneyim sunar.
    • Güvenlik ve kararlılık odaklıdır.

    Kullanım Alanları:

    • Sunucu ortamları
    • Yazılım geliştirme
  6. Arch Linux

    Tabanı: Yok (bağımsız geliştirilmiştir)

    Hedef Kullanıcılar: İleri düzey kullanıcılar ve özelleştirme isteyenler

    Özellikler:

    • Minimalist bir yapıya sahiptir ve tamamen kullanıcıya özeldir.
    • Hafif ve özelleştirilebilir.
    • Rolling Release sistemiyle her zaman güncel yazılımlar sunar.

    Kullanım Alanları:

    • Gelişmiş sistem yönetimi
    • Kendi Linux dağıtımını oluşturmak isteyenler
  7. Debian

    Tabanı: Yok (bağımsız)

    Hedef Kullanıcılar: Sunucu yöneticileri, kararlı sistem isteyenler

    Özellikler:

    • Kararlılık ve güvenilirlik odaklıdır.
    • 50.000’den fazla yazılım paketi sunar.
    • Masaüstü ve sunucu kullanımına uygundur.

    Kullanım Alanları:

    • Sunucular
    • Geliştirme ortamları
  8. CentOS Stream

    Tabanı: Red Hat Enterprise Linux (RHEL)

    Hedef Kullanıcılar: Kurumsal kullanıcılar

    Özellikler:

    • Sunucu ortamlarında kararlılığıyla öne çıkar.
    • RHEL ile tam uyumludur ve ücretsizdir.
    • İşletmeler için tasarlanmış güvenilir bir sistemdir.

    Kullanım Alanları:

    • Kurumsal sunucular
    • Veri merkezleri

Linux En Çok Kullanılan Komutlar

  1. ls - Listeleme Komutu

    Açıklama: Bir dizindeki dosya ve klasörleri listelemek için kullanılır.

    Kullanım: ls komutu dizin içeriğini listeler. ls -l ile detaylı bilgi gösterilir (dosya izinleri, sahiplik, boyut vb.).

    Örnek: ls -la /home/user

  2. cd - Dizin Değiştirme

    Açıklama: Kullanıcıyı belirtilen dizine taşır.

    Kullanım: cd komutuyla, hedef dizine geçiş yapılır.

    Örnek: cd /var/log

  3. pwd - Bulunduğun Dizin

    Açıklama: Kullanıcının şu anda bulunduğu dizini gösterir.

    Kullanım: Özellikle terminalde geçiş yapılan dizinlerin doğruluğunu kontrol etmek için kullanılır.

  4. cp - Kopyalama

    Açıklama: Dosya veya dizinleri kopyalamak için kullanılır.

    Kullanım: cp komutuyla bir dosya veya dizini başka bir konuma kopyalayabilirsiniz.

    Örnek: cp source_file destination

  5. mv - Taşıma veya Yeniden Adlandırma

    Açıklama: Dosya veya dizinleri taşır veya yeniden adlandırır.

    Kullanım: mv komutu ile dosya veya dizinleri taşır veya adlarını değiştirebilirsiniz.

    Örnek: mv old_name new_name

  6. rm - Silmek

    Açıklama: Dosya veya dizinleri silmek için kullanılır. -r parametresi ile dizinleri de silebilirsiniz.

    Kullanım: rm komutu silme işlemi yapar ve dikkatle kullanılmalıdır.

    Örnek: rm -r directory_name

  7. chmod - İzin Değiştirme

    Açıklama: Dosya veya dizinlere erişim izinlerini ayarlamak için kullanılır.

    Kullanım: Kullanıcıların dosyalara okuma, yazma veya çalıştırma izinleri belirlenir.

    Örnek: chmod 755 file_name

  8. chown - Sahip Değiştirme

    Açıklama: Dosya veya dizinlerin sahibini değiştirmek için kullanılır.

    Kullanım: chown komutuyla bir dosyanın sahibini değiştirebilirsiniz.

    Örnek: chown user:user file_name

  9. ps - İşlem Durumunu Görüntüleme

    Açıklama: Çalışan işlemleri listelemek için kullanılır.

    Kullanım: Sistemdeki aktif işlemler görüntülenebilir.

    Örnek: ps aux

  10. kill - İşlem Sonlandırma

    Açıklama: Belirli bir işlem ID’sini (PID) kullanarak bir işlemi sonlandırır.

    Kullanım: Kullanıcılar gereksiz veya yanıt vermeyen işlemleri sonlandırabilir.

    Örnek: kill -9 1234 (Bu, PID 1234 olan işlemi zorla sonlandırır.)

  11. wget - Dosya İndirme

    Açıklama: İnternetten dosya indirmek için kullanılan araçtır.

    Kullanım: wget komutuyla HTTP, HTTPS veya FTP üzerinden dosya indirebilirsiniz.

    Örnek: wget http://example.com/file.tar.gz

  12. curl - Veri Transferi

    Açıklama: HTTP veya FTP gibi protokoller üzerinden veri gönderip almak için kullanılır.

    Kullanım: curl komutuyla API’lerden veri çekilebilir veya web sayfalarına veri gönderilebilir.

    Örnek: curl -O http://example.com/file.txt

  13. grep - Arama

    Açıklama: Belirli bir metni dosya içinde arar.

    Kullanım: Metin dosyalarında belirli bir içerik aramak için grep kullanılır.

    Örnek: grep "search_term" file_name

  14. find - Dosya Arama

    Açıklama: Belirli bir kriterle dosya aramak için kullanılır.

    Kullanım: find komutuyla belirli bir dizin içinde dosya araması yapılabilir.

    Örnek: find /home/user -name "*.txt"

  15. tar - Arşivleme

    Açıklama: Dosya ve dizinleri sıkıştırmak ve arşivlemek için kullanılır.

    Kullanım: tar komutu, dosyaları .tar formatında arşivler ve sıkıştırma işlemleri yapar.

    Örnek: tar -czvf archive.tar.gz directory_name

  16. python3 -m http.server - Basit Web Sunucusu

    Açıklama: Python kullanarak hızlıca bir HTTP sunucusu başlatır.

    Kullanım: Python 3 ile, dizin içinde basit bir web sunucusu kurabilirsiniz. Özellikle geliştirme ve test amaçlı kullanılır.

    Örnek: python3 -m http.server 8000

  17. systemctl - Servis Yönetimi

    Açıklama: Sistemdeki servislerin (daemon) durumunu kontrol etmek ve yönetmek için kullanılır.

    Kullanım: Bir servisi başlatabilir, durdurabilir veya yeniden başlatabilirsiniz.

    Örnek: systemctl restart apache2

  18. nano / vim / emacs - Metin Editörleri

    Açıklama: Linux üzerinde dosya düzenlemek için kullanılan metin editörleridir. nano basit, vim ve emacs ise gelişmiş özelliklere sahiptir.

    Kullanım: Komut satırından dosya düzenlemek için bu editörler kullanılır.

    Örnek: nano file_name

  19. scp - Güvenli Kopyalama

    Açıklama: Uzak bir sistem ile dosya transferi için kullanılır.

    Kullanım: scp komutu ile uzak bir sunucuya dosya gönderebilir veya alabilirsiniz.

    Örnek: scp file_name user@remote:/path/to/destination

  20. ssh - Güvenli Uzak Bağlantı

    Açıklama: ssh komutu, uzak bir sunucuya güvenli bir şekilde bağlanmak için kullanılır. Genellikle sistem yöneticileri tarafından uzak sunucuları yönetmek için tercih edilir.

    Kullanım: Bir uzak sunucuya bağlanmak için, kullanıcı adı ve IP adresi ile birlikte kullanılır.

    Örnek: ssh user@server_ip

  21. man - Yardım Belgeleri

    Açıklama: Linux komutları hakkında daha fazla bilgi edinmek için man (manual) komutları kullanılabilir. Bu komut, her komutun nasıl kullanıldığını ve parametrelerini açıklar.

    Kullanım: Komutların ne işe yaradığını öğrenmek için man komutuyla yardım sayfalarına erişebilirsiniz.

    Örnek: man ls (ls komutunun yardım sayfasını gösterir.)

  22. apt-get / dnf / yum - Paket Yönetimi

    Açıklama: Linux sistemlerinde yazılım paketlerini yüklemek, güncellemek veya kaldırmak için kullanılan araçlardır. Hangi dağıtımı kullandığınıza bağlı olarak farklı paket yöneticileri mevcuttur.

    Kullanım: apt-get (Ubuntu/Debian), dnf (Fedora), ve yum (CentOS) komutları, sistemdeki yazılımları yönetmek için kullanılır.

    Örnek: apt-get update (Yazılım kaynaklarını günceller.)

  23. whoami - Kullanıcı Adı

    Açıklama: Sistemde o an oturum açmış olan kullanıcının adını gösterir.

    Kullanım: Bu komut, hangi kullanıcıyla işlem yapıldığını görmek için kullanılır.

    Örnek: whoami (O anki kullanıcıyı döndürür.)

  24. history - Komut Geçmişi

    Açıklama: Terminalde daha önce girilen komutların geçmişini listeler.

    Kullanım: Daha önce kullanılan komutları hızlıca görmek ve yeniden çalıştırmak için kullanılır.

  25. sudo - Süper Kullanıcı İzni

    Açıklama: Sistemde yönetici (root) yetkileriyle işlem yapmak için kullanılır.

    Kullanım: Yönetici izinlerine ihtiyaç duyan komutları çalıştırmak için sudo komutunu kullanabilirsiniz.

    Örnek: sudo apt-get install package_name

  26. touch - Dosya Oluşturma

    Açıklama: Yeni boş dosya oluşturur. Eğer belirtilen dosya zaten varsa, son erişim ve değiştirilme zamanlarını günceller.

    Kullanım: Yeni bir dosya oluşturmak için touch komutunu kullanabilirsiniz.

    Örnek: touch newfile.txt

  27. echo - Yazı Yazan Komut

    Açıklama: Ekrana veya bir dosyaya çıktı yazdırmak için kullanılır.

    Kullanım: Çeşitli mesajlar ve metinleri çıktı olarak yazdırabilirsiniz.

    Örnek: echo "Merhaba Dünya"

Linux En Çok Kullanılan Programlar

  1. Nmap (Network Mapper)

    Açıklama: Ağ keşfi ve güvenlik taramaları için kullanılan popüler bir araçtır. Açık portları ve servisleri belirleyerek hedef sistem hakkında bilgi toplar.

    En Çok Kullanılan Parametreler:

    • -A: Kapsamlı bir tarama yapar (OS tespiti, versiyon tespiti, script taramaları).
    • -sS: TCP SYN taraması yapar.
    • -sV: Servis versiyonlarını tespit eder.
    • -sC: Varsayılan scriptleri çalıştırır.
    • -O: İşletim sistemini tespit eder.
    • -p: Belirli bir portu veya port aralığını tarar (ör. -p 80,443).
    • -T4: Tarama hızını ayarlar.
    • -Pn: Ping atmadan tarama yapar.
    • -v: Ayrıntılı çıktı sağlar.
    • --open: Sadece açık portları gösterir.
    • -oN: Çıktıyı normal formatta bir dosyaya kaydeder.

    Örnek Kullanım: nmap -A -sS -sV -sC -O -p 80,443,22 192.168.1.1

  2. John the Ripper

    Açıklama: Şifre kırma aracıdır. Birçok şifreleme formatını destekler ve brute-force saldırılarıyla şifreleri çözer.

    En Çok Kullanılan Parametreler:

    • --wordlist=FILE: Şifre listesini belirtir.
    • --format=FORMAT: Şifreleme formatını seçer (ör. raw-md5, bcrypt).
    • --rules: Şifre türetme kurallarını uygular.
    • --incremental: Brute-force saldırısını başlatır.
    • --status: Kırma işleminin durumunu gösterir.
    • --show: Kırılmış şifreleri görüntüler.

    Örnek Kullanım: john --wordlist=passwords.txt --format=raw-md5 hashes.txt

  3. Nikto

    Açıklama: Web sunucularında zafiyet taraması yapar. XSS, SQL Injection gibi açıkları tespit eder.

    En Çok Kullanılan Parametreler:

    • -h: Hedef URL veya IP adresini belirtir.
    • -p: Portu belirtir (varsayılan: 80).
    • -T: Tarama hızını belirler.
    • -ssl: SSL üzerinden tarama yapar.
    • -o: Çıktıyı dosyaya kaydeder.
    • -v: Detaylı tarama çıktısı gösterir.

    Örnek Kullanım: nikto -h http://example.com -p 443 -T 3 -ssl -o result.txt

  4. Hydra

    Açıklama: Şifre çözme (brute-force) saldırıları için kullanılan güçlü bir araçtır.

    En Çok Kullanılan Parametreler:

    • -l: Kullanıcı adı.
    • -P: Şifre listesi dosyası.
    • -t: Aynı anda yapılacak saldırı sayısı.
    • -f: İlk başarılı girişte durur.
    • -s: Port belirtir.

    Örnek Kullanım: hydra -l admin -P /path/to/passwords.txt ssh://192.168.1.1

  5. Dirb

    Açıklama: Web dizinlerini keşfetmek için kullanılan bir araçtır.

    En Çok Kullanılan Parametreler:

    • -u: Hedef URL.
    • -w: Kelime listesi belirtir.
    • -x: Dosya uzantıları ekler.

    Örnek Kullanım: dirb http://example.com -w /path/to/wordlist.txt -x .php,.html

  6. Burp Suite

    Açıklama: Web uygulama güvenliği testleri için kullanılır. Web trafiğini analiz ederek zafiyetleri tespit eder.

    En Çok Kullanılan Özellikler:

    • Proxy: Web trafiğini Burp Suite üzerinden yönlendirir.
    • Spider: Uygulamanın tamamını tarar.
    • Intruder: Brute-force saldırıları yapar.
    • Repeater: HTTP isteklerini manuel olarak tekrar eder.

    Örnek Kullanım: GUI üzerinden çalıştırılır, Proxy ayarları yapılır.

  7. Metasploit Framework

    Açıklama: Güvenlik açıklarını tespit edip bu açıklardan yararlanmak için kullanılan açık kaynaklı bir platformdur.

    En Çok Kullanılan Parametreler:

    • use: Modül seçer (ör. exploit modülleri).
    • set: Parametre değerlerini belirler.
    • exploit: İstismar işlemini başlatır.
    • sessions: Alınan oturumları yönetir.
    • meterpreter: Etkileşimli oturum başlatır.

    Örnek Kullanım:

    msfconsole use exploit/windows/smb/ms17_010_eternalblue set RHOST 192.168.1.1 exploit
  8. Wireshark

    Açıklama: Ağ trafiğini izlemek ve analiz etmek için kullanılan popüler bir ağ analiz aracıdır.

    En Çok Kullanılan Parametreler:

    • -i: Dinlenecek ağ arayüzünü belirtir (ör. eth0).
    • -f: Filtreleme yapar.
    • -w: Çıktıyı bir dosyaya kaydeder.
    • -k: Canlı paket izlemeyi başlatır.

    Örnek Kullanım: wireshark -i eth0 -w capturefile.pcap

  9. Aircrack-ng

    Açıklama: Kablosuz ağların güvenliğini test eden, WEP ve WPA/WPA2 şifreleme türlerine karşı saldırılar düzenleyen bir araçtır.

    En Çok Kullanılan Parametreler:

    • -a: Şifreleme türünü belirtir.
    • -c: Kanal numarasını belirtir.
    • -w: Parola sözlüğü dosyasını belirtir.
    • -b: Hedef MAC adresini belirtir.

    Örnek Kullanım: aircrack-ng -w /path/to/wordlist.txt capturefile.cap

  10. SQLmap

    Açıklama: SQL Injection açıklarını tespit etmek ve bu açıklardan yararlanmak için kullanılan güçlü bir araçtır.

    En Çok Kullanılan Parametreler:

    • -u: Hedef URL.
    • --risk: Risk seviyesini belirler (1-3).
    • --level: Tarama düzeyini ayarlar.
    • --dbs: Veritabanlarını listeler.
    • --dump: Veritabanı dökümü yapar.

    Örnek Kullanım: sqlmap -u "http://example.com/vulnerable.php?id=1" --risk=3 --level=5 --dbs

  11. Gobuster

    Açıklama: Web sunucusundaki gizli dosya ve dizinleri keşfetmek için kullanılan bir araçtır.

    En Çok Kullanılan Parametreler:

    • -u: Hedef URL.
    • -w: Kelime listesini belirtir.
    • -x: Belirli dosya uzantılarını tarar.
    • -t: Paralel işlem sayısını belirtir.

    Örnek Kullanım: gobuster dir -u http://example.com -w /path/to/wordlist.txt -x .php,.html -t 50