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(veyaip addr show): Tüm ağ arayüzlerinin IP adresleri, MAC adresleri ve durumları gibi detaylı bilgilerini gösterir.ifconfigkomutunun modern karşılığıdır.ip r(veyaip 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.netstatkomutunun 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çintail -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.-xeson 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.
