|
|
-
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, bilgisayarnı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. Çekirdeklerinizi
ftp://ftp.kernel.org adresinden,
veya dağıtıcınızdan bulabilirsiniz.
-
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. Daha fazla bilgi için: http://www.kerneli.org.
7.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. Buradaki yorumların
çoğu ./linux/Documentation/Configure.help belgesinden,
aynı belge çekirdeğin make config aşamasında Help
(Yardım) kısmında da kullanılıyor.
-
-
Ağ Ateşduvarları (CONFIG_FIREWALL)
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 (CONFIG_IP_FORWARD)
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 |
|
ve ş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 (CONFIG_SYN_COOKIES)
"SYN Saldırısı", makinenizdeki tüm kaynakları tüketen bir servis
reddi (DoS) 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 echo 1 > /proc/sys/net/ipv4/tcp_syncookies |
|
-
IP: Ateşduvarı (CONFIG_IP_FIREWALL)
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üğü (CONFIG_IP_FIREWALL_VERBOSE)
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 (CONFIG_IP_NOSR)
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 (CONFIG_IP_MASQUERADE)
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. Daha fazla bilgi için http://www.indyramp.com/masq
adresine bakın.
-
IP: ICMP Maskeleme (CONFIG_IP_MASQUERADE_ICMP)
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 (CONFIG_IP_TRANSPARENT_PROXY)
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 yönlendirebilir. Bu, yerel
kullanıcıların uzak uç ile konuştuklarını sanmalarına yol açar,
halbuki yerel vekile bağlanmış durumdadırlar. Daha fazla bilgi için
http://www.indyramp.com/masq
adresindeki IP-Masquerading HOWTO (IP Maskeleme NASIL) belgesine göz atın.
-
IP: daima parçala (CONFIG_IP_ALWAYS_DEFRAG)
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. Buradaki sorun birinin kalan paketlere orada 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ı (CONFIG_NCPFS_PACKET_SIGNING)
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ı aygıtı (CONFIG_IP_FIREWALL_NETLINK)
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.
7.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 derlerken ki
make config aşamasında kullanılan Yardım bölümünün
referans aldığı ./linux/Documentation/Configure.help
belgesiyle aynıdır[21]. Gereken seçeneklerin bir listesi için
2.0 açıklamalarına başvurun. 2.2 çekirdekteki en anlamlı değişiklik 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[22].
-
-
Soket Süzümü (CONFIG_FILTER)
Ç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 (Ç.N.: Özgün İngilizce 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.
Bu özellik hakkında daha fazla bilgiyi
http://www.monmouth.demon.co.uk/ipsubs/portforwarding.html
adresinden bulabilirsiniz. Genel bilgi için
ftp://ftp.compsoc.net/users/steve/ipportfw/linux21/
adresine göz atın.
-
Soket Süzümü (CONFIG_FILTER)
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. Daha fazla bilgi için
./linux/Documentation/networking/filter.txt
adresine göz atın.
-
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
Ipchains NASIL belgesine
göz atın.
-
Linux üzerinde güvenlik konusunda yardımcı olabilecek bir kaç blok ve
karakter aygıtı mevcuttur.
-
Çekirdek tarafından /dev/random ve
/dev/urandom aygıtları, rastgele veri sağlama
amacını taşır.
-
Hem /dev/random hem de /dev/urandom,
PGP anahtarlarının üretilmesinde, ssh bağlantılarında,
ve rastgele sayıların gerektiği diğer uygulamalarda kullanılmak için
yeteri kadar güvenli olmalıdır. Verilen herhangi bu kaynaklardan çıkan
herhangi bir sayı dizisi için saldırganlar bir sonraki sayıyı tahmin
edememeli. Bu kaynaklardan elde edilen verinin kelimenin tam anlamıyla
rastgele olması için çok fazla çaba ortaya konmuştur.
-
Bu iki cihaz arasındaki tek fark, /dev/random
cihazının elindeki rastgele baytların tükenmesi, ve yenileri toplanması
için beklemek zorunda oluşunuzdur. Yani kullanıcı tarafından üretilen
entropinin sisteme girmesi için beklemesi durumunda uzun bir süre
çalışması durabilir. Dolayısıyla /dev/random'ı
kullanırken dikkatli olmak zorundasınız. (Belki de yapılacak en iyi
şey bu cihazı hassas anahtarlama bilgisini üretirken kullanmak, ve
kullanıcıya "Tamam, yeterli" denilene kadar klavyesindeki tuşlara
rastgele basmasını söylemektir.)
-
/dev/random yüksek kalitede entropi sağlar, kesmeler
arasındaki farklı zamanları ölçme vb. şeylerden elde edilir. Yeterli
bitte rastgele veri var olana kadar çalışması durur.
-
/dev/urandom benzeri bir aygıttır, fakat depolanmış
entropi azalmaya başladığında, olan kadarının, güçlü bir şifreliyazımsal
hash değerini döndürür. Bu, rastgele veri kadar güvenli olmasa da çoğu
uygulama için yeterli derecede güvenlidir.
-
Bu aygıtlardan okuma yapmak için aşağıdaki gibi bir şey kullanabilirsiniz:
-
root# head -c 6 /dev/urandom | mimencode
|
|
Bu, konsola sekiz rastgele karakter yazar, örneğin parola üretimi için
kullanılabilir. mimencode programını
metamail paketi içinde bulabilirsiniz.
-
Algoritmanın açıklaması için
/usr/src/linux/drivers/char/random.c'ye bi göz atın.
-
Bu konuda bana yardımcı olan, Theodore Y. Ts'o, Jon Lewis, ve Linux
çekirdek grubundan diğerlerine teşekkürler.
|