Geri git   CurcunaForum.Org > Bilgisayar - İnternet > İşletim Sistemleri > Linux
Kayıt ol Yardım Topluluk

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 02-26-2008   #1
Profil
Üye
 
Kerem388 - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Dec 2007
Bulunduğu yer: oras hakında çesitli söylentiler var karar veremedik
Yaş: 37
Mesajlar: 938
Üye No: 10499

Seviye: 27 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Canlılık: 0 / 656
Çekicilik: 312 / 33177
Tecrübe: 25

Teşekkür

Teşekkürler: 0
0 Mesajina 0 Tesekkür Aldi
Rep
Rep Puanı : 1047
Rep Gücü : 28
İtibar :
Kerem388 has much to be proud ofKerem388 has much to be proud ofKerem388 has much to be proud ofKerem388 has much to be proud ofKerem388 has much to be proud ofKerem388 has much to be proud ofKerem388 has much to be proud of
97 Lİnux'te GÜvenlİk Ve Önlemler

Güvenilir sistem yapılan saldırılara maksimum seviyede karşı koya bilecek bir sistemdir. Bir sistemin güvenilir olması için sistemde saldırganlara yardımcı olabilecek açıklar ve zayıflıklar minimuma indirilmelidir. Bunun için sistem zamanında güncellenmeli,kullanılmayan servisler ,portlar kapatılmalı, sistemin temel görevi olmayan tüm programlar kaldırılmalıdır. Aşağıdaki metinde tüm bunların nasıl yapılacağı ele alınmıştır. Metin 2 kısımdan oluşmaktadır

a)Sistemi güvenilir yapmak için gereken güncellemeler

Bu bölümda kernelin yeni versiyonlarının ve update'lerin ne işe yaradıkları ve nasıl yüklenecekleri anlatılmıştır.

b)Gereksiz programların, portların, servislerin kaldırılması

Bu bölümde portların , gereksiz servislerin neden tehlikeli olabilecegi ve nasıl kaldırılacağı anlatılmıştır.

Güncelleme
Bu bölümde RedHat Linux için güncellemenin nasıl yapılacağı anlatılmıştır.

RedHat

Linux'un her versiyonunun bir sürü update'i ve kernelinin de sürekli yeni versiyonları çıkar. Bunların çıkmasının nedeni, Bir önceki versiyondaki açıkları kapatmak, sistemi daha güvenli ve saglıklı yapmaktır. Bunların sürekli takip edilmesi ve sistemin güncel tutulması gerekmektedir. Bunları yapmazsanız sisteminizde çoğu Linux kullanıcısı tarafından bilinen açıklar kapatılmamış olur ve bu da sisteminize yapılabilecek saldırıların daha fazla zarar vermesine yol açar. Sistemin güncellenmesini iki alt başlık altında inceleyeceğiz.

a) Kernelin yeni versiyonunun indirilmesi ve derlenmesi.

b) Update'lerin geçilmesi.

Kernelin Yeni Versiyonun Indirilmesi Ve Derlenmesi

NOT: Kernelin derlenmesi fazla zor değil. Fakat daha önce hiç derlemediyseniz, dikkatli olmanızda ve daha önce bu işi yapmış olan birisini yanınızda bulundurmanızda fayda vardır.

İlk yapmanız gereken iş kernelin en son versiyonunun indirilmesidir.

http://www.kernelnotes.org/ sayfasına gidiniz ve kernelin en son stable versiyonunu /tmp dizinine indiriniz.
Daha sonra
http://www.openwall.com/ /linux/ adresinden indirdiginiz
kernelle ayni versiyonda olan patch'i indiriniz. Daha sonra asagidaki komutlari sırası ile çalıştırınız.

[root@server /root]# cp /tmp/linux-2.x.tar.gz /usr/src

[root@server /root]# cp /tmp/patch-2x.gz /usr/src

[root@server /root]# cd /usr/src

[root@server /root]# gzip -cd linux-2.x.tar.gz | tar xvf -

[root@server /root]# gzip -cd path-2x.gz | patch -p0

Yukarıdaki komutlar vasıtası ile indirdiğiniz paketler /usr/src dizinine kopyalanır,
açılır ve kernel'e patch uyğulanir.

Bunları yaptıktan sonra aşağıdaki komutları da çalıştırınız

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make mrproper

Sıra kernelin configurasyonunu belirlemektedir. Bunun için make config komutunu çalıştırmanız lazım.

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make config

make config komutuna alternatif olarak make menuconfig ve make xconfg komutlarını da çalıştıra bilirsiniz. make xconfig komtunu çalıştıra bilmeniz için startx'de olmaniz lazim. make config komutunu çalıştırdıktan sonra karşınıza bir sürü soru çıkacak. Kernelin neyi destekleyip, neyi desteklememesi gerektiğini burdan belirlemeniz lazim. Sorulara cevap verirken size gerekmeyen hiç bir pakete "Y" dememeye dikkat edin. Bu hem sizin kernel'in boyutunu küçültücektir, (Böylece kernel daha hızlı çalışacak ve daha az RAM kullanacaktır), hem de sisteminizin daha güvenli olmasını sağlayacaktır

