Takip et

Siber Güvenlikte Gerçekten Önemli Linux Komutları: Bir Gerçeklik Kontrolü

Siber Güvenlikte Gerçekten Önemli Linux Komutları: Bir Gerçeklik Kontrolü Linux, siber güvenlik dünyasının vazgeçilmez bir parçasıdır.

Siber Güvenlikte Gerçekten Önemli Linux Komutları: Bir Gerçeklik Kontrolü

Linux, siber güvenlik dünyasının vazgeçilmez bir parçasıdır. Penetrasyon testlerinden adli bilişime, ağ izlemeden sunucu güvenliğine kadar birçok alanda Linux tabanlı sistemler ve araçlar kullanılır. Ancak, binlerce komut arasında hangilerinin bir siber güvenlik uzmanı için gerçekten hayati olduğunu bilmek kafa karıştırıcı olabilir. Bu makale, sizi komut deryasında boğmadan, siber güvenlik operasyonlarınızda “gerçekten işinize yarayacak” temel Linux komutlarına odaklanarak bir “gerçeklik kontrolü” sunmayı hedeflemektedir.

1. Sistem Keşfi ve Bilgi Toplama: İlk Adım

Bir siber güvenlik operasyonunun başlangıcı her zaman bilgi toplamadır. Hedef sistem hakkında ne kadar çok şey bilirseniz, saldırı veya savunma stratejiniz o kadar sağlam olur. Linux, bu aşamada size paha biçilmez araçlar sunar.

1.1. Temel Sistem Bilgileri

Hedef sistemin veya kendi çalışma ortamınızın temel özelliklerini anlamak için kullanılır.

  • uname -a: Sistem çekirdeği (kernel) bilgisi, işletim sistemi mimarisi ve versiyonunu gösterir.
  • lsb_release -a: Dağıtımın (Ubuntu, Debian vb.) detaylı sürüm bilgilerini verir.
  • hostname: Sistemin ağdaki adını öğrenmek için kullanılır.
uname -a
lsb_release -a
hostname

1.2. Donanım ve Disk Bilgileri

Fiziksel veya sanal donanım bileşenlerini ve disk kullanımını anlamak, performans sorunlarını teşhis etmek veya zafiyetleri belirlemek için önemlidir.

  • lshw: Sistemin donanım bileşenlerinin (CPU, RAM, ağ kartları vb.) detaylı bir listesini sunar. Genellikle root yetkisi gerektirir.
  • lspci: PCI bus üzerindeki tüm cihazları (ekran kartları, ağ kartları vb.) listeler.
  • lsusb: USB cihazlarını listeler.
  • df -h: Disk alanı kullanımını insan okunur formatta gösterir.
  • du -sh /dizin: Belirli bir dizinin diskte ne kadar yer kapladığını özetler.
sudo lshw
df -h
du -sh /var/log

1.3. Kullanıcı ve Grup Bilgileri

Sistemdeki kullanıcıları, grupları ve bunların yetkilerini anlamak, yetki yükseltme veya yatay hareket zafiyetlerini tespit etmek için kritiktir.

  • whoami: Mevcut kullanıcının adını gösterir.
  • id: Mevcut kullanıcının kullanıcı ID'si (UID) ve ait olduğu grup ID'lerini (GID) gösterir.
  • cat /etc/passwd: Sistemdeki tüm kullanıcı hesaplarının temel bilgilerini içerir.
  • cat /etc/group: Sistemdeki tüm grupların bilgilerini içerir.
whoami
id
cat /etc/passwd | head -n 5

2. Ağ Analizi ve İzleme: Bağlantıları Anlamak

Ağ, siber güvenlik uzmanlarının en çok vakit geçirdiği alanlardan biridir. Ağ trafiğini izlemek, bağlantıları anlamak ve potansiyel tehditleri tespit etmek için Linux komutları vazgeçilmezdir.

2.1. Ağ Arayüzleri ve IP Adresleri

