|
|
Bu makalenin farklı dillerde bulunduğu adresler: English Castellano ChineseGB Deutsch Francais Italiano Nederlands Portugues Russian Turkce |
tarafından Georges Tarbouriech <georges.t(at)linuxfocus.org> Yazar hakkında: Georges uzun zamandır Unix kullanıyor. Serbest Yazılım topluluğuna bize sağlamış oldukları müthiş güvenlik araçlarından dolayı teşekkür etmektedir. Türkçe'ye çeviri: Erdal Mutlu <erdal(at)linuxfocus.org> İçerik: |
Özet:
Bu yazı ilk olarak Linux Magazine France dergisinin güvenlik ile ilgili özel bir sayısında yayınlandı. Editör, yazarlar ve çevirmenler, bu sayıda yer alan yazıları LinuxFocus'da yayınlanmasını kibarca kabul ettiler. Dolayısıyla, LinuxFocus yazıların İngilizceleri hazır olur olmaz yayınlayacaktır. Konuyla ilgili herkese çok teşekkür ederim. Bu özet, bu türden olan her yazıda yeralacaktır.
Bilgisayar ağlaraındaki güvenlik konusu, 21. yüzyılın en büyük fırsatlarından
biridir.
Ancak, endişe edilmesi gereken birçok alanda olduğu gibi, bu konuda da herkes konuşmaktadır
ve bundan etkilenmesi gerekenler ise, olayın potansiyel yıkım boyutuna pek aldırış
ettikleri yoktur. "En çok etkilenmesi gerekenler" kuşkusuz, sistemi veya yazılımları
tasarlayanlardır.
En iyi örnek yine Redmond'an geliyor, güvenlik sanki "denetim altında" tutmaktan çok,
pazarlama anlamına gelen bir kelime gibi.
20. yüzyılın son iki çeyreği, Serbest Yazılımın ve onunla birlikte gelen
felsefenin doğuşunu gördüğü için kendimizi şanslı sayıyoruz. Eğer, bilgisayarlarınızın,
ağlarınızın, sistemlerinizin vs. güvenliğini artırmak "istiyorsanız", bakmanız
gereken yer orasıdır. Serbest Yazılım topluluğu, diğer büyük yazılım şirketlerinin
toplamından daha fazlasını yapmıştır.
Doğrusunu söylemek gerekirse, kullanılan araçlar herşeye çözüm getirememktedir ve
bilgisayar ağların güvenliğini sağlamak sürekli yapılması gereken bir iş haline gelmiştir!
Bunun anlamı, hiçbir zaman bir ağ %100 güvenlidir diyemeyiz. Sadece riskleri
azaltabilirsiniz. Burada göstereceğimiz ise, riskleri azaltmak için yapılması gerekenlerin
küçük bir kısmıdır. Bu özel yazıyı okuduktan sonra (Yazarın notu : Bu yazı Linux Magazine France'ın
güvenlik alanında odaklanmış özel sayısından bir kısımdır.), güvenlik hakkında biraz daha
fazlasını öğrenmiş olacaksınız, ancak hiçbir şekilde ağınızın %100 güvenli olduğunu söyleyemeyeceksiniz. Sizi
uyarmış olduk.
Ayrıca, bu yazı herşeyi içermemektedir. Bu konuda çok fazla yazı vardır ve
bu yazı sorunun çözümünden de oldukça uzaktır. Dolayısıyla, işletim sistemleri,
araçlar, yapılandırımlar, kullanım vs. gibi konularda herşeyden sözetmemizi
beklemeyin.
Son olarak, bu yazının bazı kısımları LinuxFocus dergisinden alıntılara yer verilmiştir,
ancak üzülmeyin, tabii ki yazarın izni ile: sonuçta yazar da aynı kişi olunca sorun yok demektir!
İlk önce, az veya çok yaygın kullanılmakta olan sistemlerden oluşan karmaşık ağın yapısından
söz edeceğiz. Ne kadar fazla işletim sistemi varsa, o kadar fazla karmaşıklık oluşmaktadır,
çünkü tüm sistemler güvenlik uyarıları karşısında eşit işlem görmemektedir. Ayrıca,
sunucu olarak kullanılan bilgisayarların ağda farklı işlevleri olmalıdır: bizim
ağımız oldukça karmaşık olacaktır.
Daha sonra, güvenliği artırıcı temel araçlardan sözedeceğiz. Seçim yapmak zor:
hepsinden sözetmek çok zordur. Tabii ki, bu araçları kullanarak bilgisayarlarınızı ve
ağalarınızı nasıl koruyacağınızdan sözedeceğiz. Bir sonraki bölümde, sistemlerin
güvenliklerini sağlama aşamasında, sistemler arasındaki farklılıklara da deyineceğiz.
Sonuç bölümünde de güvenliğin sağlanmasının nasıl "göreceli" bir sey olduğundan ve
neden uzun vadeli bir süreç olduğundan sözedeceğiz.
TCP/IP protokolünün dünyadaki tüm işletim sistemleri
tarafından konuşuluyor olması avantajdır tabii ki. TCP/IP sayesinde çok farklı sistemler
aralarında haberleşebilmektedir. Dolayısıyla, kullanacağımız ağda TCP/IP
olacaktır tabii. başka bir deyişle, proprietary (özel) protokollerden, az kullanılanlardan ve
eskimiş olanlardan sözetmeyeceğiz. Ayrıca, fiziksel ağ bağlantılarından, yani
bağlantı şekillerinden, tiplerinden vs. de sözetmeyeceğiz.
Evet, bu ağ'da herşeyden biraz olacaktır. Unıx'ler, ticari veya ücretsiz: sözgelimi
Solaris 2.6, veya SunOS 5.6, Irix 6.5, Linux (RedHat 6.2), MacOS X. QNX, NeXSTEP,
NetBSD veya OpenBSD de ekleyebilirdik. Bir de NT 4.0'ı(Hayır, diğerlerini
değil, onlar daha da kötüdür.) ekleyebiliriz. Buraya OS2'yi de ekleyebiliriz.
Ayrıca, BeOS ve AmigaOS (Evet, bunlar hala yaşıyor, aslında pek değil!) da ekleyebiliriz.
Aranızdan bazıları şimdiden şikayet etmeye başlamıştır bile: ne,
AIX, HP-UX bunlar yok mu? Hayır! Eğer, her Unix'ten sözedecek olursak,
o zaman bu yazı için bir kitap bile yetmeyecektir. Ancak, temel güvenlik
kuralları hepsi için geçerlidir.
Evet, şimdi bunlardan ne isteyeceğiz?
Sözgelimi, Solaris uygulama sunucusu, Irix yedekleme sunucusu,
NT başka bir uygulama sunucusu olsun. Linux geçişyolu (gateway), bir başka Linux
veritabanı veya http sunucusu olsun. Diğer tüm bilgisayarlar da istemci olsun.
Ele alacağımız ağ, kimliklendirme için geçişsözcüğü dosyası kullanan yaklaşık olarak
30 adet bilgisayardan oluşsun. Daha karmaşık kimliklendirme yöntemlerini de, yanii de, yani
NIS (Sarı Sayfalar), LDAP veya Kerberos seçebilirdik. İşleri basit bir şekilde yürütelim.
Kullanıldığı durumda faydalı olabileceği halde, NFS'de kullanmayacağız, çünkü
güvenlik sözkonusu olduğunda, her nekadar geliştirmeler yapıldıysa da, onu unutmanız gerekir.
Fransa'da atalarımız söyle der : "Tüm yumurtaları aynı sepete koymayın.". Daha sonra,
"belirsiz", ancak gerekli olan servisler veya protokoller ancak bir defa ve başka işi
olmayan bilgisayarlarda çalışacaktır. Sözgelimi, bir http, bir ftp sunucu, tercihen Unix
bilgisayarlarında olsun. Bazı Unix bilgisayarlar SSH sunucuları, bazıları da SSH istemcileri
olacaktır. Bu konuya daha sonra tekrar geleceğiz. Biz durağan IP kullanacağız, DHCP değil.
Başka bir değişle, basit yapılar kullanacağız! Bu tabii ki 50 adet bilgisayrın olduğu bir ağa
uygulanabilir, daha fazla bilgisayardan oluşan sistemlerde bunu uygulamak kabus haline
dönüşebilir.
Doğal olarak, bunu yapmanın birçok yolu vardır(TIMTOWDI). İdeal ortam, sıfırdan başlanıldığı ortamdır, yani bilgisayarlar yeni yüklenecek ve ağ yeni kurulacak. Ancak, bu sadece filmlerde olur! Şimdi, zamanla büyüyen bir bilgisayar ağı düşünelim, bilgisayrların bir yerden başka bir yere taşındığı, yeni bilgisayarların eklendiği vs. Sözgelimi "Mhz" yarışından dolayı, bu günlerde Intel bilgisayarları 3 seneden fazla yaşamamaktadır ve bunlara yedek parça bulmak da çok zor olmaktadır. Yapılabilecek iki şey vardır: ya bunları başka işlere kaydıracaksınız yada onlardan kurtulacaksınız, üzüntü verici ama gerçek! Diğer bazı bilgisayarlar daha uzun süreli kullanılabilmektedir ve geliştirmeye değerdirler. Bu konunun konu dışı olduğunu düşünmeyin sakın: bir sistem yöneticisi yüksek erişibilirliği de düşünmek zorundadır.
Basit olanlar
İşin ilk adımını "genellemeler" koyabilirdik. Bu adım kullanılmayan herşeyin
kaldırılmasından oluşmaktadır: pekte kolay bir iş değildir!
Her işletim sistemi, buna Unix'te dahil, hiç kullanmayacağınız, inanılmayacak sayıda servis ve
protokol yüklemektedir. Ustanın sözü: hepsinini çıkarıp atın! Unix altında basit, ama
kaba yol, /etc/inetd.conf dosyasındaki herşeyi kapatmaktır. Böylece, birkaç
servisten kurtulmuş olacaksınız. Tabii, bu biraz abartılı bir yoldur, ancak
birçok bilgisayarda kabul edilebilir bir yaklaşımdır. Bu, sizin gereksiniminize
bağlı olan bir şeydir. Linux ve birkaç başka sistem altında, bazı servisleri
kapatmak için chkconfig komutundan yararlanabilirsiniz.
Ayrıca, SUID/SGID olan dosyaları denetleyiniz ve "hatalı" biti kaldırmaktan veya
programı etkisiz kılmadan çekinmeyin.
find / -user root -a \( -perm -4000 -o -perm -2000 \) -print
Komutu, size bu dosyalarının listesini verecektir. "s" biti kaldırmak için
chmod a-s programadı komutunu kullanabilirsiniz ("s" bitini kaldırmak doğal
olarak bazı fonksiyonellikleri kaybetmiş olursunuz, tabii ki bunun bir işlevi vardı).
"Tehlikeli" veya "riskli" olarak bilinen programları kaldırın. Sözgelimi, rsh, rlogin, rcp vs. gibi
uzaktan komut çalıştıran programları. Bunların yerini SSH, çok başarılı bir şekilde
alacaktır.
/etc, /var vs. gibi dizinlerin haklarını denetleyiniz. Bu dizinlerin hakları
ne kadar kısıtlı olursa, o kadar iyidir. Sözgelimi, açılış betik programlarının
bulunduğu dizinin (Birçok Unix'te bu dizin /etc/rc.d/init.d dir.) haklarını
chmod -R 700 yapmak, hiç de kötü bir fikir değildir. Bu kural ağ üzerindeki
diğer tüm bilgisayarlar için de geçerlidir : kullanmadığınız herşeyi kaldırım veya
en azından iptal edin. NT için yapılandırım panelinden kapatabildiğiniz sayıda servisi kapatın.
Yapılması gereken birçok "basit" şey var ve bu konuda yeteri kadar bilgi ortalıkta vardır.
İşe Unix ile başlayalım, çünkü o, güvenlik sorunlarını dikkate alınması gereken tek işletim sistemidir. Güvenlik ile ilgili muazzam sayıda serbest yazılım araçları vardır ve bunlar her (hemen hemen) Unix'te çalışmaktadır.
Şimdilik bilgisayraların kendi güvenliklerini sağlamakla başlayacağız, çünkü bilgisayar ağının güvenliğini sağlamak, onu oluşturan bileşenlerden geçmektedir. Bu araçların yüklenmeleri oldukça basit bir işlemdir. O yüzden bunların üzerinde çok fazla durmayacağız. Ayrıca, yüklenecek araçların parametre değerleri de sizin isteklerinize göre farklılık gösterecektir. Dolayısıyla bunların sistemlerinize yüklenmesi size kalmış. İlk gerekli aracın adı shadow utils dir. Bunun sayesinde geçişsözcüklerinizi kriptolayabiliyorsunuz. Şansımız var ki, bu araç birçok Unix işletim sistemi ile birlikte gelmektedir. /etc/shadow dosyası /etc/passwd dosyasından yaratılmaktadır.
Daha da iyisi, PAM (Pluggable Authentication Modules) kullanarak, kullanıcıların servis bazlı erişimi denetlenebilir. Herşey, servislerin yapılandırım dosyalarının bulunduğu ve genelde /etc/pam.d olan dizinden denetlenmektedir. Ftp, login, xdm vs gibi birçok servisi pam ile denetleyebilirsiniz. Dolayısıyla, sistem yöneticisi kimin neye hakkı olması gerektiğini denetleme imkanına sahip olmaktadır.
Kullanılması şart olan bir sonraki aracımız TCPWrapper dır. Bu da hemen hemen her Unix işletim sisteminde vardır. Kısaca, bunun sayesinde servislere olan erişimi bilgisayar bazında denetlenebilmektedir. Bilgisayarların erişimlerine izin verildiği veya engellendiği şu iki dosya ile denetlenmektedir: /etc/hosts.allow ve /etc/hosts.deny. TCPWrapper iki farklı şekilde yapılandırılabilir: ya servisleri taşıyarak yada /etc/inetd.conf dosyasını değiştirerek. Daha sonra da göreceğimiz gibi, TCPWrapper diğer araçlar ile birlikte de çalışabilmektedir. TCPWrapper ftp://ftp.porcupine.org/pub/security adresinden elde edebilirsiniz.
Diğer ilginç bir araç xinetd dir. Yine kısaca sözetmek gerekirse, xinetd inetd'nin yerini almakta ve daha fazla özelliklere sahip olmaktadır. xinetd ile ilgili daha fazla bilgi http://www.xinetd.org adresinden elde edilebilir.
Linux altında var olan ve onsuz yapamayacağınız bir araç vardır: adı Bastille-Linux. kendisini http://www.bastille-linux.org adresinden elde edebilirsiniz. Bu yazılım Perl programlama dilinde yazılmıştır ve çok etkildir. Programı çalıştırdığınızda çeşitli sorulara yanıt veriyorsunuz ve verdiğiniz cevaplara göre program sisteminizde ayralamalar yapmaktadır. Her sorunun ayrıntılı açıklamaları verilmektedir. Yapılan değişiklikleri geri alabilirsiniz, yeni yapılandırım ile işe başlayabilirsiniz, yapılanları görebilirsiniz vs. Herşey yapılabilir! Ayrca, ateşduvarı yapılandırılması yapmak da mümkündür. Bu konuya daha sonra döneceğim. Bu yazının yazımı sırasında Bastille-Linux'un sürüm numarası 1.1.1 idi, ancak 1.2.0 sürümü çoktan çıkmaya aday. Bu sürüm daha da geliştirilmiş ve Tk tabanlı grafik arabirimi ile kendi Perl modülü birlikte gelmektedir. (Yazarın notu: Bu yazı birkaç ay önce yazılmıştı, dolayısıyla Bastille-Linux'un şu anki sürümü 1.3.0 dir.).
Intrusion detection sistemleri (Saldırı yakalam sistemleri) çok önemlidir. Bu konuda iki "ağır" top, snort ve portsentry dir. İlkini http://www.snort.org adersinden, ikincisini ise Abacus sanaldoku sayfası olan http://www.psionic.com adresinden elde edebilirsiniz. Bu ikisi karşılaştırılmamalıdır: ilki geneldi bilgi sağlayan bir NIDS (Network Intrusion Detection System, Ağ Saldırı Yakalam Sistemi) dir, diğeri ise bilgisayar odaklı ve daha aktif dir. snort'un birçok seçeneği vardır ve ağınızı istediğiniz gibi denetleyebilirsiniz. Herşeyi dinleyebilirsiniz: gelen, giden, ateşduvarı içinden veya dışından. Tabii, bu durumda çok büyük çetele dosyası yaratacaktır. Ne istediğinizi bilmelisiniz! Programın Win 32 sürümü de vardır. Eğer, bu "sistemler" için varolan serbest yazılım araçlarını düşünecek olursak, bu önemlidir.
portsentry'nin çok ilginç bir özelliği vardır: İsteğiniz doğrultusunda taranan bağlantı noktalarını kapatabilir. Saldırganı ya kullanılmayan bir adrese veya ateşduvarına yönlendirebilirsiniz. Kimlerin erişimi kısıtlanacağı veya kısıtlanmayacağı size kalmış. Şimdi TCPWrapper geri dönelim: portsentry istenildiğinde /etc/hosts.deny dosyasına yazabilir. Böylece, portsentry çok etkili olmaktadır. portsentry'nin bağlantı noktalarını kullanma felsefesine girmek istemiyorum. Konu ile ilgili daha çok ayrıntı öğrendikçe kararı kendiniz verebilirsiniz. Ayrıca, portsentry bilgisayarınızı "görünmez" yapabilir, hiç de fena değil, öyle değil mi? Son olarak, portsentry'nin farklı çalışma seviyeleri vardır. Bunlardan en gelişmişi Linux (en azından şimdilik) için olan "reserved" dir.
Kriptolamadan sözetmeden güvenlik konusunda konuşmamız mümkün olmaz.
Ancak, kriptolama ile ilgili yasalar ülkeden ülkeye farklılık göstermektedir
ve hatta bazen kullanılması tamamen yasaktır.
Yazarın notu: Bundan sonra gelen bölüm sadece Fransa'daki yasalar ile ilgili
olduğu için yazının İngilizce (dolayısıyla Türkçe) olanından çıkarılmıştır.
Sonuç: Eğer, ülkenizin yasaları elveriyorsa, ssh istemcilerini ve sunucularını UNIX
bilgisayarlarına yükleyip kullanabilirsiniz (Tabii ki, gerekiyorsa.).
UNIX araçları konusunu bitirmeden önce, ticari UNIX'lere ait olanlarından
da sözetmek gerekekir. Solaris altında, ndd, aset; Irix altında ipfilterd;
MacOS X ssh, ipfwadm vs. gibi serbest yazılımları kullanabilirsiniz.
Bu konuya daha sonra tekrar döneceğim.
Evet, şimdi de tek ve yanlız olan (şans eseri!) NT (Not Terminated = tamamlanmamış) 4.0'dan sözedelim. Burada serbest yazılımdan sözedemeyeyiz, ancak Redmond'taki adam bize sistemin özelliklerini geliştirici "serbest" şeyler (Hata düzeltme ile bunların ilgisi yok, çünkü bu sistemde hata yok!) sağlamaktadır. Güvenlik konusuna gelince, NT 4.0 bir model ... absurdity modelidir. Herneyse, buna göre tek yapmanız gereken en son servis packlerini (Bu yazının yazıldığı sırada 6 idi.) ve HotFix'lerini (bunlar güvenlik yamalarıdır) çekip yüklemektir. Daha sonra ... bazı serbest araçlar elde edebilirsiniz (Buradaki serbest kelimesi, kaynak programları olmaksızın serbestçe elde edebilme anlamındadır.). İşte bu kadar.
Diğer sistemler için arama yapmanız gerekmektedir. AmigaOS'un geliştirilmesi
pek fazla insanı motive etmemektedir ve TCP/IP katmanı da biraz eskidir.
BeOS'a gelince, burada da işler pek parlak değildir. Bu müthiş işletim sistemin
gelecek vaat eden özellikleri ve Bone adında henüz tamamlanmamış bir ağ
katmanı vardır.
(Yazarın notu: maalesef artık BeOS ölmüş durumdadır. Sadece birkaç kişi
bunu serbest yazılım olarak ayakta tutmaya çalışmaktadır... ve kendileri
çok güzel bir iş yapmaktadır.)
Orada da, bazı şeyleri iyileştirmek için UNIX dünyasında çeşitli araçlar bulmanız
mümkündür.
Şimdi herşeyi yapılandırmanız gerekecektir! Her UNIX ile birlikte shadow araçları, PAM, TCPWrapper geldiğini ve tüm gereksiz servislerin kapatıldığını, "hassas" olan dizinlerin ve dosyaların erişim haklarının kısıtlandığını varsayalım.
Linux sistemlerinde Bastille-Linux programını çalıştırmanın tam zamanı.
Bu araç hemen hemen tüm Linux dağıtımlarında çalışıyor olması gerekir. Ancak,
asıl olarak RedHat ve Mandrake için yazılmıştır. Sorulan sorulara en kısıtlı
haklar verecek şekilde cevap vermekten çekinmeyin.
Gateway (geçişyolu, gişe) olarak kullanılan Linux bilgisayarının en az sayıda
program içerecek şekilde yüklenmeniz gerekmektedir. Http, ftp vs gibi birçok servisi
kaldırabilirisniz. X11'i de kaldırın, ona gereksiniminiz yoktur! Kullanılmayacak
olan yazılımları da kaldırın... yani yaklaşık herşeyi. Gereksiz servisleri kapatın.
Sonunda ps ax komutunun çıktısı ekranının yarısını bile kaplamayacak kadar
bir sistem elde etmiş olacaksınız. Eğer, IP Maskelemesi kullanıyorsanız lsof -i
komutu, sadece bir satır (Bağlantı beklemekte olan sunucu ile ilgili olanı olduğunu
ve kalıcı bir bağlantı olamadığını düşünmekteyiz.)
Linux bilgisayarlarına açılışta otomatik olarak "ileri" seviyede (Sadece Linux'ta
olan bir çalışma seviyesi, yani -atcp ve -audp seçenekleri ile çalıştırılan portsentry.)
çalıştırılacak, portsentry programını yüklenmelidir. Bu ise, bilgisayarınıza
TCPWrappers ve bir ateşduvarı yüklenmiş olduğu anlamına gelmektedir. Bu konya
daha sonra tekrar deneceğiz.
Solaris için aset ve ndd komutlarını kullancağız. Bu konuya da daha sonra tekrar döneceğiz. Tabii ki portsentry de yüklenenmiş olacaktır. IP Filter ve RPCbind'ı standart sürümü yerine, porcupine.org'un 2.1 sürümü de yükleyebiliriz. Irix için adından da anlaşıldığı gibi, ipfilterd'yi paket filtre programı olarak yükleyeceğiz. Bu program Irix sürümleri ile birlikte benimsenmiş olarak gelmektedir, ancak benimsenmiş değer olarak yüklenmemektedir.
NT'ye gelince, bu biraz daha karışıktır... En radikal çözüm, 137 ve 139 bağlantı noktalarını (port) kapatmaktır, yani meşhur NetBIOS (Belkide NetBIOS'u tamamen kaldırmalıyız.) ... ancak o zaman geriye ağ diye birşey kalmayacaktır (Yani Windows ağı kullanılamaz duruma gelecektir.). Bu uygulama sunucusu kullanımı sözkonusu olduğunda küçük bir sorun olabilir! Snort'u da yükleyebilirsiniz tabii ki, ancak çok fazla güvenlik sağlamanız zor. Dizinlere, bölmelere vs. olan erişimler konusunda çok kısıtlayıcı davranmalısınız. Bu durum NTFS kullanıyorsanız geçerlidir. Guest (misafir) kullanıcı hesabından kurtulmanızı sağlayan ve serbest olarak elde edebileceğiniz bir program var. Ancak programın kaynak kodu kapalı. Bulabildiğiniz tüm güvenlik yamalarını yükleyin!
Ekzotik işletim sistemleri için araştırma yapmanız ve bulduklarınız arasında seçimler yapmanız gerekecektir. Her zaman olduğu gibi, en az sayıda aktif servis kullanmak felsefesini takip etmeniz sizin yarına olacaktır.
Eğer, bilgisayarlar "düzgün" bir şekilde hazırlanmışlar ise, yarı yolu geçmiş sayılırsınız. Ancak, daha ileriye devam etmeniz gerekecektir. Madem ki, serbest yazılımlardan sözediyoruz, geçişyolu bilgisayarında kullanılmak üzere serbest olan bir ateşduvarı yazılımını seçeceğiz. Tabii ki bir Linux bilgisayarı ile Bastille-Linux ateşduvarını kulalnacağız. Çekirdek sürümüne göre ipchains veya ipfwadm kullanmaktadır. Eğer, 2.4 çekirdeklerinden birini kullanıyorsanız iptables kullanmaktadır.
Biraz sitem: güvenlik sözkonusu olunca, tüm sorunları birden çözmeye yeltenmek herzaman iyi fikir değildir. En son çekirdek sürümünü kullanma "yarışı" bazen olumsuz sonuçlar doğurabilir. Buradan, yeni çekirdek için yapılan çalışmaların iyi olmadığı sonucu çıkmamalıdır. Ancak, var olan ve yeni şekilde çalışmak için tasarlanmamış programlarda uyum sorunları çıkabilir. Bir öneri: sabırlı olun! 2.4 çekirdeği ile birlikte gelen ateşduvarı birçok özelliği ile birlikte gelmektedir, ancak biraz "gençtir". Yani gerisi size kalmış...
Bastille-Linux ateşduvarı hem basit ve hemde etkili bir yazılımdır. Ancak, bundan daha yetenekli bir araç var, benzin istasyonu gibi birşey, adı T.REX dir. http://www.opensourcefirewall.com adresinden kendisini elde edebilirsiniz. Eğer, çok karmaşık serbest yazılım arıyorsanız, işte bu öyle bir araçtır.
Proxy (vekiller) ler gibi, başka çözümler de vardır. Ancak, bunlar da herzaman daha iyi sonuç vermemektedir. Bir şey daha: vekillere bazen ateşduvarı da denmektedir. Herneyse, her ikisi de iki ayrı şeydir. Bizim sözünü ettiğimiz ateşduvarları, paket filtreleridir ve kimliklendirme (authentication) yöntemi içermemektedirler. İki çeşit vekil sunucusu vardır: uygulama ve socks. Kısaca, uygulama vekil sunucusu sizin için işi yerine getirmektedir ve kullanıcı kimliklendirmesi vardır. Bundan dolayıdır ki, bir ateşduvarı sunucusundan daha fazla kaynak kullanımına gereksinim duymaktadır. Ancak, bir ateşduvarı sunucusunu kırmak için 15 dakikaya gereksinim vardır. Bunu bilmek hoş, öyle değil mi? Dolayısıyla, bilgisayarlarınızın ve ağınızın güvenliğini sağlarken sadece ateşduvarlar ve vekiller ile yetinmeyin.
Bir ağdaki riskleri azaltmak için kriptolama kullanılabilir. Sözgelimi, telnet kullanmak, saldırganlara kırmızı halı üzerinde yürüyerek sisteminize girmelerini sağlamak gibi birşeydir. Yani, dükkanın anahtarlarını teslim etmenin başka bir yoludur. Açık metin olarak aktarılan verileri görmekle kalmıyorlar, aynı zamanda da kullanıcı geçişsözcüğünü de elde etmiş olurlar, hoş öyle değil mi? Dolayısıyla, telnet yerine ssh kullanın. Eğer, telnet kulanmak zorunda iseniz, güvenli bir bağlantı üzerinden kullanın. Başka bir deyişle, telnet bağlantı noktasını güvenli olanın üzerine yönledirin. Bu konu hakkında daha fazla bilgi "Tünel geçişi" ( LinuxFocus, Mayis 2001, yazı 202) yazısından elde edebilirsiniz.
Tamam, güvenliğimizi artımayı denedik, ancak şimdi yaptığımız işi sınamamız gerekmektedir. Bunun için saldırgan gibi davranmaya çalışalım, yani onların kullandıkları araçları kullanalım. Biraz garip, öyle değil mi? Bu alnda da güzel araçlar vardır. Ben nessus ve nmap'i seçeceğiz. Nessus'u kullanmak için nmap'e gereksiniminiz vardır. Bu araçlar bağlantı noktası tarayıcılarıdır, nessus ise bundan daha fazlasını sağlamaktadır. Kendi güvenlik açıkları veritabanı ile yaptığı karşılaştırmalar sonucunda nessus, sistemdeki güvenlik açıkları konusunda sizleri uyarmaktadır. Bu araçları çalıştırmak ile, kullandığınız işletim sistemleri arasında fark gözetmeden, bilgisayarlarınızın zayıf noktalarını öğrenebilirsiniz. Sonuçlar oldukça ilginç çıkmaktadır. Bunu için bu araçları kullanmak artık şart olmuştur. Nmap programını http://www.insecure.org ve nessus da http://www.nessus.org adresinden elde edebilirisniz.
Bu yazının başından beri bazı bilgisayarların İnternete açık oldukları yerel ağların güvenliğinden sözediyoruz. İnternet servis sağlayıcısı durumunu ele alırsak, olaylara başka boyutlar eklenmektedir ve de biz bu konun ayrıntılarına burada girmeyeceğiz. Burada sözü edilenler geçerliliğini korumakla beraber, VPN (Virtual Private Network, Sanal Özel Ağ) vs. gibi çok daha karmaşık yöntemler kullanmanız gerekecektir. Bizim incelediğimiz duruma göre kısıtların çok daha farklı olduğu bir konudur bu. E-ticaret konusuna ise, hiç girmeyelim. Onlara güvenli sanaldoku yöreleri denmektedir! Duymak bile istemiyorum... Kredi kartı numaranızı İnternette kullanıyor musunuz? Eğer, evet ise, oldukça cesur olmalısınız. Öneri: Eğer, Fransızca okyabiliyorsanız http://www.kitetoa.com yöresine bir gözatmanızı öneririm.
Daha önce de söylediğimiz gibi, düşmanın karşısında sistemler eşit değildir. Bazıların çok iyi yetenekleri vardır, bazıları ise korumasızdır (Şey, tam değil!). Paradoksa bakın ki serbest olan işletim sistemleri daha iyi durumdadır. BSD ailesi (OpenBSD, NetBSD, FreeBSD) ve çeşitli Linux dağıtımları güvenlik sözkonusu olunca oldukça önlerde yeralmaktadır. Tekrar belirtmek gerekirse, bu serbest yazılım topluluğunun bir başarısıdır. Diğerleri ve hatta Unix etiketli olanlar bile daha az yeteneklidir. Unix olmayanların durumu ise daha kötüdür!
Bu yazıda sözü edilen tüm araçlar serbest olan işletim sistemleri için
geliştirilmiştir. Birçok ticari Unix işletim sistemleri bunlardan faydalanabilir.
Ancak, genelde bu ticari Unix'lerin kendi araçları vardır. Sözgelimi,
Solaris'te ndd ve aset bulunmaktadır. İyi bilinenin aksine,
Sun sistemleri bir güvenlik modeli değildir. aset, erişim hakları sözkonusu
olunca durumu biraz daha iyileştirmektedir. Düşük, orta ve yüksek olmak üzere,
aset üç güvenlik seviyesi sunmaktadır. Programı komut satırından veya cron işi olarak
çalıştırabilirsiniz. Çalışan bir ağda durum değişim göstermektedir. Saat 5'te doğru
olan şey ile 5:30'da olan yanlış olabilir. Dolayısıyla, komutları periyodik olarak
çalıştırma gereksinimi duyulmaktadır. İsterseniz, yarım saatte bir, isterseniz saat
başı veya istediğiniz aralıklarla, dosya, dizin, vs. erişim haklarını
denetlemeniz mümkündür.
ndd ile IP-yığıt parametrelerini değiştirmeniz mümkündür. Sözgelimi,
sistemin izlerini saklayabilirsiniz. Kimliği belirlenmiş bir sistem, saldırganların
neye saldıracakları bilgisini verdiği için, güvenlik açısından daha çok tehlike
altındadır. ndd ile TCP Maximum Segment Size (MSS) değerini değiştirebilirsiniz.
benimsenmiş değer olarak Solaris 2.6 536 olarak kullanmaktadır.
ndd -set /dev/tcp tcp_mss_def 546 komutu, bu değeri 546 olarak değiştirmektedir.
MSS değeri ne kadar büyük olursa o kadar iyi (çok yüksek olmasın!). Nmap, bu zayıf noktayı
bulabilme özelliğine sahiptir. Eğer, Solaris sistemleriniz varsa, bu komutu
kullanmaktan çekinmeyin. Komutun birçok seçeneği vardır, bunun için man ndd sayfasına
gözatabilirsiniz.
Ayrıca, ftp://coombs.anu.edu/pub/net/ip-filter.
adresinden elde edebileceğiniz IP filter programını da kullanabilirsiniz.
Irix'e gelince, durum biraz daha farklıdır. SGI (eski Silicon Graphics),
isminden de anlaşıldığı gibi, sistemlerini grafik odaklı tasarlamaktadır.
Güvenlik amaç değildi. Gereksinimler doğrultusunda, Irix sürümlerinde
ipfilterd eklendi, ancak benimsenmiş değer olarak yüklenmemektedir.
ipfilterd tabii ki paket filtrelemesi için kullanılmaktadır. Yani,
nelere izin verileceği veya verilmeyeceği bununla ayarlanabilmektedir.
Program, ipfilterd.conf dosyasından yapılandırılmaktadır. Bu dosyada yapılandırma
işlemi sırasında beklenmeyen boşluklar ve boş satırlar sorun yaratmaktadır.
"mars" adlı bilgisayara "jupiter" adlı bilgisayar ile haberleşme imkanının
verilmesi için
accept -i ec0 between jupiter mars
komutu kullanılabilir. Bu dosyada yeralmayan bilgisayarlar jupiter adlı
bilgisayara erişemeyecekler.
Daha da kötüsü, ipfilterd_inactive_behavior parametresini systune
ile değiştirmezseniz, hiç kimse bu makinaya erişemeycektir! Etkili, öyle değil mi?
Bu parametrenin benimsenmiş değeri 1 dir ve siz
systune -i ipfilterd_inactive_behavior 0 komutunu kullanarak onu 0 olarak
değiştirmelisiniz.
Çok yaygın olarak bilinen bir başka şeyi hatırlatmakta fayda vardır:
Irix'in fam (File Alteration Monitor) adında "harika" bir güvenlik açığı vardır.
Bu program çok güzel bir özellik taşımaktadır: çeşitli servisler bunun
aracılıyla haberleşmektedir. Bunun sayesinde dosya yöneticisi o güzel ikonları
gösterebilmektedir. Herneyse, yapılabilecek tek şey var, o da bunu kaldırmak!
Üzücü, ama gerçek.
UNIX sistemleri ile olan kısmı bitirirken QNX'ten de sözedelim. QNX güvenlik konusunda çok kötü durumdadır, ancak serbest yazılım araçlarından faydanmak mümkündür. Mac OS X, bu yazılımların bazılarını kullanmaktadır.
Biraz da diğer ağ sistemlerine referans olan ve türünün tek örneği NT 4.0'dan
sözedelim. Redmond kralının (ve bazı başka kişilerin) söylediklerinin tersine,
bu sistemi güvenli kılmak bir utopyadır. Nessus'u kullanarak bir saldırı
simulasyonu yapacak olursanız, kabus görmüş gibi olursunuz. NetBIOS aktif
olduğu sürece, alanda bulunan tüm bilgisayar isimlerini, kullanıcıları ve
yöneticileri ile birlikte nessus ile elde etmiş olursunuz. Çözüm: NetBIOS'tan
kurtulun! Ancak, daha önce de söylediğimiz gibi, o zaman ağınız da olmaz...
Seçim size kalmış.
Sisteme guest kullanıcısı olarak NULL oturumu (yani kullanıcı adı NULL ve geçişsözcüğü NULL)
ile girilebileceğini, nessus size kibarca söyleyecektir. Pek iyi daha sonra? Buna benzer
şekilde devam edin!
NTFS bölmelerine olan erişimleri kısıtlayınız. FAT bölmeleri için yapılabilecek birşey yok.
Kullandığınız yazılımlara göre, FAT dosya sistemine gereksiniminiz olabilir,
çünkü bazı yazılımlar NTFS ile çalışmamaktadır. Son olarak, müthiş IIS sunucusunu
kullanmaktan uzak durun, özellikle ftp sunucusu olarak. Aslına bakarsanız,onu hiç
yüklemeyiniz. Eğer, bu günlerde birçok ISP bunu kullanma deliliğini gösteriyorsa,
onlara tek yapabileceğimiz iyilik Apache'yi önermektir ... IIS'e yeterince zaman harcamadık mı?
Konuyla ilgili çok fazla sayıda yayın zaten vardır.
Aslında, bu sistemi de daha güvenli hale getirmek mümkün. Sorun şu ki, buna
bir dergi yazsak yeterli olmaz. En iyisi en önemli noktalardan sözedelim.
Microsoft dünyasından sözettiğimiz sürece güvenliği serbest yazılımlar
ile sağlayamayacağımız açıktır. İlk öneri ServicePack 4 ile gelen
MMC (Microsoft Management Console) nin
MSCE (Microsoft Security Configuration Editor) kullanmaktır. Ancak,
çok dikkatli olun! Eğer, bir hata yaparsanız, yandınız! Doğal olarak
bu yazılım İngilizce'dir ve eğer, İngilizce olmayan bir sistem kullanıyorsanız,
Redmond'un dünyasında farklı dilleri birarada kullanmak hiçbir zaman iyi
sonuç vermemektedir. Benden uyarması. Diğer şeylerin yanısıra, sistem
yöneticisi hesabını da güvenlik altına almanız yada iptal etmeniz şarttır.
SP 3'te yer alan passprop bir bakınız. passfilt dll
kullanarak registry den geçişsözcüklerinizi tahmin edilmelerini güçlendirebilirsiniz
(Bunu icat edenlerinin hep LSD'den etkilendiklerini düşünmüşümdür.).
Meşhur guest hesabını kapatınız. Pek kullanışlı bir kullanıcı hesabı
değilidir (Yukarıya bakınız.), sadece sorunları artırmaktadır. Yapabileceğiniz,
registry kullanarak çetele dosyalarına olan erişimini kısıtlamaktır.
"HKEY_LOCAL_MACHINE" de System\CurrentControlSet\Services\EventLog\Application,
Security ve System olarak iki değer yaratınız. Adları "RestrictGuestAccess",
tipleri REG_SZ ve değerleri 1 dir. Geçişsözcüklerini syskey ile
kriptolayabilirsiniz. Dikkat, bu işlemden sonra geriye dönüş yoktur!
En azından bazı iyi haberler var: guest hesabının erişim haklarını
kısıtlayabilirisniz. Yine registry de değişiklikler yapacağız. "HKEY_LOCAL_MACHINE"
kısmındaki System\CurrentControlSet\Control\Lsa anahtarının,
"RestrictAnonymous" adında, "REG_DWORD" tipindeki değerini 1 yapın.
Ancak, bu değişikliklerin ağ yapılandırımlarını da değiştireceğini
unutmayın. Bir de yapılandırma panelindeki ağ uygulamalarından,
bazı bağlantı noktalarına olan erişimi kısıtlamanız mümkündür.
TCP/IP özelliklerinden "Advanced (Gelişmiş)" seçin ve "Activate security"
kutucuğunu işaretleyin (Sanırım adı böyle bir şeydi, ancak evde
böyle bir şey olmadığı için kontrol edemiyorum.) ve aktif hale getirmek istediğiniz
bağlantı noktalarını seçiniz. Burada da dikkatli olmalısınız. Ne yaptığınızı
bilmek zorundasınız, yoksa bazı servisleriniz çalışmayabilir.
Daha birçok şey yapılabilir, ancak bunlar esas olanlarıdır. Daha bilgi istiyorsanız,
sans.org yöresini ziyaret edebilirsiniz. Orada tonlarca belge vardır.
Evet, bütün bunları yaptınız. Tüm ağı taramak için nessus çalıştırdınız ve
hala güvenlik açıkları olduğunu görüyorsunuz. Açıkların nereden geldiğini söylemeyeceğiz,
çünkü zaten biliyorsunuz! Bu güvenlik açıklarını kapatmayı deneyiniz.
NetBIOS ile birlikte gelen tüm güvenlik açıklarını kapatmanız zor, ancak
sisteme verilebilecek zararları en aza indirmeniz mümkün.
Alt alanlar yaratın. Sistem yöneticisi olarak sisteme girmeyin.
Yamaları yükleyin. Tüm bu sistemleri geçiş kapısı olarak kullanabileceğiniz UNIX
lerin arkasına saklamaya çalışınız. Ağ canlı bir varlıktır ve sürekli olarak
birşeyler olmaktadır. İyi bir sistem yöneticisi "paranoid" olandır. Yani,
sürekli olarak güvenlik açıklarının listesini takip eder, denetleme işlemlerini
otomatikleştirmek için betik programları yazar. Sözgelimi, SUID/SGID programlarını,
kritik dosyaları, çetele dosyalarını vs. denetlemek amaçlı programlar yazar.
Birkaç arkadaş daha edinmek için disket ve CDROM sürücülerini kilitleyin.
İzniniz olmadan kullanıcılarının İnternetten yazılım indirmelerini kabul etmeyin.
Microsoft dünyasında herzaman olduğu gibi, bunlar çalıştırabilir yazılımlardır.
Kullanıcılara, e-iletiler ile gelen Excel ve Word belgelerini açmalarına
izin vermeyin. Biliyorum, bu faşizm gibi bir şey, ancak macro-virüslerine
karşı başka ne yapabilirsiniz? Outlook gibi ürünleri kullanmayın. Aslında
ne istediğiniz bilmeniz gerekmektedir! Biliyorum, söylediklerimi uygulamak
zor ve kullanışsız. Ancak, bu ürünleri kullanrak güvenlikten sözedebilir misiniz?
Meşhur "I love you" pek ders vermişe benzemiyor.
UNIX ortamlarında da İnternetten çekilen dosyalar da denetlenmelidir.
Dosyaların checksum'ları boşuna verilmemiş olsa gerek.
Periyodik olarak ağınızı, çetele dosyaları, betik programları, taramalar vs. ile
denetlemeyi alışkanlık haline getirin. Göreceksiniz, olaylar oldukça hızlı
değişmektedir ve de değişim iyi yönde olmamaktadır.
Son olarak, yedekler konusunda hiçbirşey söylemedik ama, yedek almayı sakın unutmayın.
Yedekleme stratejisi hep aynıdır: günlük, haftalık ve aylık yedekleme yapınız.
Bir Unix bilgisayarı da sorunlar yaşayabilir, her nekadar seyrek de olsa.
Bazen de kullanıcılar hata yapmaktadır, sık olmasa da. Biliyorsunuz,
sorunların kaynağı ya makinalardadır, yada bunlara bakmakla yükümlü bölüme :-(
Eğer, bu bölüme kadar geldiyseniz, istekli olduğunuz anlaşılıyor. Sorun şu ki, biz konuya ancak yüzeysel olarak değinebildik! Güvenlik konusunun sonu yok ve sadece bilgisayar ağlar ile sınırlı değildir. Güvenlik açıkları bulunan uygulamalar ağ güvenliğini bozabilir. Yanlış ayarlanmış bir ateşdurvarı, hiç olmamasından çok daha kötüdür. Bir UNIX bilgisayarı normalde binlerce dosya içermektedir. Bunlardan birinde güvenlik açığı olmadığından kim emin olabilir? Bir saldırganın 128 bit anahtarı çözmeye yelteneceğini kim düşünebilir? Tekrar tekrar söylüyorum, var olan tüm güvenlik araçlarını yükleyebilirsiniz. En ufak bir güvenlik açığı kaldığı anda, "kötülüğün" geçeceği yer burası olacaktır.
Güvenlik aynı zamanda bir davranış biçimidir: olan biteni takip edin. Sözgelimi, güvenlikile ilgili olan sanaldoku yörelerini düzenli olarak ziyaret edin. Aynı şey kullandığınız işletim sistemlerin sanaldoku yöreleri için de geçerlidir. Sözgelimi, önerilen yamaları SUN aylık olarak yayınlamaktadır. Her üç ayda bir SGI yeni Irix sürümü çıkartmaktadır. Microsoft sıkça ServicePacks ve HotFixes sağlamaktadır. Linux sürümü dağıtıcıları, keşif edilen güvenlik açıklarına karşılık erreta lar yayınlamaktadır. Böyle devam edecek olursak, liste uzayıp gidecek. Kısacası, bu iş savsaklamaya gelmez.
Sonuçta, bütün bunlar ağınzı biraz daha güvenli yapmaya yaramaktadır. %100 güvenli bir ağ oluşturma beklentisi doğru değildir. Hatta, belli bir zaman aralığı için bile (Eğer, tüm bilgisayarları kapatırsanız başka tabii.). Yani, bu işi yapmak için paranoid olmaya gerek yok... ancak faydası olduğu kesin! Ancak, günlük hayatınızda bu şekilde olmayın, bu en azından sizin etrafınızdaki insalar için daha iyi olacaktır...
|
Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır
© Georges Tarbouriech, FDL LinuxFocus.org |
Çeviri bilgisi:
|
2002-10-21, generated by lfparser version 2.31