Linux Güvenliği - 2

Yazı dizimizin ilk kısmında Linux sistemlerinde fiziksel güvenlik ve temel güvenlik önlemleri hakkında bilgi vermiştik. Bu yazımızda ise ağ ve dosya güvenliği, şifreleme, çeşitli saldırı metodları... hakkında bilgiler bulabilirsiniz. Linux Güvenliği - 1 yazısı için buraya tıklayın.

2. Ağ ve Dosya Güvenliği

Eğer ağa bağlı bir makine ile çalışıyorsanız güvenlik sizin için en önemli faktörlerden biri olmalıdır. Ağa bağlı bilgisayarlardan biri tarafından ya da ağ dışında bir saldırgan tarafından bağlı olduğunuz ağ her zaman saldırı tehdidi altındadır. Ağınız, çeşitli tarama araçları ile yapılan saldırılar, ağınızdaki paketleri dışarıdan dinleme saldırıları ve hatta Denial of Service (DoS) saldırılarına maruz kalabilir.

2.1. Paket Dinleyicileri (Sniffers)

Ağınız siz farkında olmadan bir saldırgan tarafından dinlenebiliyor olabilir. Burada dinlemeden kasıt özellikle passwd, login ve su işlemler için verilerin dinlenip kaydedilmesidir. Bu sayede saldırganın sisteme girmesi için herhangi bir ekstra çaba göstermesine gerek kalmaz. Özellikle şifrelenmemiş paketler kullanılıyorsa bu saldırılar ciddi tehlikeler arz edebilir.

İpucu: Sniffer’lar ile başa çıkmanın bir çok yolu var fakat başlangıç olarak yerel ağdaki dinlemeyi kısmen de olsa engelleyebilecek basit bir önlemi yazacağım. Bunun için /etc/rc.d/ içinde bulunan rc.local içine aşağıdaki satırı ekleyin.

echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

2.1.1. Åžifreleme

Paket dinleyicilerini engellemek için yapılabilecek en etkili çözüm şifrelemedir(encryption). Şifrelemede kullanılan değişik metotlar vardır. Bunlardan genellikle Linux dağıtımlarında varsayılan olarak kullanılan metot DES (Data Encryption Standard)’tir. Temel mantığı girilen veriler şifrelendikten sonra genellikle /etc/passwd dosyasında saklanır. Veri gönderimi sırasında veriler tekrar şifrelenerek saklanan şifrelenmiş halleriyle karşılaştırılır ve buna göre izin verilir. Bu sistem daha gelişmiş şifreleme yöntemlerinde de sıklıkla kullanılmaktadır.

2.1.2. Gölgeli Şifreleme (Shadow Password)

Varsayılan şifreleme yöntemi zayıftır bu nedenle Shadow Password Suite oluşturulmuştur. Bu yöntem ile önceden şifrelenmiş veriler tekrar şifrelenelerek /etc/shadow dosyasına atılır ve /etc/passwd dosyası temizlenir. Bu şekilde ilk yönteme göre daha sağlam bir güvenlik oluşturulmuş olur.

2.1.3. Dosya Åžifreleme

Sistemde sakladığınız özel dosyalarınız için daha güçlendirilmiş şifreleme yöntemleri isteyebilirsiniz. Bu şekilde olası bir saldırı sonucunda en azından önemli verilerinizi muhafaza etmiş olacaksınız. Bunun için aşağıda genellikle açık kaynak kodlu ve ücretsiz şifreleme programlarından birkaçını bulabilirsiniz.

