8. Ağ Güvenliği
Ağ güvenliği, insanların bağlı olduğu süre
arttıkça, daha önemli hale gelmektedir. Ağ güvenliğini
bozmak, fiziksel veya yerel güvenliği bozmaktan çok daha kolay,
ve çok daha yaygındır.
Ağ güvenliğine yardımcı olan iyi araçlar var,
ve Linux dağıtımlarıyla birlikte gelenlerin sayısı
gittikçe artıyor.
8.1 Paket Koklayıcılar
Saldırganların, ağınız üzerinde daha fazla sisteme
erişim kazanmasının en yaygın yollarından biri, güvenliği
bozulan bilgisayarlardan birinin üzerinde bir paket koklayıcı
çalıştırmasıdır. Bu koklayıcı, paket
akışı içinde passwd, login ve su gibi şeyler için
Ethernet portunu dinler ve günlük tutar. Bu yolla saldırganlar,
girmeye hiç kalkışmadıkları sistemlerin parolalarına
dahi erişebilirler. Açık metin parolalar bu saldırıya
karşı çok korunmasızdırlar.
Örnek: A Bilgisayarının güvenliği bozulmuş durumda.
Saldırgan bir koklayıcı kurar. Koklayıcı, B Bilgisayarından
C Bilgisayarına giriş yapan sisyön (sistem yöneticisi) parolasını
ele geçirir. Sonra, sisyön bir sorunu çözmek için su
yapar. Saldırganlar böylelikle B Bilgisayarındaki root parolasına
da sahip olur. Daha sonra sisyön, herhangi bir kişiye, hesabından
Z Bilgisayarına telnet ile bağlanmasına izin verir. Artık
saldırgan Z Bilgisayarında da bir parola/giriş bilgisine sahiptir.
Günümüzde bir saldırganın bunu yapabilmesi için
bir sistemin güvenliğini bozmasına dahi gerek yoktur: Kendi kişisel
veya dizüstü bilgisayarlarını bir binaya getirip ağınıza
saplanabilirler.
ssh veya diğer şifreli parola yöntemlerini kullanarak, bu saldırının
önüne geçilebilir. POP hesapları için APOP gibi şeyler
bu saldırıyı engeller (Olağan POP girişleri, ağ
üzerinde açık metin parola gönderen herşey gibi, bu
saldırıya karşı çok korunmasızdır).
8.2 Sistem servisleri ve tcp_wrappers
Linux sisteminizi HERHANGİ bir ağ üzerine koymadan önce,
bakmanız gereken ilk şey hangi servisleri sunmanız gerektiğidir.
Sunmanız gerekmeyen servisler kapatılmalı ki her gereksiz servisin
kapatılışı, endişelenmeniz gereken ve saldırganların
delik arayacağı şeylerin bir azalması anlamına gelir.
Linux´ta servisleri kapatmanın bir kaç yolu vardır. /etc/inetd.conf
dosyasına bakarak inetd tarafından hangi servislerin sunulduğunu
görebilirsiniz. Gereksinim duymadıklarınızı açıklama
haline getirerek (o satırın başına # koyarak), ve sonrasında
inetd işlemine bir SIGHUP sinyali göndererek kapatabilirsiniz.
Bunun yanısıra, /etc/services dosyasındaki servisleri silebilirsiniz
(ya da açıklama haline getirebilirsiniz). Bu, yerel istemcilerin de
servisi kullanamaması anlamına gelir (yani ftp satırını
siler, sonra o makineden uzaktaki bir siteye ftp bağlantısı yapmaya
çalışırsanız, işlem bilinmeyen servis mesajı
vererek başarısız olacaktır. Genellikle /etc/services dosyasındaki
servislere kaldırarak çıkacak sorunlarla uğraşmaya
değmez, çünkü ek bir güvenlik getirisi yoktur. Eğer
yerel bir kullanıcı, kaldırmış olmanıza rağmen
ftp kullanmak isterse, yaygın ftp portunu kullanan kendi istemcisini yapıp
bunu başarabilir.
Çalışır durumda olmasını isteyebileceğiniz
servislerden bazıları:
ftp
telnet (veya ssh)
posta, (örneğin pop-3 veya imap)
identd
Eğer belirli bir paketi kullanmayacağınızdan eminseniz,
toptan kaldırma yolunu da seçebilirsiniz. Red Hat Linux altında
rpm -e packagename komutu ile bütün paketi silmeniz mümkündür.
Debian altında dpkg --remove komutu aynı işi görecektir.
Ek olarak, gerçekten rsh/rlogin/rcp gereçlerini /etc/inetd.conf dosyasını
kullanarak kapatmak isteyebilirsiniz; buna login (rlogin tarafından kullanılan),
shell (rcp tarafından kullanılan), ve exec (rsh tarafından kullanılır)
de dahildir. Bu protokoller aşırı derecede güvensizdir ve
geçmişte bir çok açığın sebebi olmuştur.
/etc/rc.d/rc[0-9].d (Red Hat) veya /etc/rc[0-9].d (Debian) başlangıç
dizinlerini kontrol ederek, herhangi bir sunucunun çalıştırılıp
çalıştırılmadığını görebilirsiniz.
Bu dizindeki dosyalar aslında /etc/rc.d/init.d (Red Hat) dizinindeki dosyalara
simgesel bağlardır (Debian´da /etc/init.d). init.d dizinindeki
dosyaların isimlerini değiştirmek, o dosyaya bağlı
olan simgesel bağları etkisiz hale getirir. Eğer belirli bir
çalışma düzeyindeki servisi kapatmak istiyorsanız,
ilgili simgesel bağın ismindeki büyük S harfini küçük
s harfiyle değiştirebilirsiniz:
root# cd /etc/rc6.d
root# mv S45dhcpd s45dhcpd
Eğer BSD-tarzı başlangıç dosyalarınız varsa,
ihtiyacınız olmayan programlar için /etc/rc* dizinini kontrol
etmek isteyebilirsiniz.
Çoğu Linux dağıtımı, tüm TCP servislerinizi
örten tcp_wrappers ile birlikte gelir (Ç.N.: wrap, örtmek wrapper
ise örtücü anlamına gelir). Gerçek sunucunun yerine
bir tcp_wrapper (tcpd) çalıştırılır, tcpd servisi
isteyen bilgisayarı kontrol eder, ya gerçek sunucuyu çalıştırır,
veya o bilgisayardan erişimi reddeder. tcpd, TCP servislerinize erişimi
kısıtlamanızı sağlar. /etc/hosts.allow dosyası
yaratmalı, ve sadece makinenize erişime gereksinim duyan bilgisayarları
eklemelisiniz.
Evden bağlanan bir çevirmeli ağ kullanıcı iseniz, önerimiz
her bağlantıyı reddetmenizdir. tcpd aynı zamanda başarısız
olan bağlantı girişimlerinin de günlüğünü
tutar, bu şekilde bir saldırı geldiğinde haberiniz olur.
Eğer yeni TCP-tabanlı servisler eklerseniz, tcp_wrappers kullanacak
şekilde yapılandırmalısınız. Örneğin,
olağan çevirmeli ağ kullanıcıları dışarıdakilerin
kendi makinelerine bağlanmasını engelleyebilir, ama aynı
zamanda mektup alma, ve İnternete ağ bağlantısı kurma
işlemlerini de gerçekleştirebilir. Bunu yapmak için, /etc/hosts.allow
dosyanıza
ALL: 127.
satırını ekleyebilirsiniz. Elbette /etc/hosts.deny dosyanız
da
ALL: ALL
satırını bulundurmalı. Bu şekilde makinenize dışarıdan
gelen tüm bağlantıları engeller, bununla birlikte içerde
İnternetteki servislere bağlanmanıza izin verirsiniz.
tcp_wrappers´ın diğer bir kaç diğer servis dışında,
sadece inetd tarafından çalıştırılan servisleri
koruduğunu unutmayın. Makinenizde çalışan pekala diğer
servisler de olabilir. netstat -ta komutunu kullanarak makinenizde sunulan tüm
servislerin bir listesini görebilirsiniz.
8.3 DNS Bilgisinin Doğrulanması
Ağınızdaki bütün bilgisayarların DNS bilgisinin
güncel tutulması, güvenliğin artırılmasında
yardımcı olabilir. Eğer izinsiz bir bilgisayar ağınıza
bağlanırsa, DNS girişinin olmamasından tanıyabilirsiniz.
Bir çok serviste, sadece geçerli bir DNS girişi olduğunda
bağlantıya izin verilmesi şeklinde bir yapılandırma
gerçekleştirmek mümkündür.
8.4 identd
identd, inetd sunucunuzun dışında çalışan küçük
bir programdır. Hangi kullanıcının hangi TCP servisini çalıştırdığını
izler, ve istendiğinde rapor verir.
Bir çok kişi identd´nin yararlılığını
yanlış anlamakta, dolayısıyla kapatmakta veya site dışı
tüm isteklerin önünü kesmektedir. identd, uzak sitelere
yardım etmek için değildir. Uzak identd servisinden alınan
verinin doğru olup olmadığını bilmenin bir yolu yoktur.
identd isteklerinde kimlik doğrulama yoktur.
O zaman neden çalıştırmak isteyebilirsiniz? Çünkü
size yardım eder, ve izlemede diğer bir veri-noktasıdır.
Eğer bozulmamışsa, bilirsiniz ki identd servisiniz uzak sitelere
TCP servisini kullanan kullanıcı ismi ya da kullanıcı kimliğini
bildirmektedir. Uzak sitenin sisyönü gelir ve sisteminizdeki kullanıcının
sitelerini kırmaya çalıştığını söylerse,
kolaylıkla bu kullanıcıya karşı tavır alabilirsiniz.
identd çalıştırmıyorsanız, çok ama çok
fazla günlük dosyasına bakmanız, ve o anda kimin sistemde
olduğunu bulmanız gerekir, genelde bu, kullanıcının
kim olduğunun belirlenmesini çok daha uzatır.
Çoğu dağıtımla birlikte gelen identd, bir çok
kişinin tahmin ettiğinden çok daha yapılandırılabilir
durumdadır. Belirli kullanıcılar için kapatabilir (bir .noident
dosyası yaratabilirler), bütün identd isteklerinin günlüğünü
tutabilir (öneriyoruz), hatta identd tarafından döndürülen
bilginin kullanıcı ismi yerine kullanıcı kimliği olmasını
ya da NO-USER (KULLANICI-YOK) olmasını sağlayabilirsiniz.
8.5 SATAN, ISS, ve Diğer Ağ Tarayıcıları
Makinelerde veya ağlarda port ve servis tabanlı tarama yapan bir kaç
farklı yazılım paketleri mevcut. SATAN, ISS, ve Nessus, iyi bilinenlerden
bazıları. Bu yazılımlar hedef makineye bağlanır,
ve hangi servisin çalıştığını belirlemeye
çalışır. Bu bilgiye dayanarak, makinedeki servislerin bir
açığı olup olmadığını söyleyebilirsiniz.
SATAN (Security Administrator´s Tool for Analyzing Networks - Ağların
Çözümlenmesi İçin Güvenlik Yöneticisi Aracı).
Herhangi bir makine veya ağda hafif, orta, veya güçlü kontroller
yapmak üzere yapılandırılabilir. SATAN ile makinenizi veya
ağınızı tarayarak bulduğu sorunları düzeltmek
iyi bir fikirdir. SATAN´ı metalab´dan veya tanınmış
başka bir FTP veya WWW sitesinden aldığınızdan emin
olun. Çünkü SATAN´ın İnternet üzerinde dolaşan
bir de truva atı kopyası mevcut: http://www.trouble.org/~zen/satan/satan.html.
SATAN oldukça uzun bir süredir güncellenmiyor ve aşağıdaki
diğer bazı araçlar daha çok işe yarayabilir.
ISS (Internet Security Scanner - İnternet Güvenlik Tarayıcı),
başka bir port-tabanlı tarayıcıdır. Satan´dan
daha hızlıdır, dolayısıyla büyük ağlar
için daha uygun olabilir. Bununla birlikte SATAN daha fazla bilgi verme
eğilimindedir.
Abacus, bilgisayar-tabanlı güvenlik ve izinsiz giriş belirleme
aracıdır. İnternet sayfasında daha fazla bilgi bulabilirsiniz:
http://www.psionic.com/abacus
SAINT, SATAN´ın güncellenmiş bir sürümü.
WWW-tabanlı ve SATAN´dan daha çok güncel testlere sahip.
Daha fazla bilgi için: http://www.wwdsi.com/saint
Nessus, ücretsiz bir güvenlik tarayacıdır. GTK çizgesel
arabirimi ile kolay kullanıma sahiptir. Ayrıca yeni port-tarayan testler
için çok hoş bir eklenti ayar sitemi birlikte tasarlanmıştır.
Daha fazla bilgi için: http://www.nessus.org/
Port Taramalarını Belirleme
SATAN, ISS ve diğer tarayıcı yazılımların yoklamaları
durumunda sizi uyaracak bazı araçlar da vardır. Bununla birlkite,
eğer tcp_wrappers kullanıyor ve günlük dosyalarınıza
düzenli olarak bakıyorsanız, bu tür yoklamaları farketmeniz
zor olmaz. En düşük ayarda bile SATAN Red Hat günlüklerinde
iz bırakır.
Ayrıca gizli port tarayıcıları da vardır. TCP ACK biti
1 olan bir paket (bağlantı kurulurken yapıldığı
gibi) büyük olasılıkla paket-süzen bir ateşduvarını
aşacaktır. Kurulmuş hiçbir bağlantısı olmayan
bir porttan döndürülen RST paketi, o portta hayat olduğunun
bir kanıtı olarak görülebilir. TCP örtü programlarının
bunu farkedeceğini sanmıyorum.
8.6 sendmail, qmail ve MTA´lar
Sağlayabileceğiniz en önemli servislerden biri posta servisidir.
Ne yazık ki, saldırıya en korumasız olanlardan biri de budur.
Bunun sebebi basitçe yerine getirmek zorunda olduğu görevlerin
sayısı ve bunlar için gereken yetkilerdir.
sendmail kullanıyorsanız, güncel sürümlerini takip
etmek çok önem taşıyor. sendmail´in güvenlik açıkları
konusunda çok uzun bir tarihi var. Daima en güncel sürümünü
çalıştırdığınızdan http://www.sendmail.org/
adresine bakarak emin olun.
Unutmayın ki mektup atabilmeniz için sendmail´in çalışıyor
olması gerekmiyor. Ev kullanıcı iseniz, sendmail´i bütünüyle
kapatabilir, ve posta istemcinizi mektup göndermek amacıyla kullanabilirsiniz.
Sendmail başlangıç dosyasındaki -bd bayrağını
kaldırarak posta için dışarıdan gelen istekleri engellemeniz
de mümkün. Diğer bir deyişle, başlangıç dosyanızda
sendmail´i aşağıdaki komut ile çalıştırabilirsiniz:
# /usr/lib/sendmail -q15m
Bu, sendmail´in mektup kuyruğunda bekleyen ve ilk girişimde dağıtılamayan
tüm mesajları 15 dakikada bir boşaltmasını sağlar.
Bir çok yönetici sendmail yerine diğer posta dağıtım
araçlarını kullanmayı tercih ediyor. Siz de sendmail yerine
qmail kullanmayı düşünebilirsiniz. qmail, temelde güvenlik
düşüncesi ile sıfırdan tasarlanmıştır.
Hızlıdır, kararlıdır, ve güvenlidir. Qmail http://www.qmail.org/
adresinde bulunabilir.
Qmail ile doğrudan rekabet içinde olan bir başka program da,
tcp_wrappers ve diğer güvenlik araçlarının yazarı
tarafından yazılmış olan postfix. Önceki vmailer isimli,
ve sponsorluğu IBM tarafından yapılan bu program da sıfırdan
güvenlik düşünülerek yazılmış bir posta
dağıtım aracı. Postfix hakkında daha fazla bilgiyi
http://www.linux.org.tr/www.postfix.org adresinden bulabilirsiniz.
8.7 Servis Reddi Saldırıları
Bir Servis Reddi saldırısı, saldırganın bazı kaynakları
aşırı meşgul etmesi yoluyla servisin meşru isteklere
cevap verememesini, veya meşru kullanıcıların makineye erişimlerinin
reddedilmesini sağlamasıdır.
Servis reddi saldırıları son yıllarda oldukça fazlalaştı.
Bazı yeni ve gözde olanları aşağıda listelenmiştir.
Unutmayın ki bunlar sadece bir kaç örnek, her geçen gün
yenileri ortaya çıkıyor. Daha güncel bilgi için Linux
güvenlik ve bugtraq listelerine ve arşivlerine göz atın.
SYN Seli - SYN seli, bir ağ servis reddi saldırısıdır.
TCP bağlantılarının yaratılma şeklindeki bir boşluktan
yararlanır. Yeni Linux çekirdekleri (2.0.30 ve yukarısı)
SYN seli saldırılarının insanların makinenize ya da
servislerine erişimini reddetmesini engellemek için yapılandırılabilir
seçeneklere sahiptir. Uygun çekirdek koruma seçenekleri için
Çekirdek Güvenliği´ne bakın.
Pentium F00F Böceği - Yakın zamanda, gerçek bir Intel Pentium
işlemcisine gönderilen bazı Assembly programlama dili kodlarınının
makineyi yeniden başlatabileceği keşfedildi. Bu, çalışan
işletim sisteminin ne olduğu farketmeksizin, Pentium işlemcili
(Pentium Pro, Pentium III, veya Pentium benzeri işlemciler değil)
her makineyi etkiliyor. Linux çekirdeklerinin 2.0.32 ve yukarısı
sürümlerinde bu böceğin makineyi kilitlemesini engelleyen
bir önlem mevcut. Kernel 2.0.33, bu çekirdek çözümünün
gelişmiş bir sürümünü içeriyor, 2.0.32´ye
tercih edilmesi önerilir. Eğer Pentium işlemci üzerinde
çalışıyorsanız, hemen güncellemelisiniz! (Ç.N.:
Bu tür böcekler, çekirdeğin en son sürüm olması
ile engellenebilir. Bu çeviri yapıldığında en son çekirdek
sürümü 2.4.12 idi).
Ping Seli - Ping seli, basit bir kaba-kuvvet servis reddi saldırısı.
Saldırgan makinenize ICMP paketlerinden oluşan bir sel gönderir.
Eğer bunu bant genişliği sizinkinden daha iyi olan bir bilgisayardan
yapıyorsa, makineniz ağ üzerine hiçbir şey yollayamaz
hale gelecektir. Bu saldırının bir değişik şekli,
şirince, dönüş adresi sizin makinenizin IP numarası
olan ICMP paketleri gönderir, böylelikle yollanan sel baskınının
kimin tarafından olduğunun belirlenmesi de güçleşir.
Şirin saldırısı ile ilgili daha fazla bilgiyi http://www.quadrunner.com/~chuegen/smurf.txt
adresinde bulabilirsiniz.
Eğer bir ping seli saldırısına maruz kalırsanız,
paketlerin nerden geldiğini (ya da nerden geliyor gibi göründüğünü)
belirlemek için tcpdump gibi bir araç kullanın, ve servis sağlayıcınızla
bu bilgi ile birlikte iletişim kurun. Ping selleri, en kolay şekilde
yöneltici düzeyinde veya bir ateşduvarı kullanarak durdurulabilir.
Ölüm Pingi - Ölüm pingi saldırısı, çekirdekte
bulunan, ICMP ECHO REQUEST paketlerini tutmakla görevli veri yapısına
uymayacak kadar büyük bir paket gönderir. Tek ve büyük
bir paket (65,510 bayt) göndererek çoğu sistemin kilitlenmesine,
hatta göçmesine yol açan bu sorun kısa zamanda Ölüm
Pingi olarak adlandırılmıştır. Bu sorun çok uzun
süre önce çözülmüştür, ve artık
endişelenecek bir şey yoktur.
Gözyaşı / Yeni Gözyaşı - En yeni açıklardan
birisi, Linux ve Windows platformlarındaki IP parçalama kodunda bulunan
bir böcektir. Çekirdek 2.0.33 sürümünde onarılmış,
ve onarımdan yararlanmak için herhangi bir çekirdek derleme-zamanı
seçeneğini seçmeye gerek yoktur. Yeni Gözyaşı
açığına karşı ise, Linux´ta görünüşte
böyle bir tehlike yoktur.
Açıklardan yararlanan kodları, ve nasıl çalıştıkları
konusundaki detaylı açıklamaları http://www.rootshell.com/
adresinde, arama motorunu kullanarak bulabilirsiniz.
8.8 NFS (Ağ Dosya Sistemi) Güvenliği
NFS, yaygın olarak kullanılan bir paylaşım protokolüdür.
nfsd ve mountd çalıştıran sunucuların dosyasistemlerinin
tamamının, çekirdeklerinde NFS dosyasistemi desteği bulunan
(veya Linux makine değilse diğer istemci desteği bulunan) diğer
makinelere dışsatımını sağlar. mountd, /etc/mtab
dosyasındaki bağlanmış dosyasistemlerini takip eder, ve
showmount komut ile bunları görüntüler.
Çoğu site NFS´i kullanıcılara ev dizinleri vermek için
kullanır, böylelikle bilgisayar demetindeki hangi makineye giriş
yaparlarsa yapsınlar, evlerindeki dosyalara ulaşabilirler.
Dosyasistemlerinin dışa açılmasında küçük
bir miktar güvenliğe izin verilir. nfsd sunucunuzun uzak root kullanıcısını
(uid=0) nobody kullanıcısına karşılık getirmesini,
böylelikle dışa açılan tüm dosyalara erişiminin
reddedilmesini sağlayabilirsiniz. Bununla birlikte, bireysel kullanıcılar
kendi dosyalarına (en azından uid´si aynı olanlara) erişebileceği
için uzak root kullanıcısı, kullanıcıların
hesaplarına giriş veya su yaparak onların dosyalarına erişebilir.
Bu, dışa açtığınız dosyasistemlerini bağlayabilen
bir saldırgan için sadece küçük bir engeldir.
Eğer kaçınılmaz şekilde NFS kullanmanız gerekiyorsa,
dosyasistemlerini gerçekten sadece gereken makinelere açtığınıza
emin olun. Asla kök dizininizin tamamını dışa açmayın;
sadece gereken dizinleri açın.
NFS hakkında daha fazla bilgi için, http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html
adresindeki NFS HOWTO belgesine bakabilirsiniz.
8.9 NIS (Ağ Bilgi Servisi) (Önceki Sarı Sayfalar, YP).
Ağ Bilgi Servisi (YP), bir makineler grubu arasında bilginin dağıtılması
için bir yoldur. NIS sunucusu bilgi tablolarını tutar ve onları
NIS harita dosyalarına çevirir. Bu haritalar daha sonra ağ üzerinde
NIS istemci makinelerinin giriş, parola, ve ev dizinleri ile kabuk bilgilerinin
(hepsi standart bir /etc/passwd dosyasındadır) alınmasına
hizmet eder. Bu, kullanıcının bir makinede parolasını
değiştirdiğinde diğer bütün NIS alanındaki
makinelerde de bu değişikliğin geçerli olmasını
sağlar.
NIS kesinlikle güvenli değildir. Hiç bir zaman olması düşünülmemiştir.
Kolay kullanılır ve yararlı olması amacı güdülmüştür.
NIS alanınızın adını tahmin edebilen (İnternette
herhangi bir yerdeki) herkes passwd dosyasınızın bir kopyasını
alabilir, ve Crack ve John the Ripper programlarını kullanıcılarınızın
parolaları üzerinde kullanabilir. Ayrıca, NIS´i taklit etmek
ve her çeşit yaramaz numaralar yapmak mümkündür. Eğer
NIS´i kullanmak zorundaysanız, tehlikelerinin de farkında olduğunuzdan
emin olun.
NIS´in yerine geçen çok daha güvenli bir program vardır:
NIS+ Daha fazla bilgi için NIS HOWTO belgesine bir göz atın:
http://metalab.unc.edu/mdw/HOWTO/NIS-HOWTO.html
8.10 Ateşduvarları
Ateşduvarı, yerel ağınızın içine giren ve
dışına çıkan bilgiyi denetim altında tutmanın
bir yoludur. Tipik bir ateşduvarı, İnternete ve yerel ağınıza
bağlanmış durumdadır, ve yerel ağınızdan
İnternete tek çıkış yolu ateşduvarının
içinden geçmektir. Bu yolla ateşduvarı yerel ağdan
İnternete ya da İnternetten yerel ağa nelerin geçtiğini
denetleyebilir.
Bir kaç ateşduvarı ve kurma yöntemi vardır. Linux makinelerden
oldukça iyi ateşduvarı olur. Ateşduvarı kodu 2.0 ve
daha yukarı sürüm çekirdeğin içine tümleşik
olabilir. Kullanıcı araçları, 2.0 çekirdek için
ipfwadm, ve 2.2 çekirdek için ipchains, izin verdiğiniz ağ
trafiği tiplerini çalışma kesilmeksizin değiştirebilmenizi
sağlarlar.
Ateşduvarları, ağınızı güvenli hale getirmede
çok yararlı ve önemli bir tekniktir. Bununla birlikte, bir ateşduvarınız
varsa, arkasındaki makinelerin güvenliğini sağlamak gerekmediğini
asla düşünmeyin. Bu ölümcül bir hatadır.
Ateşduvarları ve Linux hakkında daha fazla bilgi için metalab
arşivindeki Firewall-HOWTO belgesine bir göz atın: http://metalab.unc.edu/mdw/HOWTO/Firewall-HOWTO.html
Daha fazla bilgi için IP-Maskeleme mini-nasıl belgesine de göz
atabilirsiniz: http://metalab.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html
ipfwadm (ateşduvarınızın ayarlarını değiştirmenizi
sağlayan araç) hakkında daha fazla bilgi ana sayfasında
bulunabilir: http://www.xos.nl/linux/ipfwadm/
Eğer ateşduvarları ile daha önce hiç tecrübeniz
yoksa, ve basit bir güvenlik politikasından daha fazlası için
kurmayı planlıyorsanız, O´Reilly and Associatesin the Firewalls
(Ateşduvarları) kitabını, ya da İnternette bulunan
diğer belgeleri okumanız şarttır. Daha fazla bilgi için
http://www.ora.com/ adresine bir göz atın. NIST (The National Institute
of Standards and Technology - Ulusal Standard ve Teknoloji Enstitüsü),
ateşduvarları üzerine harika bir belge hazırlamıştır.
1995 tarihli olmasına rağmen, hala iyidir. Bu belgeyi http://csrc.nist.gov/nistpubs/800-10/main.html
adresinde bulabilirsiniz. Ayrıca ilgili olarak:
The Freefire Project (Özgür Ateş Projesi) -- Özgür
ateşduvarı araçlarının bir listesi: http://sites.inka.de/sites/lina/freefire-l/index_en.html
SunWorld Ateşduvarı Tasarımı -- O´Reilly kitabının
yazarları tarafından hazırlanan bu belge farklı ateşduvarı
tipleriyle ilgili başlangıç düzeyinde bilgi niteliğini
taşıyor: http://www.sunworld.com/swol-01-1996/swol-01-firewall.html
Mason - Linux için otomatik ateşduvarı oluşturucusu. Bu,
ağınızda yapmanız gereken şeyleri siz yaptıkça
öğrenen bir ateşduvarı betiğidir. Daha fazla bilgi:http://www.pobox.com/~wstearns/mason/
8.11 IP Chains - Linux 2.2.x Çekirdek ile Ateşduvarı Oluşturma
Linux IPChains, Linux 2.0 ateşduvarı sisteminin 2.2 çekirdek
için güncellenmiş halidir. Önceki uygulamadan çok daha
fazla özelliği vardır, bunların arasında:
Daha esnek paket yönetimi
Daha karmaşık muhasebe
Basit politika değişikliklerinin otomatik olarak değiştirilebilmesi
Parçaların açıkça engellenebilmesi, reddedilebilmesi
vb.
Şüpheli paketlerin günlüğünün tutulması
ICMP/TCP/UDP dışındaki diğer protokolleri de idare edebilmesi.
sayılabilir.
Şu anda 2.0 çekirdeğinizde ipfwadm kullanıyorsanız,
ipfwadm komut biçimini ipchains´de kullanılabilecek biçime
dönüştüren betikler mevcuttur.
Daha fazla bilgi için IP Chains NASIL belgesini okuduğunuzdan emin
olun: http://www.adelaide.net.au/~rustcorp/ipfwchains/ipfwchains.html
8.12 VPN´ler - Sanal Özel Ağlar
VPN´ler, var olan bir ağın üstüne sanal bir ağ
kurmanın bir yoludur. Bu sanal ağ, bazı durumlarda şifreli
olup, sadece ağa katılmış olan ve kim olduğu bilinen
bilgisayarlar arasındaki trafiğe izin verir. VPN´ler, çoğunlukla
evde çalışan birini, herkese açık İnternet üzerinden
dahili bir şirket ağına bağlamak için kullanılır.
Eğer bir Linux maskeleme ateşduvarınız varsa ve MS PPTP
paketleri (Microsoft´un VPN noktadan-noktaya ürünü) geçirmeniz
gerekiyorsa, bunu yapabilmeniz için gereken bir çekirdek yaması
mevcut: ip-masq-vpn.
Linux´taki VPN çözümlerinden bir kaçı:
vpnd. Bkz. http://sunsite.auc.dk/vpnd/.
Free S/Wan, http://www.xs4all.nl/~freeswan/
VPN oluşturmak için ssh kullanılabilir. Daha fazla bilgi için
VPN mini-nasıl belgesine bakın.
vps (virtual private server - sanal özel sunucu): http://www.strongcrypto.com/.
Daha fazla bilgi ve referans için IPSEC ile ilgili bölüme de
bakın.
9. Güvenlik Hazırlığı (Bağlanmadan Önce)
Tamam, sisteminizi gözden geçirdiniz, ve olabildiğince güvenli
olduğunu belirlediniz, ve bağlanmaya hazırsınız. Sisteminize
yapılacak olası izinsiz giriş durumunda, giren kişiyi çabucak
etkisiz hale getirerek sisteminizi tekrar çalışır duruma
döndürebilmek için şimdi yapmanız gereken bir kaç
hazırlık var.
9.1 Makinenizin Tam Yedeğini Alın
Yedekleme yöntemleri ve depolama hakkında bir tartışma bu
belgenin konusu ötesinde, ama yedekleme ve güvenlik ile ilgili bir
kaç söz söylenebilir:
Eğer bir sabit disk bölümünde 650 MB veriden daha azı
varsa, verinizi CD-R üzerine kopyalamak iyi bir yoldur (daha sonra kurcalanması
da zordur, hem uygun şekilde saklanırsa uzun süreli bir ömrü
vardır). Manyetik bant ve diğer yeniden-yazılabilir ortamlar,
yedekleme tamamlanır tamamlanmaz yazmaya karşı korunmalı,
ve değiştirilmenin engellenmesi için doğrulanmalıdır.
Yedeklerinizi, güvenli ve bağlı olmayan bir alanda sakladığınızdan
emin olun. İyi bir yedeğin anlamı, sistemi iyi bir noktadan tekrar
yerine koyabilir olmanızdır.
9.2 İyi Bir Yedekleme Çizelgesi Seçimi
6-bantlık bir dönüşümün bakımı kolaydır.
4 bant hafta içi, 1 bant çift Cumalar için, bir bant da tek Cumalar
için olabilir. Her gün bir artımlı yedekleme uygulayın,
ve uygun Cuma bandında tam yedek alın. Sisteminizde özellikle
önemli değişiklikler yapar veya bazı önemli veri eklemesi
yaparsanız da tam yedek almak iyi olabilir.
9.3 RPM ve Debian Dosya Veritabanınızı Yedekleyin
Bir izinsiz giriş durumunda, RPM veritabanınızı, aynı
tripwire gibi kullanabilirsiniz, veritabanının da değiştirilmediğinden
emin olmanız durumunda elbette. RPM veritabanınızı bir diskete
kopyalamalı, ve daima bağlantısız şekilde tutmalısınız.
Debian dağıtımında da benzer bir şeyler olması
muhtemeldir.
/var/lib/rpm/fileindex.rpm ve /var/lib/rpm/packages.rpm dosyaları büyük
olasılıkla tek bir diskete sığmayacaktır, fakat sıkıştırılırlarsa,
her biri bir diskete sığabilir.
Şimdi, sisteminizin güvenliği bozulduğunda,
root# rpm -Va
komutunu, sistem üzerindeki her bir dosyayı doğrulamak amacıyla
kullanabilirsiniz. rpm man sayfasına bir bakın, bir kaç diğer
seçenek sayesinde bu işlemi daha az şey söyleyerek yapmasını
sağlayabilirsiniz. Unutmayın ki bunu yaparken RPM programınızın
da bozulmadığından emin olmalısınız.
Bunun anlamı, sisteminize her yeni RPM eklendiğinde, RPM veritabanının
da yeniden arşivlenmesi gerekecek. Getirileri ve götürüleri
karşılaştıracak ve karar verecek olan sizsiniz.
9.4 Sistem Hesap Verilerinizi Takip Edin
syslog´dan gelen bilginin bozulmaması çok önemlidir. /var/log
altındaki dosyaların sadece sınırlı sayıda kullanıcı
tarafından okunabilmesi ve yazılabilmesi iyi bir başlangıçtır.
Gözünüz orda yazılı olanlar, özellikle auth kısmındakiler
üstünde olsun. Örneğin birden çok giriş başarısızlıkları,
bir kırma girişiminin göstergesi olabilir.
Günlük dosyanızın nerde olduğu dağıtımınıza
bağlıdır. Linux Dosyasistem Standartına uyan bir Linux sisteminde,
örneğin Red Hat´te, /var/log´un altına bakabilir, messages,
mail.log ve diğer dosyaları gözden geçirebilirsiniz.
Kendi dağıtımızın nereye günlük tuttuğunu/etc/syslog.conf
dosyasına bakarak bulabilirsiniz. Bu dosya syslogd´ye (sistem günlük
sunucu programı) çeşitli mesajların günlüğünün
nerelerde tutulması gerektiğini söyler.
Ayrıca günlükleri başa döndüren betik veya sunucu
programı logları daha uzun süre tutması için yapılandırabilirsiniz,
böylelikle onları incelemek için daha fazla zamanınız
olur. Red Hat dağıtımında logrotate paketine bir göz
atın. Diğer dağıtımlar da muhtemelen benzer bir işleme
sahiptirler.
Günlük dosyalarınız kurcalandıysa, tam olarak ne çeşit
şeylerin ne zaman kurcalanmaya başladığını belirlemeye
çalışın. Hesap bilgilerine ulaşılamayan geniş
zaman aralıkları var mı? Kurcalanmamış günlük
dosyaları için yedekleme verinize (eğer varsa) bakmak iyi bir
fikirdir.
Sisteme izinsiz girenler, tipik olarak izlerini saklamak için günlük
dosyalarını değiştirir, yine de garip olguları belirlemek
amacıyla göz atmak gerekir. İzinsiz giren kişinin, root
hesabı için giriş kazanmaya çalıştığını,
ya da bir programdan yararlandığını belirleyebilirsiniz
belki de. Belki de izinsiz giren kişinin, günlük dosyalarını
değiştirmeye zaman bulamadığı kısımları
görebilirsiniz.
Ayrıca, su kullanarak kullanıcı değiştirme girişimleri,
sisteme giriş girişimleri, ve diğer kullanıcı hesap
bilgileri de dahil olmak üzere tüm auth verisini diğer günlük
verisinden ayrı tutmalısınız.
Mümkünse syslog´u, verinin bir kopyasını güvenli
bir sisteme göndermek üzere yapılandırın. Bu, izinsiz
giren kişinin, login/su/ftp/vb girişimlerinin izlerini ortadan kaldırmasını
engelleyecektir. syslog.conf man sayfasında @ seçeneğine bir
göz atın.
İnternette daha gelişmiş syslogd programları da vardır:
http://www.core-sdi.com/ssyslog/ adresinde Secure Syslog (Güvenli Syslog)
programı mevcuttur. Secure Syslog, syslog verinizi şifreleyebilmenizi
ve kimsenin değiştirmediğinden emin olmanızı sağlar.
Daha fazla özellikli bir diğer syslogd ise syslog-ng adresinde yer
almaktadır. Günlük tutmada daha fazla esnekliğe sahiptir
ve ayrıca uzak syslog akışınızın da değiştirilmesini
engeller.
Son olarak, eğer okuyan kimse yoksa günlük dosyalarının
da fazla bir yararı yoktur. Arada bir günlük dosyalarınıza
bakmak için zaman ayırın, ve olağan bir günde nasıl
göründükleri hakkında bir fikir sahibi olun. Bunu bilmek,
olağan dışı şeyleri farketmede oldukça yardımcı
olacaktır.
9.5 Bütün Yeni Sistem Güncellemelerini Uygulayın
Çoğu kullanıcı Linux´u bir CD-ROM´dan kurar. Güvenlik
onarımlarının hızlı doğası sebebiyle, sürekli
yeni (onarılmış) programlar çıkar. Makinenizi ağa
bağlamadan önce, dağıtımınızın ftp sitesine
göz atmak ve CD-ROM´dan beri güncellenen tüm paketleri almak
iyi bir fikirdir. Çoğu zaman bu paketler önemli güvenlik
onarımlarını içerir, dolayısıyla bu güncelleme
paketlerini kurmak iyi bir fikirdir.
10. Güvenlik Bozukluğu Sırasında ve Sonrasında Neler
Yapılabilir
Evet, burdaki (veya başka bir yerdeki) önerileri dinlediniz ve bir
sistem kırılma durumunu belirlediniz. İlk yapılacak şey,
soğukkanlılığı korumaktır. Aceleci davranışlar
saldırganın neden olduğundan daha çok zarara yol açabilir.
10.1 Güvenlik Bozukluğu Sırasında
Güvenlik bozukluğunu, olduğu sırada belirlemek ağır
bir yükümlülük olabilir. Vereceğiniz tepki büyük
sonuçlar doğurabilir.
Gördüğünüz bozukluk fiziksel ise, olasılıklar,
birinin evinize, ofisinize veya laboratuvarınıza girmiş olabileceğidir.
Yerel yetkililere haber vermelisiniz. Bir laboratuvarda, birinin kasayı
açmaya veya makineyi yeniden başlatmaya çalıştığını
belirlemiş olabilirsiniz. Yetkileriniz ve yordamlarınıza bağlı
olarak, engel olmaya çalışabilir veya yerel güvenlik görevlilerinizle
iletişime geçebilirsiniz.
Eğer yerel bir kullanıcının güvenliğinizi ihlal
ettiğini farkettiyseniz, ilk yapılacak şey, onların aslında
sandığınız kişi olduklarının doğrulanmasıdır.
Sisteme nerden giriş yaptıklarını kontrol edin. Olağan
durumlarda giriş yaptıkları yer ile aynı mı? Hayır
mı? O zaman temasa geçmenin elektronik olmayan bir yolunu kullanın.
Örneğin, telefon ile arayın ya da konuşmak için ofislerine/evlerine
gidin. Eğer sistemde oldukları konusunda anlaşmaya varabilirseniz,
ne yaptıklarını açıklamalarını veya yaptıkları
şeye son vermelerini isteyebilirsiniz. Eğer sistemde değillerse,
ve ne söylediğiniz hakkında bir fikirleri yoksa, olasılıkla
bu olayın daha fazla araştırılması gerekecek. Bu tür
olayları iyice araştırın, ve bir suçlama yapmadan önce
fazlasıyla bilgi sahibi olun.
Eğer bir ağ güvenliği ihlali belirlediyseniz, ilk yapılacak
şey (yapabiliyorsanız), ağınızın bağlantısını
kesmektir. Modem ile bağlanıyorlarsa, modem kablosunu çıkarabilir,
Ethernet yoluyla bağlanıyorlarsa Ethernet kablosunu çıkarabilirsiniz.
Bu onların daha fazla zarar vermesini engelleyecek, ve yakalandıklarından
çok bir ağ problemi olduğuna inanmalarına yol açacaktır.
Eğer ağın bağlantısını kesemiyorsanız
(yoğun kullanımlı bir siteniz varsa, veya makinelerinizin fiziksel
denetimi elinizde değilse), en iyi diğer bir adım, izinsiz giriş
yapan kişinin sitesinden erişimi tcp_wrappers veya ipfwadm kullanarak
reddetmektir.
Eğer izinsiz giren kişinin sitesinden erişimi reddedemeyecek
durumda iseniz, kullanıcının hesabını kilitlemek zorunda
kalabilirsiniz. Unutmayın ki hesabı kilitlemek kolay bir iş değildir.
Düşünmeniz gerekenler arasında .rhosts dosyaları, FTP
erişimi ve olası başka arka kapılar sayılabilir.
Yukarıdakilerden birini yaptıktan sonra (ağın bağlantısını
kestiniz, siteden erişimi yasakladınız ve/veya hesaplarını
etkisiz hale getirdiniz), yapmanız gereken o kullanıcının
çalıştırdığı tüm işlemleri öldürmek
ve sistem dışına çıkarmaktır.
Sonraki bir kaç dakika için sitenizi izleyebilirsiniz, çünkü
saldırgan tekrar girmeyi deneyecektir. Belki de farklı bir hesap kullanarak
ve/veya farklı bir ağ adresinden.
10.2 Güvenlik Bozukluğu Sonrasında
Evet, diyelim ki gerçekleşmiş bir güvenlik ihlalini veya
bozukluğunu belirlediniz ve saldırganı sisteminiz dışına
(umarım) attınız. Sırada ne var?
Deliği kapatmak
Eğer saldırganın sisteminize ne şekilde girdiğini belirleyebildiyseniz,
o deliği kapatmayı denemelisiniz. Örneğin, kullanıcı
giriş yapmadan önce belki de günlükte bir takım FTP
kayıtları gördünüz. FTP servisini kapatıp güncel
bir sürümünün olup olmadığına bakabilir,
veya listelerde herhangi bir onarım arayabilirsiniz.
Bütün günlük dosyalarınızı gözden geçirin,
ve güvenlik liste ve sayfalarınızı bir ziyaret ederek onarabileceğiniz
herhangi bir yeni açık olup olmadığını belirleyin.
Caldera güvenlik onarımlarını http://www.caldera.com/tech-ref/security/
adresinde bulabilirsiniz. Red Hat henüz güvenlik onarımlarını
böcek onarımlarından ayırmadı, fakat dağıtım
hata düzelten belgeleri http://www.redhat.com/errata adresinden ulaşılabilir
durumda.
Debian artık bir güvenlik mektup listesi ve WWW sayfasına sahip.
Daha fazla bilgi için: http://www.debian.org/security/ adresine bakın.
Eğer bir dağıtımcı firma bir güvenlik güncellemesi
çıkardıysa, diğer çoğu Linux dağıtımcılarının
da çıkarması olasılığı çok yüksektir.
Artık bir Linux güvenlik izleme projesi var. Düzenli bir şekilde
bütün kullanıcı gereçlerini deniyor ve olası güvenlik
açıkları ve taşmalarını araştırıyorlar.
Duyurularından:
OpenBSD kadar güvenli olabilme bakış açısıyla
bütün Linux kaynaklarını sistemli bir şekilde izleme
girişimimiz var. Bazı problemleri belirlemiş (ve onarmış)
durumdayız, fakat daha fazla yardıma da açığız.
Liste kısıtlı bir liste değil ve aynı zamanda genel
güvenlik tartışmaları için de yararlı bir kaynak.
Liste adresi: [email protected]. Abone olmak için [email protected]
adresine bir mektup gönderin
Saldırganın girişini kilitleyerek engellemezseniz, muhtemelen
geri gelecektir. Dönüşü sadece sizin makinenize değil,
ağınızdaki herhangi bir yere olabilir. Eğer bir paket koklayıcı
çalıştırıyorduysa, diğer makinelere erişim
sağlamış olmaları da muhtemeldir.
Hasar Tespiti
Yapılacak ilk iş hasarın tespit edilmesidir. Tam olarak bozulan
nedir? Tripwire gibi bir bütünlük inceleyici çalıştırıyorsanız,
bir bütünlük taraması için kullanabilirsiniz; neyin
bozulduğunu bulmanıza yardımcı olacaktır. Kullanmıyorsanız,
tüm önemli verinizi kendiniz incelemek zorunda olacaksınız.
Linux sistemlerinin gün geçtikçe daha kolay kuruluyor olması
nedeniyle, yapılandırma dosyalarınızı saklamayı,
disklerinizi temizleyip, yeniden kurmayı, sonra da kullanıcı
ve yapılandırma dosyalarınızı yedeklerden yerine koymayı
düşünebilirsiniz. Bu yeni ve temiz bir sisteme sahip olduğunuzdan
emin olmanızı sağlayacaktır. Eğer bozuk sistemden bazı
dosyalar almak durumunda kalırsanız, çalıştırılabilir
dosyalar konusunda özellikle dikkatli olun, çünkü izinsiz
giriş yapan kişi tarafından konulmuş truva atları olabilir.
İzinsiz giren kişinin root erişimi sağlaması durumunda
yeniden kurulum zorunlu olarak düşünülmelidir. Ek olarak,
var olan kanıtları saklamak isteyebilirsiniz, dolayısıyla
yedek bir disk bulundurmak mantıklıdır.
Düşünmeniz gereken bir diğer konu da güvenlik bozukluğunun
ne kadar zaman önce gerçekleştiği, ve yedeklerdeki bilgilerin
hasarlı çalışmaları içerip içermediğidir.
Şimdi yedekler konusu.
Yedekler, Yedekler, Yedekler!
Düzenli yedekleme, güvenlik konularında bir nimettir. Sisteminizin
güvenliği bozulduysa, gereken veriyi yedeklerden yerine koyabilirsiniz.
Elbette, bazı veri saldırgan için de değerlidir, sadece
yok etmek değil, bilgiyi çalma ve kendi kopyalarını oluşturma
eylemlerini de gerçekleştirebilirler. Ama en azından verinin
bir kopyasını elinizde bulundurmuş olursunuz.
Kurcalanan bir dosyayı yerine koymadan önce, bir kaç yedek öncesine
de bakmalısınız. Saldırgan dosyalarınızı
uzun süre önce bozmuş olabilir ve bozulan dosyaların yedeğini
almış olabilirsiniz!
Elbette, yedeklerle ilgili bir takım güvenlik konuları da vardır.
Yedeklerinizi güvenli bir yerde sakladığınızdan emin
olun. Kimlerin erişimi olduğunu bilin (Eğer bir saldırgan
yedeklerinize ulaşırsa, haberiniz bile olmadan tüm verinize ulaşabilir).
İzinsiz Giren Kişiyi İzleme
Tamam, izinsiz giren kişiyi dışarı attınız, ve
sisteminizi iyileştirdiniz, ama işiniz henüz bitmiş sayılmaz.
Çoğu saldırganın yakalanma olasılığı
düşük olmakla birlikte, saldırıyı rapor etmeliniz.
Saldırıyı, saldırganın sitesindeki yöneticilere
bildirmelisiniz. Bu yönetici bilgisine whois komutuyla ya da Internic veritabanından
ulaşabilirsiniz. Onlara bütün uygun günlük satırlarıyla
tarih ve saat bilgilerini içeren bir e-mektup atabilirsiniz. Saldırgan
hakkında ayırt edici başka herhangi bir şey de belirlediyseniz,
bunu da onlara bildirin. Mektubu gönderdikten sonra (dilerseniz) bir telefon
konuşması da yapabilirsiniz. Eğer o yönetici sizin saldırganınızı
belirlerse, o siteye giriş yaptığı diğer sitenin yöneticisiyle
konuşabilir, ve bu şekilde sürer.
İyi korsanlar, arada pek çok site kullanırlar, bunlardan bazıları
(veya çoğu) güvenliklerinin bozulduğundan dahi habersizdirler.
Bir korsanı ev sistemine kadar izlemeyi denemek zor bir iş olabilir.
Konuştuğunuz sitelerin yöneticilerine karşı nazik olmak,
yardım alma konusunda oldukça yol almanızı sağlayabilir.
Ayrıca, Linux sistem dağıtıcınızı olduğu
kadar, bir parçası olduğunuz (CERT veya benzer) güvenlik
örgütlerini de bu konuda uyarmalısınız
11. Güvenlikle İlgili Kaynaklar
Genel olarak Unix güvenliği, ve özel olarak da Linux güvenliği
ile ilgili ÇOK SAYIDA iyi site vardır. Bir (veya daha fazla) güvenlik
mektup listelerine abone olmak ve güvenlik onarımları hakkında
güncel bilgiye sahip olmak önemlidir. Bunların çoğu
çok yoğun olmayan ve çok bilgilendirici listeler.
11.1 FTP Siteleri
CERT (Computer Emergency Response Team) Bilgisayar Acil Durum Yanıt Takımı´dır.
Çoğunlukla güncel saldırı ve onarımlar hakkında
uyarılarda bulunurlar. Daha fazla bilgi için ftp://ftp.cert.org/ adresine
bakabilirsiniz.
ZEDZ (önceki Replay) (http://www.zedz.net/) arşivi bir çok güvenlikle
ilgili program bulundurur. ABD´nin dışında oldukları
için ABD şifre kısıtlamalarına uymaları da gerekmiyor.
Matt Blaze CFS´nin yazarı ve mükemmel bir güvenlik danışmanı.
Matt´in arşivi ftp://ftp.research.att.com/pub/mab adresinde bulunabilir.
tue.nl, Hollanda´da bulunan büyük bir güvenlik FTP sitesi:
ftp://ftp.win.tue.nl/pub/security/
11.2 WWW Siteleri
The Hacker FAQ, Bilgisayar kurtları hakkında bir SSS: The Hacker FAQ
COAST arşivi çok sayıda Unix güvenlik program ve bilgisini
bulunduruyor: COAST
SuSe Güvenlik Sayfası: http://www.suse.de/security/
Rootshell.com, korsanlar tarafından kullanılan güncel açıkların
neler olduğunu görmek için harika bir site: http://www.rootshell.com/
BUGTRAQ, güvenlik konularında tavsiyeler veren bir site: BUGTRAQ arşivleri
CERT, Bilgisayar Acil Durum Yanıt Takımı, Unix ile ilgili yaygın
saldırılar konusunda tavsiyeler veriyor: CERT Ana Sayfası
Dan Farmer, SATAN´ın ve diğer bir çok güvenlik aracının
yazarı. Ev sitesinde ilginç bazı araştırma bilgileri,
ve diğer güvenlik araçları var: http://www.trouble.org/
The Linux security WWW (Linux Güvenlik WWW Sayfası), Linux güvenliği
ile ilgili bilgiler için iyi bir site: Linux Security WWW
Infilsec, hangi platformun hangi açıklara karşı korunmasız
olduğunu söyleyecek bir motora sahip: http://www.infilsec.com/vulnerabilities/
CIAC, yaygın açıklar konusunda düzenli güvenlik bültenleri
yayımlıyor: http://ciac.llnl.gov/cgi-bin/index/bulletins
Linux PAM için iyi bir başlangıç noktası: http://www.kernel.org/pub/linux/libs/pam/.
Debian projesi, güvenlik onarımları ve bilgi için bir WWW
sayfasına sahip: http://www.debian.com/security/.
Lincoln Stein tarafından yazılan WWW Security FAQ (WWW Güvenlik
SSS), harika bir WWW güvenliği referansı: http://www.w3.org/Security/Faq/www-security-faq.html
11.3 Mektup Listeleri
Bugtraq: Abone olmak için, [email protected] adresine, gövde kısmında
subscribe bugtraq yazan bir mektup atın (arşivler için aşağıdaki
linklere bakın)
CIAC: [email protected] adresine mektup atın. Mesajın GÖVDE
kısmında (Subject, yani Konu kısmında değil) şunlar
bulunmalı:
subscribe ciac-bulletin
Red Hat´te de bir takım mektup listeleri var, en önemlisi redhat-announce
(redhat-duyuru listesi). Güvenlik (ve diğer şeylerin) onarımları
hakkında, çıktıkları anda haber alabilirsiniz. [email protected]
adresine, Konu kısmında
Subscribe
yazılı olan bir mektup atın. Daha fazla bilgi ve arşivler
için http://www.redhat.com/mailing-lists/redhat-announce-list/ adresine
bir göz atın.
Debian, güvenlik onarımlarını kapsayan bir mektup listesine
sahip: http://www.debian.com/security/
11.4 Kitaplar - Basılı Bilgiler
Güvenlikle ilgili bir çok iyi kitap da mevcut. Bu bölümde
bir kaç tanesini sıralayacağız. Güvenlikle ilgili kitaplara
ek olarak, sistem yönetiminin anlatıldığı ve güvenlik
konusunda da bilgilerin yer aldığı kitaplar mevcut.
(Ç.N.: Kitaplar İngilizce olduğu için, ulaşmak istemeniz
durumunda İngilizce referansların bulunması daha iyi olacaktır.
Bu yüzden referans bilgilerini çevirmeden bırakmanın daha
iyi olabileceğini düşünüyorum)
Building Internet Firewalls By D. Brent Chapman & Elizabeth D. Zwicky
1st Edition September 1995
ISBN: 1-56592-124-0
Practical UNIX & Internet Security, 2nd Edition By Simson Garfinkel &
Gene Spafford
2nd Edition April 1996
ISBN: 1-56592-148-8
Computer Security Basics By Deborah Russell & G.T. Gangemi, Sr.
1st Edition July 1991
ISBN: 0-937175-71-4
Linux Network Administrator´s Guide By Olaf Kirch
1st Edition January 1995
ISBN: 1-56592-087-2
PGP: Pretty Good Privacy By Simson Garfinkel
1st Edition December 1994
ISBN: 1-56592-098-8
Computer Crime A Crimefighter´s Handbook By David Icove, Karl Seger &
William VonStorch (Consulting Editor Eugene H. Spafford)
1st Edition August 1995
ISBN: 1-56592-086-4
Linux Security By John S. Flowers
New Riders;
ISBN: 0735700354
March 1999
Maximum Linux Security : A Hacker´s Guide to Protecting Your Linux Server
and Network
Anonymous
Paperback - 829 pages
Sams;
ISBN: 0672313413
July 1999
Intrusion Detection By Terry Escamilla
Paperback - 416 pages (September 1998)
John Wiley and Sons;
ISBN: 0471290009
Fighting Computer Crime
Donn Parker
Paperback - 526 pages (September 1998)
John Wiley and Sons;
ISBN: 0471163783
12. Sözlük
authentication (kimlik doğrulama): Verinin, asıl gönderilen veri
olduğunu, ve veriyi göndermiş gibi görünen kişinin,
gerçekten gönderen kişi olduğunun bilinmesi.
bastion host (sur bilgisayar): İnternete açık ve içerdeki
kullanıcılar için ana bir iletişim noktası olduğundan
dolayı saldırılara uğrama tehlikesinin çok fazla oluşu
nedeniyle yüksek derecede güvenli hale getirilmesi gereken bilgisayar
sistemi. İsmi, ortaçağ kalelerinin dış duvarlarındaki
yüksek derecede güçlendirilmiş yapılardan gelmektedir.
Kale surları, savunmada kritik alanlara yukarıdan bakan, genelde güçlü
duvarlı, fazladan asker için geniş alanlı, saldırganlara
kızgın yağın dökülerek uzaklaştırıldığı
yerlerdir.
buffer overflow (tampon taşması): Yaygın programlama tarzında,
asla yeteri büyüklükte tamponlar ayrılmaz, ve taşmaların
olup olmadığı gözden geçirilmez. Bu tür taşmalar
olduğunda, çalışan program (sunucu program ya da suid program)
başka şeyler yapmak üzere kandırılabilir. Genelde bu,
fonksiyonun yığındaki dönüş adresini değiştirerek
başka bir yere yönlendirme yoluyla yapılır.
denial of service (servis reddi): Bilgisayarınızın, yapmasını
düşünmediğiniz şeylerle fazlaca meşgul olup kaynaklarının
saldırgan tarafından tüketilmesi yoluyla, meşru kullanıcılar
için ayrılmış ağ kaynaklarının olağan
kullanımının engellenmesi. (Ç.N.: Bilgisayar, saldırgana
servis vermekle o kadar meşguldür ki meşru kullanıcılara
servis vermeyi reddeder).
dual-homed host (çift evli bilgisayar): En az iki ağ arabirimi bulunan
genel amaçlı bilgisayar sistemi.
firewall (ateşduvarı): İnternet ve korunan bir ağ arasında,
ya da diğer ağ kümeleri arasında, erişimi kısıtlayan
bileşen, veya bileşenler kümesi.
host (bilgisayar): Ağa eklenmiş bilgisayar sistemi.
IP spoofing (IP taklidi): IP taklidi, bir takım bileşenlerden oluşan
karmaşık teknikli bir saldırıdır. Bilgisayarlara, olmadığınız
bir kişi gibi görünerek güvenlerini kazanmanıza yol
açan bir güvenlik açığıdır. Bu konuda Phrack
Magazine, 7. Cilt, 48. Konuda, daemon9, route, ve infinity tarafından yazılmış
kapsamlı bir makale vardır. (Ç.N.: Temel olarak, bağlantı
yapmaya çalıştığınız bilgisayara, IP bilgilerinizi
yanlış olarak iletmek olarak özetlenebilir).
non-repudiation (inkar edememe): Bir alıcının, bir veriyi göndermiş
gibi görünen kişinin gerçekten veriyi gönderen kişi
olduğunu, gönderen kişi daha sonra inkar etmeye kalksa dahi kanıtlayabilmesi
(Ç.N.: Yani veriyi gönderen kişinin veriyi gönderdiğini
daha sonra inkar edememesi).
packet (paket): İnternet üzerindeki haberleşmenin temel birimi.
packet filtering (paket süzme): Bir ağdaki içe ve dışa
olan veri akışının bir cihaz tarafından seçici
olarak gerçekleştirilmesi davranışı. Paket süzgeçleri,
genelde bir ağdan bir başkasına yöneltme yaparken paketlerin
geçişine izin verir veya engel olur (çoğunlukla İnternet´ten
içerideki ağa, veya tam tersi). Paket süzgecinin başarılı
olması için, hangi paketlere (IP adreslerine ve portlarına göre)
izin verileceğine ve hangilerine engel olunacağına karar veren
kuralları belirlemeniz gerekir .
perimeter network (çevre ağ): Ek bir güvenlik katmanı oluşturabilmek
amacıyla korunan bir ağ ile dışardaki bir ağ arasına
eklenen ağ. Çevre ağ bazen DMZ olarak da adlandırılır.
proxy server (vekil sunucu): İçerdeki istemcilerin adına dışarıdaki
sunucularla iletişim kuran bir program. Vekil istemciler, vekil sunucuya
konuşur, vekil sunucular onaylanmış istemcilerin isteklerini
gerçek sunucuya nakleder, gelen cevapları da tekrar istemcilere nakleder.
superuser (üstün kullanıcı): root´un resmi olmayan
isimlerinden biri.
(Ç.N.: Bu çeviride kullanılan İngilizce sözcükler
için önerdiğim Türkçe karşılıkları
Çeviri Hakkında bölümünde bulabilirsiniz. En azından
bir göz attığınızdan emin olun :) )
13. Sıkça Sorulan Sorular
Sürücü desteğini doğrudan çekirdeğe tümleşik
olarak derlemek, modül olarak derlemekten daha mı güvenlidir?
Cevap: Bazı insanlar, cihaz sürücülerini modüller yoluyla
yüklenememesinin daha iyi olacağını düşünürler,
çünkü sisteme izinsiz giren biri, bir Truva atı ya da sistem
güvenliğini etkileyebilecek bir modül yerleştirebilir.
Bununla birlikte, modülleri yükleyebilmek için root olmanız
gerekir. Modül nesne dosyaları da sadece root tarafından yazılabilir
dosyalardır. Bunun anlamı, izinsiz girenin bir modülü sokmadan
önce root erişimine gereksinimi olduğudur. Eğer izinsiz
giren kişi root erişimi kazanırsa, modül yüklemesinden
çok daha fazla endişelenilmesi gereken, daha ciddi şeyler vardır.
Modüller, sık kullanılmayan belirli bir cihaz için desteğin
dinamik olarak yüklenmesi amacını taşır. Sunucu makinelerde,
veya örneğin ateşduvarlarında, bunun olma olasılığı
düşüktür. Bu sebeple, sunucu makineler için desteği
doğrudan çekirdeğe tümleşik derlemek daha mantıklıdır.
Ayrıca modüller, çekirdeğe tümleşik derlenmiş
destekten daha yavaştırlar.
Uzak bir makineden root olarak giriş yapmak neden hep başarısızlıkla
sonuçlanıyor?
Cevap: Bakınız: Root Güvenliği. Bu, uzak kullanıcıların
makinenize telnet yoluyla root olarak bağlanma girişimlerini engellemek
amacıyla kasıtlı olarak yapılan bir şeydir. Uzaktan
root olarak bağlanabilmek ciddi bir güvenlik açığıdır,
çünkü bu durumda root parolası ağ boyunca açık
metin olarak iletilmektedir. Unutmayın: potensiyel saldırganların
vakti vardır, ve parolanızı bulmak için otomatik programlar
çalıştırabilirler.
RedHat 4.2 veya 5.x Linux makinemde gölge parolaları nasıl etkin
hale getirebilirim?
Cevap:
Gölge parolaları etkin hale getirmek için, pwconv programını
root olarak çalıştırın. Böylelikle /etc/shadow
dosyası yaratılır ve uygulamalar tarafından kullanılmaya
başlar. RH 4.2 ve üstü kullanıyorsanız, PAM modülleri
otomatik olarak olağan /etc/passwd dosyasından gölge parolalara
geçişe, başka bir değişikliğe gerek kalmaksızın
uyum sağlayacaktır.
Bazı temel bilgiler: Gölge parola mekanizması, parolalarınızı
olağan /etc/passwd dosyasınından başka bir dosyada tutar.
Bunun bir takım getirileri vardir. Birincisi, gölge dosyası,
/etc/shadow, herkes tarafından okunabilen /etc/passwd dosyasının
aksine, sadece root tarafından okunabilen bir dosyadır. Diğer
bir getiri, yönetici olarak, diğer kullanıcıların haberi
olmadan bir kullanıcı hesabını etkisiz veya etkin hale getirebilirsiniz.
/etc/passwd dosyası, kullanıcı ve grup isimlerini tutmak için,
örneğin /bin/ls programı tarafından bir dizin listesindeki
dosyaların uygun kullanıcı ve grup isimlerini bulmak amacıyla
kullanılır.
/etc/shadow dosyası ise kullanıcı ismi ve parolasını,
ve örneğin hesabın ne zaman süresinin dolduğu gibi
hesap bilgilerini içerir.
Parolalarınızı güvenli hale getirmekle ilgilendiğinize
göre, belki iyi parolalar üretmeye başlamakla da ilgili olabilirsiniz.
Bunun için PAM´in bir parçası olan pam_cracklib modülünü
kullanabilirsiniz. Parolanızı Crack kütüphanelerini kullanarak
gözden geçirir, böylelikle parola-kıran programlar tarafından
kolaylıkla tahmin edilebilir parolaları belirlemenizi sağlar.
Apache SSL uzantılarını nasıl etkin hale getirebilirim?
Cevap:
ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL adresinden SSLeay 0.8.0 veya daha yukarını
indirin.
Oluşturun (derleyin), deneyin, ve kurun!
Apache 1.2.5 kaynaklarını indirin.
Get Apache SSLeay extensions from Bu adresten SSLeay uzantılarını
indirin.
Apache-1.2.5 kaynak dizininde sıkıştırılmış
dosyayı açın ve README dosyasında yazdığı
gibi yamayı uygulayın.
Yapılandırın ve derleyin.
Ayrıca, bir sürü önceden derlenmiş paketlere sahip
olan ve ABD´nin dışında bulunan ZEDZ net´i de deneyebilirsiniz.
(Ç.N.: Bu belge bir parça eski olduğu için bir çok
değişiklik olmuş olabilir. Örneğin yukarıdaki
kadar çok uğraşmanız gerekmeyebilir. Bu çeviri sırasında
Apache´nin en son sürümü 1.3.20 idi. Apache WWW sayfasında
SSL´yi etkin hale getirmek için ayrıntılı bilgi bulabilirsiniz).
Kullanıcı hesaplarını idare ederken güvenliği
nasıl sağlayabilirim?
Cevap: Red Hat dağıtımı, özellikle RH5.0, kullanıcı
hesaplarının özelliklerini değiştirebilmeyi sağlayan
bir çok araçla birlikte gelir.
pwconv ve unpwconv programları gölge ve olağan parolalar arasında
geçiş yapmak amacıyla kullanılabilir.
pwck ve grpck programları, passwd ve group dosyalarının uygun
düzende olduğunun doğrulanması için kullanılabilir.
useradd, usermod, ve userdelprogramları kullanıcı eklemek, silmek,
ve değişiklik yapmak amacıyla kullanılabilir. groupadd,
groupmod, ve groupdel programları aynı şeyleri gruplar için
yapar.
Grup parolaları gpasswd kullanılarak yaratılabilir.
Bütün bu programlar gölgenin farkında olan programlardır,
yani gölge parolaları etkin hale getirdiğinizde parola bilgisi
için /etc/shadow dosyasını kullanırlar, getirmezseniz kullanmazlar.
Daha fazla bilgi için ilgili man sayfasına bakabilirsiniz.
Apache´yi kullanarak belirli HTML belgelerini nasıl parola-korumalı
hale getirebilirim?
Cevap: Bahse girerim http://www.apacheweek.com/ adresini bilmiyordunuz değil
mi?
Kullanıcı kimlik doğrulaması hakkında bilgiyi http://www.apacheweek.com/features/userauth
adresinden, WWW sunucusu hakkında güvenlik ipuçlarını
ise http://www.apache.org/docs/misc/security_tips.html adresinden bulabilirsiniz.
14. Sonuç
Güvenlik uyarı mektup listelerine üye olarak, ve güncel
olayları takip ederek, makinenizi güvenli hale getirmeye doğru
çok adım atabilirsiniz. Günlük dosyalarınıza ilgi
gösterir ve tripwire gibi bir şeyi düzenli olarak çalıştırırsanız,
daha fazlasını da yapabilirsiniz.
Evdeki bir makinede akla yatkın düzeyde bilgisayar güvenliğini
kurmak ve idare etmek zor değildir. İş makineleri için daha
fazla çaba gerekir, fakat Linux gerçekten güvenli bir platform
haline gelebilir. Linux gelişiminin doğası gereği, güvenlik
onarımları ticari işletim sistemlerinde olduğundan çok
daha hızlı ortaya çıkar, bu da güvenliğin şart
olduğu durumlarda Linux´u ideal bir platform haline getirir.