Sistemin ağ yapılandırmasını ve IP adreslerini öğrenmek için kullanılır.

  • ip a (veya ip addr show): Tüm ağ arayüzlerinin IP adresleri, MAC adresleri ve durumları gibi detaylı bilgilerini gösterir. ifconfig komutunun modern karşılığıdır.
  • ip r (veya ip route show): Sistemin rota tablosunu gösterir. Ağ trafiğinin nasıl yönlendirildiğini anlamak için önemlidir.
ip a
ip r

2.2. Ağ Bağlantıları ve Dinleyen Portlar

Hangi servislerin hangi portlarda çalıştığını ve hangi bağlantıların aktif olduğunu görmek, bir saldırganın veya zararlı yazılımın ağ üzerindeki aktivitesini tespit etmek için hayati öneme sahiptir.

  • ss -tuln: TCP ve UDP protokolleri üzerinden dinleyen (listening) portları ve ilişkili programları gösterir. netstat komutunun daha hızlı ve modern bir alternatifidir.
  • ss -antp: Tüm aktif TCP bağlantılarını, sayısal IP'lerle ve ilişkili süreç bilgileriyle birlikte gösterir.
ss -tuln
ss -antp

2.3. Ağ Erişimi ve Çözümleme

Hedef sistemlere erişilebilirliği kontrol etmek ve DNS çözümlemesini test etmek için kullanılır.

  • ping : Bir hedefe ICMP paketleri göndererek erişilebilirliğini ve gecikmeyi test eder.
  • traceroute : Bir hedefe giden paketin geçtiği tüm yönlendiricileri (hop) gösterir. Ağ topolojisini anlamak için faydalıdır.
  • dig : DNS sorguları yapmak için kullanılır. Bir domainin IP adresini veya diğer DNS kayıtlarını sorgular.
ping google.com
traceroute 8.8.8.8
dig example.com

3. Dosya Sistemi ve İzin Yönetimi: Kilit Noktalar

Dosya sistemi, sistemin kalbidir. Yanlış yapılandırılmış izinler veya gizli dosyalar, siber güvenlik zafiyetlerine yol açabilir. Bu komutlar, dosya sistemi güvenliğini denetlemek ve yönetmek için temeldir.

3.1. Dosya ve Dizin Gezinme ve Görüntüleme

Dosya sisteminde gezinmek ve dosya içeriklerini hızlıca incelemek için kullanılır.

  • ls -la: Mevcut dizindeki tüm dosyaları ve dizinleri, detaylı izin bilgileriyle birlikte listeler (gizli dosyalar dahil).
  • cd /dizin/yolu: Belirtilen dizine geçiş yapar.
  • pwd: Mevcut çalışma dizininin tam yolunu gösterir.
  • cat : Bir dosyanın tüm içeriğini ekrana basar. Küçük dosyalar için idealdir.
  • less : Büyük dosyaları sayfa sayfa görüntülemenizi sağlar, ileri-geri gidebilirsiniz.
  • head -n 10 : Bir dosyanın ilk 10 satırını gösterir.
  • tail -n 10 : Bir dosyanın son 10 satırını gösterir. Log dosyalarını izlemek için tail -f çok kullanışlıdır.
ls -la /var/log
tail -f /var/log/auth.log

3.2. Dosya İzinleri ve Sahiplik Yönetimi

Dosya ve dizin izinleri, sistem güvenliğinin temelini oluşturur. Yanlış izinler, yetkisiz erişime veya yetki yükseltmeye yol açabilir.

  • chmod : Bir dosyanın veya dizinin erişim izinlerini değiştirir (örneğin, chmod 755 script.sh).
  • chown : : Bir dosyanın veya dizinin sahipliğini değiştirir.
  • lsattr : Dosya özniteliklerini gösterir (immutable gibi).
chmod 600 my_secret_file.txt
sudo chown root:root /etc/shadow

3.3. Dosya Arama ve Filtreleme