Bcrypt (http://bcrypt.sourceforge.net/)
GnuPG (http://www.gnupg.org/)
Ncrypt (http://ncrypt.sourceforge.net/)

Bu araçların kullanımı hakkında bilgiler web sayfalarında bulunmakta. SHA-1, Md5, RSA gibi yüksek şifreleme metotları kullanan bu programları özellikle dosya şifrelemede kullanmanızı tavsiye ederim.

2.2. Kullanılmayan Servisler

Linux sistemlerinde varsayılan olarak aktif gelen bir çok servis vardır. Bunların çoğu zararsız gibi dursalar da her zaman için sistemde tehdit oluşturabilirler. Bu servislerin bazıları ağ içi bazıları da internete açılmada kullanılıyor olabilir. Varsayılan servislerden bazıları şunlardır;

  • Web sunucusu httpd – port 80: Hyper Text Transfer Protocol için kullanılan bir servistir. EÄŸer Linux makinenizden internete bir web sayfası yayınlamak istiyorsanız bu servisi kullanabilirsiniz.
  • Telnet – port 25: Telnet dışarıdan kullanıcıların sisteme ulaÅŸmasını saÄŸlayan eski bir servistir. Kullanılmak istense bile buna bir çok alternatif servisin günümüzde çıkması ile açık olmasının bir manası yoktur.
  • Güvenli uzaktan eriÅŸim ssh – port 22: Tıpkı Telnet gibi Ssh kullanarakta uzaktan sisteme eriÅŸim saÄŸlayabilirsiniz. Aralarındaki fark ise Ssh’ın Telnet’e göre çok daha güvenli bir servis olmasıdır.
  • Dosya transfer protokolü ftp – port 21: Ftp ile sisteminizden bir sunucuya ya da sunucudan sisteminize dosya transferi yapabilirsiniz. Ftp hala yaygın olarak kullanılsa da alternatif olarak vsftp (very secure ftp) protokolünün kullanılmasında fayda vardır.
  • Posta transfer protokolü smtp – port 25: Dosya alış veriÅŸinde kullanılan protokol ve servistir. Bir e-posta istemcisi yardımıyla e-posta alış veriÅŸini 25. port üzerinden yapabilirsiniz.

Bunlar ve bunlara benzer servis ve portları tamamen kontrolümüz altına almalıyız. Gerekmediği halde açık olan her bir port sistemde potansiyel güvenlik tehdidi yaratacaktır. Bunun için örnek olarak yukarıdaki bazı portları kapatabiliriz.

/etc/inetd.conf içerisinde yukarıdaki servislerle ilgili verileri bulabiliriz.

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

Telnet servisi içindir. Telnet servisini durdurmak için bunu kaldırmamız yeterli olacaktır. Sonuçta şu şekilde görünecektir,

#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

Benzer şekilde değişik servisleri ve portlarını /etc/services içerisinden bulabilirsiniz. Tekrar eski haline getirmek için ise yaptığınız değişikliklerden sonra inetd’i baştan çalıştırmayı unutmayın. Bunu killall -HUP inetd komutu ile yapabilirsiniz.


Görüntü 2a – inetd.conf

2.3. Servis Dışı Bırakma (DoS)

Bir saldırgan her zaman sistemi kırmaya çalışmaz. Bazı durumlarda kaynakları meşgul ederek isteklerin cevapsız kalmasına dolaysı ile sistemin servis dışı kalmasına yol açabilir. Bu saldırılar genellikle Denial of Service (DoS) saldırıları olarak bilinir. Bu saldırılar güvenlik önlemleri alınmış bir sistemde genelde etkisiz kalsa da özellikle dağıtılmış (distributed) DoS saldırıları tehlikelidir. Bu tip saldırılar için özellikle firewall (ateş duvarı) ayarlarınızın düzgün yapılandırıldığına dikkat etmelisiniz. Bunun dışında etkili bir arayüz olan PAM (Pluggable Authentication Modules) ile çeşitli güvenlik önlemleri alabiliriz.

PAM genellikle login ve benzeri programlarda varsayılan olarak kullanılan bir kimlik belirleme arayüzüdür. Bu sayede kullanıcılara sınırlandırma getirebilirsiniz. Genellikle iki kısımdan oluşur bunlardan ilki modüllerin bulunduğu /etc/pam.d/ ve ayar dosyalarının bulunduğu /etc/security’dir.


Görüntü 2b – pam.d

Bizde /etc/security/limits.conf dosyası üzerinde oynama yaparak her bir kullanıcı için kaynak sınırlandırılması getirebiliriz ve böylece DoS saldırılarına karşı orta seviye bir güvenlik önlemi almış oluruz. Örnek olarak bir kullanıcının kaç işlem yapabileceğini sınırlandırmak istiyorsak,

# Limit user processes
*   soft    nproc   100
*   hard    nproc   150

ya da bir kullanıcının sahip olabileceği maksimum dosya boyutunu sınırlandırmak istiyorsak,

# limits size of any one of users' files
*     hard    40000

Şeklinde düzenleme yapabiliriz. Böylece bir kullanıcı 40 megabyte’tan yüksek bir dosyaya sahip olamaz böylece olası yüksek boyutlu paket saldırıları sınırlandırılmış oldu.


Görüntü 2c – limits.conf

Sonuç olarak eğer bilgisayar dünyasındaysanız güvenlik tehditleri her zaman için varolacaktır. Temel güvenlik önlemlerinin yanı sıra mutlaka güncel güvenlik açıklarını takip edip sisteminizde gerekli güncelleştirmeleri yapmalısınız. Bir ev kullanıcısı olarak güvenlik sizin için her zaman ön planda olmayabilir fakat bir iş ağı ya da dışarıdan kullanıcıların sıklıkla kullandığı bir sistemdeyseniz mutlaka güvenlik faktörlerini titizce takip edip önlemlerinizi almalısınız.

* Bu yazı BYTE dergisi ağustos 2008 sayısında yayınlanmıştır.

Telif Hakkı

Bu yazının telif hakkı, içeriğinde aksi belirtilmemişse yazarına aittir ©. Yazının izin alınmadan ya da kaynak gösterilmeden kopyalanması ve kullanılması 5846 sayılı Fikir ve Sanat Eserleri Yasasına göre suçtur (forum ve bloglar dahil olmak üzere). Telif haklarına aykırı bir durumla karşılaşırsanız lütfen site yetkililerine bildiriniz.

Kimler çevrimiçi

Şu an 0 kullanıcı ve 2 ziyaretçi çevrimiçi.

Kimler yeni

  • Brayn
  • muratmk
  • MezaR
  • evri
  • demokan