Daha sonra make dep ve make clean komutlarını çalıştırınız

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make dep

[root@server /root]# make clean

Bunlar bittikten sonra make zImage komutunu çalıştırınız

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make zImage

Daha sonra modulleri desteklemek için make modules ve make modules_install komutlarını çalıştırınız.

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make modules

[root@server /root]# make modules_install

Yeni kerneliniz hazırdır, /usr/src/linux/arch/i386/boot/ dizini altındakı zImage

dosyasıdır yeni kerneliniz. Bunu /boot dizinine ve ya floppy'den boot ediyorsaniz floppy'ye kopyalayınız. Daha sonra /etc/lilo.conf dosyasındaki

image=/boot/vmlinuz-2x

satırını değiştiriniz ve vmlinuz-2x yerine /boot/ dizinine kopyaladığınız dosyanın

adını yazınız. /sbin/lilo komutunu çalıştırınız ve artık yeni kernel hazırdır. Makinenizi reboot ede bilirsiniz.

NOT: Daha fazla bilgi için /usr/src/linux/ dizini altındakı README dosyasına bakabilirsiniz.


Update'lerin Geçilmesi

Update'ler kernel'in güncellenmesinden daha önemlidir. Çünki her update çok önemli bir açığı kapatır. İlk yapmanız gereken iş updatelerin indirilmesidir. Bunun için

http://www.redhat.com/errata adresine gitmeniz lazım. Bu sayfadan size gereken tüm update'lerin rpm paketlerini indiriniz. Bir paketin size gerekip-gerekmediğini oğrenmek için rpm -q komutunu paket adını parametre olarak verip çalıştırmanız lazım. Örneğin emacs paketinin sizde var olup-olmadığını oğrenmek istiyorsanız aşağıdaki komutu çalıştırınız.

[root@server /root]# rpm -q emacs

Eğer çıktı aşağıdaki gibiyse bu paket sizde var ve bunun update'ini indirmeniz lazım.

[root@server /root]# rpm -q emacs

emacs-20.5-7

[root@server /root]#

Çıktı bu şekilde değilde aşağıdaki gibiyse bu paket sizde zaten yok ve olmayan bir paketin update'ini indirmenize gerek yok

[root@server /root]# rpm -q x

package x is not installed

[root@server /root]#

Update'leri indirdikten sonra teker-teker geçilmesi lazım. Örnek paketin adı

package-x.y.rpm ise bu paketin update'ini geçmek için update'lerin oldugu dizine geçerek aşağıdakı komutu çalıştırmanız lazım:

[root@server /root]# rpm -Uvh package-x.y.rpm

Bu komutu indirdiğiniz tüm paketler için çalıştırdıktan sonra iş bitmiştir.

Sisteminiz artık günceldir.

Genel güvenlik

Sisteminizin saldırılardan etkilenmesini istemiyorsanız, sisteminize erişimi minimuma indirmeli ve dışarıya sisteminiz hakkında minimum bilgi vermelisiniz. Sisteme minimum erişim saldırganın sisteme girişini elgelleyeceği gibi, sistem hakkında minimum bilgi vermek de saldırganın sisteminiz hakkında bilgi toplamasını engelleyecek ve işini zorlaştıracaktır. Basit bir finger komutu sisteminiz hakkında saldırgana az denemeyecek kadar bilgi veriyor. Bu bölümde sisteminizin maksimum şekilde güvenli olması için yapmanız gerekenler madde-madde ele alınmıştır.
a) Password

Sisteminiz çok kullanıcılı bir sistem ise, kullanıcıları kompleks ve uzun şifreler seçmeye zorlayın. Genelde , kırılamayacak şifre yoktur, fakat şifreler uzun ve kopleksse bu saldırganın işini zorlaştırır ve hatta belki çok zamanını aldığı için sisteminizi kırmaktan vazgeçirebilir de. Şifreleri kompleks ve uzun tutmak için ilk yapmaniz gereken şey kullanıcıları bu konuda uyarmak , daha sonra da sistemde bir takım önlemler almaktır.
İlk olarak /etc/login.defs dosyasını herhangi bir editörde açarak PASS_MIN_LEN satırının sonundakı sayıyı (default olarak 5'tir) 8 yapınız.
Daha sonra ise /etc/pam.d/login

dosyasını yine bir editörde açarak auth ve account kelimeleriyle başlayan satırlardan sonra aşağıdaki satırı ekleyiniz

password required /lib/security/pam_cracklib.so

Bu satır , kullanıcıyı şifre seçerken kompleks şifreler seçmeye zorlayacaktır.

NOT: Pam , sistem güvenliyini artırmak için önemli bir araçtır. Daha fazla bilgi almak

için /usr/doc/pam-xx/ dizinine göz ata bilirsiniz.


b) /etc/exports dosyası

