Yeni mesajlar

Linux Sunucu Güvenliği

Kimler bu konuyu okudu ? (Total:0)

Hrqtr

Yeni Üye
Üye
Linux Sunucu Güvenliği

ima_konu.png

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, 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/D-o-c-u-m-e-n-t-a-t-i-o-n/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.
 
Üst