Belirli dosyaları bulmak veya dosya içeriklerinde belirli kalıpları aramak, zafiyetleri, konfigürasyon hatalarını veya zararlı yazılım izlerini tespit etmek için kritiktir.

  • find /dizin -name "*.log": Belirli bir dizinde veya alt dizinlerinde belirli kriterlere uyan dosyaları arar.
  • grep "hata" /var/log/*.log: Dosya içeriklerinde belirli bir metin kalıbını arar. Log analizi için vazgeçilmezdir.
  • locate : Dosya sisteminde önceden indekslenmiş dosyaları hızlıca bulur. (Veritabanının güncel olması gerekir: updatedb).
find / -perm /4000 2>/dev/null # SUID bitine sahip dosyaları bulur
grep -r "password" /etc/

4. Süreç ve Kaynak Yönetimi: Tehditleri Takip Etme

Sistemde çalışan süreçleri izlemek, anormal davranışları veya kaynak sömürüsünü tespit etmek, potansiyel saldırıları veya zararlı yazılımları ortaya çıkarabilir.

4.1. Süreçleri Listeleme ve İzleme

Sistemde çalışan programları ve bunların kaynak kullanımını görmek için kullanılır.

  • ps aux: Tüm çalışan süreçleri, kullanıcıları ve CPU/bellek kullanımlarını gösterir.
  • top: Süreçleri dinamik olarak güncelleyen, CPU ve bellek kullanımına göre sıralayan etkileşimli bir araçtır.
  • htop: top'ın daha kullanıcı dostu ve renkli bir versiyonudur, genellikle ek kurulum gerektirir.
  • lsof -i: Açık ağ bağlantılarını ve ilişkili süreçleri gösterir.
ps aux | grep firefox
top

4.2. Süreçleri Yönetme

Anormal veya istenmeyen süreçleri durdurmak için kullanılır.

  • kill : Belirli bir süreç ID'sine (PID) sahip süreci sonlandırır.
  • killall : Belirli bir programın tüm çalışan örneklerini sonlandırır.
kill 12345 # 12345 PID'li süreci sonlandırır
killall -9 firefox # Firefox'un tüm örneklerini zorla sonlandırır

4.3. Zamanlanmış Görevler

Sistemde arka planda otomatik olarak çalışan görevleri (cron işleri) denetlemek, kalıcılık mekanizmalarını veya gizli zararlı aktiviteleri ortaya çıkarabilir.

  • crontab -l: Mevcut kullanıcının zamanlanmış görevlerini listeler.
  • cat /etc/crontab: Sistem genelindeki zamanlanmış görevleri gösterir.
  • ls -la /etc/cron.*: Cron dizinlerindeki betikleri listeler.
crontab -l
cat /etc/crontab

5. Güvenlik Denetimi ve Log Analizi: İzleri Takip Etme

Loglar, sistemde meydana gelen olayların kaydıdır ve siber güvenlik olaylarını tespit etmek, analiz etmek ve bunlara yanıt vermek için kritik bir bilgi kaynağıdır.

5.1. Log Dosyalarını İnceleme

Sistem ve uygulama loglarını etkili bir şekilde incelemek, anormallikleri ve saldırı belirtilerini ortaya çıkarır.

  • journalctl -xe: systemd tabanlı sistemlerde (çoğu modern dağıtım) sistem günlüklerini gösterir. -xe son hataları ve olayları detaylı gösterir.
  • grep -i "failed password" /var/log/auth.log: Yetkilendirme loglarında başarısız giriş denemelerini arar.
  • awk '/sudo:/ {print}' /var/log/auth.log: Sudo kullanımına dair logları filtreler.
journalctl -u sshd -f # SSH servisi loglarını canlı izler
grep -i "invalid user" /var/log/auth.log

5.2. Paket Yönetimi ve Güvenlik Güncellemeleri

Paket yöneticileri, sistemin yazılım envanterini yönetir ve güvenlik güncellemelerini uygulamak için hayati öneme sahiptir.

  • sudo apt update && sudo apt upgrade (Debian/Ubuntu): Paket listelerini günceller ve yüklü paketleri yükseltir.
  • sudo yum update (CentOS/RHEL): Yüklü paketleri günceller.
  • apt list --upgradable: Yükseltilebilecek paketleri listeler.
sudo apt update
sudo apt upgrade -y

5.3. Sudo Yetkilendirmesi Denetimi

Sudo, kullanıcılara root yetkisiyle komut çalıştırma imkanı verir. Sudo yapılandırmasının doğru olması, yetki yükseltme saldırılarını önlemek için önemlidir.

  • sudo -l: Mevcut kullanıcının hangi komutları sudo ile çalıştırabileceğini gösterir.
  • visudo: Sudo yapılandırma dosyasını (/etc/sudoers) güvenli bir şekilde düzenler. Doğrudan dosyayı düzenlemek yerine bu komut kullanılmalıdır.
sudo -l
# visudo (Dikkatli kullanılmalıdır!)

6. Veri Manipülasyonu ve Metin İşleme: Bilgiyi Ayıklama

Siber güvenlik uzmanları, büyük miktarda metin tabanlı veriyi (loglar, konfigürasyon dosyaları, çıktıları) analiz etmek zorundadır. Bu komutlar, bu veriyi filtrelemek, dönüştürmek ve anlamlandırmak için kullanılır.

6.1. Metin Filtreleme ve Arama

Büyük dosyalardan veya komut çıktılarından belirli bilgileri ayıklamak için temel araçlardır.

  • grep : Daha önce bahsedildiği gibi, metin içinde kalıp aramak için kullanılır. Regex desteği sayesinde çok güçlüdür.
  • cut -d':' -f1 /etc/passwd: Belirli bir ayırıcıya (delimiter) göre metni sütunlara ayırır ve istenen sütunları gösterir.
cat /var/log/syslog | grep "CRON"
ip a | grep "inet " | cut -d' ' -f6

6.2. Metin Düzenleme ve Dönüştürme

Metin dosyalarını veya akışlarını karmaşık şekillerde dönüştürmek için kullanılır.

  • sed 's/eski/yeni/g' : Metin akışlarında veya dosyalarda arama ve değiştirme işlemleri yapar.
  • awk '{print $1, $3}' : Metin dosyalarını satır ve sütun bazında işlemek için güçlü bir programlama dilidir.
sed 's/http/https/g' config.txt
cat /etc/passwd | awk -F: '{print "Kullanıcı: " $1 ", Kabuk: " $7}'

6.3. Dosya Karşılaştırma ve Sıralama

İki dosya arasındaki farkları bulmak veya veriyi düzenlemek için kullanılır.

  • diff : İki dosya arasındaki farkları gösterir. Konfigürasyon değişikliklerini denetlemek için çok faydalıdır.
  • sort : Bir dosyanın satırlarını alfabetik veya sayısal olarak sıralar.
  • uniq : Sıralanmış bir dosyada tekrarlayan satırları kaldırır.
diff original_config.conf modified_config.conf
cat ips.txt | sort | uniq

7. Temel Yetkilendirme ve Kullanıcı Yönetimi

Sistemdeki kullanıcı ve grup yönetimi, güvenlik politikalarının uygulanması ve yetkisiz erişimin önlenmesi için temeldir.

7.1. Kullanıcı ve Grup Oluşturma/Yönetme

Sistemdeki kullanıcı hesaplarını ve grupları oluşturmak, değiştirmek veya silmek için kullanılır.

  • useradd : Yeni bir kullanıcı hesabı oluşturur.
  • passwd : Bir kullanıcının şifresini değiştirir.
  • usermod -aG : Bir kullanıcıyı mevcut bir gruba ekler.
  • userdel : Bir kullanıcı hesabını siler.
  • groupadd : Yeni bir grup oluşturur.
sudo useradd newuser
sudo passwd newuser
sudo usermod -aG sudo newuser

7.2. SSH Anahtar Yönetimi

SSH (Secure Shell) anahtarları, parola yerine daha güvenli bir kimlik doğrulama yöntemi sunar ve siber güvenlik operasyonlarında yaygın olarak kullanılır.

  • ssh-keygen: Yeni bir SSH anahtar çifti (public/private) oluşturur.
  • ssh-copy-id @: Genel anahtarı (public key) hedef sunucuya kopyalar, böylece parola girmeden SSH bağlantısı kurulabilir.
ssh-keygen -t rsa -b 4096
ssh-copy-id user@192.168.1.100

Sonuç

Siber güvenlik dünyası sürekli değişse de, Linux'un komut satırı arayüzü (CLI) temel bir beceri olmaya devam edecektir. Bu makalede ele aldığımız komutlar, bir siber güvenlik uzmanının günlük operasyonlarında en sık başvuracağı, en pratik ve en etkili araçlardır. Bu komutları derinlemesine anlamak ve ustaca kullanmak, sistemleri keşfetme, ağları analiz etme, güvenlik açıklarını bulma, logları inceleme ve olaylara müdahale etme yeteneğinizi önemli ölçüde artıracaktır. Unutmayın, önemli olan tüm komutları ezberlemek değil, temel prensipleri anlamak ve doğru aracı doğru zamanda kullanabilmektir. Pratik yaparak ve gerçek senaryolar üzerinde çalışarak bu komutlarda ustalaşabilir, siber güvenlik yolculuğunuzda önemli bir avantaj elde edebilirsiniz.

SSS (Sık Sorulan Sorular)

1. Hangi Linux dağıtımı siber güvenlik için en iyisidir?

Kali Linux ve Parrot OS gibi dağıtımlar, siber güvenlik araçlarıyla önceden yüklenmiş olarak gelir ve penetrasyon testi için popülerdir. Ancak, Ubuntu, Debian veya Fedora gibi genel amaçlı dağıtımlar da gerekli araçlar yüklendiğinde aynı derecede etkili olabilir. Önemli olan dağıtımdan ziyade, komut satırı becerilerinizdir.

2. Bu komutları öğrenmek ne kadar sürer?

Temel komutları öğrenmek birkaç gün veya hafta sürebilir. Ancak, bu komutlarda ustalaşmak ve farklı senaryolarda etkili bir şekilde kullanabilmek sürekli pratik ve deneyim gerektirir. Kendinizi zorlayıcı görevlerle sınayarak ve gerçek dünya senaryolarında uygulayarak hızla ilerleyebilirsiniz.

3. Sadece bu komutlar siber güvenlik için yeterli mi?

Hayır, bu komutlar siber güvenlik uzmanları için temel ve hayati araçlardır, ancak tek başına yeterli değildir. Siber güvenlik geniş bir alandır ve ağ protokolleri, işletim sistemi mimarileri, programlama dilleri, güvenlik metodolojileri ve özel güvenlik araçları gibi birçok başka bilgi ve beceri gerektirir. Bu komutlar, diğer araç ve bilgilerinizi destekleyen temel bir katmandır.

4. Komutları ezberlemek mi, anlamak mı daha önemli?

Kesinlikle anlamak daha önemlidir. Komutların ne işe yaradığını, nasıl çalıştığını ve farklı seçeneklerle nasıl kullanılabileceğini anladığınızda, onları ezberlemenize gerek kalmaz. Unuttuğunuzda man veya --help ile kolayca hatırlayabilirsiniz.

5. GUI (Grafik Kullanıcı Arayüzü) araçları yerine neden komut satırı kullanmalıyım?

Komut satırı, otomasyon, esneklik ve verimlilik açısından GUI araçlarından üstündür. Komutlar betiklere entegre edilebilir, uzaktan sunucularda kolayca çalıştırılabilir ve büyük veri setlerini işlemek için çok daha güçlüdür. Ayrıca, birçok gelişmiş siber güvenlik aracı sadece komut satırı arayüzüne sahiptir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.