Sayfayı Yazdır | Pencereyi Kapat

Linux Sunucu Güvenliði ve Optimizasyonu

Nereden Yazdırıldığı: Bilginin Adresi
Kategori: Bilgisayar Güvenliði / Computer Security
Forum Adı: Güvenlik / Security Makaleleri
Forum Tanımlaması: Bilgisayarýnýzý Her Türlü Saldýrýya Karþý Korumak Ýçin Yapmanýz Gerekenler
URL: https://www.bilgineferi.com/forum/forum_posts.asp?TID=7948
Tarih: 03-05-2024 Saat 10:28


Konu: Linux Sunucu Güvenliði ve Optimizasyonu
Mesajı Yazan: megabros
Konu: Linux Sunucu Güvenliði ve Optimizasyonu
Mesaj Tarihi: 23-08-2009 Saat 22:36

Linux, kararlý çekirdeði, að yazýlýmlarýnýn çeþitliliði ve kalitesi, performans/maliyet eðrisindeki konumu nedeni ile günümüzün en çok tercih edilen að iþletim sistemlerinden olmuþtur. Dýþarýdan ve içeriden gelebilecek tehlikelere karþý gerekli önlemler alýnmýþ bir Linux kurulu makine yýllarca hiç sorun çýkartmadan çalýþabilmesine raðmen, her zaman için bunun aksi de mümkündür. Güvenlik ile ilgilenen herkesin bileceði gibi kesinlikle güvenli denilecek bir sistem tasarlanmasý mümkün deðildir. Özellikle Internet” in yaygýnlaþmasý ve kurumlarýn iç aðlarýný global aða baðlamasý sonucunda tehlike daha da artmýþtýr. Bu aydan itibaren Linux sunucu ve istemci bilgisayarlarda güvenliði artýrmak için bazý faydalý bilgiler vermeye çalýþacaðýz.

 
Güvenli bir iþletim sistemi

 


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/ - http://www.wu-ftpd.org

Apache
Web Sunucu
http://www.apache.org/ - http://www.apache.org

Bind
DNS Sunucu

http://www.isc.org/products/bind/ - http://www.isc.org/products/BIND/

qpopper
POP3 Sunucu

http://www.qpopper.org/ - http://www.qpopper.org

Cyrus IMAP Server
IMAP Sunucu

http://asg.web.cmu.edu/cyrus/ - http://asg.web.cmu.edu/cyrus/

Sendmail
MTA Yazýlýmý

http://www.sendmail.org/ - 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.dfor i in * ; dosed “/[^#].*pam_console.so/s/^/#/” <$i> temp && mv temp $idone

 
 
/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.

ctrl+alt+del tuþ kombinasyonunu engellemek


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 k****ktý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 http://www.olympos.org/glossary/term/217 - i , 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.

Saygýlar.



Sayfayı Yazdır | Pencereyi Kapat