|
|||||||
| Reklam İrtibat | Mail+MsN | SiteMap | Tags | Üye Ol | Üye Listesi | Şifremi Unuttum | Arama | Günün Mesajları | Konuları Okundu İşaretle |
|
|
#1 | ||||
Linux Sistemlerde Güvenlik Arkadaşlar bildiğimiz gibi Win işletim sistemlerine kolay bir şekilde girilebilmekte, userların her türlü bilgileri izinleri dahilinde olmadan bir takım bilgisayar user ları tarafından ele geçirilmektedir ![]() Bu da Linux işletim sistemlerinin yaygınlaşmasına neden olan en büyük etkenlerden birisidir Çünkü Linux kararlı ve güvenilir bir işletim sistemine sahiptir Dolayısıyla birçok sistem yöneticisi kişisel bilgilerini ya da sistem bilgilerini Linux işletin sistemleri altında bulundurmaya başlamışlardır Bununla birlikte hacker veya cracker diye nitelendirebileceğimiz bilgisayar dehaları bir nevi kendini kanıtlama fırsatı bulmuşlardır Peki Linux işletim sistemini daha güvenli hale getirmek için neler yapılabilir¿ *Konsol Güvenliği: Konsol güvenliği ( İç güvenlik ) kurduğunuz sisteme bağlıdır Ve eğer normal bir user olarak linux’u kullanıyorsanız altta belirtilen önlemlere uymak zorunda değilsiniz ancak eğer bir sistem yöneticisi konumundaysanız daha dikkatli olmanız gerekmektedir Alabileceğiniz güvenlik önlemleri: *Eğer linux’a root olarak girdiyseniz, pc başından ayrıldığınız zaman şifre korumalı bir screensaver devreye sokun Siz olmadığınız zamanlarda birileri bu fırsattan yararlanıp sisteme zarar verebilir Eğer linux’u konsoldan kullanıyorsanız " vlock" komutunu kullanabilirsiniz *Userlar için şifre belirledikten sonra user bu şifreyi kullanarak sisteme ilk kez girdiği zaman mutlaka şifresini değiştirmesini sağlayın * Gerekmedikçe sisteme user eklemeyin *Şifrelerinizi belirlerken sağlam şifreler seçin Brute attack yoluyla kırılamayacak şifreler seçin Ve şifrenizi sık sık değişin Linux işletim sistemlerinde şifreler ve kullanıcı bilgileri /etc/passwd - /etc/shadow dosyasında bulunmaktadır Bazı uygulamaların şifres dosyalarının bazı alanlarına erişimi gerektiğinden şifre dosyası, sistemdeki bütün kullanıcılar tarafından okunabilecek bir dosya olmalıdır Bu nedenle şifreler bu dosyaya açık halde değil, şifrelenerek yazılırlar **Shadow Password Suite [ Gölgeli Şifreler ] Redhat 6 0 ’dan önceki Linux işletim sistemlerinde normal şifreleme kullanılıyordu Bu şifreleme metodu sizin şifrelerinizi tekrar şifreler, /etc/passwd ’e atar Bu şifreleme yönteminde de eksik birtakım şeyler vardır Mesela userların okuma hakkı olduğu zaman bu dosya c/p yapılıp içinde bulunan şifreler çok kolay bir şekilde çözüşür Shadow Password bu nedenden dolayı ortaya çıkmış bir uygulamadır Şifreler yeniden şifrelenerek /etc/shadow içerisine atılır ve /etc/passwd dosyası altında şifre bırakılmaz Böylece daha güvenli bir yapı oluşturulmuş olur **Md5 Şifrelemesi: Linux ta açılan kullanıcılar için verilecek şifrenin uzunluğu en fazla 8 karakter olabilir Daha uzun yazsanız bile Linux sadece ilk 8 karakteri şifre olarak kabul edecektir Bu da demek oluyor ki şifre en fazla 8 karakter olabiliyor ve şifrelerimizi çözmek isteyen biri için bu bir başlangıç noktası, ipucu niteliği taşıyor Bu ipucunu yok etmenin de bir yolu var tabi ki Çözüm az önce merak ettiğimiz MD5 şifrelemesi MD5 şifrelemesi sayesinde şifre uzunluğu 8 karakterden 256 karaktere kadar çıkarabiliyor Bu da crackerin ömrünün bilgisayar başında geçirerek şifreyi kırmaya çalışacağı anlamına geliyor Sistem şifrelerini korumak amacıyla mutlaka gölgeli şifreleme ve MD5 şifrelemesini Kullanın!! 2 DOSYA GÜVENLİĞİ Her dosyanın bir sahibi, bir de grubu vardır Dosya üzerinde kimin hangi işlemleri yapabileceğine dosyanın sahibi olan kullanıcı karar verir Erişim hakları, dosyanın sahibi, grubu ve diğerleri için ayrı ayrı belirtilir -rwxr-x--- 1 uyar users 4030 Dec 4 15:30 dene Dizinler için de aynı erişim hakları modeli geçerlidir Bir dizin üzerindeki okuma izni, dizin altındaki programların listesinin alınıp alınamayacağını, yazma izni dizinde yeni bir dosya yaratılıp yaratılamayacağını, çalıştırma izni de o dizine geçilip geçilemeyeceğini belirler Yetkili kullanıcının (root) bütün dosyalar ve dizinler üzerinde (birkaç sistem dosyası ve dizini haricinde) bütün işlemleri yapma yetkisi vardır Tehlikeler: İşletim sisteminde ya da uygulama programlarında bir hata olmadığı sürece erişim izni olmayanlar dosyayı zaten okuyamayacaklardır Asıl tehlike, yetkili kullanıcının yetkisini kötüye kullanarak kullanıcıların kişisel dosyalarını ve mektuplarını okumasıdır Her şeye yetkisi olan bir kullanıcı, sistemin kararlılığını korumak için gerekli olmakla birlikte, güvenliği ve özel bilgilerin gizliliğini bir kişinin ahlakına bırakması açısından Linux (ve Unix) işletim sisteminin güvenliğinin en zayıf noktalarından biri olarak değerlendirilmektedir Saldırgan, sisteme girince, hem sonraki girişlerini kolaylaştırmak, hem de daha rahat çalışabilmek için bazı sistem dosyalarını ya da programlarını değiştirebilir Örneğin, şifre dosyasına bir kayıt ekleyerek kendine yetkili bir kullanıcı yaratabilir Kullanıcıların şifrelerini öğrenmek için login, passwd gibi programları değiştirebilir Önlemler: Şifre güvenliği sağlandığı sürece dosya erişimlerinde fazla bir güvenlik sorunu olmayacaktır Bu konuda sistem sorumlusuna düşen, kullanıcılarını erişim haklarını nasıl düzenleyecekleri konusunda bilgilendirmektir Şifre dosyası gibi metin dosyalarında değişiklik olup olmadığı gözle inceleme yaparak ya da basit komut satırı programları kullanarak bulunabilir Çalıştırılabilir dosyalar gözle kontrol edilemeyeceğinden en uygun yöntem, dosya imzaları oluşturarak sağlam olduğu bilinen imzalarla yeni hesaplanan imzaları karşılaştırmaktır Tripwire paketi, dosyalarda yapılan değişiklikleri fark etmekte sistem sorumlusuna ve kullanıcılara yardımcı olur Önce sağlam olduğu bilinen dosyaların dosya imzaları oluşturularak bir yerde saklanır Sonraki çalıştırmalarda imzalar yeniden hesaplanarak eskileriyle karşılaştırılır ve farklı olanlar varsa bildirilir Düzgün çalışma için özgün imzaların iyi korunması, mümkünse, üstüne yazılamayan bir ortamda saklanması gerekir 3 KULLANILMAYAN AÇIK PORTLARIN KAPATILMASI Bilgisayarınızın aslında internete açılmak ve çeşitli internet uygulamalarını (ftp,telnet,irc , ![]() vs ) çalıştırmak için bu işlemlere karşılık gelen portları kullandığını biliyor muydunuz? Portlar herhangi bir internet uygulamasının haberleşme için kullandığı sanal çıkış noktalarıdır Her uygulamaya özgü bir port vardır ve diğer hiçbir uygulama başka uygulamaya ait porttan bilgi giriş ve çıkışı yapamaz Bir an için portların gerçekten bilgisayarın içinde olduğu düşünecek olursak, üzerinde bir çok farklı boyutlarda açılmış delik bulunan bir tabla hayal edelim Bu delikler portlarımız olsun Her biri farklı boyutlarda olduğu için birine ait bir çomak diğerine asla tam olarak yerleşemez; ya dar gelir ya da bol portların mantığı da aynen bu örnekteki gibidir Ayrıca sisteminizin verdiği servisler doğrultusunda kullandığı portları dinleyerek açık olup olmadığını tespit eden programlar vardır Bu programlar sayesinde sisteminiz hakkında bilgi edinen bir hackerin içeri giriş noktalarını kapatmak en akıllıca çözüm olur RedHat’ı eğer sunucu olarak kurduysak açılışta , önceden seçilmiş servisleri çalıştırır (web sunucusu, dns sunucusu gibi) Bu sunucularında tabi ki belli portları vardır fakat artık bir sunucunun görevine son vermek istiyorsak bunu nasıl yaparız? Önceki bölümlerde anlatılan `SETUP` uygulaması bize yine bu aşamada da yardımcı oluyor Setup komutunu vererek bu uygulamayı başlatıp "services" seçeneğine girersek bazı servisleri için başlatma/kapatma seçimini rahatlıkla yapabiliriz Peki telnet ya da ftp servislerini kapatmak için ne yaparız? Linux tüm internet uygulamalarına ait görevi inetd’ye yani internet deamon denilen "internet canavarına" vermiştir Bu canavar /etc/inetd conf adlı konfig dosyasında belirtilen tüm portları dinleyerek, gelen istemlere karşılık gelen servisi yerine getirir İşte bu konfig dosyasını değiştirerek sürdürülen servisleri kapatmak mümkün Örnekte bu dosyadan alınan bir kısım görülüyor ftp stream tcp nowait root /usr/sbin/tcpd in ftpd -l -a telnet stream tcp nowait root /usr/sbin/tcpd in telnetd Buradan ftp ve telnet hizmetlerinin verildiğini anlıyoruz Eğer bu hizmetleri kapatmak istersek, istenmeyen hizmetin yazdığı satırın başına `#` işaretini koymamız yeterli olur Bu işaret aslında bu satırın yorum satırı olduğunu belirterek inetd’nin bu işlemleri görmesini engeller #ftp stream tcp nowait root /usr/sbin/tcpd in ftpd -l -a #telnet stream tcp nowait root /usr/sbin/tcpd in telnetd Artık size telnet’le ulaşmaya çalışan istemciye bu servisin verilmediği ve bağlantının kesildiği bildirilir Kullanmadığınız servisleri bu şekilde kapatmanız sizi daha güvenli bir sisteme ***ürür Eğer verilen servislerin hangi portlardan gerçekleştiğini görmek ve kapatmak istiyorsanız aynı yöntemle /etc/services dosyasıyla da oynayabilirsiniz Kapatılan servislerin tekrar açılması için satır başlarına konan `#` işaretlerinin kaldırılması ve inetd’nin kapatılarak tekrar çalıştırılması gerekir Bunun için yazılacak komut aşağıda belirtilmiştir #killall -HUP inetd 4 UZAKTAN ERİŞİMİ KAPATMAK ve GÜVENLİ KABUK SSH Bildiğiniz gibi linux ile beraber gelen telnet desteği oldukça çok kullanılan bir uygulamadır Telnet sayesinde karşı uzak sisteme eğer kullanıcı hesabınız varsa bağlanıp bu sistemi aynı kendi bilgisayarınız gibi kullanabilirsiniz Tabi bu erişim biraz daha yavaş bir şekilde gerçekleşecektir Telnet servisini çalıştırıyorsanız ve kullanıcılarınız varsa aynı mekanizma sizin sisteminiz içinde geçerli olur Ne yazık ki telnet uygulaması sanıldığı kadar güvenli değildir Karşılıklı yapılan şifre alışverişlerinde bir şifreleme, gizleme yapılmadığı için bilgiler istenmeyen kişilerin eline geçebilir, ve daha önemlisi hackerların sisteme sızmak için deneyeceği ilk port telnetin portudur Bunu engellemek ve maksimum derecede güvenli bir bağlantı sağlamak için yeni bir kabuk geliştirilmiştir ve bu kabuğun şu ana kadar bilinen hiç bir açığı yoktur! Bu kabuğun adı SSH yani güvenli kabuk anlamına gelen `secure shell` dir Eğer bu kabuğu kullanacaksanız öncelikle telnet’i bir önceki maddede anlatılan biçimde servis dışı bırakmanız daha doğru olur SSH i Cd de güvenlik dizini altında bulabilirsiniz Kurulum ve verimli bir SSH için belirtilen tüm paketlerin kurulması gerekmektedir ssh-1 2 26 -4i i386 rpm ssh-clients-1 2 26 -4i i386 rpm ssh-server-1 2 26 -4i i386 rpm ssh-extras-1 2 26 -4i i386 rpm Eğer sisteminize bağlanan kullanıcılarınız başka bir işletim sistemini kullanıyorlarsa, bu onların artık bağlanamayacağı anlamına gelmez Telnet istemcisi gibi bir de SHH istemcisini internetten temin edebilirler 5 BELİRLİ IP ADRESLERİNE İZİN VERİLMESİ Kullanıcılarınız tarafından herhangi bir makineden Linux`unuza yapılan bağlantıları denetlemek, gerekli zamanlarda kısıtlamak ve böylece davetsiz misafirleri ileride engellemek amacıyla; /etc dizini altında bulunan iki konfigürasyon dosyası vardır /etc/hosts deny DOSYASI Bu konfig dosyası sayesinde Linux’unuz tarafından verilen servislere alan kısıtlaması getirilebilir Yani bu servislerin bir ya da birkaçını istediğiniz güvenilir bir ağa ya da bir tek IP adresine izin vererek, bu adresler dışındaki makineler bu servisleri kullanamaz Adından da anlaşılacağı üzere host deny(makine reddi) dosyası kabul etmediğiniz makine ip adreslerini yazabileceğiniz bir dosya Örnek bir /etc/host deny üzerinde yorum yapalım: #/etc/hosts deny in telnetd : ALL except localhost in ftpd : ALL except localhost Burada belirtilen in telnetd, verilen servisin adıdır ALL seçeneğini ile tüm uzak erişime bu servis kapatılır; ancak bu servisten bizde mahrum kalırız Bunun için `except` yani hariç parametresinden sonra kendimizi ekleriz ki bu servis bize açık olsun #/etc/hosts deny ornek 2 in telnetd : ALL Bir önceki örnekten farklı olarak bu örnekte telnet servisi tüm makinelere kapatılmıştır Bu servisin hizmet vermeyeceği makineler arasında kendi makinemiz de var, farkı yalnızca bu Size bir başlangıç fikri vermek gerekirse öncelikle /etc/host deny `da bütün servisleri dışarıdan erişime kapamanız ve bir sonraki başlıkta incelenecek /etc/host allow dan istediğiniz belli ip adreslerine ya da ağlara izin vermenizin daha güvenli olacağı doğrultusundadır Aşağıda belirtilen biçimi host deny için kullanabilirsiniz #/etc/host deny ornek 3 ALL : ALL except localhost /etc/hosts allow DOSYASI Yukarıda anlatılan ve kapatılan bir ya da tüm servisleri /etc/host allow konfig dosyasını kullanarak belirli ya da güvenli ip adreslerine ya da ağlara açalım #/etc/hosts allow ornek1 in telnetd: gelecek com tr wu ftpd : 195 34 34 0 Az önce hatırlarsanız tüm servisleri host deny dosyasından kapatmıştık Ancak bir servis her iki dosyada da geçtiği için Linux direkt olarak host allow dosyasını göz önünde bulundurur Bu örnekte de her makineye ve ağa kapalı olan telneti gelecek com tr domain ismi altındaki her makineye açık tutuyoruz Ayrıca kapalı olan ftp servisini 195 34 34 0 olarak tanımlı tüm ağa açmış durumdayız Buda 195 34 34 1 - 195 34 34 254 arasında bir ip adresine sahip tüm makinelerin bu servisi kullanması anlamını taşır Bu şekilde servisleri belli bir ağa verebileceğimiz gibi sadece belli bir ip adresine de bu servisleri açabiliriz Örnek 2’yi inceleyiniz #/etc/hosts allow ornek2 in telnetd: 195 56 57 3 wu ftpd : 195 98 97 9 6 UZAKTAN YAPILAN SALDIRILAR İşletim sistemlerine bağlı olarak sistemleri bir müddet için dondurmaya, devre dışı bırakmaya, hatta internetten bağlantısını kopartmaya kadar zarar verici ve uzaktan (remote) yapılabilecek saldırılar son bir kaç yıldır gündemde Bunlara verilen genel ad `Denial of Service` yani service dışı bırakma `dır Bunlara örnek olarak teardrop, newtear, nestea, smurf, land, lattierra, ssping verilebilir Bu saldırıların bir çoğu linux üzerinde etkisizdir Sadece tear-drop ve yeni versiyonu olan new-tear ile nestea ayrıca broadcast (yayın ) haberleşmesi üzerinde gerçeklenen smurf Linux’u etkileyebiliyordu Etkileyebiliyordu diyorum çünkü bu saldırılar çıktıktan hemen sonra Linux için bir üst sürüm kernel yazılmış ve bu açık giderilmişti Kernel`in 2 0 34 sürümünden beri Linux’a karşı bu saldırılar etkisizdir Düşünün ki RedHat Linux 6 0 in çekirdeği 2 2 5 Ancak Unix ve unix türevleri dışında diğer işletim sistemlerinin çoğu bu saldırılardan hala etkileniyor Bu konuda Linux’unuza güveniniz tam olsun! Son zamanlarda iyice "moda" olan DDoS (distrubuted denial of service) saldırıları ise her işletim sistemini etkiler Ancak sistemi ping e kapatırsanız güvende olma şansınız bire iki oranında artar Sizin yaşamadığınızı düşünün biri size ateş etmez değil mi? KAYIT TUTULMASI Güvenliğin en önemli parçalarından biri, sistemin sürekli izlenerek, güvenliğe aykırı durumlar oluşup oluşmadığının, oluştuysa bunların sorumlularının kimler olduğunun belirlenmesidir Bunun için, güvenliği ilgilendirebilecek her türlü olayın kaydı tutulmalıdır Şu tip bilgiler, güvenlik açısından değer taşırlar: - Başarısız veya başarılı olmuş sisteme giriş denemeleri - Nerelerden, hangi hizmetler için bağlantı istekleri geldiği - Hizmetler sırasında gerçekleşen dosya aktarımları Linux’ta kayıt tutulması işini syslogd süreci görür Hangi tür mesajların hangi dosyaya yazılacağı konfigürasyon dosyasında (/etc/syslog conf) belirtilir Genellikle makine ilk açıldığı zaman /var/adm/messages dizini altındaki messages, xferlog, syslog gibi dosyalara yazılan bu bilgileri isteğinize göre daha sistematik bir yapıda saklamak da mümkündür Ağ ile ilgili hizmetleri denetleyen süreçler (tcpwrapper, xinetd gibi paketler) kayıt dosyalarına girmesini istedikleri bilgileri syslogd sürecine bildirirler
Linkleri Görebilmek Yada Dosyaları İndirebilmek İçin Kayıt Olmanız GEREKMEZ ! Yorum yada Mesaj Yazın Yorum yada Mesaj Göndermek için Lütfen Üye Girişi Yapın. |
|||||
|
|
![]() |
| Konu Araçları | |
| Görünüm Modları | |
Benzer Konular
|
||||
| Konular | Konuyu Başlatan | Forum | Yaz | Son Mesaj |
| Olağanüstü güvenlik | pesimist_girl | Galatasaray | 0 | 10-08-2009 20:01 |
| Linux Sistemlerde Güvenlik | SH - Haberci | Sanalhazinem Haberci | 0 | 14-02-2009 00:40 |
| güvenlik kameraları | SH - Haberci | Sanalhazinem Haberci | 0 | 24-11-2008 00:00 |
| güvenlik kameraları | SH - Haberci | Sanalhazinem Haberci | 0 | 23-11-2008 18:00 |
| Linux güvenlik test sürümü | SanalHazineM'ci | Linux İşletim Sistemi | 0 | 09-12-2006 23:35 |