Bu dosya sisteminizdeki hangi dizinleri ortak kullanıma açtığınızı gösterir. NFS
kullanmıyorsanız bu dosyanın içinin boş olmasına dikkat edin. Dosyanın attribute'unu da değiştirerek immutable (değişmez) yapınız.

[root@server /root]# chattr +i /etc/exports

c) /etc/inetd.conf dosyası

Bu dosya sisteminizin dışarıya hangi hizmetleri verdiğinizi gösteren bir dosyadır. Dosya hizmet adlarıyla başlayan satırlardan oluşur. Satırın başında # işareti varsa bu satır comment'lenmiştir ve bu hizmet artık verilmemekktedir, direk hizmet programı adıyla başlıyorsa bu hizmet halen verilmektedir. Örneğin, aşağıdaki /etc/inetd.conf dosyasından ***ürülmüş satırlar bu sistemde ftp hizmetinin verildigini, telnet hizmetinin ise verilmediğini gösterir.

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a

#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

İlk olarak bu dosyanın modunu sadece root tarafından okunup-yazıla bilinecek şekilde değiştiriniz, başka kullanıcıların bu dosyayı görmeleri sistem hakkında gerektiğinden fazla bilgi almalarına neden olur.

[root@server /root]# chmod 600 /etc/inetd.conf

Daha sonra ise attribute'unu değiştirerek immutable yapınız.

[root@server /root]# chattr +i /etc/inetd.conf

Daha sonra sisteminizin vermesini istemediginiz hizmet progamlarını tespit ederek bu programın adıyla başlayan satırın başına # koyup bu satırı comment'leyerek hizmet programını kaldırınız. Örneğin sisteminizin artık finger'lere cevap vermesini istemiyorsanız önceden

finger stream nowait root /usr/sbin/tcpd in.fingerd

şeklinde olan satırı değiştirerek aşağıdakı şekle getiriniz

#finger stream nowait root /usr/sbin/tcpd in.fingerd

Sisteminiz temel görevleri arasında olmayan tüm hizmetleri kesinlike kaldırmanız lazım. inetd.conf dosyası ile işiniz bittikten sonra yaptığınız değişikliklerin aktif olması için aşağıdaki komutu çalıştırınız

[root@server /root]# killall -HUP inetd

d) /etc/hosts.allow ve /etc/hosts.deny dosyalari

Makinenize erişimi kısıtlamalısınız. Bunun için /etc/hosts.deny dosyasına aşağıdakı satırı ekleyiniz

ALL: ALL@ALL, PARANOID

Bu satır makinenize herhangi bir şekilde erişimi yasaklayacaktır. Tabii ki , bazi
kullanıcılara bazı programları kullanmaları için izin vermeniz gereke bilir. Bu izinleri ise /etc/hosts.allow dosyası vasıtasıyla veriyorsunuz. Örnegin , makinenize 192.168.1.1 adresinden telnet çekile bilmesini istiyorsanız, /etc/hosts.allow dosyasına aşağıdaki satırı eklemeniz lazim:

in.telnetd: 192.168.1.1 turkforum*Degistirildi.mydomain.

turkforum*Degistirildi.mydomain 192.168.1.1 IP adresli makinenin domain name'idir.

e)/etc/aliases dosyasi

Saldırgan bu dosyayı kullanarak sisteminizde root hakkına sahip ola bilir. Bundan dolayı bu dosyayı açarak bin, daemon ve nobody kelimeleri ile baslayan satırlar hariç tüm satırları ,satır başına # ko***** comment'leyiniz.

f) Sisteminizin ping'e cevap vermesini yasaklayınız

Ping, TCP/IP protokollarındaki zayıflıklardan dolayı saldırganlar tarafından sıkça

kullanılan bir programdır. Sisteminize ping çekilmesini yasaklarsanız, önemli bir açığı kapatmış olursunuz. Ayrıca sisteminize ping çekemeyen saldırgan sisteminiz hakkında daha az bilgi alır ve hatta belki sisteminizin şu an ayakta olup olmadığından bile haberi olmaz. Sisteminize ping çekilmesini yasaklamak için aşağıdaki komutu çalıştırmanız lazım:

[root@server /root]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

Bunun sistemi reboot ettikten sonra da aktıf olmasını istiyorsaniz yukarıdaki satırı
/etc/rc.d/rc.local dosyasına da eklemeniz lazım.
__________________

Click the image to open in full size.
Kerem388 is offline Kerem388 isimli üyenin yazdığı bu Mesajı değerlendirin.   Alıntı ile Cevapla
Cevapla

Etiketler
guvenlik, linuxte, onlemler


Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 00:40.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.