AraKullanıcı girişiGezintiEn son ağ günlüğü gönderileri
En Çok OkunanlarKimler yeni
Bağlantılarİçerik paylaşımı |
Linux Sunucu Güvenliği ve Optimizasyonu ILinux, kararlı çekirdeği, ağ yazılımlarının çeşitliliği ve kalitesi, performans/maliyet eğrisindeki konumu nedeni ile günümüzün en çok tercih edilen ağ işletim sistemlerinden olmuştur. Dışarıdan ve içeriden gelebilecek tehlikelere karşı gerekli önlemler alınmış bir Linux kurulu makine yıllarca hiç sorun çıkartmadan çalışabilmesine rağmen, her zaman için bunun aksi de mümkündür. Güvenlik ile ilgilenen herkesin bileceği gibi kesinlikle güvenli denilecek bir sistem tasarlanması mümkün değildir. Özellikle Internet' in yaygınlaşması ve kurumların iç ağlarını global ağa bağlaması sonucunda tehlike daha da artmıştır. Bu aydan itibaren Linux sunucu ve istemci bilgisayarlarda güvenliği artırmak için bazı faydalı bilgiler vermeye çalışacağız. Güvenli bir işletim sistemi Eğer sunucumuz üzerinde çok önemli bilgi bulunduruyorsak RAID kontrol kartları bulunması kaçınılmazdır. Ayrıca yazılımın her ihtimale karşı düzenli olarak yedeklenmesi ve yedeklenmenin de mümkünse ayrı bir optik veya manyetik medya üzerine yapılması tercih edilmelidir. Güvenli bir Linux sistemin kurulumu Kurulum sırasında /var, /usr, /home dizinlerini ayrı disklere bağlamak genelde doğru bir yaklaşımdır. Bu sayede diskin yedeğinin alınması kolaylaşmakta ve disklerden birinde oluşacak bir hata sonucunda kaybedilen verinin minimuma indirilmesi sağlanacaktır. Eğer sunucuda maksimum güvenlik gerekli ise, Xwindows bileşenlerinin kurulmaması doğru bir karar olacaktır. Xwindows sistemi, bir istemci makinede işlemleri kolaylaştırmasına rağmen, çok büyük kod yapısı ve kodunda bulunması muhtemel onlarca hatadan dolayı çok büyük bir risk taşımaktadır. Elinizdeki Linux sürümünü çok iyi tanımalı, eğer ihtiyacınız olan sunucu yazılımlar bu sürüm ile birlikte geliyorsa onları sisteminize kurmadan önce versiyonları hakkında ayrıntılı bilgi edinmelisiniz. Örnek vermek gerekirse: Red Hat Linux 6.2 işletim sistemi kurulacaksa, bu sürüm ile birlikte gelen FTP sunucu paketi olan wu-ftpd-2.6.0 paketinde bulunan bazı güvenlik açıkları ve bunlardan faydalanan exploitler nedeni ile yeni kurduğunuz Linux sunucu birkaç dakika içinde kötü niyetli bir kişi tarafından ele geçirilebilir. Tavsiyemiz, az önce hazırlamanızı tavsiye ettiğimiz sunucunun görevi başlıklı listenize sizin için gerekli olacak yazılımlar listesini de ekleyerek sırası ile bu yazılımların Internet'teki ana sayfalarına göz atmanızdır. Örneğin az önce söz ettiğimiz Red Hat 6.2' deki güvenlik boşluğuna karşı wu- ftpd-2.6.1 sürümü kullanılmasının gerekliliği, sitenin ana sayfasında önemle duyurulmaktadır. Şimdi, Linux sunucularda yaygın olarak kullanılan bazı ağ servisleri ve bunlar hakkında en güncel bilgilerin bulunduğu Internet sitelerini listeleyelim. Paketin Adı Wu-FTPD FTP Apache Bind qpopper Cyrus IMAP Server Sendmail Yukarıdaki web sitelerini ziyaret ederken, elinizdeki Linux sürümündeki yazılımların versiyonlarını kontrol ettiğinizde büyük ihtimalle en son sürüme sahip olmadığınızı göreceksiniz. Bu aşamada en doğru hareket, ilgili paketin tar.gz uzantılı kaynak kodunu sunucu makineye kopyalayıp, kodu derlemektir. Pek çoğumuza zahmetli gelen kod derlemeye başvurmamızın nedeni, yazılımların kaynak kod olarak dağıtılması ile rpm veya deb paketi olarak dağıtılmasına başlanması arasında geçen sürede sunucumuzun tehdit edilmesini istemememizdir. Güvenliği maksimize etmek için bir diğer önemli nokta da makinede C, C++ derleyici bulundurulmamasıdır. Eğer ileride bir gün gerekirse geçici olarak kurulması ve ardından tekrar kaldırılması doğru olacaktır. Bunun nedeni, makineye erişen kullanıcıların işletim sistemine zarar verebilecek bazı kodları derlemesini engellemektir. Ayrıca, çekirdek (kernel) kaynak kodunun da sistemde bulunması bazı tehlikeler ortaya çıkarabilir. Bunun nedeni ise bazı alt seviye güvenlik kırıcı programların kernel' daki C++ başlık dosyalarını kullanarak sistemde root kullanıcı hakkına sahip olmayı başarmasıdır. Bunu engellemek için en iyi yol, Linux çekirdeğinin kaynak kodunun sistemde bulunmamasıdır. Kurulduktan sonra silinecek bileşenler. git ve mc Kullanıcı hesapları Sistemde kullanılan şifrelerin genel özelliklerini kısıtlamak mümkündür. Örneğin sistemdeki bütün şifrelerin minimum 5 karakter ile kısıtlı olması sağlanabilir. Bunun için /etc/login.defs dosyasına PASS_MIN_LEN n gibi bir ibare girilmesi gereklidir. Buradaki n sayısı şifrelerin minimum uzunluğunu belirtmektedir. Çok sık yapılan hatalardan bir tanesi de bir kullanıcının sisteme bağlanması ve uzun süre bağlı kalmasıdır. Bunu engellemek için de /etc/profiles dosyası içerisine TMOUT =7200 yazılması bağlı olan kullanıcının hiçbir işlem yapmadan geçirdiği 7200 saniye sonunda otomatikman sistemden atılmasını sağlar. /etc/exports dosyası /paylaştırılacak/dizin1 yetkili.makine.com.tr(ro,root_squash) Yukarıdaki dosyada ro seçeneği, bu paylaşımın salt okunur olduğunu, root_squash seçeneği ise root kullanıcı yazma haklarına sahip herhangi bir koşulun olamayacağı anlamına gelir. /etc/security/console.apps/ dizini rm –f /etc/security/console.apps/halt Eğer sistemde root kullanıcı harici kimsenin Xwindows sistemini kullanmamasını istiyorsak yine rm –f /etc/security/console.apps/ dizini içindeki xserver dosyasını da silmemiz yeterli olacaktır. /etc/pam.d/ dizini cd /etc/pam.dfor i in * ; dosed '/[^#].*pam_console.so/s/^/#/' <$i> temp && mv temp $idone /etc/inetd.conf dosyası Dosyanın temel yapısı şu şekildedir. ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a Bu dosya, sisteminizin güvenliği için en önemli dosyalardandır. Gerekli olmayan her şeyi kapatmalısınız. Örneğin makine ftp sunucu olarak kullanılmayacak ise yapılması gereken en doğru hareket ilgili satırın başına bir diyez (#) işareti koyarak bu servisi aktif halden kaldırmak olacaktır. Elbette ki bu servis kullanılmıyorsa, aynı zamanda makineden silmek doğru bir harekettir. Eğer bir servisin işe yarayıp yaramadığı hakkında tereddüde düşüyorsanız, o servisi kaldırın. Büyük ihtimalle işinize yaramayacaktır. Burada açık bırakacağınız her bir satır size bir güvenlik boşluğu olarak geri dönecektir. Örnek vermek gerekirse çok zararsız gibi görünen "echo" servisi, bu porta gönderilen her bilgiyi aynen geri göndermekle görevlidir. Eğer kötü niyetli birisi bu porta, sürekli işe yaramaz bilgi gönderen bir yazılım yazarsa, bu servis gelen saçma sapan karakterlerin hepsine birden cevap vermek isterken sistem kaynaklarının çok önemli bir kısmını tüketecektir. Aynı programın bir worm tarzında yazıldığını ve Internet üzerinde binlerce makineden aynı anda saçma sapan karakterler gönderildiğini varsayarsanız, sunucunuz büyük ihtimalle göçecektir. Bir diğer önemli madde ise her ihtimale karşı /etc/inetd.conf dosyasının haklarını kontrol etmeliyiz. Bu dosyanın hakları 600 yani sadece root kullanıcı tarafından okunabilir ve yazılabilir şekilde olmalıdır. Bu, aşağıdaki komut ile sağlanabilir. chmod 600 /etc/inetd.conf Bu dosyanın içeriğinden emin olunduktan sonra, bir daha root kullanıcı dahil kimse tarafından değiştirilmemesi için şu komut verilmelidir. chattr +i /etc/inetd.conf /etc/hosts.deny dosyası Aşağıda standart bir /etc/hosts.deny dosyası görünmektedir. # Bütün erişim haklarını kapat!!!... /etc/hosts.allow dosyası sshd: 195.244.37.241 trlinux.com /etc/issue ve /etc/issue.net dosyaları telnet protokolü, bir makineye uzaktan erişim amaçlı kullanılır ve üzerinden akan bilgiyi şifrelemeden gönderdiği için güvenli bir makinede bulunması kesinlikle tavsiye edilmez. Şifrelenmeden yollanan her türlü bilgi, bir sniffer yazılımı aracılığı ile rahatlıkla dinlenebilir. Bunu engellemek için ssh adı verilen protokolü tercih etmelisiniz. /etc/services Bunu engellemek için bu dosyada değişiklik yapmayı engelleyen şu komutun verilmesi yeterlidir. chattr +i /etc/services /etc/securetty dosyası /etc/passwd ve /etc/shadow dosyaları chmod 600 /etc/shadow Kullanıcıların su komutu ile root kullanıcı olmalarının engellenmesi auth sufficient /lib/security/pam_rootok.so debug Artık sistemimizde wheel grubuna üye olmayan hiçbir kullanıcı root haklarına sahip olamayacaktır. Wheel grubuna aşağıdaki komut ile kolayca umut adlı bir kullanıcı eklenebilir. chmod –G10 umut Kullanıcıların CPU ve RAM kullanımlarını sınırlamak hard core 0 Ardından bu özelliği aktif hale geçirmek için kullanıcılar sisteme bağlanırken kullanılan /etc/pam.d/login betiğine bu özelliğin belirtilmesi gereklidir. Sonuçta bu dosya aşağıdaki gibi olacaktır. #%PAM-1.0 Linux işletim sistemi, doğru ellerde dünyanın en güvenli işletim sistemi haline getirilebilir. Fakat, pek çoklarının düşündüğü gibi bu özelliklerin pek çoğu aktif olarak gelmez. Doğru amaçlar için konfigüre edilmiş bir işletim sistemi yaratmak için çok çalışmalı ve Linux dünyasında duyurulan güvenlik uyarılarını dikkate almalısınız. Bu yazı Ekim 2000 tarihinde PC Net Türkiye Dergisinde yayınlanmıştır. kaynak: http://www.umutgokbayrak.com/showdoc.php?docid=6 __________________________ (1 vote)
|
Benzer yazılarEtiketlerEn son forum mesajlarıYaklaşan Aktiviteler |
Son yorumlar
11 saat 7 min önce
1 gün 2 saat önce
4 gün 50 min önce
6 gün 6 saat önce
1 hafta 1 saat önce
1 hafta 2 saat önce
1 hafta 11 saat önce
1 hafta 2 gün önce
1 hafta 3 gün önce
2 hafta 5 gün önce