Metin Sakla Niteliği: "Yapışkan bit" de dizinlere ve dosyalara uygulandığında farklı anlamlar taşır. Eğer bir dizinin yapışkan biti 1 ise, bir kullanıcı o dizinde yeni bir dosya oluşturabilir, fakat dizindeki diğer dosyaları, kendine ait olmadığı veya açık bir şekilde izin verilmediği sürece silemez. Bu bit, /tmp gibi herkesin yazabileceği, ama diğer hiçbir kullanıcının başkalarının dosyalarını silmemesinin sağlanması gereken dizinler için tasarlanmıştır. Uzun dizin listesinde yapışkan bit t olarak görünür SUID Niteliği: Bu, dosyayı "kullanıcı-kimliği-belirle" izinleriyle ilgilidir. Eğer sahip izinleri bölümünde but bit 1 ise, ve dosya çalıştırılabilir bir dosya ise, çalışan işlemler sistem kaynaklarına, işlemi başlatan kişinin değil, dosya sahibinin kimliğinde erişim sağlar. Bu, bir çok "tampon taşması" açıklarının da sebebidir. ( Normalde Unix sistemlerde bir bir programı veya kabuk betiğini çalıştırarak bir işlem başlattığınızda, o işlemin kullanıcı kimliği ve izinleri, başlatan kişininkiyle aynıdır. Söz konusu dosyanın sahip izinleri bölümünde SETUID biti 1 ise, bu, dosya sahibinin kullanıcı kimliğinin, işlemin etkin kullanıcı kimliği haline getirilmesini sağlar, ve işlem o dosya sahibinin erişim izinleri ile çalışır. Bunun pratik olarak anlamı şudur: Bir dosyanın sahibi root ise, ve SETUID biti 1 ise, o dosya çalıştırıldığında, çalıştıran kişi işlemin çalışması boyunca root olur, işlem bittiğinde eski kullanıcı kimliğine geri döndürülür. Tampon taşmaları, programın "göçmesine" ve yarım kalmasına sebep olan böceklerdir. Program henüz bitmemiş olduğu için çalıştıran kullanıcı hala root erişim iznindedir. Bu noktada bir kabuk çalıştırılabilirse bu kişi pratik anlamda root'un yapabileceği herşeyi yapabilir anlamına gelir.) SGID Niteliği: Bu bit grup izinlerinde 1 ise, dosyanın "grup-kimliği-belirle" durumunu denetler. Bu kullanıcı-kimliği-belirle biti ile aynı şekilde çalışır, fakat bu kez grup kimliği etkilenir. Bu bitin etkili olabilmesi için dosyanın çalıştırılabilir olması şarttır SGID Niteliği: Eğer bir dizinin bu bitini 1 yaparsanız , bu dizinde yaratılan dosyaların grupları, bu dizinin grubu ile aynı olacaktır. Siz - Dosyanın sahibi Grup - Ait olduğunuz grup Diğer - Sizin ve grubunuzun diğer üyelerinin dışında kalan herkes. Dosya Örneği: -rw-r--r-- 1 kevin users 114 Aug 28 1997. zlogin 1. bit - dizin mi? 2. bit - sahibi okuyabilir mu? 3. bit - sahibi yazailiror mu? 4. bit - sahibi çalıştırabiliyor mu? 5. bit - grup üyeleri okuyabilir mu? 6. bit - grup üyeleri yazabiliyor mu? 7. bit - grup üyeleri çalıştırabiliyor mu? 8. bit - diğerleri okuyabiliyor mu? 9. bit - diğerleri yazabiliyor mu? 10. bit - diğerleri çalıştırabiliyor mu? Aşağıdaki satırlar, dosyalar için açıklanan erişim izinlerinin uygulanabilmesi için verilmesi gereken en az izinlerin örnekleridir. Herhangi birine burdakilerden daha fazla izin vermek isteyebilirsiniz, fakat bunların en azları açıklanmaktadır: r Dosya sahibinin dosyayı okumasına izin verir. w Dosya sahibinin dosyayı değiştirmesine veya silmesine izin verir . x Dosyanın sahibi programları çalıştırabilir. Kabuk betiklerini çalıştıramaz, çünkü onlar için okuma izni de olmalıdır. s Etkin kullanıcı kimliğini dosya sahibinin kullacı kimliği haline getirir. rw T "Son değiştirilme zamanı" güncellenmez. Genelde takas dosyaları için kullanılır. t Etkisi yoktur. Dizin Örneği: drwxr-xr-x 3 kevin users 512 Sep 19 13:47. public_html/ 1. bit - dizin mi? 2. bit - sahibi okuyabilir mu? 3. bit - sahibi yazailiror mu? 4. bit - sahibi çalıştırabiliyor mu? 5. bit - grup üyeleri okuyabilir mu? 6. bit - grup üyeleri yazabiliyor mu? 7. bit - grup üyeleri çalıştırabiliyor mu? 8. bit - diğerleri okuyabiliyor mu? 9. bit - diğerleri yazabiliyor mu? 10. bit - diğerleri çalıştırabiliyor mu? Aşağıdaki satırlar, dosyalar için açıklanan erişim izinlerinin uygulanabilmesi için verilmesi gereken en az izinlerin örnekleridir. Herhangi birine burdakilerden daha fazla izin vermek isteyebilirsiniz, fakat bunların en azları açıklanmaktadır: dr Dizin içeriği listelenebilir, fakat dosya nitelikleri okunamaz. d-x Dizine girilebilir, ve tam çalıştırma yollarında kullanılabilir . dr-x Dosya nitelikleri sahip tarafından okunabilir. d-wx Dosyalar, dizinin içine girilmeksizin yaratılabilir/silinebilir. d-x-t Dosyaların yazma hakkı olan diğerlerince silinmesini engeller. /tmp dizininde kullanılır. Sistem yapılanış dosyaları , genelde 640 kipindedir , ve sahipleri root'tur. Sitenizin güvenlik gereksinimlerine bağlı olarak, bunun üzerinde değişiklik yapmak isteyebilirsiniz. Asla herhangi bir sistem dosyasını grup veya herkes tarafından yazılabilir durumda bırakmayın. Bazı yapılanış dosyaları, /etc/shadow da buna dahildir, sadece root tarafından okunabilir durumda olmalı. /etc içindeki bazı dizinler de en azından diğer kullanıcılar tarafından erişebilir olmamalı. SUID Kabuk Betikleri SUID kabuk betikleri, ciddi bir güvenlik riskidir, ve bu sebeple çekirdek tarafından hoş karşılanmazlar. Bir kabuk betiğinin ne kadar güvenli olduğunu düşünürseniz düşünün, bir korsan ondan yararlanarak bir root kabuğuna erişebilir. 3.3 Bütünlük Denetimi Yerel saldırılarını ortaya çıkarmanın çok iyi bir yolu da bir bütünlük denetleyici, örneğin Tripwire, Aide veya Osiris gibi bir program çalıştırmaktır. Bu bütünlük denetleyiciler, bütün önemli ikili dosyalarınızın üzerinde bir sağlama toplamı hesaplar, ve dosyalar iyi durumda olduklarındaki toplamlarla karşılaştırır. Sonuç olarak, dosyalardaki değişiklikler farkedilebilir. Bu tür programları bir diskete kurmak, ve disketin yazma korumasını kapatmak iyi bir fikirdir. Bu yolla saldırganlar bütünlük denetleyicisinin kendisini veya veritabanını kurcalayamazlar. Bir kere bunun gibi bir düzeneğiniz olduktan sonra, bu düzeneği normal yönetim görevleriniz arasında kullanmak, ve değişen bir şeyler olup olmadığını görmek de iyi bir fikirdir. Hatta, crontab'a denetleyicinizin her gece disketten çalışması için bir girdi ekleyebilir, ve sabaha sonuçlarını gözden geçirebilirsiniz. Aşağıdaki gibi bir şey size her sabah 5:15'te bir raporu mektup olarak yollar: # set mailto MAILTO=kevin # run Tripwire 15 05 root /usr/local/adm/tcheck/tripwire Bütünlük denetleyicileri, aksi takdirde farkedilmesi zor olan saldırganları ortaya çıkarmak konusunda bir nimettir. Ortalama bir sistemde çok fazla dosya değiştiği için, hangisinin bir korsan tarafından, hanginizin kendiniz tarafından değiştirildiği konusunda dikkatli olmak zorundasınız. 3.4 Truva Atları Truva Atlarının ismi Homeros'un İlyada destanındaki ünlü numaradan gelmektedir. Bunun arkasındaki fikir, bir korsanın, kulağa çok hoş gelen bir program veya ikili dosya dağıtıp, diğer insanların dosyayı indirmesi ve root olarak çalıştırmasını teşvik etmesidir. Çalıştırılan program, sistem güvenliğini dikkat çekmeden bozar. İnsanlar indirdikleri ve çalıştırdıkları dosyanın tek bir şey yaptığını düşünürler, ama program bir taraftan güvenliğe de zarar vermek ile meşguldür. Makinenize hangi programları kurduğunuza dikkat edin. Red Hat, RPM dosyaları için, programın gerçeğini kurduğunuzu doğrulayabilmeniz amacıyla, MD5 sağlama toplamları ve PGP imzaları sağlar. Diğer dağıtımlar da benzer yöntemler kullanır. Asla bilmediğiniz, kaynak kodu elinizde bulunmayan bir ikili dosyayı, root olarak çalıştırmayın! Çok az saldırgan kaynak kodlarını halka açık hale getirir. Karmaşık olabilir, fakat bir programın kaynak kodunu gerçek dağıtım sitesinden aldığınıza emin olun. Eğer program root olarak çalışacaksa, güvendiğiniz birinin kaynak koduna bakmasını ve doğrulamasını sağlayın.

1. GİRİŞ : Internet son birkaç yıldır daha tehlikeli olmaya başladı. Internet trafiği artmakta ve önemli işler Internet'te yapılmakta. Bununla birlikte insanlardan kaynaklanan zararlar da artmakta. Eğer çalınmaya değer bir şey varsa biri uğraşacak ve de onu çalacaktır. Bu günümüzde Internet dünyasında çok daha doğrudur. Linux sistemleri bile bu kuralın dışına çıkamazlar. Ama Linux'un bu Internet çalkantılarına karşı kuvvetli olması ve birçok sofistike güvenlik birimlerine sahip olması çok güzel bir şey. Bu Linux'un Intermet'le yoğun uğraşanlar arasında popüler olmasının en önemli sebebidir. Bununla birlikte Linux güvenlik araçlarını uygun bir şekilde kullanmazsanız, problemlerle karşılaşabilirsiniz. Problemler kötü şekilde kurulmuş güvenlik araçlarından kaynaklanır. Bu yazı hangi hususlara dikkat edilmesi gerektiğini açıklamaya çalışacak. Sisteminize zorla girmek için kullanılacak birçok yol vardır. Genellikle bunlar var olan programların hatalarını kullanırlar. Linux kullanıcıları bu hatalara ışık tutar ve çabucak bir yama çıkartırlar. Bu yamalar diğer işletim sistemlerindeki kardeş programların yamalarından çok daha hızlı çıkarlar. Bu yazı makinenizi bu çeşit problemlere karşı nasıl koruyacağınızı açıklayacak. Aşağıda güvenli bir Linux'un nasıl yapılacağı açıklanacak. 2. YEREL GÜVENLİK Şöyle bir göz atılması gereken sonraki konu, yerel kullanıcılardan gelen saldırılara karşı sistem güvenliğiniz konusu. Kullanıcıların yerel olduğunu söyledik mi? Evet! Sistem saldırganlarının root hesabına giden yollarındaki ilk şeylerden bir tanesi yerel bir kullanıcı hesabına erişim elde etmektir. Bu saldırganlar, gevşek bir yerel güvenlik ile, kötü ayarlı bir yerel servis veya çeşitli "böceklerden" yararlanarak, normal kullanıcı erişimlerini root erişimine "terfi ettirir". Eğer yerel güvenliğinizin sıkı olduğundan emin olursanız, saldırganın üzerinden atlaması gereken başka bir çit daha oluşturmuş olursunuz. ( İngilizce bug kelimesi, bilgisayar dünyasında, yazılımların, yazarları tarafından önceden tahmin edemedikleri, "çalışma zamanında", yani "çalışırken" ortaya çıkan hataları kastetmek için kullanılır. Bununla ilgili anlatılan bir hikaye, bilgisayarların henüz bir oda büyüklüğünde olduğu zamanlarda, bir böceğin bilgisayarın içine girerek kısa devreye sebep olduğu, böylelikle o anda çalışmakta olan "yazılım"ın görevini yerine getirememesine yol açtığı şeklindedir. Bu olay, ilk "yazılım böceği" olarak anılır. Genelde "böcek" kelimesi, yazılımların çalışırken, çoğunlukla beklemedikleri veya kontrol etmedikleri bir girdi karşısında ne yapacaklarını bilememeleri, yahut da kendilerine işletim sistemi tarafından yasaklanmış olan bazı şeyler yapmaya kalkmaları yüzünden "göçmesi" ile sonuçlanan "yazılım hataları" için kullanılır. Bu yazılım hataları, önemli bir oranda denetimin yazılım dışına çıkmasına ve işletim sistemine devredilmesine yol açar. Bunu bilen bir saldırganın, yazılımın bıraktığı yerde, işletim sistemi henüz devreye girmemişken, denetimi devralarak kendi yararına olan yazılım kodu parçacıklarını sistem üzerinde çalıştırmasına olanak sağlar. Bu yüzden daha önce bahsedilen, yazılım sürümlerinin güncel tutulması özellikle önem kazanmaktadır. Çünkü bir yazılımın bulunmuş böcekleri, bir sonraki sürüm çıkmadan önce temizlenir. Hatta bazı güncellemeler, yazılımın sadece böceklerden temizlenmiş olması için yayımlanan güncellemelerdir.) Yerel kullanıcılar, gerçekten söyledikleri kişi oldukları durumda bile sistem üzerinde fazlaca kargaşa yaratabilir. Tanımadığınız insanlara, veya iletişim bilgilerine sahip olmadığınız birine hesap açmak, gerçekten çok kötü bir fikirdir. 2.1 Yeni Hesap Açma Kullanıcı hesaplarının, kullanıcıların yapması zorunlu işler için asgari gereklerini karşılayacak şekilde açıldığından emin olmalısınız. Eğer (10 yaşındaki) oğlunuza bir hesap açarsanız, erişiminin bir kelime işlemci ya da çizim programıyla sınırlı olmasını, ve kendisinin olmayan veriyi silme yetkisinin olmamasını isteyebilirsiniz. Diğer kullanıcıların Linux makinenize meşru bir erişim sağlamasına izin verirken esas olarak alınabilecek bazı kurallar: Onlara, gereksinim duydukları en az yetkiyi verin. Ne zaman ve nereden sisteme giriş yaptıklarına, ya da yapmaları gerektiğine dikkat edin. Kullanılmayan hesapların kapandığından emin olun. Bütün bilgisayar ve ağlarda aynı kullanıcı isminin kullanılması, hesabın bakımını kolaylaştırması, ve günlük verisinin daha kolay çözümlenmesi açısından tavsiye edilir. Grup kullanıcı kimliklerinin yaratılması mutlak surette yasaklanmalıdır. Kullanıcı hesapları sorumluluk mekanizması da sağlar, ve bu birden fazla kişinin kullandığı grup hesaplarıyla mümkün değildir. Güvenlik ihlallerinde kullanılan bir çok yerel kullanıcı hesabı, aylardır hata yıllardır kullanılmayanlardır. Kimse onları kullanmadığı için, ideal bir saldırı aracıdırlar. 2.2 Root Güvenliği Makinenizdeki, peşinden en fazla koşulan hesap root hesabıdır. Bu hesap bütün makine üzerinde yetki sağlamasının yanı sıra, ağdaki diğer makineler üzerinde de yetki sağlıyor durumda olması mümkündür. Unutmayın ki root hesabını, sadece özel işler için ve çok kısa süreliğine kullanmalısınız, geri kalan zamanlarda normal kullanıcı olarak işlerinizi yürütmelisiniz. Root kullanıcısı olarak sisteme giriş yaptığınızda, yaptığınız küçük hatalar dahi sorunlara yol açabilir. Root hesabıyla ne kadar az zaman harcarsanız, o kadar güvende olursunuz. Makinenizi root olarak karıştırmaktan uzak durmanızı sağlayacak bir kaç numara: Karmaşık bir komut kullanırken, komutu ilk önce yıkıcı olmayan başka bir şekilde kullanmayı deneyin... Özellikle komutun geniş çaplı kullanımında... Örneğin rm foo. bak yapmak istiyorsanız, önce ls foo. bak komutunu kullanarak, silmek üzere olduğunuz dosyaların, silmeyi düşündüğünüz dosyalar olduğundan emin olun. Bu tür tehlikeli komutların kullanımında, komutlar yerine echo kullanmak da zaman zaman işe yarayabilir. Kullanıcılarınıza, rm komutunun, dosyaları silmeden önce onay almasını sağlayacak, varsayılan bir takma ismini olusturun. ( Bir çok Linux sistemde bunu alias rm="rm -i" komutuyla, örneğin sistem genelindeki başlangıç dosyalarının içinde gerçekleştirebilirsiniz.) Sadece belirli, tek bir işi yapmanız gerektiği zamanlarda root olun. Eğer kendinizi bir şeyin nasıl yapıldığını tahmin etmeye çalışırken bulursanız, normal kullanıcı hesabınıza geri dönüp, root tarafından neyin yapılacağından emin olmadan önce root kullanıcısına dönmeyin. Root için komut yolu tanımı çok önemli. Komut yolu , girdiğiniz herhangi bir komut ya da programın hangi dizinlerde aranacağını belirtir. Root kullanıcısı için komut yolunu olabildiğince sınırlandırmaya çalışın, ve asla. dizinini eklemeyin . Ek olarak, komut yolunuzda, yazılabilen dizinler bulundurmayın, çünkü bu saldırganların bu dizinler içine, bir sonraki sefer kullandığınızda root erişim izniyle çalışacak olan yeni çalıştırılabilir dosyalar koyabilmesi anlamına gelir. Asla rlogin/rsh/rexec araçlarını root olarak kullanmayın. Çünkü bunlar, çok çeşitli saldırılara açık komutlardır, dolayısıyla root olarak çalıştırıldıklarında çok daha tehlikeli hale gelirler. Asla root için. rhosts dosyası yaratmayın. Bu dosya başka bilgisayarlardan çoğunlukla parolasız bağlantı için kullanılır. Sadece yaratmamamakla kalmayıp, özellikle root için böyle bir dosyanın olmadığından emin olun. Bir çok saldırı, root'un ev dizinine, içinde + + satırı bulunan bir. rhosts dosyası kullanılması ile sonuçlanır ki, bu makinenize her hangi bir bilgisayardan herhangi bir kullanıcının parola girmeden root olarak bağlanabileceği anlamına gelir. /etc/securetty dosyası, root olarak giriş yapılabilecek terminalleri belirtir. Bu dosyanın varsayılan ayarları yerel sanal konsollardır ( /dev/tty1'den /dev/tty6'ya kadar). Bu dosyaya herhangi bir şey eklerken çok tedbirli olun. Root olmanız gerektiğinde uzaktan normal bir kullanıcı hesabına giriş yapıp su komutuyla olabilirsiniz. Dolayısıyla doğrudan root olarak giriş yapabilmeye gereksiniminiz yoktur. Root'u kullanırken daima yavaş ve temkinli davranın. Davranışlarınız bir çok şeyi etkileyebilir. Tuşlara dokunmadan önce düşünün! Eğer birine, mutlak surette root hesabını kullanması için izin vermeniz gerekiyorsa, yardımcı olabilecek bir kaç araç var. sudo, kullanıcıların, parolalarını kullanarak sınırlı sayıda komutu root olarak çalıştırmalarına izin verir. Bu, örneğin, bir kullanıcının, ayrılabilir medyanın bağlanması veya çıkarılması işini, için root'un diğer yetkilerini kullanamadan yapabilmesi anlamına gelebilir. sudo aynı zamanda, başarılı ve başarısız sudo denemelerinin bir günlüğünü tutar, bu şekilde kimin ne yapmak için bu komutu kullandığını izlemeniz mümkün hale gelir. Bu sebeple sudo, birden fazla kişinin root erişimi olduğu yerlerde bile iyi bir iş yapar, çünkü değişikliklerin takip edilmesinde yardım etmiş olur. sudo belirli kullanıcılara belirli yetkiler vermekte yararlı olmasına rağmen, bazı eksiklikleri vardır. Sadece sınırlı bir takım işlerde kullanılmak zorundadır, örneğin bir sunucuyu yeniden başlatmak, veya yeni kullanıcılar eklemek gibi. sudo ile çalıştırılan, ve kabuğa çıkmaya izin veren her program, sisteme root erişimi sağlamış olur. Buna örnek olarak bir çok editör gösterilebilir. Ayrıca, /bin/cat kadar zararsız bir program bile, dosyaların üzerine yazmakta, ve root erişimi sağlamakta kullanılabilir. sudo programını, yapılan işten kimin sorumlu olduğunun izlenilmesi için kullanılan bir programmış gibi düşünün, ve hem root kullanıcısının yerine geçmesini hem de güvenli olmasını beklemeyin.

7. AĞ SERVİSLERİ : 7.1 Ağ Servisleri : Linux bir sunucu olarak birçok servisi içinde bulundurabilir. Ör : FTP, WWW ve e-mail. Bunlar kapılar vasıtasıyla sağlanır. Örnek vermek gerekirse FTP 21. kapıyı kullanarak iletişim sağlar. Eğer servislerin dağılımı hakkında bilgi almak isterseniz /etc/servicesdosyasına göz atabilir. Sistem kaynaklarından kazanmak ve sistem yönetimini daha kolay kılmak için çoğu servis /etc/inetd. conf tarafından yönetilir. Bu dosya servislerin nasıl çalışacağını belirler. 7.2 Nelere Sahibiz? Çoğu Linux dağıtımı önceden birçok servisi açmasına rağmen bunlar güvenlik için kapalı olmalı. Birleşmiş sistemlerde güvenlik çok sorun değildir. Bu "yumuşak" ortamda kazara gerçekleşen zararların yeteri kadar önlendiğini varsaymakla beraber bu servislere girişin sağlanması bunları korumaktan önemlidir. Eğer Linux'unuz Internet'e açılırsa olaya daha değişik bir açıdan bakmalısınız. Sisteminizde hangi servislerin çalıştığını kontrol için netstat -vat komutu kullanılır. Sonuç : tcp 0 0 :6000 : LISTEN tcp 0 0 :www : LISTEN tcp 0 0 :auth : LISTEN tcp 0 0 :finger : LISTEN tcp 0 0 :shell : LISTEN tcp 0 0 :sunrpc : LISTEN LISTEN yazan her satır bağlanılmayı bekleyen bir servistir. Bunlardan bazıları tek bağımsız programlardır; fakat çoğu /etc/inetd. conf tarafından kontrol edilir. Eğer bir servisin tam olarak ne yaptığını bilmiyorsanız /etc/services dosyasından bakabilirsiniz. Örneğin : grep '^finger' /etc/inetd. conf komutuyla şöyle bir çıktı alırsınız : finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in. fingerd Programın ne yaptığına bakmak için man sayfalarından in. fingerd 'ye bakın. Eğer servise ihtiyacınız yoksa onu /etc/inetd. conf dan başına bir diyez koyarak kapatın. # finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in. fingerd Daha sonra killall -HUP inetd komutunu vererek inetd'yi yeniden başlatın tabii ki finger'i sonsuza dek kapattık. Eğer istersek yeniden #'i kaldırarak ve de killall -HUP inetd komutunu vererek bir daha açarız. Sistemi yeniden başlatmaya gerek yok. Eğer bir program inetd 'de yer almıyorsa, bağımsız bir programdır. Bu servisi programı makineden kaldırarak kaldırabilirsiniz. Tabii bunu programın ne işe yaradığını ve ne yaptığınızı biliyorsanız yapın. 7.3 host allow/deny : Çeşitli servislere ekstra güvenlik eklemek için Linux daha önceden belirtilmiş makinelere izin vererek ya da reddederek sistemi korur. Örnek olarak sadece sizin ağınıza bağlı bilgisayarlara izin vermek için /etc/hosts. allow ve /etc/hosts. deny dosyalarını düzenleyin.

4.6 Şifreliyazımsal IP Sarma Bu yazılımın birincil amacı , İnternet gibi güvensiz paket ağı boyunca oluşturulan alt ağ bağlantılarını güvenli hale getirmede bir kolaylık sağlamaktır. CIPE veriyi ağ düzeyinde şifreler. Bilgisayarlar arasında ağ üzerinde seyahat eden paketler şifrelenir. Şifreleme motoru, paketleri alan ve gönderen sürücüye yakın bir yerdedir. Bu, verileri soket düzeyinde bağlantılara göre şifreleyen SSH'den farklıdır. Farklı bilgisayarda çalışan programlar arası mantıksal bağlantılar şifrelenir. CIPE, Sanal Özel Ağ yaratmak amacıyla tünellemede kullanılabilir. Düşük-düzey şifrelemenin, uygulama yazılımında değişiklik yapmaksızın VPN'de bağlı iki ağ arasında şeffaf şekilde çalıştırılabilme getirisi vardır. 4.7 Kerberos Kerberos, MIT'teki Athena Projesi tarafından geliştirilen bir kimlik doğrulama sistemidir. Kullanıcı sisteme giriş yaptığında, Kerberos kullanıcının kimliğini doğrular , ve kullanıcıya ağa dağılmış diğer sunucular ve bilgisayarlara kimliğini kanıtlamak için bir yol sağlar. İşte bu kimlik doğrulama rlogin gibi programlar tarafından kullanılır , ve kullanıcıya diğer bilgisayarlara parolasız girebilmesi için izin verilir. Bu kimlik doğrulama yöntemi posta sistemi tarafından da mektubun doğru kişiye dağıtıldığından emin olmak, ve gönderen kişinin iddia ettiği kişi olduğunu garanti altına almak amacıyla kullanılabilir. Kerberos ve birlikte gelen diğer programlar, kullanıcıların başka birini "taklit" yoluyla sistemi yanıltmasını engeller. Ne yazık ki, Kerberos'u kurmak kökten değişiklik ister, bir çok standard programın yenileriyle değiştirilmesini gerektirir. 4.8 Gölge Parolalar Gölge parolalar, şifrelenmiş parola bilgilerinizi normal kullanıcılardan gizli tutmanın bir yoludur. Hem Red Hat hem de Debian Linux dağıtımlarının yeni sürümleri, gölge parolaları var sayılan yapılandırmada kullanıyor, fakat diğer sistemlerde, şifrelenmiş parolalar, herkesin okuyabileceği şekilde /etc/passwd dosyasında saklanıyor. Herhangi biri bunlar üzerinde parola-tahmin programları kullanarak ne olduklarını bulmaya çalışabilir. Gölge parolalar ise tam tersine /etc/shadow dosyasında saklanır, ve sadece yetkili kullanıcılar okuyabilir. Gölge parolalar, kullanılabilmek için, parola bilgisine erişime gereksinim duyan bütün yararlı programlar tarafından destekleniyor olmalıdır. PAM de bir gölge modülünün takılmasına izin verir, ve çalıştırabilir dosyaların yeniden derlenmesini gerektirmez. 4.9 "Crack" ve "John the Ripper" Herhangi bir nedenle passwd programı tahmini zor parolalar seçmeye zorlayamıyorsa, bir parola-kırıcı program çalıştırmak, ve kullanıcılarınızın parolalarının güvenli olduğundan emin olmak isteyebilirsiniz. Parola kıran programlar basit bir düşünceye dayanarak çalışır: Sözlükteki her sözcüğü, ve sözcüklerden türeyen ifadeleri dener. Önce bunları şifreler, daha sonra sistemdeki şifrelenmiş parola ile karşılaştırır. Eğer birbirini tutarsa, parolayı bulmuş olurlar. En dikkate değer ikisi "Crack" ve "John the Ripper" olmak üzere ortalarda dolaşan bir kaç program mevcuttur. Bu programlar çok fazla işlemci zamanı alırlar, fakat önce kendiniz çalıştırarak ve zayıf parolası olan kullanıcıları farkederek herhangi bir saldırganın bunları kullanarak sisteme girip giremeyeceğini öğrenebilirsiniz. Dikkat edilmesi gereken bir nokta, bir saldırganın bu programları kullanabilmesi için, önce başka bir delik kullanarak /etc/passwd dosyasını okumuş olması gerekir ve bu tür delikler düşündüğünüzden daha yaygındır. Güvenlik, en güvensiz bilgisayar kadar güçlü olduğundan, belirtilmelidir ki, eğer ağınızda Windows makineler varsa L0phtCrack programına da bir göz atmak isteyebilirsiniz. L0phtCrack Windows için bir parola kırma uygulamasıdır. 4.10 CFS - Şifreliyazımsal Dosya Sistemi ve TCFS - Şeffaf Şifreliyazımsal Dosya Sistemi CFS bütün dizin ağaçlarını şifrelemenin, ve kullanıcıların bu dizinlerde şifreli dosyalar saklayabilmesini sağlamanın bir yoludur. Yerel makinede çalışan bir NFS sunucusundan yararlanır. TCFS, dosya sistemine daha fazla bütünlük katarak CFS'in geliştirilmiş halidir, böylece dosya sisteminin şifrelenmiş olduğu kullanıcılara şeffaftır. Ayrıca tüm dosya sistemleri üzerinde de kullanılabilir. Dizin ağaçları üzerinde de çalışılabilir.

5. ÇEKİRDEK GÜVENLİĞİ Bu bölümde güvenlikle ilgili çekirdek yapılandırma seçeneklerini açıklayacak, ne işe yaradıklarını ve nasıl kullanıldıklarını anlatacağız. Çekirdek, bilgisayarınızın ağını denetim altında tuttuğu için, çok güvenli olması ve bozulmaması önemli. En yeni ağ saldırılarını engellemek için, çekirdek sürümünüzü güncel tutmaya çalışmalısınız. Ana Linux çekirdeğine, birleştirilmiş bir şifre yaması sağlayan uluslararası bir grup var. Bu yama, dışsatım kısıtlamaları yüzünden ana çekirdeğe dahil edilemeyen şeyler ve bazı şifreliyazımsal alt sistemler için destek sağlıyor. 5.1 2.0 Çekirdek Derleme Seçenekleri 2.0. x çekirdekleri için izleyen seçenekler geçerli. Bu seçenekleri çekirdek yapılandırma işlemi sırasında görürsünüz. Burdaki yorumların çoğu./linux/Documentation/Configure. help belgesinden, aynı belge çekirdeğin make config aşamasında Help kısmında da kullanılıyor. Ağ Ateşduvarları Bu seçenek, eğer Linux makinenizde ateşduvarı kullanacaksanız, veya maskeleme yapacaksanız açık olmalı. Eğer sıradan bir istemci makine olacaksa, kapata da bilirsiniz. IP: yönlendirme/ağ geçidi IP yönlendirmesini açarsanız, Linux kutunuz bir yöneltici haline gelir. Eğer makineniz ağ üzerinde ise, bir ağdan diğerine veri yönlendiriyor olabilirsiniz, belki de bunun olmasını engelleyen bir ateşduvarını devre dışı bırakarak. Normal çevirmeli ağ kullanıcıları bunu kapatmak isteyecektir, diğer kullanıcılar ise bunun güvenlik yan etkileri üzerinde düşünmelidir. Ateşduvarı görevi yapacak makineler bu seçeneğin açık olmasını, ve ateşduvarı yazılımıyla uyum içinde kullanılmasını gerektirir. IP yönlendirmeyi şu komutu kullanarak dinamik şekilde açabilir: root# echo 1 > /proc/sys/net/ipv4/ip_forward şu komutu kullanarak da kapatabilirsiniz: root# echo 0 > /proc/sys/net/ipv4/ip_forward /proc dizini içindeki dosyaların "sanal" dosyalar olduğunu ve gösterilen boyutun dosyadan alınabilecek veri miktarını yansıtmadığını aklınızdan çıkarmayın. IP: syn kurabiyeleri "SYN Saldırısı", makinenizdeki tüm kaynakları tüketen bir servis reddi saldırısıdır, sistemi yeniden başlatmak zorunda kalırsınız. Normal olarak bu seçeneği açmamanızı gerektirecek bir sebep düşünemiyoruz. 2.2. x çekirdek serisinde bu yapılandırma seçeneği "syn kurabiye"lerini açmaya izin verir, fakat onları açmaz. Açmak için aşağıdaki komutu kullanmalısınız: root# echo 1 > /proc/sys/net/ipv4/tcp_syncookies IP: Ateşduvarı Makinenizi bir ateşduvarı olarak yapılandıracaksanız, veya maskeleme yapacaksanız, veya PPP çevirmeli ağ arabirimini kullanarak çevirmeli ağ iş istasyonunuza birinin girmesine engel olmak istiyorsanız bu seçeneği açmanız gerekir. IP: Ateşduvarı paket günlüğü Bu seçenek ateşduvarınızın paketler hakkında aldığı gönderici, alıcı, port gibi bilgileri verir. IP: Kaynaktan yönlendirilen çerçeveyi düşür Bu seçenek etkinleştirilmelidir. Kaynaktan yönlendirilen çerçeveler, gidecekleri yeri paketin içinde bulundurur. Bu, paketin içinden geçtiği yöneltici tarafından incelenmemesi, ve sadece yönlendirmesi anlamına gelir. Bu, potansiyel açıklardan yararlanmak isteyen verinin sisteminize girebilmesine olanak tanıyabilir. IP: Maskeleme Linux'unuzun ateşduvarı rolünü üstlendiği yerel ağınızdaki bilgisayarlardan biri dışarı bir şey göndermek isterse, Linux'unuz kendini o bilgisayar olarak "maskeleyebilir", yani trafiği istenen hedefe göndererek, kendisinden geliyormuş gibi görünmesini sağlayabilir. IP: ICMP Maskeleme Bu seçenek, sadece TCP ve UDP trafiğinin maskelenmesi anlamına gelen bir önceki seçeneğe ICMP maskelemesini de ekler. IP: şeffaf vekil desteği Bu, Linux ateşduvarınızın, yerel ağdan çıkan ve uzaktaki bir bilgisayara gidecek olan tüm trafiği, "şeffaf vekil sunucu" adı verilen yerel bir sunucuya konuştuklarını sanmalarına yol açar, halbuki yerel vekile bağlanmış durumdadırlar. IP: daima parçala Genellikle bu seçenek kapalı durumdadır, fakat bir ateşduvarı veya maskeleyen bir bilgisayar oluşturuyorsanız, etkin hale getirmek isteyeceksiniz. Veri bir bilgisayardan diğerine giderken, her zaman tek bir paket halinde değil, bir kaç parçaya ayrılarak gönderilir. Burdaki sorun birinin kalan paketlere orda olması beklenmeyen bazı bilgileri sokmasıdır. Bu seçenek ayrıca, gözyaşı saldırısına karşı yama uygulanmamış içerdeki bir bilgisayara yapılan bu saldırıyı da engelleyebilir. Paket İmzaları Bu, 2.2. x çekirdek dizisinde yer alan ve daha güçlü güvenlik için NCP paketlerinin imzalanmasını sağlayan bir seçenektir. Olağan durumlarda kapalı bırakabilirsiniz, ama gereksinim duyarsanız orda duruyor. IP: Ateşduvarı paket ağbağlantısı cihazı Bu, bir paketin meşruluk durumuna bakarak kabul edilip edilmeyeceğini belirlemek amacıyla, kullanıcı uzayında çalışan herhangi bir programındaki paketlerin ilk 128 baytını inceleyebilmenizi sağlayan etkileyi bir seçenektir. 5.2 2.2 Çekirdek Derleme Seçenekleri 2.2. x çekirdekleri için, seçeneklerin çoğu aynı, fakat yeni bir kaç seçenek daha var. Buradaki açıklamaların çoğu, çekirdeği derlerkenki make config aşamasında kullanılan Yardım bölümünün referans aldığı./linux/Documentation/Configure. help belgesiyle aynıdır Gereken seçeneklerin bir listesi için 2.0 açıklamalarına başvurun. 2.2 çekirdekteki en anlamlı değişiklir IP ateşduvarı kodudur. Artık ateşduvarı oluşturmak için, 2.0 çekirdeğindeki ipfwadm programının yerine ipchains programı kullanılıyor. ( 2.4 çekirdek sürümünden itibaren artık bu iki programın yerine iptables kullanılmaktadır). Soket Süzümü Çoğu insan için bu seçeneğe hayır demek güvenlidir. Bu seçenek, tüm soketlere kullanıcı uzayında bir süzgeci bağlamanızı, ve bu yolla paketlerin geçişine izin verilip verilmeyeceğini belirlemenizi sağlar. Çok özel bir gereksinim duyuyor olmadıkça ve böyle bir süzgeç programlayabilir bilgiye sahip olmadıkça hayır demelisiniz. Ayrıca bu belgenin yazılışı sırasında TCP dışındaki tüm protokoller destekleniyordu. Port Yönlendirme Port Yönlendirme, ateşduvarındaki belirli portlarda, dışarı giden veya içeri gelen paketlerde bazı yönlendirmelerin yapılabilmesini sağlar. Bu, örneğin bir WWW sunucusunu ateşduvarının veya maskeleme bilgisisayarının arkasında çalıştıracağınız halde o WWW sunucusunun dış dünyadan ulaşılabilir durumda olması gerektiği durumlarda yararlıdır. Bir dış istemci ateşduvarının 80. portuna bir istek yollar, ateşduvarı bu isteği WWW sunucusuna yönlendirir, WWW sunucusu istekle ilgilenir ve sonuçları ateşduvarının üstünden tekrar özgün istemciye gönderir. İstemci ateşduvarının kendisinin WWW sunucusu olarak çalıştığını düşünür. Bu, eğer ateşduvarının arkasında bir WWW sunucu çiftliği bulunduruyorsanız, yük dengelemede de kullanılabilir. Soket Süzümü Bu seçeneği kullanarak, kullanıcı uzayındaki programları tüm soketlere bir süzgeç ekleyebilir, dolayısıyla çekirdeğe belirli tipteki verinin soket içinden geçip geçemeyeceğini bildirebilir. Linux soket süzümü şimdilik TCP dışındaki tüm soket tiplerinde çalışıyor. IP: Maskeleme 2.2 çekirdek maskeleme geliştirilmiş durumda. Özel protokollerin maskelenmesi için ek destek sağlıyor vb. Daha fazla bilgi için IP Chains NASIL belgesine göz atın.

6.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 . 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 , 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. SAINT, SATAN'ın güncellenmiş bir sürümü. WWW-tabanlı ve SATAN'dan daha çok güncel testlere sahip. 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. 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 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. 6.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ı. 6.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. 6.8 NFS 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 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 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. 6.9 NIS Ağ Bilgi Servisi , 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 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 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. 6.10. Güvenlik Duvarı : Bilgisayarlardaki firewall özel bir ağı uçsuz bucaksız olan Internet'ten korumayı sağlayan bir araçtır. Firewall'un en basit şekli Internete ya da özel ağlara bağlı bir Linux makinasıdır. Firewall görevini üstlenen bilgisayar, Internet'e ve de ağa erişebilir. Bu korumalı ağ Internet'e çıkamaz ve de Internet'te bu ağa giremez. Internet'e veya Internet'ten akan bilgiler firewall tarafından fıltrelenir. Ağ içinde servisleri açma ya da kapatmada daha az özen gösterilir. Bu şekilde sadece bir makina üzerinde yoğunlaşılır. Firewall kurmak oldukça karmaşık bir iştir. İlk başta makinenize bağlı iki ethernet kartı gerekir. Sonra iki ethernet kartı arası bilgi köprülerinin filterelenmesini kurmak için ipchains isimli program kurulmalıdır. 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. 6.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. 6.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 geçirmeniz gerekiyorsa, bunu yapabilmeniz için gereken bir çekirdek yaması mevcut: ip-masq-vpn.

4. PAROLA GÜVENLİĞİ VE ŞİFRELEME Bugün en önemli güvenlik özelliklerinden biri parolalardır. Hem sizin hem de tüm kullanıcılarınız için, güvenli, tahmin edilemeyen parolalara sahip olmak önemli bir konudur. Yakın zamanlı Linux dağıtımlarının çoğu, kolay tahmin edilebilir bir parola belirlemenizi engelleyen passwd programları ile birlikte gelir. passwd programınızın güncel ve bu özelliklere sahip olduğundan emin olun. Şifrelemenin derin anlamda tartışılması bu belgenin konusu ötesindedir, ama bir giriş yapılabilir. Şifreleme gerçekten yararlıdır, hatta bu zaman ve çağda gereklidir de. Şifrelemenin bir çok yöntemi vardır ve her biri kendi özellikler kümesini birlikte getirir. Bir çok Unix , parolalarınızı şifrelemek için çoğunlukla tek yönlü, DES adında bir algoritma kullanır. Şifrelenmiş parola /etc/passwd veya /etc/shadow dosyasının içinde tutulur. Sisteme giriş yapmaya kalktığınızda, girmiş olduğunuz parola tekrar şifrelenir, ve parola dosyalarının içindeki ile karşılaştırılır. Eğer uyarsa, o zaman aynı parola olmalı demektir, ve erişime izin verilir. DES aslında iki yönlü bir şifreleme algoritmasıdır . Bununla beraber, DES'in Unixler üzerindeki değişik biçimi tek yönlüdür. Bunun anlamı, /etc/passwd dosyasının içindeki şifrelenmiş parolaya bakarak, şifreleme algoritmasını tersine çevirmek yoluyla parolayı bulmak mümkün olmamalıdır. 4.1 PGP ve Açık Anahtarlı Şifreli Yazım Açık anahtar şifreliyazım, örneğin PGP'de kullanılan gibi, bir anahtarı şifreleme, diğer bir anahtarı da şifre çözme için kullanır. Geleneksel şifreleme tekniklerinde, şifreleme ve şifre çözme için aynı anahtar kullanılır. Bu anahtarın, her iki tarafta da bulunması, dolayısıyla bir şekilde bir tarafdan diğer tarafa güvenli şekilde aktarılmış olması gerekir. Şifreleme anahtarının güvenli aktarımını kolaylaştırmak için, açık anahtarlı şifreleme iki ayrı anahtar kullanır: bir açık anahtar ve bir de özel anahtar. Herkesin açık anahtarı diğerlerine şifreleme yapabilmesi amacıyla "açık"tır, ama herkes özel anahtarını, doğru açık anahtarla yapılmış şifreyi açabilmek için diğerlerinden gizli tutar. Hem açık anahtarın hem de gizli anahtar şifreliyazımın bazı avantajları vardır. PGP (Pretty Good Privacy, Oldukça İyi Gizlilik) Linux'ta iyi desteklenir. 2.6.2 ve 5.0 sürümlerinin iyi çalıştığı biliniyor. İyi bir PGP tanıtımı ve nasıl kullanıldığı ile ilgili bilgiyi PGP SSS içermektedir. Ülkeniz için uygun sürümü kullandığınızdan emin olun. ABD Hükümetinin dışsatım sınırlamalarından dolayı, güçlü şifrelemenin elektronik yollarla ülke dışına aktarılması yasaktır. ABD dışsatım denetimleri, artık ITAR tarafından değil, EAR tarafından idare edilmektedir. 4.2 SSL, S-HTTP, HTTPS ve S/MIME Kullanıcılar sık sık çeşitli güvenlik ve şifreleme protokolleri arasındakı farkları, ve nasıl kullanıldıklarını sorar. Bu bir şifreleme belgesi olmamakla birlikte her bir protokolün ne olduğunu ve daha fazla bilginin nerde bulunabileceğini açıklamak iyi bir fikir olabilir. SSL: - SSL, veya Secure Sockets Layer , Netscape tarafından İnternet üzerinde güvenlik sağlamak amacıyla geliştirilen bir şifreleme yöntemidir. SSL veri aktarım katmanında işlev görür, güvenli bir şifreli veri kanalı oluşturduğu için bir çok veri tipini şifreleyebilir. Bu en yaygın olarak, Communicator güvenli bir WWW sitesine bağlandığı, ve güvenli bir belgeyi görüntülemek istediğinde görülür. SSL, Netscape Communications şirketinin diğer veri şifrelemelerinin olduğu kadar, Communicator'ın da güvenli iletişim temellerini oluşturur. S-HTTP: - S-HTTP, İnternet üzerinde güvenlik servislerini sağlayan bir diğer protokoldür. Tasarlanma amacı gizlilik, kimlik doğrulama, bütünlük, ve inkar edememe olan S-HTTP, aynı zamanda birden çok anahtar-yönetimi mekanizmasını ve şifreleme algoritmasını, taraflar arasındaki aktarımda yer alan seçenek kararlaştırılması yoluyla destekler. S-HTTP, kendisini hayata geçirmiş olan belirli yazılımlarla sınırlıdır. S/MIME: - S/MIME, veya Güvenli Çokamaçlı İnternet Mektup Uzantısı , elektronik mektup ve İnternet üzerindeki diğer mesajları şifrelemek için kullanılan bir şifremele standardıdır. RSA tarafından geliştirilen açık bir standarttır, dolayısıyla bir gün Linux üzerinde görme olasılığımız yüksektir. 4.3 Linux IP Güvenliği'nin Hayata Geçirilmesi CIPE ve diğer veri şifreleme biçimlerinin yanında, IPSEC'in de Linux için bir kaç hayata geçirilme örneği vardır. IPSEC, IP ağ düzeyinde şifreliyazımsal-güvenli iletişimler yaratmak, ve kimlik doğrulama, bütünlük, erişim denetimi ve gizlilik sağlayabilmek amacıyla IETF tarafından gösterilen bir çabadır. IPSEC'in ücretsiz bir diğer uygulaması da Linux FreeS/WAN IPSEC'tir. WWW sayfalarında belirtildiğine göre, "Bu servisler, güvenmediğiniz ağların içinde güvenli tüneller oluşturmanızı sağlar. Güvenilmeyen ağdan geçen herşey IPSEC ağ geçidi tarafından şifrelenir ve diğer uçtaki ağ geçidinde şifresi çözülür. Sonuç bir Sanal Özel Ağ, yani VPN'dir . Bu, bir takım farklı sitelerdeki güvensiz İnternet ile birbirine bağlı bulununan makineler içerdiği halde, etkin anlamda özel bir ağdır." 4.4 SSH ve Stelnet Makine bilgilerine bakarak bağlantıları reddetmek saldırılardan korunmak için iyi bir yöntem. Ama hepsi bu kadar değil. Sahte makine isimleriyle bağlantı yapmak olasıdır. Internet üzerinden programlar arası haberleşmede bilgi tehlikededir. Yeterli bilgiye sahip birisi bunlara bakabilir. Spoofing denen yöntemle sahte bilgileri Sisteminize aşılayabilirler. Bu problemler Internet protokollerinin karşılıklı haberleşmeleri sırasında gerçekleşir. Bu güçlüklerin üstesinden gelmek için ssh tasarlanmıştır. SSH açık kaynak kodu şartlarına uygun olarak, bağlantılarda kimlik kontrolü ve şifreleme yapan sağlam yapılı ve iyi geliştirilmiş bir sistemdir. Şifreleme, bilgi paketlerinin iletimi sırasında kodlar kullanır. Kimlik doğrulama bağlantı ya da paket iletimi varsa kullanılan bir yöntemdir. Diğer işletim sistemlerinde SSH istemcileri mevcuttur. Sunucu olarak Linux kullanılarak SSH düzeyinde bilgi iletimi sağlanabilir. Openssh, ise rlogin, rsh ve rcp'nin yerine geçen güvenli bir programlar grubudur. Kullanıcıların kimliğini doğrulamak için ve iki bilgisayar arasındaki iletişimi şifrelemek için açık anahtarlı şifreliyazım tekniğini kullanır. Uzaktaki bir bilgisayara güvenli şekilde giriş yapmak veya bilgisayarlar arasında veri kopyalama yapmak, ama bu sırada gelebilecek ortadaki-adam ve DNS taklit saldırılarını engellemek amacıyla kullanılabilir. Bağlantılarınız arasındaki verilerı sıkıştırır, ve bilgisayarlar arasındaki X11 iletişimini güvenli hale getirir. Mükemmel Openssh uygulamasında, Data Fellows ssh'sinin önceki sürümlerinden biri taban oluşturmuş, ve patentli veya tescilli herhangi bir parça bulunmaması için tamamen yeniden bir çalışma yapılmıştır. ssh'yi Windows iş istasyonunuzdan Linux ssh sunucunuza bağlanmak amacıyla da kullanabilirsiniz. SSLeay, Netscape'in Güvenli Soket Katmanı protokol uygulamasının, Eric Young tarafından yazılan ücretsiz bir sürümü. Güvenli telnet gibi bazı uygulamalar, Apache için bir modül, bir takım veritabanları, ve DES, IDEA, ve Blowfish algoritmaları SSLeay'in içinde bulunabilir. Bu kütüphaneyi kullanarak, telnet bağlantısı üzerinde şifreleme yapan güvenli bir telnet uygulaması yaratıldı. SSH'nin tersine, stelnet SSL'yi, Netscape tarafından geliştirilen Güvenli Soket Katmanı'nı kullanıyor. Güvenli telnet ve Güvenli FTP hakkında bilgiyi SSLeay SSS'ından başlayarak bulabilirsiniz. "SRP projesi, dünya çapında ücretsiz kullanım için güvenli İnternet yazılımı geliştiriyor. Tamamen güvenli bir Telnet ve FTP dağıtımından başlayarak, ağ üzerindeki zayıf kimlik doğrulama sistemlerini değiştirmeyi, bunu yaparken de güvenlik uğruna kullanıcı-dostluğunu kurban etmemeyi amaçlıyoruz. Güvenlik, varsayılan olmalı, bir seçenek değil!" 4.5 PAM - Takılabilir Kimlik Doğrulama Modülleri Red Hat Linux dağıtımlarının yeni sürümleri, "PAM" adı verilen birleşmiş bir kimlik doğrulama tasarımı ile birlikte geliyor. PAM, kimlik doğrulama yöntem ve gereksinimlerinizi çalışma kesilmeksizin değiştirmenize izin veriyor, ve ikililerinizin yeniden derlenmesine gerek bırakmaksızın bütün yerel kimlik doğrulama yöntemlerinizi çevreliyor. PAM ile yapabileceklerinizden sadece bir kaçı: Parolalarınız için DES'ten başka bir şifreleme kullanma Tüm kullanıcılarınızın üzerinde, kaynak sınırlandırmaları koyabilme, böylelikle servis-reddi saldırılarını engelleme Çalışma kesilmeksizin gölge parolaya geçiş olanağı Belirli kullanıcıların, sadece belirli zamanlarda ve belirli yerlerden giriş yapmalarına izin verme Sisteminizi bir kaç saat içinde kurduktan ve yapılandırdıktan sonra, bir çok saldırıyı gerçekleşmeden durdurabilirsiniz. Örneğin, kullanıcıların ev dizinlerindeki. rhosts dosyalarının kullanımını engellemek için, sistem genelinde /etc/pam. d/rlogin dosyasına aşağıdaki satırları ekleyerek PAM'i kullanabilirsiniz: # # Kullanıcılar için rsh/rlogin/rexec kullanımını yasakla # login auth required pam_rhosts_auth. so no_rhosts

3. DOSYALAR VE DOSYA SİSTEMİ GÜVENLİĞİ Sistemlerinizi ağa bağlı hale getirmeden önce yapılacak bir kaç dakikalık hazırlık ve planlama, sistemlerinizin ve üzerlerinde saklanan verinin korunmasında yardımcı olabilir. Kullanıcıların, SUID/SGID programları ev dizinlerinden çalıştırmalarına izin vermek için herhangi bir sebep olmamalıdır. /etc/fstab dosyasında, root'tan başkalarının da yazma izninin olduğu disk bölümleri için nosuid seçeneğini kullanın. Ayrıca, kullanıcıların ev dizinlerinin bulunduğu bölümlerde, ve /var dizininde, program çalıştırılmasını ve karakter veya blok cihazların yaratılmasını engellemek için nodev ve noexec seçeneklerini kullanabilirsiniz. NFS kullanarak dosyasistemlerini dışarı açıyorsanız, /etc/exports dosyasında en fazla sınırlandırma sağlayan seçenekleri kullandığınızdan emin olun. Bu, genel karakter kullanılmaması, root kullanıcısına yazma izninin verilmemesi, ve mümkün olduğu yerlerde salt-okunur şekilde dışa açılması anlamına geliyor. Kullanıcılarınızın dosya yaratma umask'ini mümkün olduğu kadar sınırlı tutun. Eğer, NFS gibi bir ağ dosyasistemini kullanarak dosyasistemlerini bağlıyorsanız, /etc/exports dosyasında uygun sınırlama ayarlarının yaptığınızdan emin olun. Tipik olarak, "nodev", "nosuid", ve belki de "noexec" gerekli olanlardır. Dosyasistemlerinin sınırları belirleyin, varsayılan unlimited ayarına izin vermeyin. Kullanıcı bazındaki sınırları, kaynak-limitleri PAM modülünü kullanarak, ve /etc/pam. d/limits. conf dosyasındaki ayarlar aracılığı ile yapabilirsiniz. Örneğin, users grubu için sınırlar şu şekilde olabilir: @users hard core 0 @users hard nproc 50 @users hard rss 500 Burda söylenen, core dosyalarının yasaklanması, işlem sayısının 50 ile sınırlanması, ve bellek kullanımının 5M ile sınırlandırılmasıdır. /var/log/wtmp ve /var/run/utmp dosyaları sisteminizdeki tüm kullanıcıların sisteme giriş bilgilerini içerir. Bu dosyaların bütünlükleri korunmalıdır, çünkü bir kullanıcının ne zaman ve nereden giriş yaptığını belirlemede kullanılabilirler. Bu dosyaların erişim izinleri, normal işlevlerini gerçekleştirmelerine engel olmayan 644 olmalıdır. Korunması gereken bir dosyanın kazara silinmesi veya üzerine yazılmasını önlemek için değişmez biti kullanılabilir. Bu ayrıca, dosyaya bir simgesel bağ yaratılmasını da engelleyecektir . Değişmez biti ile ilgili daha fazla bilgi için chattr (1) man sayfasına bakın. Sisteminizdeki SUID ve SGID dosyaları, potansiyel bir güvenlik riski oluşturur ve yakından izlenmelidir. Bu programlar, onları çalıştıran kullanıcıya özel yetkiler verdiği için, güvensiz programların kurulu olmadığından emin olmak gereklidir. Korsanların gözde bir numarası da SUID-root programlarından yararlanarak, bir sonraki girişlerinde arkakapı olarak kullanmak üzere bir SUID programı yerleştirmektir. Bu şekilde asıl delik kapatılsa bile yeni arkakapı sayesinde sisteme giriş yapabilirler. Sisteminizdeki bütün SUID/SGID programları bularak ne olduklarını izleyin. Böylelikle, bir değişiklik olduğunda, ki bu değişiklikler potansiyel bir saldırganın göstergesi olabilir, haberiniz olmuş olur. Sisteminizdeki bütün SUID/SGID programları bulmak için aşağıdaki komutu kullanabilirsiniz: root# find / -type f \ ( -perm -04000 -o -perm -02000 \) Debian dağıtımı, hangi SUID programlarının bulunduğunu belirlemek için her gece bir iş çalıştırır. Daha sonra bunu bir önceki gece ile karşılaştırır. Bu günlük için /var/log/setuid dosyalarına bakabilirsiniz. Şüpheli bir programdaki SUID ve SGID erişim izinlerini chmod ile kaldırabilir, daha sonra mutlak şekilde gerektiğini hissederseniz tekrar yerine koyabilirsiniz. Herkes tarafından yazılabilir dosyalar, özellikle sistem dosyaları, bir korsan sisteminize erişir ve üzerlerinde değişiklik yaparsa bir güvenlik deliği haline gelebilir. Ayrıca herkes tarafından yazılabilir dizinler de tehlikelidir, çünkü bir korsanın istediği gibi dosya ekleme ve silmesine izin verir. Sisteminizdeki herkes tarafından yazılabilen dosyaları bulmak için, aşağıdaki komutu kullanın: root# find / -perm -2! -type l -ls ve bu dosyaların neden yazılabilir olduklarını bildiğinizden emin olun. Normal işlevler sırasında, herkes tarafından yazılabilir bir takım dosyalar bulunur, bunlar arasında /dev dizinindekiler ve simgesel bağlar da vardır. Bu nedenle yukarıdaki find komutunda simgesel bağları dışarıda bırakan! -type l seçeneğini kullandık. Sahipsiz dosyalar da bir saldırganın sisteminize eriştiğinin bir göstergesi olabilir. Sahibi olmayan veya hiçbir gruba ait olmayan dosyaları aşağıdaki komut ile bulabilirsiniz: root# find / -nouser -o -nogroup -print . rhosts dosyalarına sisteminiz üzerinde izin vermemelisiniz, dolayısıyla sistem üzerindeki bu dosyaların bulunması düzenli yönetim görevlerinizin bir parçası olmalı. Unutmayın, bir korsan bütün ağınıza erişebilmek için sadece bir güvensiz hesaba gereksinim duyar. Aşağıdaki komutla sistem üzerindeki tüm. rhosts dosyalarını bulabilirsiniz: root# find /home -name. rhosts -print Son olarak, herhangi bir sistem dosyası üzerindeki erişim izinlerini değiştirmeden önce, ne yaptığınızı anladığınızdan emin olun. Sadece bazı işlerin daha kolay olduğunu düşündüğünüz için bir dosyanın erişim izinlerini değiştirmeyin. Daima değiştirmeden önce neden o dosyanın o izinlere sahip olduğunu belirleyin. 3.1 Umask Ayarları Umask komutu, sistem üzerinde varsayılan dosya yaratma kipini belirlemek amacıyla kullanılabilir. İstenen dosya kipinin sekizli sayı düzeninde tümleyicisidir. Eğer dosyalar, erişim ayarlarına bakmaksızın yaratılırsa, kullanıcı dikkatsizce, okuma veya yazma izni olmaması gereken birine bu izinleri verebilir. Tipik umask ayarları, 022, 027, ve 077 ayarlarıdır. Normal olarak, umask /etc/profile dosyasında belirlenir, dolayısıyla bütün kullanıcılar için geçerlidir. Dosya yaratma maskesi 777'den istenen değerin çıkarılmasıyla elde edilebilir. Diğer bir deyişle, umask ayarı 777 olduğu zaman, yeni yaratılan bir dosya kimse için okuma, yazma ve çalıştırma izinlerini bulundurmayacaktır. 666 gibi bir maske, yeni yaratılan dosyaların 111 izninde olmasını sağlayacaktır. Örneğin, aşağıdaki gibi bir satır olabilir: # Kullanıcının varsayılan umask değerini belirle umask 033 Root'un umask değeri 077 olmalıdır; bu, root'tan başka herkesi okuma, yazma ve çalıştırma izinlerinden, açık bir şekilde chmod ile izin verilene kadar yoksun bırakır. Yukarıdaki örnekte, yeni yaratılan dizinlerin izinleri, 777 - 033 = 744 olacaktır. Yeni yaratılan dosyaların ise bu maske ile erişim izinleri 644 olur. 3.2 Dosya İzinleri Sistem dosyalarınızın, kullanıcılar tarafından, ve sistem dosyalarının bakımından sorumlu olmayan kişiler tarafından açılmadığını garanti altına almak önemlidir. Unix, dosya ve dizinlerdeki erişim denetiminde üç ayrı özelliğe göre sağlar: sahip, grup, ve diğer. Bir dosyanın her zaman bir sahibi ve grubu vardır, geriye kalan herkes "diğer" özelliğine sahiptir. Unix izinlerini kısaca açıklayacak olursak: Sahiplik - Hangi kullanıcı ve grup , dosyanın izin haklarını denetim altında tutuyor? İzinler - Kimi erişim tiplerine müsade etmek için 1 veya 0 olabilen bitler. ( bit, binary digit'in kısaltması olup, ikili rakam anlamına gelir. İkili sayı düzeninde zaten iki rakam vardır, 1 ve 0). Dosyaların izinleri, dizinlerinkinden farklı anlamlar taşır. Okuma: Dosyanın içeriğini görebilme Dizinde hangi dosyaların bulunduğunu görebilme Yazma: Bir dosya üzerinde değişiklik veya ekleme yapabilme Bir dizindeki dosyaları silebilme veya taşıyabilme Çalıştırma: İkili yapıdaki bir programı veya kabuk betiğini çalıştırma ( Betikler, ikili dosya türünde olmayıp, bildiğimiz okunabilir metin dosyalarıdır. Diğer metin dosyalarından farkları çalıştırılabilme özellikleridir. Bu özellikleri, betiklerin ikili dosya tipleri, yani programlar tarafından yorumlanması şeklindedir. Örneğin bir kabuk betiği bash programı tarafından, bir perl betiği perl programı tarafından, ve bir php betiği ise php programı tarafından okunarak, içindeki komutlar yerine getirilir) Bir dizinde arama yapabilme, okuma izinleri ile birlikte

6. AĞ GÜVENLİĞİ 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. 6.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 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 . 6.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 , ve sonrasında inetd işlemine bir SIGHUP sinyali göndererek kapatabilirsiniz. Bunun yanısıra, /etc/services dosyasındaki servisleri silebilirsiniz . 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 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 , shell , ve exec de dahildir. Bu protokoller aşırı derecede güvensizdir ve geçmişte bir çok açığın sebebi olmuştur. /etc/rc. d/rc . d veya /etc/rc . d 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 dizinindeki dosyalara simgesel bağlardır . 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 . Gerçek sunucunun yerine bir tcp_wrapper ç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. 6.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. 6.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 , bütün identd isteklerinin günlüğünü tutabilir , hatta identd tarafından döndürülen bilginin kullanıcı ismi yerine kullanıcı kimliği olmasını ya da NO-USER olmasını sağlayabilirsiniz.