LANGUAGE TRANSLATE

English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified

10 Nisan 2012 Salı

LİNUX'TA AĞ GÜVENLİĞİ






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.

 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).

 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 (yaniftp 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 Sharfini 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.

 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.

identd

identdinetd 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.

 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.

 sendmailqmail 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.postfix.orgadresinden bulabilirsiniz.

 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 sizinmakinenizin 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.

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, veshowmount 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.

 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

 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 Associates"in "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 belgeyihttp://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/

 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

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.

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.

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.

 İ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.

 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.

 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.

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.

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.

 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.

 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: security-audit@ferret.lmh.ox.ac.uk. Abone olmak için security-audit-subscribe@ferret.lmh.ox.ac.uk 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.


kaynak:www.antivirus.metu.edu.tr