Hosting Güvenliği
Web uygulamalarında güvenliğin birinci basamağını sistemin ana merkezi oluşturur. Optimize edilmiş bir sistemin var olan güvenlik prosesleri, upload edilen birimlerin güvenliği konusunda maksimum değerlerin oluşmasını sağlayabilir. Türkiye’deki bazı hosting firmaları bu konularıda baz alarak kullanıcılarının güvenliğine yönelik yeni uygulamalar ve güncel güvenlik prosesleri arayışı içindedirler.
Oluşturulan sistemin güvenilir bir uygulamanın içinde yer alabilmesi için, hosting seçiminde bazı kriterlerin göz önünde bulundurulması gerekir.
» Hosting seçiminde Dikkat Edilmesi Gerekenler;
» Gizlilik Güvenliğin en önemli basamağı gizliliktir. Kullanıcılara ait bilgilerin (Kredi kartı bilgileri, e-posta, isim, soyadı, doğum tarihi v.b ) diğer kişilerle paylaşılmaması.
» Not : Bu tür bilgilerin başkalarının eline geçmesi durumunda, ummadığınız sosyal mühendislik saldırılarıyla karşı karşıya kalabilirsiniz.
» Şirket Çalışanları Güvenliğin en zayıf halkası insandır. Bu nedenle şirket çalışanlarının bu konuda eğitilmesi ve olası sosyal mühendislik saldırılarına karşı hazırlıklı olmaları gerekir. Hosting firmalarının kullanıcılarının güvenliği açısından eleman konusunda seçici davranmalıdırlar.
» Donanım Ve Ekipmanlar Donanım ve ekipmanların kaliteli ve güvenlik standartlarına uygun olması.
» Yedekleme Sunucuları Sitenizin hacklenme v.b durumlarda eski haline getirilebilmesi için günlük olarak yedeklenmesi.
» Güvenlik Duvarı Web sitenize izinsiz erişmeye çalışanları bloke ederek güvenlik duvarı oluşturması.
» Sistem Güvenliği Spam, virüs ve DDOS saldırılarına karşı engelleyici bir güvenlik duvarının oluşturulması.
» Güvenlik Yamaları Kullanılan sistemin güvenliği açısından yamaların zamanında güncellenerek sık sık denetlenmesi.
» Online Destek Herhangi bir problemle karşılaştığınızda ya da hostunuzla ilgili bilgi almak istediğinizde online destek sağlanması.
» Üyelik Sözleşmesi Üyelik sözleşmesinde yer alan bütün maddelerin ayrıntılı bir biçimde incelenerek uygulanabilirliğinin değerlendirilmesi.
» İletişim Bilgileri Olası bir durumda firma ile olan irtibatın telefon, fax v.b iletişim araçlarıyla sağlanabilmesi.
Sunucu, Vps, Kiralık Sunucu, Paylaşımlı Sunucu, Sunucu Barındırma, Co-location, Oyun Sunucusu
17 Ekim 2011 Pazartesi
Windows Sunucu Güvenligi
Windows Server Güvenligi
Windows Server Güvenligi Windows Sunucularda performansı sağlamak ve optimize etmek dışında Server Güvenliğinide sağlamak gerekmektedir.Günümüzde Server Güvenliğine önem verilmemesinden dolayı servera Dns Zehirlemesi,Buffer OwerFlow gibi yöntemlerle sızdıklarından dolayı Serverdaki tüm siteler Deface edilmektedir.Bunun için güvenliğe önem vermek gerekir bu makalemde buna yüzeysel olarak değineceğim.
Windows Serverınızı kurarken default dizin yerine farklı bir dizin ve isim belirlenip o bölüme kurulması çaylakların sisteme sızdıktan önce ve sonra bazı dosyaları bulmakta sıkıntı çekmesine sebep olabilir.Ayrıca Sunucumuzda saklanan dataların sunucu ile aynı hdd bölümünde olmaması dikkat edilmelidir.Farklı bir hdd bölümünde saklamak güvenlik açısından önemlidir.
Sunucu şifre güvenliğini sağlamak.Şifrenin karakter sayısı fazla 2. Ve 3. Karakter kullanımının fazla olması şifrenin brute force ile kırılmasını engeller.Guest ya da başka isimde kullanıcı hesapları varsa kaldırmak tek bir admin hesabından sunucu kontrol etmek gerekmektedir.Adminstarator hesabının ismini değiştirmekte brute force engellemede önemlidir.
Windows Serverlarda Dosya sistemi FAT, FAT32 ve NTFS dir. Bunlardan NTFS kullanmak performans açısından en verimli olanıdır.FAT ve FAT32 genellikle Sunucunun verimliliği çok düşükse kullanılması tercih edilmelidir fakat sık sık Disk birleştirme yapılması gerekeceğinden Server belli aralıklarla kapanabilir ve çökebilir.Bu yüzden NTFS olması her açıdan önemlidir.
Sistemi güncellemek.Güvenlik paketlerini yüklemek ,Service Pack gibi genel paketler çıkmışsa yüklemek sistemin stabil olması açısından önemlidir.Gereksiz windows bileşini kurmamaya özen göstermek gerekli güncelleştirmeleri yüklemek güvenlik açısından önemli etkinliklerdendir.
Windows Sunucular’a uygun Güvenlik Duvarı kurmak Ddos ,Botnet,Buffer OwerFlow gibi saldırıları engellemede yardımcı uygulamalardır.Windowsun kendi güvenlik duvarını kolay bir şekilde geçebilecekleri için bu yüzden bazı guvenlık firmalarının güvenlik duvarını kurmak gerekir.Ayrıca açık portlar varsa kapatmak gerekmektedir.Netbios gibi port açıkları varsa sisteme sızabilmektedirler.
IP Güvenliğini sağlamak,IP trafiğini korumak,Gelen giden paketler hakkında bilgi almak uzaktan bağlanma varsa engelleyici yöntemler kullanmak gerekir.
SSH portunu değiştirmek,r00t girişini engellemek ve protokol2 kullanılmalıdır.
İframe, Shell , Fso, Backdoor gibi zararlı yazılımları ve scriptleri engellemek için antivirus yazılımı kullanmak,ve kaynak kod engelleyıcı degerler gırmek server güvenliği açısından önemlidir.Güncel ve lisanslı bir antivirus yazılımı sistem güvenliği açısından oldukça önemlidir.
Sunucu açılışı CD-ROM,DVD-ROM gibi harici disklerden başlatılmamalıdır.Zararlı yazılım girişini önlemek açısından önemlidir.Gerekirse Biosu Şifrelemek açılışta şifre kullanmak güvenliği olumlu etkiler.
Daha öncede belirttiğimiz gibi NTFS lerde pek okadar önemli bir etki yaratmasada Disk Birleştirmeyi belirli zaman aralıklarında çalıştırmak performansı arttırır.Gerekli işlemci ve ramleri kontrol etmek,Donanımsal olarak hataları kontrol etmek temizlemek yetersizse harici donanım eklemek özellikle performansı buna bağlı olarak dolaylıda olsa güvenliği etkiler.
Sisteme girişleri kontrol etmek Logları okumak ona göre çalışmalar yapmak gerekir.Logların kontrolüne dikkat etmek sisteme sızanları fark etmede önemlidir.
Tecrübesiz Hosting firmaları genelde bazen Yedek almayı unuturlar bu yüzden bir çok konuda mağdur olmaktadırlar bu yüzden belirli periyotlarla yedek almak sistem çöktüğünde geri kazandırmak açısından önemlidir.
SAFE mode ON olmalıdır OFF olursa Hackerların Sisteme sızdıktan sonra diğer sitelere geçişini bir derecede olsa önlemektedirler.Bunun dışında buna benzer geçiş önlemlerini almak sunucu güvenliği açısından önemlidir.
Config dosyalasını SourceCop gibi şifreleme yazılımları ile criptolamak Hackerların Configi okumasını engellemesine şifreli olarak görmesine neden olur.
RAID seçenekleri yapılandırılmalıdır.Bazı servisler için Lokal hesabı domain hesabı yerine kullanmak mantıklıcadır.
Son surum win serverlar için ıss usher ve cmd yetkilerini kaldırmanız gerekmektedır.
ıssusher yetkileri sadece herkezin kendi klasörüne giricek şekilde atamayı yapıp server guvenliğini almış bulunuruz.
Windows Server Güvenligi Windows Sunucularda performansı sağlamak ve optimize etmek dışında Server Güvenliğinide sağlamak gerekmektedir.Günümüzde Server Güvenliğine önem verilmemesinden dolayı servera Dns Zehirlemesi,Buffer OwerFlow gibi yöntemlerle sızdıklarından dolayı Serverdaki tüm siteler Deface edilmektedir.Bunun için güvenliğe önem vermek gerekir bu makalemde buna yüzeysel olarak değineceğim.
Windows Serverınızı kurarken default dizin yerine farklı bir dizin ve isim belirlenip o bölüme kurulması çaylakların sisteme sızdıktan önce ve sonra bazı dosyaları bulmakta sıkıntı çekmesine sebep olabilir.Ayrıca Sunucumuzda saklanan dataların sunucu ile aynı hdd bölümünde olmaması dikkat edilmelidir.Farklı bir hdd bölümünde saklamak güvenlik açısından önemlidir.
Sunucu şifre güvenliğini sağlamak.Şifrenin karakter sayısı fazla 2. Ve 3. Karakter kullanımının fazla olması şifrenin brute force ile kırılmasını engeller.Guest ya da başka isimde kullanıcı hesapları varsa kaldırmak tek bir admin hesabından sunucu kontrol etmek gerekmektedir.Adminstarator hesabının ismini değiştirmekte brute force engellemede önemlidir.
Windows Serverlarda Dosya sistemi FAT, FAT32 ve NTFS dir. Bunlardan NTFS kullanmak performans açısından en verimli olanıdır.FAT ve FAT32 genellikle Sunucunun verimliliği çok düşükse kullanılması tercih edilmelidir fakat sık sık Disk birleştirme yapılması gerekeceğinden Server belli aralıklarla kapanabilir ve çökebilir.Bu yüzden NTFS olması her açıdan önemlidir.
Sistemi güncellemek.Güvenlik paketlerini yüklemek ,Service Pack gibi genel paketler çıkmışsa yüklemek sistemin stabil olması açısından önemlidir.Gereksiz windows bileşini kurmamaya özen göstermek gerekli güncelleştirmeleri yüklemek güvenlik açısından önemli etkinliklerdendir.
Windows Sunucular’a uygun Güvenlik Duvarı kurmak Ddos ,Botnet,Buffer OwerFlow gibi saldırıları engellemede yardımcı uygulamalardır.Windowsun kendi güvenlik duvarını kolay bir şekilde geçebilecekleri için bu yüzden bazı guvenlık firmalarının güvenlik duvarını kurmak gerekir.Ayrıca açık portlar varsa kapatmak gerekmektedir.Netbios gibi port açıkları varsa sisteme sızabilmektedirler.
IP Güvenliğini sağlamak,IP trafiğini korumak,Gelen giden paketler hakkında bilgi almak uzaktan bağlanma varsa engelleyici yöntemler kullanmak gerekir.
SSH portunu değiştirmek,r00t girişini engellemek ve protokol2 kullanılmalıdır.
İframe, Shell , Fso, Backdoor gibi zararlı yazılımları ve scriptleri engellemek için antivirus yazılımı kullanmak,ve kaynak kod engelleyıcı degerler gırmek server güvenliği açısından önemlidir.Güncel ve lisanslı bir antivirus yazılımı sistem güvenliği açısından oldukça önemlidir.
Sunucu açılışı CD-ROM,DVD-ROM gibi harici disklerden başlatılmamalıdır.Zararlı yazılım girişini önlemek açısından önemlidir.Gerekirse Biosu Şifrelemek açılışta şifre kullanmak güvenliği olumlu etkiler.
Daha öncede belirttiğimiz gibi NTFS lerde pek okadar önemli bir etki yaratmasada Disk Birleştirmeyi belirli zaman aralıklarında çalıştırmak performansı arttırır.Gerekli işlemci ve ramleri kontrol etmek,Donanımsal olarak hataları kontrol etmek temizlemek yetersizse harici donanım eklemek özellikle performansı buna bağlı olarak dolaylıda olsa güvenliği etkiler.
Sisteme girişleri kontrol etmek Logları okumak ona göre çalışmalar yapmak gerekir.Logların kontrolüne dikkat etmek sisteme sızanları fark etmede önemlidir.
Tecrübesiz Hosting firmaları genelde bazen Yedek almayı unuturlar bu yüzden bir çok konuda mağdur olmaktadırlar bu yüzden belirli periyotlarla yedek almak sistem çöktüğünde geri kazandırmak açısından önemlidir.
SAFE mode ON olmalıdır OFF olursa Hackerların Sisteme sızdıktan sonra diğer sitelere geçişini bir derecede olsa önlemektedirler.Bunun dışında buna benzer geçiş önlemlerini almak sunucu güvenliği açısından önemlidir.
Config dosyalasını SourceCop gibi şifreleme yazılımları ile criptolamak Hackerların Configi okumasını engellemesine şifreli olarak görmesine neden olur.
RAID seçenekleri yapılandırılmalıdır.Bazı servisler için Lokal hesabı domain hesabı yerine kullanmak mantıklıcadır.
Son surum win serverlar için ıss usher ve cmd yetkilerini kaldırmanız gerekmektedır.
ıssusher yetkileri sadece herkezin kendi klasörüne giricek şekilde atamayı yapıp server guvenliğini almış bulunuruz.
Linux Sunucu Güvenliği
Linux Sunucu Güvenliği
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 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[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.
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 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[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.
Kaydol:
Kayıtlar (Atom)