Bu dokümanda her işletim sistemi kitabını
okuduğunuzda duyma ihtimalinizin yüksek olduğu bazı
teknik terimlere ve onların açıklamalarına yer
verilmeye çalışılacaktır. Özellikle kernel, shell
gibi kavramlar üzerinde durulacak, Unix sistemlerin
neden diğer sistemlere nazaran daha kararlı olduğunu
teknik bakış açısı ile öğreneceksiniz.
İşletim sistemleri bilgisayarı da sisteme dahil
edersek 4 katmandan oluşur.
- Donanım Katmanı : Bir bilgisayarın elle tutulur gözle görülür kısımları. Örneğin ekran kartınız, modeminiz bu katmanda çalışmaktadır.
- Kernel(Çekirdek) : İşletim sistemlerinin bilgisayarın en alt seviyede donanım katmanı ile iletişim kuran en alt seviyede program. Bu katmana işletim sisteminin kalbi demek yalan olmaz. Bir işletim sisteminin performansı, yetenekleri vb... kernelin başarımı ile doğrudan ilişkilidir. Üç çeşit kernel vardır.
-
-
Micro Kernel : İşletim sisteminin
kernelinin mümkün oldukça küçük olmasına
gayret edilmiştir. Sadece çok önemli,
bilgisayarın çalışması için gerekli bölümleri
içerir. Örneğin işlemci yönetimi, bellek
yönetimi... Bu tip kerneli olan işletim
sistemlerinde bilgisayara bağlı CD-ROM,
harddisk, disk denetleyici gibi diğer
donanımları tanıtmak için işletim sisteminin
kerneli ile direk iletişime geçebilecek ve
bellekte bu işlemleri yönetebilecek bir
yazılıma ihtiyaç vardır. Bu yazılıma da
sürücü(driver) denilir. Bu tip kernele sahip
işletim sistemlerine en güzel örnek
MS-DOS/Windows' tur. MS-DOS' ta basit bir
CD-Rom' u tanıtmak için bile bir sürücü
programa ihtiyaç duyulmasının nedeni budur.
İşletim sisteminin kendisi o donanımı
tanıyacak bilgiyi çekirdeğinde tutmaz.
Avantajı yeni bir donanım takıldığında eğer donanım üreticisi firma o işletim sistemi için sürücü üretti ise bilgisayara tanıtmak çok kolay olmaktadır. İlgili sürücünün setup' ını çalıştırırsınız ve her şey olur biter.
Dezavantajları ise her türlü donanım için bir sürücüye ihtiyaç duyduğu için bilgisayarda onlarca değişik firmanın ürünü olan program işletim sisteminin parçası gibi davranmaktadır. Bu da herhangi bir donanım arızasının sonucunda bütün sistemin çökmesine yol açmaktadır. Windows' un bu kadar sık göçmesinin temel nedenlerinden bir tanesi de budur. -
Monolithic Kernel : Bu tür kernellarda
donanımımız için gerekli her türlü sürücü
yazılım işletim sisteminin çekirdeğine
gömülüdür. Yani bir CD-Rom driver veya
ethernet driver diye bir kavram yoktur.
İşletim sisteminiz bu donanımı kullanmak için
gerekli sürücü yazılımı kendi içersinde
ihtiva etmektedir. En güzel örneği Unix' tir.
Avantajı, kernel büyük olmasına rağmen her türlü fonksiyonun bir birbiri ile iletişim tek program tarafından olduğu için genelde daha hızlı işlemektedir. Bu tür işletim sistemlerinin performansı aynı donanımda micro kernel bir sistemden genellikle daha iyidir. Bütün donanımın sürücüleri arasında iletişim söz konusu olmadığı için sistem çok stabil olur. Unix sistemler çok nadir göçer. Yıllarca hiç kapanmadan çalışan Unix sistemler mevcuttur.
Dezavantajı ise her yeni donanım takıldığında yeni bir kernel derlenmesi gerekliliğidir. Bu işlem bir kaç on dakikadan kimi zaman bir kaç saate kadar süren zahmetli bir iştir ve yüksek donanım bilgisi ister bu nedenle kullanımı zordur ve pek de pratik değildir. Bu nedenle plug&play bir Unix yoktur. - Hybrid : Bu tür işletim sistemlerinde sistemdeki donanım için gerekli sürücü istenir ise kernelin içine istenir ise Windows' taki gibi driver yolu ile kullanılabilir. En güzel örneği bir monolitic kernel sistem sayılmasına rağmen hybrid özelliklerine sahip Linux' tur. Kernel derleme sırasında bir donanım sürücüsü istenirse kernela gömülür istenirse modül olarak /lib/modules dizini altına kaydedilir. O donanımın kullanılması gerektiğinde de buradaki object dosyası kernel ile iletişime geçer ve donanımı yönetir. Bu iletişim için insmod modprobe gibi yazılımlar kullanılmaktadır ve bu iki komut modutils adlı paketle birlikte gelmektedir. Her iki komut da kimi kullanımlarda parametre gerektirmesine rağmen bu işi otomatize etmek için libdetect, libdiscover, kudzu, harddrake gibi yazılımlar mevcuttur. Sonuç olarak plug&play bir Linux sistemin micro kernel sistemlerdeki gibi işlemese de uygulanması mümkündür ve şu anda mevcuttur.
-
Shell(Kabuk) :Kernel' in kullanıcı ile
iletişime geçen arabirimidir. Örneğin MS-DOS da
c:\>_ komut satırına düştüğünüzde işte o zaman
MS-DOS' un shell' i command.com ile karşı
karşıyasınız demektir. Verdiğiniz copy, del gibi
komutları shell kernel' a onun anlıyacağı dilden
iletecek ve kernel da disk üzerinde bu işi
gerçekleştirecektir. Unix sistemlerde shell bir
çeşit değildir. Yani c:\ gibi bir şey ile
karşılaşacağınızı söylemek mümkün değildir.
Birden fazla shell mevcut olup kendine has
özellikleri vardır. Örneğin bir standart haline
gelen bash çok güçlü ama ebat olarak biraz
büyüktür. Dolayısı ile güçlü makinelerde faydalı
olurken sınırlı kapasitedeki makinelerde yükü
ağırlaştırabilmektedir. Csh (C Shell) ise komut
satırında C diline benzeyen komutları
kullanabilmenizi sağlayabilir.... Unix
sistemlerde ve dolayısı ile Linux' da shell
değiştirmek için chsh komutu kullanılır. Eğer bir
Linux kullanıcısıysanız ve herhangi bir
değişiklik yapmamışsanız büyük ihtimalle bash
kullanıyorsunuz demektir. Sistemde yönetici
kullanıcı (root) iseniz bunu # işaretli bekleme
satırından ve eğer normal kullanıcı iseniz de $
şeklindeki satırdan anlayabilirsiniz.
-
Uygulama Katmanı : Kullandığımız her türlü
program bir uygulamadır ve uygulama katmanını
oluşturur. Örnek vermek gerekirse Windows altında
Photoshop veya Linux altında Staroffice bir
uygulamadır ve bu katmanda çalışır.
Bu yazı Kasım 2001 tarihinde http://www.onlinedergi.net sitesinde yayınlanmıştır.
ctrl + alt + delete tuş kombinasyonu hemen hemen bütün Linux sürümlerinde bilgisayarı yeniden başlatmak üzere öntanımlı gelir. Çoğu zaman bu kombinasyonun kaldırılması faydalı olmaktadır. Yapılması gereken işlem /etc/inittab dosyası içindeki ilgili satırın önüne bir diyez (#) işareti koymaktır.
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Geçerli bir yedekleme stratejisi geliştirmek.
Yedeklemenin ne zaman gerekli olduğu konusunda genel
bir kabul, "veri kaybetme riskini kaldıramayacağınız
her zaman yedekleme zamanıdır" şeklindedir. Pek çok
firmanın genelde bir yedekleme stratejileri zaten
mevcut olmasına rağmen eğer yoksa çok geçmeden
alınması şarttır. Bu iş için taper, BRU, Amanda gibi
gelişmiş bir yedekleme yazılımı kullanılabileceği
gibi standart "tar" komutu ile de yedekleme yapmak
mümkündür. Aşağıdaki tabloda yer alan basit betikleri
bir cron işi içersine yerleştirdiğinizde haftalık ve
günlük yedekleme yapacaktır. Sonuç, /home dizini
içersinde yer alan backup-epoch (haftalık) ve
backup-daily dosyaları olacaktır.
TABLO 1
#!/bin/bash
# Haftalık Yedekleme Betiği.
#
cd /
yes | rm /etc/backup.epoch
find /etc -type d -print > /etc/backup.epoch
find /var -type d -print >> /etc/backup.epoch
find /home -type d -print >> /etc/backup.epoch
find /tmp -type d -print >> /etc/backup.epoch
find /root -type d -print >> /etc/backup.epoch
tar -cvps -T /etc/backup.epoch -f /home/backup-epoch.tar
TABLO 2
#!/bin/bash
# Günlük Yedekleme Betiği
#
cd /
yes | rm /etc/backup.daily
find /etc -mtime -1 \! -type d -print > /etc/backup.daily
find /var -mtime -1 \! -type d -print >> /etc/backup.daily
find /home -mtime -1 \! -type d -print >> /etc/backup.daily
find /tmp -mtime -1 \! -type d -print >> /etc/backup.daily
find /root -mtime -1 \! -type d -print >> /etc/backup.daily
find /etc -ctime -1 \! -type d -print >> /etc/backup.daily
find /var -ctime -1 \! -type d -print >> /etc/backup.daily
find /home -ctime -1 \! -type d -print >> /etc/backup.daily
find /tmp -ctime -1 \! -type d -print >> /etc/backup.daily
find /root -ctime -1 \! -type d -print >> /etc/backup.daily
tar -cvps -T /etc/backup.daily -f /home/backup-daily.tar
Sistemden Silinmesi Faydalı Kullanıcı ve
Gruplar
Çoğu Linux dağıtımı ile birlikte bazı öntanımlı
kullanıcı ve gruplar gelir. Bu hesaplar/gruplar
standart olduğu için sisteme girmeyi planlayan bir
kişinin sızmak için ilk deneyeceği hesaplar
olacaklardır ve silinmesinde fayda vardır. userdel
komutu ile sistemdeki adm, lp, sync, shutdown, halt,
news, uucp, operator, games, gopher gibi gereksiz
kullanıcı hesaplarından kurtulabilirsiniz. Aynı
şekilde groupdel komutu da adm, lp, news, uucp,
games, dip, pppusers, popusers, slipusers gibi
grupları silmenizi sağlayacaktır.
Kullanıcıya sadece FTP izini verilmesi.
Pek çok sistem yöneticisi kullanıcıların FTP ile home
dizinlerine bağlanmasına izin veren fakat telnet veya
konsoldan sisteme bağlanmalarını engelleyen bir
strateji belirlemek ister. Bu kısıtlama özellikle web
bulundurma hizmeti ve internet servis sağlayıcılarda
gerekli olmaktadır. Bunu sağlamak için basit bir
betik hazırlayalım.
#!/bin/bash
echo "Sisteme oturum açma izniniz yok!"
ardından bu dosyayı /bin/girisyok olarak kaydedelim
ve "chmod +x /bin/girisyok" komutu ile
çalıştırılabilir yapalım. Hazırladığımız betiği
telnet veya konsol erişim hakkı vermemek istediğimiz
kullanıcının shell' i olarak atamamız gerekmektedir.
Bu işlem için chsh komutu kullanılabilir.
chsh -s /bin/girisyok umut
Kullanıcının shell' ini /bin/girisyok olarak
degistirdigimizde kullanıcı e-mail alıp gönderebilir
fakat ne FTP ne de telnet vb... yolla sisteme
bağlanabilir. Kullanıcının FTP kullanımını açmak için
ise /bin/girisyok' u /etc/shells dosyasına eklememiz
yeterli olacaktır.
Suid bit Programlar
Bir sunucuda kullanıcılara telnet, ssh, konsol gibi
yollarla erişim verildiğinde en büyük güvenlik
boşluğu suid bit adı verilen izin ile tanımlanmış
programlarda yer almaktadır. Sunucuları ele geçirmeye
niyetli bir kişi genelde suid bit tanımlı
programlardaki açıkları hedef almaktadır. Kısaca
açıklamak gerekirse suid bit normalde kullanıların
yazmaya veya değiştirmeye izni olmadığı dosyaları
değiştirmesine olanak tanımak amacı ile kullanılır.
Örneğin, root kullanıcı hariç hiçbir kullanıcının
/etc/passwd dosyasını değiştirmeye hakkı yoktur.
Fakat chsh komutu ile bütün kullanıcılar /etc/passwd
dosyasında kendi isminin yanındaki shell belirtgecini
değiştirebilmektedirler. Bunu sağlamak için chsh
programı suid bit ile çalıştırılmaktadır, yani
kısıtlı olarak kullanıcılara root kullanıcı hakkı
verilmektedir.
Sunucunuzdaki suid bit tanımlı dosyaların bir
listesini görmek için aşağıdaki komutu
çalıştırabilirsiniz.
find / -type f \(-perm -04000 -o -perm -02000 \) \-exec ls -lg {} \;
Önünüze gelen listede çok az kullanılan ya da hiç
kullanılmayan programlardaki suid bit' i kaldırmak
için :
chmod a-s /usr/bin/wall benzeri bir komut kullanmak yeterli olacaktır.
Sisteminizin ping isteklerine cevap vermesini
engellemek
Son zamanlarda popüler olan network/internet
saldırılardan bir tanesi de DOS (Denial of Service)
adı verilen saldırı çeşididir. Bu saldırılar bir ana
makineyi anlamsız TCP/IP paketleri ile meşgul etmeyi
veya çok sayıda makineden saldırı yaparak işlevsiz
bırakmayı amaçlar. En popüler DOS saldırıları ise bir
IP paketine encapsulate edilerek gönderilen ve port
bazlı olmayan ICMP paketleridir. Bir sunucuya
yüzlerce belki de binlerce makineden aynı anda
geçersiz büyüklükte ICMP paketleri gönderildiğinde
sunucu büyük ihtimalle görevini yerine
getiremeyecektir. Buna karşı çok etkin bir önlem
olmasa da bir icmp isteği olan ping' lere sunucuyu
kapatmak faydalıdır. Daha etkin bir yöntem için bir
firewall (güvenlik duvarı) seçeneğini
değerlendirmelisiniz.
Ping paketlerine cevap vermeyi engellemek için
aşağıdaki komutu bilgisayarın açılış betiklerinden
birisine yerleştirmek ve bilgisayarı yeniden
başlatmak yeterlidir.
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Source Routing ve Tehlikeleri
Source Routing, özelleştirilmiş bir TCP/IP paketinin
geçeceği yolu kendisinin belirlemesi için kullanılan
bir yöntemdir. Sunucu makine, gelen özel paketin
öntanımlı yolundan paketi geriye göndermek zorunda
bırakılır. Bu da saldıranın kendisini güvenilir bir
makine olarak göstermesini sağlayabilir. Bu nedenle
kesinlikle sunucunuzda bu özelliği kaldırmalısınız.
Yapılması gereken işlem (Red Hat 6.2 için)
/etc/sysctl.conf dosyasına aşağıdaki satırı
eklemekten ibarettir.
net.ipv4.conf.all.accept_source_route = 0
TCP SYN Cookie Koruması
Bir diğer DOS (Denial of Service) saldırısı, ise SYN
saldırıları olarak bilinen türdür. Bu saldırılara
karşı önlem almak amacı ile gelen bütün TCP
paketlerine karşı koruma sağlayan aşağıdaki satırı
/etc/sysctl.conf dosyasına eklemeniz faydalı
olacaktır.
net.ipv4.tcp_syncookies = 1
ICMP redirect paketlerinin engellenmesi
ICMP redirect paketleri routerlar tarafından sunucu
makinelere üzerlerindeki route tablolarını belirtmek
ve sunucu makinelerin paketleri gönderecekleri yolu
önceden bilmelerini sağlamak amacı ile kullanılır.
Kötü niyetli birisi sizi yanıltacak ICMP redirect
paketleri ile sunucu makinenizi yanıltarak başka yere
gitmesi gereken paketleri kendisine yönlendirmeyi
başarabilir. Bunu engellemek için /etc/sysctl.conf
dosyasına aşağıdaki satırı eklemeniz ve network' u
yeniden başlatmanız yeterli olacaktır. (Red Hat 6.2)
net.ipv4.conf.all.accept_redirects = 0
Pentium II ve III sistemlerde daha etkin program
derlenmesi
Linux ile standart dağıtılan GCC adlı C, C++ compiler
programı bilgisayarınızın mimarisine özgü kod
derleyebilme yeteneğine sahiptir. Fakat varsayılan
olarak 80386 mimarisinde çalışabilecek
çalıştırılabilir dosyalar derlemek üzere ayarlanmış
gelir. Eğer makineniz Pentium II veya üzeri veya AMD
K7 ise aşağıdaki satırları /etc/profile dosyasına
eklediğiniz takdirde bundan sonra derlediğiniz
programlar CPU' nuza göre optimize edilecek ve daha
hızlı çalışacaklardır.
export CFLAGS = '-O9 -funroll-loops -ffast-math
-malign-double -mcpu=pentiumpro -march=pentiumpro
-fomit-frame-pointer -fno-exceptions'
Eğer makineniz i586 diye tabir edilen AMD K6-II-
Pentium vb... bir sistem ise aşağıdaki satırları
/etc/profile dosyasına eklemeniz faydalı olacaktır.
export CFLAGS = '-O3 -march=pentium -mcpu=pentium
-funroll-loops -ffast-math -malign-double
-fomit-frame-pointer -fno-exceptions -fforce-mem
-force-addr'
bdflush parametreleri ile oynayarak sistem
performansının artırılması
bdflush parameterleri sistemin sanal bellek yönetimi
ile yakından ilgilidir. Bazı buffer vb... ayarlar ile
oynayarak sisteminizin cevap verme performansını
artırmak mümkündür. Aşağıdaki komutu açılış
dosyalarından birisine yerleştiriniz.
echo "100 1200 128 512 15 5000 500 1884 2">/proc/sys/vm/bdflush
Konu hakkında daha ayrıntılı bilgi için
/usr/src/linux/Documentation/sysctl/vm.txt dosyasına
bakınız.
hdparm ile IDE bir diske erişimde performans
artışı sağlamak.
Linux çekirdeği diske erişim sırasında bütün
sistemlerle uyumluk sağlaması açısından mütevazi bir
konfigurasyonla gelir. Destekleyen disklerde
(günümüzde hemen hepsi) DMA, 32 bit transfer gibi
ayarlamaları aktif hale getirdiğimizde disk erişim
hızında belirgin bir artış sağlanmaktadır. Bu işlem
için kullanılan sihirli komutun adı "hdparm" dır.
İlk yapılması gereken hdparm -i /dev/hda komutu ile
diskinizin özelliklerini listelemek olmalıdır.
Çıktıda özellikle dikkat edilmesi gereken ilk olarak
MaxMultSec' ün yanındaki sayıdır. Bu sayının 8
olduğunu varsayarak DMA ve 32 bit erişimi aktif eden
komut şu şekilde olabilir.
hdparm -m 8 -d 1 -X66 -c 1 /dev/hda
Yukarıdaki komut IDE diskinize %30' lara veya belki
de daha yukarıya çıkan oranlarda daha hızlı
erişmenizi sağlayacaktır. Ardından hdparm -t /dev/hda
komutu ile testinizi yaptıktan sonra bir sorun
iletilmezse kullanmanızı tavsiye ederim. Özellikle
-X66 parametresi diskinizde onarılması güç sorunlar
çıkarabilir. Oluşabilecek arızalardan PCNET/GnuLinux
veya yazar sorumlu tutulamaz.
Bu ayar bilgisayarınızın her açılışında aktif olsun
istiyorsanız açılış betiklerinden herhangi birisine
yerleştirmeniz yeterlidir.
İki aydır daha güvenli, performansı yüksek Linux
sunucuları hazırlamak için bazı ipuçları vermeye
çalıştık. Yazı dizimiz burada sona eriyor. Doğru
amaçlar için konfigüre edilmiş bir Linux sisteme
sahip olmanın geniş bir bilgi birikiminin ve
deneyimin eseri olmasına rağmen bu yazı dizimizde
belirtilen önlemler alındığında sunucunuzun büyük
ölçüde güvenliği sağlanmış olacaktır. Her türlü
yorum, dilek ve eleştirileriniz bizim için altın
değerindedir.
Bu yazı Kasım 2000 tarihinde PC Net Türkiye
dergisinde yayınlanmıştır.
LILO ayarlarından, nerden olduğundan bir şey anlayamadım. SOS IMDAT
Pek çok yeni Linux kullanıcısının, daha önceden
edindiği
bilgisayar alışkanlıklarının atılması ve Linux' un
mantığına adapte olması zor
olmaktadır. Alışkanlıklarınıza yenik düşmeyerek
Linux' a alışmaya çalıştığınızda
kısa sürede gücüne siz de hayret edeceksiniz.
Umutsuzluğa kapılmayınız. LILO
ayarları /etc dizininin altında lilo.conf adlı
dosyada yapılır. Konfigurasyon
parametreleri çok çeşitli olmakla birlikte, çok basit
bir iki parametre ile
sorunu çözmek mümkündür. Aşağıda /dev/hda1
partisyonunda bir Windows işletim
sistemi ve /dev/hda8' de Linux işletim sistemi
bulunduran bir lilo.conf dosyası
görünmektedir.
1. boot = /dev/hda
2. delay = 40
3. vga = normal
4. root = /dev/hda8
5.
6. image = /boot/vmlinuz
7. label = linux
8. root = /dev/hda8
9. other = /dev/hda1
10. label = windows
1. satır, LILO kaydının nereye yazılacağını anlatır.
/dev/hda MBR anlamına
gelmektedir.
2. satır, LILO yazısının kaç saniye bekleyerek
varsayılan işletim sistemini
çalıştıracağını belirtir. 40 değeri 4 sn.
anlamındadır.
3. ekran gösteriminin standart 80x25 satır/sütun
şeklinde olacağını
göstermektedir.
4. satır, Linux' un root partisyonunun nerede
aranması
gerektiğini gösterir. 6. satır, bir Linux kaydının
başladığını ve kernelin
/boot/vmlinux olarak kaydedildiğini gösterir.
7. satır, bu Linux kaydının açılış esnasında linux
yazılarak çağrılabileceğini
anlatır.
8. satır, Linux' un ilk açılışta salt okunur açılıp,
gerekli testler yapıldıktan
sonra yazılabilir yapılmasını sağlar.
9. satır, bir Linux harici işletim sistemi kaydının
başlangıcını gösterir.
10. satır, bu kaydın açılış esnasında windows
yazılarak çağrılabileceğini
gösterir.
Merhabalar, benim sorunum modemle ilgili.
Pci modemlerin linux altında çalışmadığını biliyorum
ve ne yaptıysam modemi
tanıtamadım. Ama RH 7'nin Pci modemleri tanıdığını
duydum ne kadar doğru
bilemiyorum. Şuan RH6 kullanıyorum ve modemimin
markası "conexa
Linux altında PCI modem kullanımı sürümler ile ilgili
bir sorun olmayıp, donanım
üreticilerinin bu modemler için gerekli emülatör
programları hazırlaması ile
ilgilidir. Henüz beta test aşamasında olan Red Hat
7.0' ın bu tür bir ekstra
özelliği yoktur.
Linux uzerine bir firewall yazimi ne kadara mal
olur?
ipchains adlı port filtreleme yazılımı hemen hemen
bütün Linux sürümleri ile
birlikte ücretsiz olarak gelmektedir. Eğer bu
yazılımı kullanarak güvenlik
duvarı oluşturacak ekibiniz var ise maliyeti sıfır
olacaktır. Eğer bu işi bu
konuda uzmanlaşmış bir firmaya yaptırmak isterseniz
destek için ücret ödemeniz
gerekecektir.
İyi günler, öncelikle bu hizmetiniz için size
teşekkür ederim. Sorum şu...
Elimde Mandrake 6.0 Linux cd var, bunu bir iki defa
makinaya kurmaya çalıştım
açılışta LI yazan bir yazı geliyo ve makina
acılmıyor. Tahminen lilo da bir
sorun olmalı ama nedir?
Merhaba, evet sorun tahmin ettiğiniz gibi LILO' da.
Bunun pek çok nedeni
olabilir. Çok genellerinden bir tanesinden
bahsedeyim. Meşhur 1024. silindir
sorunu. Bu sorun Linux' un LILO' nun erişemeyeceği
kadar uzakta bir partisyona
kurulmasından kaynaklanıyor. Sorunu lilo' nun yeni
bir versiyonunu yükleyerek
çözebilirsiniz. Açılmayan bilgisayarınızı, kurtarma
disketiniz ile açtıktan
sonra lilo' nun yeni versiyonunu Internet' ten
indirerek kurunuz ve lilo -L
komutu ile yeni LILO' yu diskinize yazınız.
Linux 2.0.35 (slackware) veya üst sürümlerinde
networke bağlı clientlerin bazı
adreslere girmelerini nasıl engellenir. Yardımlarınız
için teşekkür ederim.
Bu tür bir çalışma yapabilmek için girilmesini
engellemek istediğiniz adreslerin
IP' lerinin bir listesine ihtiyacınız vardır.
ipchains yardımı ile bu adreslere
istediğiniz istemcilerin gitmelerini
engelleyebilirsiniz. Fakat tahmin
edebileceğiniz gibi bu çok zahmetli bir işlem
olacaktır. Bu iş için kullanılan
bazı ticari yazılımlar Internet üzerindeki bütün
siteleri indekslemekte ve siz
de kategorilere ayrılmış bu siteleri engellemek
şansına sahipsiniz. Bu arada
hatırlatmakta fayda var, bu tür ticari yazılımlar son
derece yüksek fiyatlarla
satılmaktadır.
linux mandrake kullanmaya başladım.Brooktree bt878
tv kartım var ama televizyon
izleyemiyorum .acaba henüz linux te tv izleme şansı
yokmu.Ayrıca CD ile film
izleyemiyorum.bana yardımcı olur musunuz?
Linux altında video CD izlemek için genellikle Mtv
adındaki shareware yazılım
tercih edilir. Bu yazılımı http://www.mpegtv.com
adresinden temin edebilirsiniz.
Bu arada çok başarılı bir yazılım olmadığını
hatırlatmakta fayda görüyorum. GPL bir opsiyon
denemek isterseniz smpeg-xmms adlı xmms modülü de
mükemmele yakın sonuçlar ortaya koyabilmektedir. TV
izlemek için çok sayıda ücretsiz yazılım mevcuttur.
http://www.freshmeat.net
veya http://www.linuxberg.com adreslerinde
yapacağınız bir arama ile karşınıza
gelecek yazılım sayısı sizi şaşırtacaktır. BT 878
çipsetli TV kartları Linux
altında sorunsuz çalışmaktadır.
Bu yazı Eylül 2000 tarihinde PC Magazine Türkiye
dergisinde yayınlanmıştır.
Çok değil bundan 3-4 sene öncesine kadar Linux adlı işletim sisteminin bu kadar büyük bir kitleye hitap edebileceği kimin aklına gelirdi ki?
Düşünebiliyor musunuz, basit bir ev projesi bu gün Oracle, Borland, Corel, Netscape, IBM, Sun gibi dünya devi firmaların ürün geliştirip
pazarladıkları bir ortam olagelmiştir.
İlk destek veren firmaların başında ürünlerinin her
platformda çalışmasını isteyen Netscape oldu. Linux
ortamında çalışan Netscape Navigator sürümü
yüzlerce hata ile dolu da olsa Linux' un artık
işletim sistemleri sektöründe pastadan bir pay
aldığını göstermesi açısından önemli bir gelişmeydi.
Ardından Corel, Borland, Sun, IBM derken minik
penguen 15 milyondan fazla kişinin kullandığı ticari
bir işletim sistemi oldu.
Bu gelişmelerin içinde en önemlilerinden bir tanesi,
veritabanı geliştirme platformlarının tartışmasız
lideri Oracle Inc' in Oracle 8i, Oracle
Application Server ve WebDB yazılımlarını Linux
ortamına aktarması sayılabilir. Neden bu kadar önemli
sorusunun cevabı şu: Birincisi, artık
Linux büyük ölçekli firmaların çok büyük verilerine
cevap verebilecek bir işletim sistemi oldu, ikincisi
de böylesine ciddi ve ne yaptığını bilen bir
firmanın Linux' a olan güvenini gösterdi.
Bu yazımızda Linux ortamına taşınmış Oracle
araçlarını tanıtıp ardından bir Red Hat Linux sisteme
Oracle 8i kurulumunu adım adım açıklamaya
çalışacağız.
Oracle 8i for Linux
Oracle 8i, veritabanı teknolojisine geleneksel
yazılım mantığına yeni özellikler eklerken, Internet
çağının ihtiyaçlarına göre verinin yönetimini ve
ulaşılması
anlayışını değiştirmiştir. Oracle 8i' nin bir
veritabanı entegre web yazılımı geliştirmek için
gerekli bütün araçları içermesinden dolayı, herhangi
bir şirket,
Internet' in sunduğu bütün olanakları sonuna kadar
kullanabilir.
Oracle 8i' nin en göze çarpan özelliklerinden bir
tanesi tamamen Java ile bütünleşik olmasıdır. Java,
Internet' in gündelik hayata girmesinin ardından
popüler olmuş, nesneye dayalı bir dildir. Java' nın
popülaritesinin temel nedeni, işletim sistemi
bağımsız ve dilin
son derece modüler yapısı sayesinde gelişmeye son
derece açık olmasıdır. Son zamanlarda pek çok C++
yazılım geliştiricisinin bu programlama diline
kayması sonucunda hemen her veritabanı Java desteği
içermeye başlamıştır. Oracle' ın da bu akımdan uzak
kalması düşünülemezdi. JServer adı verilen
Java VM ile birlikte gelen Oracle, Java kodunun içine
SQL komutları girilmesini sağlayan SQLJ teknolojisi
dikkate değerdir. Bu sayede kullanıcılar,
C, OracleCall, PL/SQL gibi dillerin yanısıra sadece
Java kodu kullanarak yazılım geliştirebilmektedirler.
SQLJ, IBM, Oracle ve Sun tarafından geliştirilmiş
açık bir standarttır. İki çeşidi vardır. Birincisi
JDBC üzerinde çalışan ve istemci taraflı byte kodlar
üreten mantık ve diğeri, tamamen native arayüzler ile
veritabanına erişen sunucu taraflı SQLJ teknolojisi.
Oracle 8i, ayrıca JavaBean ve CORBA
teknolojisini de desteklemektedir.
XML, B-to-B (business to Business) uygulamalarda
kendisini ispatlamış bir de facto standartıdır. Aynen
Internet üzerinde veriyi formatlamak için kullanılan
HTML dili gbi XML, veriyi tanımlamak için kullanılır.
En büyük artısı, HTML' in hatalarından ders almış
olması ve başka hiçbir arayüz betimleme diline
ihtiyaç duymadan tamamen kendi olanakları ile
veritabanları ile iletişime geçebilmesidir.
Oracle 8i, XML dosyalarının Oracle veritabanlarına
erişebilmesini sağlamak için gerekli XML işleyiciler
ile birlikte gelir. Bahsi geçen XML işleyiciler, XML
Parser for Java, XML Class Generator, C, C++ ve
PL/SQL için XML işleyicileri olarak
sınıflandırılabilir.
Oracle 8i' nin en çok dikkat çekici özelliklerinden
bir tanesi de kısa yazılımı iFS olan ve Türkçesi
Internet Dosya Sistemi olarak çevrilebilen bir
veritabanı bütünleşik
dosya sistemidir. Oracle iFS, Oracle 8i' nin üstün
özelliklerini bir dosya sisteminin kullanım kolaylığı
ile birleştirmektedir.
Oracle 8i ile bütünleşik gelen bu sistem, tabanda
Oracle JServer üzerinde çalışan bir Java
uygulamasıdır. Kullanıcı tarafından görünümü ise ağ
üzerinde
görünen herhangi bir disk sürücüden farksızdır.
Oracle iFS' ye kfm, mc, windows explorer gibi
herhangi bir dosya yöneticisi, ftp programı, e-mail
programı
ile ulaşan bir kimse buradaki verileri sanki bir
dosyaymış gibi görüntüleyebilme ve üzerinde standart
bir dosya sisteminde yapılan kopyalama silme gibi
işlemleri
yapabilmektedir. Hatta üzerinde bir veritabanından
beklenen arama ve sorguları sanki bir içeriği dosya
içerisinde arıyormuş gibi yapabilmektedir.
Bir yazılım geliştiricisinin bakış açısı ile iFS,
verilerin güvenle muhafaza edildiği, dosya sistemi
hatalarından korunmuş bir ortamdır. Bu sayede çok
sayıda
dosya sisteminin düzenlenmesi ve yedeklenmesi ile
uğraşmak yerine sadece iFS' nin bakımı ile uğraşmak
yeterli olmaktadır. Ayrıca Oracle' ın çok sayıda
sunucuya yayılabilen yapısı sayesinde çok sayıda
fiziksel makine ve diskten oluşan bir sistem sanki
tek bir dosya sistemiymiş gibi görüntülenmektedir. Bu
sayede mükemmel bir veri bütünlüğü sağlanmış olur.
WebDB ile web yazılımları geliştirilmesi.
Oracle WebDB, içerik tabanlı web sitelerinin
hazırlanması, sunulması ve monitör edilmesi için
geliştirilmiş ve Oracle veritabanları ile mükemmel
uyum
sergileyen bir üründür. Browser tabanlı arayüzü ve
kullanıcıya yön verici yaklaşımı ile WebDB, Oracle
veritabanlarını en kısa yoldan
web' e aktarmayı amaçlar. Oracle ve WebDB ile
geliştirilmiş web yazılımları tamamen Oracle
içerisinde saklanır ve istemci tarafında gerekli olan
tek yazılım
bir web tarayıcıdan ibarettir.
Sitenin yönetilmesi ve yeni veri girilmesi aşamasında
da herhangi bir aracı programa ihtiyaç olmayıp bütün
işlemler yine bir web tarayıcı ile bağlanılan bir
sitede yapılmaktadır. Site güncelleme işlemleri için
FTP ile dosya transferi devri çoktan kapanmıştır.
Ayrıca Oracle veritabanlarına WebDB ile
ulaşılabileceği gibi ASP ve PHP gibi betimleme
dilleri de kullanılabilmektedir.
Oracle Application Server
Oracle Application Server yazılımı, Oracle' ın
Internet platformu için çok önemli bir bileşenidir.
Bundan yıllar önce ilk veritabanlarının var olmasının
nedeni
yazılımları veriden bağımsız kılmak iken, şimdi
eğilim verilerin arasındaki ilişkiyi veritabanından
bağımsız kılma yönündedir. Oracle' ın bu amaçla
geliştirilmiş
yazılımı Application Server çok daha az kompleks
modüller içeren sunucular ve daha iyi yazılımların
ortaya çıkması amaçlamaktadır.
Oracle Application Server yazılımını dört başlık
altında inceleyebiliriz.
- Geliştir : Oracle Application Server,
Java ve daha pek çok programlama diline destek
vermekte olup, bir yazılım geliştirirken çoğunlukla
en çok vakit
harcanan yerler olan ağ işlemleri, entegrasyon, güvenilirlik, geliştirilebilirlik gibi ihtiyaçlara hazır çözümler sunmaktadır. - Dağıt : Bütün ağ modellerine uygun
yapısı ile HTML, Java, CORBA, COM gibi yapılara tam
destek vermektedir. Diğer benzeri yazılımların
aksine Oracle
dağıtılabilir bir mimaridedir. Üzerinde çalışan proseslerin yükünü azaltmak için çok sayıda sunucuya görev dağılımı yapabilir ve sonuçları tek bir sunucu
üzerinden yayınlayabilir. - Entegre Et : Oracle veritabanları sadece
Oracle veritabanları ile iletişim içinde olmak
zorunda değildir. ODBC/JDBC arayüzleri sayesinde
herhangi bir
veritabanı ile rahatlıkla iletişime geçebilir. - Yönet : Bütün bir Oracle Application
Server sitesi, tek bir makine veya yüzlerce
makineden oluşsun, web tarayıcı ile tek bir
konsoldan yönetilebilir.
Yakın gelecekte Oracle Application Server, Oracle Enterprise Manager ile entegre bir şekilde sunulacak olup, bütün bir Oracle platformunun tek bir
konsoldan yönetimi mümkün kılınacaktır.
Linux üzerinde Legato Clustering
Legato, Linux üzerinde, sunucu makinenin kapalı kalma süresini minimize etmeye yönelik çalışan ilk ticari "High Availability" çözümüdür. Bu kapalı kalma
süresi sunucunun bilinçli ya da istenmeyen nedenlerden dolayı işlevini yapamaması anlamını taşımaktadır.
Legato Clustering teknolojisi, Linux üzerinde çalışan
Oracle ile birlikte aşağıdaki avantajları
sunmaktadır.
| Hata Durumu | Legato Cluster Davranışı |
| Linux sunucu çalışmıyor. | Legato Cluster, Oracle sunucuyu başka bir makinede çalıştırır. |
| Linux üzerinde Oracle sunucuda bir problem var ve çalışmıyor. | Legato Cluster, Oracle sunucuyu aynı makine üzerinde çalıştırmaya çalışır ya da hemen başka bir makine üzerinde çalıştırır. Bu davranışı sistem yöneticisi belirler. |
| Linux sunucu üzerindeki network kartında problem olması durumu | Legato Cluster, IP adresleri arasında NIC - to - NIC hata düzeltme yöntemini uygular ve aynı makine üzerindeki başka bir kartı devreye sokar. |
| Oracle vertiabanının bulunduğu diskte veri kaybı olması durumu | Legato Cluster, aynı makine üzerindeki ya da başka makine üzerindeki bir replike veriye ulaşır ve oradan veriyi alarak kopyayı onarır. |
| Linux sunucunun upgrade edilmesi için kapatılması. | Legato Cluster, işlemlerini başka bir makineye aktarır ve sistem upgrade bitince eski sisteme döner. |
Oracle for Linux kurulumu
Oracle 8i, Oracle firmasının Linux üzerinde
geliştirdiği ilk yazılım olduğu için kurulumu son
derece karışıktır. Çok geçmiyor ki gerek Türkiye
içinde gerekse
yurt dışındaki listelerde konu ile ilgili sorular
karşımıza çıkmasın. Aşağıdaki adımları birebir takip
ederseniz bir Red Hat sistem üzerinde Oracle sorunsuz
şekilde kurulacaktır. Diğer sürümlerde bazı belirgin
farklılıklar olmasından dolayı bütün sürümleri burada
anlatmamız mümkün değildir. Diğer sürümler hakkında
ayrıntılı bilgi için dağıtım üreticinizin web
sitesini inceleyiniz.
Kurulum programların temin edilmesinden başlayarak 5
aşamada incelenecektir.
- Programların temin edilmesi.
- root kullanıcı olarak yapılması gereken işlemler.
- oracle kullanıcısı olarak yapılması gereken işlemler.
- Oracle 8i' nin kurulması
- Bir veritabanı yaratılması
1. Programların temin edilmesi.br>
Oracle veritabanın Linux versiyonu ücretli bir yazılım olup lisanssız olarak kullanılması yasal değildir. Fakat Oracle firması ürünlerini Linux platformunda denemek
isteyen kullanıcılar için 90 günlük deneme sürümünü piyasaya sürmüştür. 90 günlük versiyonu tam fonksiyoneldir.
Ürünü Oracle for Linux' un web sitesi olan
http://www.oracle.com/linux adresinden
indirebilirsiniz. Az önce bahsi geçen bileşenlerin
toplamı 620 MB gibi bir alan tuttuğu
ve Oracle' ın FTP sitesi genelde meşgul olduğu için
bu demo sürümlerini temin etmek tam bir işkence
olabilir. Programları haklı olarak yurt içinden temin
etmek isterseniz
adresler :
ftp://ftp.linux.org.tr/pub/oracle
ve
ftp://ftp.onar.com.tr/pub/linux/console/oracle
olmalıdır. Bir diğer ihtimal de Oracle Türkiye veya
Amerika' dan bir demo CD istemek olabilir. Oracle
Türkiye web sitesi adresi http://www.oracle.com.tr
şeklindedir.
Oracle 8i, Red Hat Linux ile birlikte gelmeyen bazı
yazılımlara ihtiyaç duymaktadır.
Birincisi Java uygulamalarını çalıştırmaya yarayan
JRE 1.1.6v5(Java Runtime Envirenment) yazılımı.
Dikkat edilmesi gereken husus, JDK yerine JRE' nın
belirtilen versiyonun temin edilmesinin gerektiğidir.
JRE, http://www.blackdown.org
adresinden temin edilebilir. Tam olarak edinmeniz
gereken dosya ismi,
jre_1.1.6-v5-glibc-x86.tar.gz şeklindedir.
Oracle Enterprise Manager kullanmayı düşünüyor iseniz
http://www.scriptics.com
adresinden temin edilebilecek olan TCL paketine de
ihtiyaç duyacaksınız
demektir. TCL yorumlayıcı dili günümüzün modern bütün
Linux sürümleri ile birlikte gelmekte olup büyük
ihtimalle bu paketi indirmeye ihtiya duymayacaksınız.
Yazılımın sisteminizde mevcut olup olmadığını anlamak
için komut satırında tcl yazmanız yeterli olacaktır.
2. root kullanıcı olarak yapılması gerekli
işlemler.
Gerekli yazılımları indirdikten sonra bunların
sisteme kurulması işlemine geçilebilir. İlk olarak
JRE kurulmalıdır. Kurulumu hakkında ayrıntılı bilgi
tar.gz paketinin
içindeki INSTALL adlı dosyada mevcuttur.
JRE' yi /usr/local/jre dizinine kurduğunuzu
varsayarak devam ediyoruz.
Oracle 8i, sistemde make adlı programın GNU
versiyonunu aramaktadır. Sisteminizde mevcut olup
olmadığını öğrenmek için şu komutları veriniz.
# cd /usr/bin
# ls -l gmake
eğer sonuç olumsuz ise make adlı komuttan gmake' e
bir sembolik bağlantı yapabilirsiniz. Bu işlem için
şu komutu veriniz.
# ln -s /usr/bin/make /usr/bin/gmake
Eğer make sisteminizde mevcut değilse bir an önce
kurunuz.
Son olarak da sisteminizde yeterli disk alanının olup
olmadığını kontrol etmelisiniz. Oracle 8i, ortalama
bir performans için 800 MB disk alanına ve 256 MB
fiziksel belleğe ihtiyaç duymaktadır. Gerekli bilgiyi
almak için şu komutları verebilirsiniz.
# df -k
# cat /proc/meminfo
Şimdi Oracle 8i' nin kurulumu için bir dizin
belirlemelisiniz. Bu dizinin /usr/local/oracle/8i
olduğunu varsayarak aşağıdaki komutları veriyoruz.
# mkdir /usr/local/oracle/8i
# cd /usr/local/oracle/8i
# mkdir u01
# mkdir u02
# mkdir u03
Şimdi de yazılımı kullanmaya yetkili bir grup
tanımlanması gerekmektedir. Ayrıca sistemi yönetmek
için de dba adlı grup tanımlıyoruz.
# groupadd oinstall
# groupadd dba
Oracle kullanısını tanımlıyoruz. Bu kullanıcının
varsayılan grubu oinstall ve ayrıca bu kullanıcı dba
grubunun bir üyesi olmalıdır.
# adduser -d /usr/local/oracle/8i -s /bin/bash -c "Oracle User" -g oinstall -G dba oracle8i
Oracle' ın kurulacağı dizinin haklarını oinstall
kullanıcısına veriyoruz.
# chown oracle8i.oinstall /usr/local/oracle/8i -R
# chmod 755 /usr/local/oracle/8i -R
Oracle kullanıcısına bir şifre tayin ediyoruz.
# passwd oracle8i
Bu aşamalardan sonra Oracle sisteme kurulmaya hazır
hale gelecektir. Sırada Oracle kullanıcısının kendi
ev dizininde yapacağı değişiklikler var.
3. oracle kullanıcısı olarak yapılması gereken
işlemler.
Bilgisayarınıza oracle8i adlı kullanıcı olarak
bağlanın ve XWindows ortamına geçiniz.
Oracle kurulacak olan dizinde güvenlik amaçlı koruma
maskesini tanımlayınız.
$ umask 022
Bu kullanıcının açılış betiklerinde bazı
değişiklikler yapılması gereklidir. Yaplan
değişiklikler temelde ORACLE_HOME, ORACLE_BASE gibi
çevre
değişkenlerini belitmekten ibarettir.
Aşağıdaki satırları aynı şekilde ev dizininizdeki
.bash_profile adlı dosya içersine yazınız.
ORACLE_HOME = /usr/local/oracle/8i/u01/app/oracle/product/8.1.5
ORACLE_BASE = /usr/local/oracle/8i/u01/app/oracle
ORACLE_SID = v8i815
export ORACLE_HOME ORACLE_BASE ORACLE_SID
NLS_LANG='english_unitedkingdom.we8iso8859p1'
ORA_NLS33 = $ORACLE_HOME/ocommon/nls/admin/data
ORACLE_TERM=vt100
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG ORA_NLS33 PATH LD_LIBRARY_PATH
export JAVA_HOME= /usr/local/jre
export PATH=$JAVA_HOME/bin:$PATH
değişikliklerin aktif olması için bir kez daha
sistemden çıkarak oracle8i adlı kullanıcı olarak
tekrar bağlanınız.
4. Oracle 8i' nin kurulması
Artık sisteminizde gerekli bütün ayarlamalar yapıldı
ve Oracle' ı kurmaya hazırsınız. Bir hatadan dolayı
runInstaller komutu Red Hat Linux üzerinde
çalışmamaktadır. Bunun yerine runIns.sh' yi
çalıştırmak zorundasınız.
Oracle Universal Installer adlı yazılım çalıştıktan
sonra çoğu sayfa kendisini açıklar niteliktedir.
Fakat bazı dikkat edilmesi gereken hususlar vardır.
Aşağıda
bunları işlem sırasına göre yorumlayacağız.
- hangi grup altında çalışıcağı sorulduğunda
oinstall grubunu giriniz. Grup seçimi yapıldıktan
sonra kurulum programı
/tmp/orainstall/orainstall.sh adlı programı
çalıştırmanızı isteyecektir. Bu programı çalıştırmadan önce root haklarına sahip olduğunuzdan emin olunuz.
# cd /tmp/orainstall
# ./oraInstall.sh
- Kurulum tipleri ekranına geldiğinizde Custom seçeneğini seçiniz. Diğer iki seçenek çalışmayacaktır.
- Available Product Components (Mevcut Ürün
Modüller) ekranına geldiğinizde Intermedia seçeneği
haricinde bütün seçenekleri seçebilirsiniz.
Bu yazılım hatalarla dolu olup kurulmaması daha faydalıdır.
- Kurulumun bir aşamasında $ORACLE_HOME/root.sh
komutunu root haklarına sahip olarak çalıştırmanız
istenecektir. Bu komut varsayılan olarak
çalıştırılabilir
gelmemektedir. Çalıştırmak için aşağıdaki komutu kullanınız.
# cd /usr/local/oracle/8i
# sh root.sh
- Kurulum size bir veritabanı yaratmak isteyip istemediğinizi soracaktır. Cevabınız ne olursa olsun "veritabanı yaratma asistanı" çalışacak ve bu veritabanı yaratılacaktır.
- Kurulumun sonunda "veritabanı yaratma asistanı"
veritabanını yaratırken
JNLS Exception : oracle.ntp.jnls.JNLSException Unable to Find Any National Character Sets. Please check your Oracle Installation şeklinde bir hata verecektir.
Bu bilinen bir hatadır, sorun çıkartmayacaktır. Umarsamayınız. - Veritabanı yaratma asistanı başladığında cancel
tuşuna basarak kurtulabilirsiniz. Ardından Oracle
Kurulumuna geri döneceksiniz. Oracle kurulumundan
çıkınız ve aşağıdaki komutları veriniz.
$ cd /usr/local/oracle/8i/install/utl
$ ./linux.sh
Bu komut bazı çalıştırılabilir olması gereken ama kurulumdaki bir hatadan dolayı olmamış olan dosyalardaki sorunları yok edecektir.
5. Bir veritabanı yaratılması
Veritabanı yaratmak için sisteme oracle8i adlı kullanıcı olarak girmelisiniz. Ardından dbassist komutu ile veritabanı yaratma asistanını çalıştırınız.
veritabanı yaratırken aşağıdaki adımlara dikkat
edilmelidir.
- Select the type of the database to create (Yaratılacak veritabanı tipini seçiniz) sorusu geldiğinde custom seçeneğini seçmelisiniz. Typical seçeneği çalışmamaktadır.
- Review the Following Database Information
(Aşağıdaki veritabanı bilgilerini kontrol ediniz)
mesajını içeren ekrana geldiğinizde gerekli
bölümlerini doldurunuz. Burada
veritabanının hangi dosya ismi ile yaratılacağı hanesi yer almamaktadır. Bir kez next (ileri) tuşuna basarak ardından back (geri) tuşuna basınız. Bu sefer bu hane görünecektir.
- Veritabanı yaratılması aşamasında Intermedia yaratılırken pek çok hata mesajı verecektir. Hiçbirisini umursamayın, işlem sorunsuz gerçekleşecektir.
Sonuç
Bu yazıda Oracle' ın 8i v1.1.5 yazılımını inceledik. Yeni versiyonu olan 8.1.1.6 sürümünde az önce bahsi geçen pek çok hata çözülmüştür.
Kurulumu tam bir ipuçları dünyası olan ve maalesef ki yine kurulumu pek çok hata içeren bu yazılım henüz tamamen hazır değil izlenimi vermesine
rağmen yine de Linux için çok önemli bir adım niteliğindedir. Umut ederiz ki, Oracle Inc. Linux' a verdiği desteği aynen devam ettirir ve böylesine
sorunlu bir kurulumdan kurtulmuş bir Oracle ile pek çok orta ve büyük ölçekli firma sistemlerini Linux' a çevirir.
Bu yazı Eylül 2000 tarihinde PC Net Türkiye
dergisinde yayınlanmıştır.
alanda bilginizi ispatlayan sertifikasyon programlarıdır. Pek çoğunuz, Cisco' nun CCNA,
Microsoft' un MCSE gibi unvanlarından haberdar olmalısınız. Peki Linux için bütün dünyada
geçerli bir sertifika programı mevcut mu?
Sertifikasyon, bambaşka bir sektör ve bu işin
firmalarla, işletim sistemleri ile hiç ilişkisi yok.
Dünya üzerinde bu konuda otorite olmuş iki adet firma
var. Birisi Virtual University
Enterprises (Vue) diğeri ise Sylvian Prometric. Her
ikisi de yüzden fazla ülkede yetkili sınav
merkezleri aracılığı ile hemen her türlü firmanın
sertifikasyon programını yürütüyor.
Linux sertifikalarını belli başlı üç başlıkta
toplayabiliriz. Birincisi Prometric tarafından
yapılan sınav olan Sair Linux sertifikası, ikincisi
Vue tarafından yapılan LPI programı ve bir
de Red Hat firmasının kendisinin yürüttüğü Red Hat
Certified Engineer programı. Şimdi
isterseniz bu programları inceleyelim.
Linux Professional Institude(LPI) ve LPIC
Sertifikaları
LPI, bu konuda standart olmayı amaçlayan bir
komiteden oluşmuş. Caldera, IBM, S.u.S.e,
TurboLinux gibi firmalardan da onaylanmış programın
web sitesinin adresi
http://www.lpi.org.
Kısaca özetlemek gerekirse LPIC adını verdikleri
sertifikalarının 3
aşaması var. Birinci ve ikinci aşamada ikişer tane
sınav geçilmesi gerekiyor. Birinci aşama
genelde Linux hakkında genel bilgiler, özgür yazılım
felsefesi, kurulum, konfigürasyon gibi
konuları kapsıyor. İkinci aşama ise daha çok sistem
yönetimi ve hata çözümleme gibi
konulara yoğunlaşmış durumda. LPI' ın üçüncü aşama
programı henüz hazırlık aşamasında
olmasına karşın, tek bir sınavdan oluşacağı ve bu
sınavın seçimli olacağını biliniyor. LPIC
sertifika sınavlarına, yetkili VUE sınav
merkezlerinden 100$ karşılığında girilebilir.
Türkiye'
deki LPI sertifikası veren VUE merkezlerinin tam
listesi için
http://www.vue.com/servlet/vue.web.core.VueWebPageServlet
adresine bakınız.
Sair Linux & GNU Certification ve LCP – LCA
Sertifikaları
Sair, Linux sertifikasyonu alanında ilk çalışan
firmalardan birisi olup web sitelerinin adresi
http://www.linuxcertification.com
şeklindedir. Bir tanesi tamamlandığında LCP (Linux
certified Professional) unvanının kazanıldığı toplam
4 adet sınav mevcut. Dört sınavın
tamamını geçmiş olan bir kişi ise LCA (Linux
Certified Administrator) olarak anılıyor.
Prometric firması ile çalışan Sair, yine yüzden fazla
ülkede sertifika programları ve LPI' dan
farklı olarak da yetkili eğitim merkezlerinde eğitim
veriyor. LCP olmanın en kısa yolu
Installation ve Configuration (Kurulum ve
Konfigürasyon) veya System Administration
sınavlarından bir tanesini geçmek şeklindedir. Diğer
sınavlar ise, Networking (Bilgisayar
ağları) ve Security (Güvenlik) başlıklarını taşıyor.
Sair Linux' un sınav ücreti 100$ ve
Türkiye' deki yetkili sınav merkezlerinin tam
listesine http://www.2test.com/tcl/ZipCode.jsp
adresinden ulaşılabilir.
Red Hat Linux ve RHCE Programı
Dünyanın en yaygın kullanılan Linux sürümü olan Red
Hat Linux üzerine yoğunlaşan ve Red
Hat firmasının kendisi tarafından yapılan bir
sertifikasyon programı. Bu program sadece
sınavı değil aynı zamanda eğer istenirse konu ile
ilgili bir eğitimi de kapsıyor. Eğitim, Red
Hat tarafından onaylanmış dünyanın pek çok ülkesinde
bulunan yetkili merkezlerde yapılıyor.
Sınavları diğer sertifikasyon programları gibi
Internet üzerinden veya hazır yazılım önünde
değil, yetkili kişiler önünde laboratuarda geçiyor.
Sınavda üç aşama mevcut. Birincisi bir
saatlik bir sınav ve alışık olunan bir sistemle
bilgisayar önünde sorulan sorulara cevap
veriliyor. İkinci aşamada, bir operatör kişi
kontrolünde istenilen niteliklere sahip bir Linux
makine kurulması isteniyor. Üçüncü aşamada yine bir
operatör kontrolünde bozulmuş bir
Linux sunucunun düzeltilmesi ve çalışır hale
getirilmesi isteniyor. Tahmin edilebileceği gibi
gerçekten de zor bir sınav ve en kötü tarafı da
eğitim ve sınav için Amerika' ya gidilmesi şart.
Sınav ve eğitim ücreti geçici bir süre için 2500$.
Eğitim 5 günlük bir süreyi kapsıyor ve
ulaşım, konaklama tamamen katılımcının
sorumluluğunda. Red Hat Linux sertifikasyon
programları için ayrıntılı bilgiye http://www.redhat.com/training/rhce/courses/
adresinden
ulaşılabilirsiniz.
Bu yazıyı okuduğunuza göre geleceğin işletim sistemi
Linux' a yakından ilgi duyuyor ya da
zaten bu konuda uzman seviyesinde olmalısınız. Peki,
bir firmada bilginizi ispatlamanız
istendiğinde bir belgenin eksikliğini hissetmiyor
musunuz? Ya da bu konuda kendinizi
geliştirmek veya kurs materyallerinden faydalanarak
Linux konusunda uzmanlığınızı artırmak
istemez miydiniz? Bilginize güveniyor ve kendinizi
ispatlamak istiyorsanız, yukarıdaki
seçeneklerden sizin için en uygun olanını seçmeniz ve
yetkili bir sınav merkezine
başvurmanız yeterli olacaktır.
Linux sertifikasyonları konusunda Türkiye' de yetkili
eğitim kurumu mevcut mu? Bu sorunun
cevabı maalesef ki hayır... Linux eğitimi ve
sertifikası veren kurumlardan birincisi olan Red
Hat firması Türkiye piyasasına henüz girmedi ve
dolayısı ile bu tür bir oluşum henüz mevcut
değil. Bir diğer eğitim veren kurum olan Sair Linux'
un ise henüz Türkiye' de yetkili bir
eğitim kurumu oluşmadı. Bu nedenle sınavlara
hazırlanmak tamamen katılımcıların
özverisine kalıyor. Bir diğer yol ise bu firmalar ile
direk ilgisi olmayan fakat ilgili konuda
eğitim sunan bir firma ya da şahıslardan eğitim almak
olabilir. Bu konuda çalışan firmalar
arasında İstanbul' da Gelecek A.Ş. (http://www.gelecek.com.tr),
Ankara' da Bimel A.Ş.
(http://www.bimel.com.tr)
, İzmir' de Onar Ltd. (http://www.onar.com.tr)
sayılabilir.
Bir yazılımın kalitesi, onu kullanan kişilerin
bilgisi ile doğru orantılıdır. Linux' un kurumsal
piyasada önemli bir yer edinmesini istiyorsak, bu
konuda bilgimizi ispatlamamız ve
çalıştığımız firmaları bu yazının konusu olan
belgeler hakkında bilgilendirmemiz gereklidir.
Bu yazı Ekim 2000 tarihinde PC Net Türkiye dergisinde
yayınlanmıştır.
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
Güvenlik, ciddiyet isteyen bir iştir. Tasarımına ilk
aşamada yani, sunucunun kurulumundan
önce başlanması gereklidir. Bilgisayarın ne amaçlı
kullanılacağı bir çizelge üzerinde
belirlenmeli ve temel işlevi dışında hiçbir yazılımın
makine üzerinde bulunmasına izin
verilmemelidir. Unutmamalıyız ki, hatasız bir program
yoktur. Makine üzerinde ne kadar az
program bulunursa, hatalardan etkilenme riskimiz de
aynı derecede azalır.
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
Linux kurulumunda deneyimli bir kullanıcı, her Linux
sürümünün kurulum programında
bulunan tipik sunucu veya istemci seçeneklerinden
birisini tercih etmemelidir. Eğer
bilgisayarınızda tam bir hakimiyet kurmak ve üzerinde
bulunan her yazılımın varlığından
haberdar olmak istiyorsanız kurulacak bütün
bileşenleri sizin seçmeniz gereklidir.
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ı | Temel Görevi | Web Adresi |
| Wu-FTPD | FTP Sunucu | http://www.wu-ftpd.org |
| Apache | Web Sunucu | http://www.apache.org |
| Bind | DNS Sunucu | http://www.isc.org/products/BIND/ |
| qpopper | POP3 Sunucu | http://www.qpopper.org |
| Cyrus IMAP Server | IMAP Sunucu | http://asg.web.cmu.edu/cyrus/ |
| Sendmail | MTA Yazılımı | http://www.sendmail.org |
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.
Linux sisteminizi kurduktan sonra ilk yapılması
gereken, bazı tehlikeli paketlerin sistemde
bulunup bulunmadıklarının kontrolü olmalıdır. Tipik
bir sunucuda aşağıda listelenen
programların bulunması ya gereksizdir, ya da bir
güvenlik boşluğu teşkil etmektedir. Bu
nedenle özellikle gerekli değilse silinmeleri daha
akıllıca olacaktır.
- git ve mc
- rsh, rlogin, rcp, rdate, rdist, rusers, rwall, rwho
- ntalk, talk
- telnet sunucu
- Xwindows ile ilgili her türlü program
- KDE, QT kütüphaneleri
- C, C++, tk, derleyici ve yorumlayıcıları
- Snmpd yazılımı
- NFS ve NIS ile ilgili her şey.
- routed
- tftp
- Grafik ile alakalı her şey.
- piranha, linuxconf
- at
- Multimedia ile ilgili her şey
- Pump
- mt-st
- eject
- mailcap
- apmd
- kernel-pcmcia-cs
- getty_ps
- isapnptools
- setserial
- kudzu
- gd
- pciutils
- rmt
Yukarıdaki liste ile paranoyaklık boyutuna ulaşmış olabiliriz fakat hepimiz biliyoruz ki,
güvenlik ciddi derecede paranoyaklık gerektirir.
Ayrıca yukarıdaki listede yer almayan ve makinenize
kuracağınızı varsaydığımız Apache, wu-
ftpd, bind, sendmail gibi programları da şimdi
sisteminizden kaldırmanız ve kaynak
kodlarından derlemeniz tavsiye edilir.
Kullanıcı hesapları
Bir bilgisayar sisteminin kırılmasında izlenen
yolların büyük çoğunluğu, makine üzerinde
geçerli bir kullanıcı hesabına sahip olunmasından
geçer. Güvenlik açıklarından faydalanmayı
amaçlayan kötü niyetli kişiler bu sunucu üzerinde
bulunan hesaplardan bir tanesini eline
geçirdiğinde işi büyük ölçüde kolaylaşmaktadır. Bu
nedenle ana makine üzerindeki bütün
şifrelerin en az root kullanıcının şifresi kadar iyi
korunması gereklidir.
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ı
Sisteminizde NFS, NIS gibi bir sistem
kullanılmıyorsa, ki kullanılması pek tavsiye edilmez,
/etc/exports dosyası içersinde herhangi bir şey
olması gerekli değildir. Bu dosya NFS
sunucular için paylaştırılacak dizinleri belirtir.
Eğer NFS kullanılacaksa buradaki paylaşım
listesi aşağıdakine benzer bir yapıda olmalıdır.
/paylaştırılacak/dizin1 yetkili.makine.com.tr(ro,root_squash)
/paylaştırılacak/dizin2 192.168.10.4(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
Red Hat Linux sistemlerde normal kullanıcıların
makineyi kapatmak, yeniden açmak vb...
özel haklara sahip olmalarını sağlayan bazı dosyalar
bulunur. Bu dosyalar,
/etc/security/console.apps dizininde bulunur.
Buradaki bazı dosyaları silmek bizi beklenmedik
sürprizlere karşı koruyacaktır. Aşağıdaki komutlar
ile gereksiz bazı dosyaları temizleyelim.
rm –f /etc/security/console.apps/halt
rm –f /etc/security/console.apps/poweroff
rm –f /etc/security/console.apps/reboot
rm –f /etc/security/console.apps/shutdown
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
Bir diğer güvenlik artırımı da pam.d sisteminde
sağlanabilir. Red Hat sistemlerde /etc/pam.d
dizininde bulunan betikler, yazılımların
kullanıcıları nasıl yetkilendireceğini düzenler.
Aşağıdaki komutları verdiğiniz takdirde kullanıcılar
tehlikeli sayılabilecek bazı konsol
haklarından mahrum edileceklerdir.
cd /etc/pam.d
for i in * ; do
sed '/[^#].*pam_console.so/s/^/#/' <$i> temp && mv temp $i
done
/etc/inetd.conf dosyası
Bu dosya Linux makinenizin sunucu yazılımlarının pek
çoğunu kontrol eder. Arka planda
çalışan inetd adlı yazılım, bu dosyada belirtilen
portlarda gelen istekleri dinleyerek bir istek
karşısında yine bu dosyada belirtilen programın bir
kopyasını çalıştırır. Bu şekilde hiç
kullanılmayan ya da az kullanılan bazı sunucu
yazılımların bellekte gereksiz yer kaplamaları
engellenmiş olur.
Dosyanın temel yapısı şu şekildedir.
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
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ı
Bu dosya, ağ servislerinize ulaşmaya yetkili
kullanıcıları kısıtlamaya yarar. Genellikle bu
dosya içinde herkese bütün yetkiler kısıtlanır.
Ardından sisteme girmeye yetkili IP adresi veya
bilgisayar adları /etc/hosts.allow dosyası içinde
belirlenir.
Aşağıda standart bir /etc/hosts.deny dosyası
görünmektedir.
# Bütün erişim haklarını kapat!!!...
ALL:ALL
/etc/hosts.allow dosyası
Bu dosya, /etc/hosts.deny dosyasında tamamen
kapattığınız erişim haklarını bazı yetkili
bilgisayarlara iade etmek için kullanılır. Örneğin
sunucu makinenize sadece trlinux.com
(195.244.37.241) alan adından ve sadece sshd adlı
protokol ile erişilmesini istiyorsanız, bu
dosyada aşağıdaki değişiklikleri yapmalısınız.
sshd: 195.244.37.241 trlinux.com
/etc/issue ve /etc/issue.net dosyaları
Bu dosyalar, sisteminize konsoldan veya telnet yolu
ile bağlanmak isteyen kişilere login:
belirtkecinden önce gösterilen bilgi satırlarını
içerirler. Bu, genelde kişiyi kullandığı sistemin
bir Linux sistem olduğunu göstermesi açısından
faydalı olabilir fakat, yüksek güvenlik
gerektiren sistemlerde kullanılan işletim sistemi,
kullanılan çekirdek(kernel) gibi bilgilerin
kötü niyetli kişilerin eline geçmesi doğru değildir.
Bu nedenle /etc/inetd.conf dosyasında
telnet programını çalıştıran satırda in.telnetd
sonuna –h parametresinin eklenmesi bu bilgilerin
ekrana getirilmemesini sağlar.
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
Bu dosya, bir portta bağlanacak olan programa bir
isim vermek amaçlı kullanılır. Örneğin
65000 nolu portu kullanan ve inetd aracılığı ile bu
portu dinleyen bir Netbus tarzı bir worm
programı yazılmak istendiğinde yapılması gereken,
/etc/services dosyasında bu porta bir isim
vermek ve /etc/inetd.conf dosyasında verilen ismi
içeren ve bu porttaki istekleri işleyen bir
program yazılması yeterlidir.
Bunu engellemek için bu dosyada değişiklik yapmayı
engelleyen şu komutun verilmesi
yeterlidir.
chattr +i /etc/services
/etc/securetty dosyası
Bu dosya root kullanıcının sisteme direk login
belirtecinde kullanıcı adı ve şifresini girerek
bağlanabileceği terminal aygıtlarını listeler. Bu
dosya silindiği takdirde sisteme telnet ile
bağlanan herkes kullanıcı adı olarak root verebilir.
Bu çok büyük bir güvenlik açığıdır.
Yapılması gereken eğer bu dosya yerinde yoksa
yaratılması ve içine "tty1" yazılmasıdır. Bu
sayede root kullanıcı sadece bilgisayarın önünde iken
ve 1 nolu sanal terminali kullanırken
sisteme direk bağlanabilir.
/etc/passwd ve /etc/shadow dosyaları
passwd ve shadow dosyaları birlikte, kullanıcı
şifreleri ve hesapları hakkında ayrıntılı bilgiyi
barındırır. Bu nedenle korunmasına özel önem
verilmelidir. Internet' te yer alan pek çok hack-
warez sitesinde, bir Linux sistemi kırmakla ilgili
dokümanda bu dosyaların bir şekilde ele
geçirilmesi ve ardından bir brute force programı
yazılımı ile bu şifrenin güçlü bir bilgisayarda
deneme yanılma yöntemi ile kırılması anlatılmaktadır.
Bunun önüne geçmek gerçekten çok
kolaydır. Yapılması gereken /etc/shadow dosyasının
okuma haklarını normal kullanıcılardan
kaldırmak olmalıdır. Bu işlem şu komutla
gerçekleştirilir.
chmod 600 /etc/shadow
Kullanıcıların su komutu ile root kullanıcı
olmalarının engellenmesi
su komutu herhangi bir kullanıcının root şifresini
bildiği takdirde root kullanıcı haklarına
sahip olmasını sağlar. Bu çok büyük bir güvenlik
riskidir, fakat engellemek mümkündür.
/etc/pam.d/su dosyasının en tepesine aşağıdaki
satırları eklediğimiz takdirde sadece wheel adlı
ön tanımlı gruba üye olan kullanıcılar su komutunu
çalıştırarak root kullanıcı haklarına sahip
olabilirler.
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
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
Bu Linux' un çok gelişmiş özelliklerinden bir
tanesidir. Sisteme bağlanan kullanıcılara
herhangi bir kaynak limiti verilmediği takdirde
sistemi kırmak için özelleşmiş bazı
programları çalıştırarak sistemi meşgul etmelerine ve
belki de sonuçta başarılı olmalarına
neden olunabilir. Aşağıdaki satırlar
/etc/security/limits.conf dosyasına eklendiği
takdirde root
kullanıcı haricindeki kullanıcılar maksimum 20 tane
proses açabilecek ve 5 MB bellek
kullanabileceklerdir.
hard core 0
hard rss 5000
hard nproc 20
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
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_pwdb.so shadow
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so nullok
session required /lib/security/pam_pwdb.so
session required /lib/security/pam_limits.so
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.
Winmodem denilen cihazlar adından da belli
olabileceği gibi sadece Microsoft Windows işletim
sistemlerinde çalışmak üzere tasarlanmışlardır. Bu
modemler, aslında modemin yapmakla yükümlü olduğu
bazı işlemleri bilgisayarın işlemcisine yaptırarak
maliyeti daha düşük tutmak amacı ile
üretilmektedirler ve çalışmak için bir emülasyon
programına ihtiyaç duyarlar. Maalesef ki çoğu modem
üreticisi bahsi geçen emülasyon programlarının sadece
Windows versiyonlarını ürettiği için bu tür modemler
winmodem diye anılır olmuşlardır. Lucent gibi
firmalar winmodemlerinin Linux için emülatör
modüllerini yayınlamış olsa da maalesef Türkiye' de
satılan PCI modemlerin büyük çoğunluğu halen Linux
altında çalıştırılamamaktadır. Bu nedenle en mantıklı
çözüm bir harici modem kullanmak olacaktır. Çünkü
harici modemlerin çok büyük bir oranı bütün işletim
sistemleri altında kullanılabilmektedir.
Yaklaşık 2 aydır Mandrake 7.1 kullanıyorum. Uzun
süredir başka bir ortamda C++ ile programlama üzerine
çalıştığım için programlarımı kaynak kodundan
derlemeyi tercih ediyorum. Fakat ne zaman KDE için
program derlemeye çalışsam QT ile ilgili bir hata
verip kalıyor. QT nedir, ne işe yarar?
Linux' un da pek çoğumuzun bildiği gibi başarılı
sayılabilecek çok sayıda grafik arayüzü vardır. Fakat
alışılagelenin dışında Linux' un standart bir grafik
arayüzü yoktur. Belli başlıları arasında, KDE, GNOME,
Afterstep, icewm, window maker sayılabilir. En
popülerleri olan ve Windows işletim sistemi
arayüzlerini andıran KDE ve GNOME, üzerinde çalışacak
programlar için çok başarılı API' ler s