yazar Frederic Raynal
Yazar hakkında:
Frederic Raynal INRIA 'da
(Institut National de Recherche en Informatique et Automatique).
"computed image tattooing " konusunda bir tez hazırlıyor.Ayrıca,
Bastille-Linux'un gelişiminde görev aldı.
İçerik:
|
Bastille-Linux
Çeviri : Hasan Serhan Akın
Özet:
Haziran başlarında piyasaya çıkan, Bastille-Linux'un 1.1 sürümü yeni bir linux dağıtımı değil ancak sisteminizi olası zayıflıklara karşı daha iyi koruyabilecek bir grup betik.
Yazarların yaklaşımı ise oldukça eğitici ve böylelikle bizler bu betiklerileri kurarken pek çok şey öğrenebileceğiz.
Giriş
Güvenlikle söz konusu olunca Linux diğer işletim sistemlerinden çok daha güvenli.Bununla birlikte konu güvenlik olunca her dagıtım bir diğerinden farklı olmakta.Bastille-Linux sisteminizi korumanız için birebir.Öncelikli olarak RedHat için üretildi ancak son sürümleri diğer linux dağıtımlarıyla birlikte de çalışabilmekte.
Bu proje Jon Lasser(ana koordinatör) ve Jay Beale(temel geliştirici) tarafından yönetilmekte. Pek çok diğer geliştirici, yazılım tasarımcısı ve beta sürümlerini test edenler dahi bu işte pay sahibiler.
Her şeyden önce,şunu açıklığa kavuşturalım:Bastille-Linux yeni bir linux dağıtımı değil! Sadece Linux güvenliğini geliştirmek niyetiyle perl ile yazılmış bir grup betik.
Burada bilgisayar güvenliği şu anlamama gelmektedir:Makininize istenmeyen kişilerin girişi nasıl engellenebilir?.Basitille-Linux, Linux dağıtımınızın temel kurulumunu değiştirerek cevabın bir kısmını oluşturmakta.
Her sistem yöneticisinin basit bir görevi, kullanıcı ihtiyaçlarını bilmek ki bu sadece onların istekleri degildir aynı zamanda kullanılmayan programların ağda çalışmasını önlemektir ki böylelikle ağ güvenlik açıklarının oluşumuna mani olunmuş olunur.Bana yol gösterici insanlardan biri demişti ki:En az yaptığın daha iyidir.:)Tabii ki o algoritma karışıklığından bahsediyordu ancak bu ağ yönetimi için de söylenebilir:Çalışan ne kadar çok şey varsa bu o kadar saldırı alanı sağlar.Savunmasızlığı azaltmak için gerçekten ihtiyacınız olan şeyleri kurmalısınız.
Bastille-Linux saldırı olasılıklarını azaltmaya çalışır.Buna ulaşabilmek için yazılım tasarımcıları çok eğitici bir yaklaşıma sahipler:Onlar yapacaklarını adım adım anlatmaktalar.
Sunum
Bu yazının yazlırken Bastille-Linux haziran ayının ilk yarısında çıkan 1.1.0 sürümündeydi.
Kullanışşızlığı bir yana , Bastille-Linux son derece eğitici.Kodlar detaylı bir biçimde açıklamalı olarak yazılmış.Burada,geliştiriciler kullanıcıyı eğitmeyi amaçlıyorlar.
Mevcut cevapların sonuçlarını ve soruların içeriğini anlatıyorlar. Bu da Bastille-Linux'u kullanımı kolay yapıyor.
Daha ileri kullanıcılar içinperl ile yazılmış kaynak kod son derece net:Her yorum hangi şeyin ne yaptığını açıklamakta
Burada 1.1.0 sürümünün bir kaç özelliği bulunmakta:
- Betikler şu an zaten kullanılmış sistemlerde çalışabilmekteler.
- undo fonksiyonu :
her Bastille-Linux değişiklik dosyası tekrar kurulum için yedeklenir
- İlk olarak, Bastille-Linux RedHat ve Mandrake için çıkarıldı:Artık bu geçerli değil. Şu an betiği çalıştırdığınız dağıtıma göre doğru dosya yolunu sağlayan bir modül var.
Bastille-Linux farklı modüllere sahip. Bunlardan özel amaçları olan ( sendmail,
FTP, ... gibi yazılımlar veya boot yada karışık daemonlar ) tanesini söyleyelim.
Bu genel modüller şunlar için kullanılır:
- Firewall yüklenimi
- Sistem yazılımı yenilenmesi
- SUID-rootda Audit programları
- Yararsız servisleri kısıtlamak veya aktifliğini kaldırmak
Diğer moduller daha özel görünüşlerle ilgilenir. Bazıları kötü configure edilmiş yazılımların(örneğin sendmail veyaFTP ) oluşturduğu güvenlik açıklarıyla ilgili, diğer bazıları ise bir kaç servisin konfigurasyonunu daha az keyfi bir yolla değiştirirler(PAM, syslog, ...)
Bazı güvenlik fonksiyonları farklı koruma seviyelerini sunar(bu daha öce söylediğimim fazla ve karışık
programların çalıştırılmasıyla ilgili söylediklerime ters düşüyor ancak birgün başvurmak zorunda kalabilirsiniz)Her servis ve olası güvenlik açığını korumak zorunda değilsiniz.Böylece eğer biri herhangi bir şekilde görevini yapamazsa bir diğeri onun yerine sisteminizi korumaya devam eder.
Kurulum
Bastille-Linux'un önceki sürümü sadece yeni sistemlerde çalışabildi.Bu son sürüm için geçerli değil. Eğer halihazırda kullanılan bir sisteminiz varsa Bastille 'i kullanmak faydasızdır. yeni bir sisteme (yeni kurulmuş) Bastille-Linux'u kurmak için bu tavsiye edilir.Bu yazılımdan ötürü değil güvenlik nedeniyle yapılan bir tavsiyedir.Uyarıldınız,artık önemli kısma; kuruluma geçelim!
Bastille-Linux zipli arşiv dosyası olarak .tgz at bastille-linux.sourceforge.net adresinden temin edilebilir.
Bu arşiv sadece 134 Ko kadar. Download edildikten sonra, bu arşiv dosyayısını açın (tar xzf Bastille-1.1.0.tgz).
Dört betik Bastille-Linux'u yönetir:
- InteractiveBastille.pl :
Bu betik kullanıcıya sistemde ne yapılacağına dair sorular sorar.Sonra verilen cevaplara göre bir
config dosyası oluşturur.
- AutomatedBastille.pl : Bir konfigirasyon betiği yardımıyla firewall kullanımı seçimini önererek varsayılan konfigirasyonu yükler.Bu script daha fazla sürdürülmez.
- BackEnd.pl : Bu ise sistem değişiklikleri ile ilgilidir.Parametrelerini ilk verdiğiniz cevaplardan alır.
- Undo.pl : BackEnd.pl'i çalıştırdığınızda birkaç dosya sistemi(/etc/syslog.conf,/etc/inetd.conf, /etc/hosts.*, ...) değiştirilir.Tehlike ihtimaline karşı restore edilebilmeye imkan sağlamak için /root/Bastille/undo dizinine backup dosyalarını yedekler.
Bastille-Linux'u yüklemek için root olmanız gerekmektedir çünkü betikler konfigürasyon dosyalarını değiştirecektir.Sonra, yükleme amacıyla, ilk olarak InteractiveBastille.pl'yi çalıştırın.
Ardından sorulara cevap verin(biraz daha detaylı).Son olarak BackEnd.pl yi çalıştırın ve bitti! Yapılmış değişiklikler /root/Bastille/undo dizininin altında bulunabilir.
Başlamadan önce birkaç not.
- Betiği /root/Bastille dizinin altından çalıştıracağınızı zannediyorsunuz ... İleriki bir versiyonda bu değişebilir ve bu betiği herhangi bir yerden çalıştırabiliyor olabilirsiniz
(Belki bu, yazıyı okurken çoktan yapılmış olabilir )
- İki modül hesap oluşturulmasına olanak sağlar ... tabii shadow passwords'u sisteminize kurduktan sonra. Bu varsayılan kurulum, fakat
/etc/passwd'un şifre tutmadığına , /etc/shadow dosyasına erişebilmek için root olamanız gerektiğini ve son dosyanıngerçekten şifreleri tutması gerektiğini kontrol edin !
- Bastille-Linux halen modüller arasındaki bağlantıları gerçekleştirememekte,kernel konfigürasyonunda olduğu gibi (gelecek bir sürümde bu mevcut olacak).Bir modüldeki cevaba ve sonuçlarına dikkat edin.Böylece, IPChains modülünün 2049 nolu portu kapamasını ve çeşitli daemon modülünden aktif daemonlar listesinde NFS'i tutmasını sağlayabilirsiniz (NFS
bu portu kullanır).
Adım adım
Farklı adımları anlamak için Bastille-Linux tarafından sorulan sorulara bakalım.[] arasındaki harfler varsayılan cevabı göstermektedir.
(N -> No, Y -> Yes).
IPChains
Bu modül bir firewall'u konfigüre etmek için kullanılır.Sistem koruması için gerekli olmamasına rağmen ,bu makineden ve makineye ağ trafiğini kontrol imkanı sağlar.Daemonları yeniden konfigüre etseniz dahi ,bu firewall trafiğini kontrol açısından yetersizdir.(Farklı güvenlik seviyelerinin kullanımının faydasız olmadığını hatırlayın)
Bu betik iyi bir yöntemle çalışır. Hesabı iki ağ arayüzüne alır:biri dışarıyla haberleşme diğeri yerel ağla haberleşme.Amaç,makinedeki mevcut servisleri saptamak ve diğerlerini durdurmaktır.Varsayılanı dışarıdan gelen herşeyi reddetmektir.
Sonra,betik bazı servislerin mevcut olmasını sağlayacak kuralları tanımlar.
Betik TCP,UUDP ve ICMP protokollerini yönetir. Bu betik, izlemek için yada her protokolden sakınmak amacıyla servislerin listelerini sağlar
Yama kurulumu
Güncellemeler sistem güvenliği açısından önemlidir.Mesela, geçtiğimiz aylarda
bind
ve piranha, büyük güvenlik problemleri yaşamıştı. Bu problemler süratle giderildi.Çünkü kaynak kodları açıktı ve birileri hemen yamalar yazmıştı.
Maalesef,bu betik çok iyi çalışmıyor,oldukça karışık çünkü önce kurulmuş paketleri aralarından da güncellenmiş olanlarını saptamanız gerekiyor. Sonra,yamayı indirmeli ve kurmadan önce onu değiştirilip değiştirilmediğini kontrol etmelisiniz.(transer esnasında yada bir hacker tarafından değiştirilmiş olabilir)
Bu sadece kullandığınız dağıtıma bağlı
Şu dakikada, Jay Beale bu adımı elle gerçekleştirmenizi fakat ihmal etmemenizi önermektedir. Bu modülün daha işlevsel sürümü geliştirilme aşamasında ve çok yakında çıkacak
Dosya İzinleri
Bu modül SANS ekibinden bir belgeye dayandırılmıştır.
Amaç, sadece root kullanıcısının (ya da
root grup üyesinin) erişebildiği programları,SUID bit olarak tutulmasına ihtiyacı olanları...vb. saptamaktır.
- Would you like to set more restrictive permissions on the
administration utilities [N] ?
Bazı programlar herkesin erişebileceği durumda olmamalıdır.Bastille-Linux size programların etkileyici bir listesini sağlar ki bunların hakları 0750 yapılabilir.
- Sonraki SUID bit ile ilgilidir. Bu bit bir programın root haklarına sahip bir kullanıcı tarafından çalıştırılmasına izin verir. ('s' 4, 7 and 10 durumunda)
>>ls -l /bin/ping
-rwsr-xr-x 1 root root 17968 Mar 6
15:57 /bin/ping
Bu bit, kullanımı kolaylaştırırken güvenliği azaltır. Eğer biri bir açığı tesbit ederse, o kişi root olabilecektir.
Bastille-Linux
bu bitin mount/umount, ping, dump/restore, cardctl, ... gibi programlardan kaldırmalarını önerir.Bu liste diğerlerinin içinden ping ve traceroute 'u içerirki bu ikisi sunucunun durumunu kontrol eder.Bunların SUID bitlerini kaldırmak pek akıllıca değildir ancak makinenin standart kullanımını engellemez.
Bu SUID-root programlarının listesi içinde r-komut şeklindeki komutları dahi bulabilirsiniz.Bu
rcp, rlogin veya rsh gibi programlarla ilgilidir. Bunlar ağa gönderilen verileri şifrelemezler. Dahası bunlar 'authentication'(doğrulama) sayesinde sadece IP adreslerini kullanırlar. Bu yetersizdir (aldatılma olasılığı vardır).
Hesap güvenliği
Hacking kullanıcı hesabı (sistem hesabı)sözü ile başlar. Bir kaç kolay basamak bu işi daha zorlaştırıp davetsiz girişleri saptamaya olanak sağlar.
- Would you like to set up a second UID 0 account [N] ?
Bu soruya verilecek yes cevabı sisteminizde başka bir root hesabı oluşturur.Bu durumda yeni oluşturduğunuz
root hesabının kullanmak yerine ,orjinal olanını kulanmamalısınız .Bu root şifresinin kırılma olasılığını iki kat arttırır... ancak size root bilgisini kimin kullandığını /var/log dosyalarından görme olanığı tanır .
- May we take strong steps to disallow the dangerous r-protocols? [Y]
Yukarıda bahsedildiği gibir-komutları bir makine üzerinde yeni bir hesap almakta güçlü bir vasıtadır: Şifreler açık yazı dosyaları halinde transfer edilirler!
Bastille-Linux r-komutlarının PAM (Pluggable Authentication Modules) ile çalışmasını yasaklar,izinlerin çalıştırılmasını kaldırır,
tcp_wrapper (rlogind, rexecd and rshd)'da bulunan sunucuları durdurur.Bunlar yorum olarak konulmaları gereken /etc/inetd.conf
dosyasından konfigüre edilir. - Would you like to enforce password aging? [Y]
Şifreler her 180 günden sonra değiştirilecektir.Şifresi değişmemiş hesapların etkinlikleri durdurulacaktır.
- Would you like to create a non-root user account? [N]
root hesabınızı mümkün olduğunca az kullanın.Gerçekte rm -rf / komutunu
root olarak çalıştırmak tam bir felakettir... fakat sıradan bir kullanıcı için bu biraz daha küçük çapta bir felakettir. Sadece
yönetimle ilgili işler root olarak yapılmalıdır.
- Would you like to restrict the use of cron to administrative
accounts? [Y]
cron
işlerin otomatik olarak yapılmasını sağlar.Örneğin, bir yönetici düzenli esaslarda dosyaların bütünlüğünü kontrol için veya /var/log'da dosyaları aramak için bunu kullanabilir.Diğer taraftan,her kullanıcıya çok fazla bir ayrıcalık izni vermeye de yarayabilir.Bastille-Linux
/etc/cron.allow isimli, kullanıcıların bu servisi kullanabileceği bilgisini içeren bir dosya oluşturur.
Boot Güvenliği
Bu modüldeki seçenekler makinenin fiziksel güvenliği ile ilgilidir . Bu önceki versiyonun güvenlik açığını doğrulamak içindir.Console'a fiziksel bir ulaşımı olan herkes ayrıcalıklı bir giriş elde edebilir(örneğin, root). LILO
'yu single modda, (LILO : linux
single) çalıştırmak root;-P 'e ait yeni bir kabuk parçası almaya olanak tanır.
Açıkçası bu yeterli değildir. Bir bilgisayarı fiziksel olarak korumak için, BIOS şifresi konulmalı,makine sadece hard diskden boot edilmeli , kasa başka biri hard diskini takamayacak şekilde kitlenmeli... Bu ,tabii ki,paranoyakça bir davranış ve güzel bir nedeniniz olmadığı sürece bunları yapmanız gereksiz.
Yazılım açısından,bazı kısıtlamalar aşağıda bahsedilen ile mukayese
edildiğinde iyi bir uzlaşı sağlar.
- Would you like to password-protect the LILO prompt? [N]
Yes cevabı, rebootlamadan sonra sisteme istenmeyen kişilerin girişini engeller.
- Would you like to reduce the LILO delay time to zero? [N]
Bu yol, boot esnasında birilerinin parametre sağlamasını engellemeye yarar.Eğer sisteminizde farklı işletim sistemleri çalışıyorsa,bunu yapmamalısınız.Çünkü sadece varsayılan işletim sistemi çalışacaktır.
- Do you ever boot Linux from the hard drive? [Y]
Eğer önceki sorulardan birine evet cevabı verdiyseniz ve diskinizde LILO kurulu ise buna da LILO değişikliklerinin diske yazılması için yes cevabını verin.
- Would you like to write the LILO changes to a boot floppy? [N]
Eğer bir boot flopy'e sahipseniz,acil durum veya linuxu boot etme yolunun bu olması durumu için değiştirilmeyi onaylayın.
- Would you like to disable CTRL-ALT-DELETE rebooting? [N]
Bu birinin makineyi rebootlamasını engellemek içindir.Fakat elektrik bağlantısı korunmadığı sürece faydasızdır:-)
- Would you like to password protect single-user mode? [Y]
Daha önceden de gördüğümüz üzere hiçkimsenin makinede
root olmamasını sağlamak güzel bir fikir gibi görünüyor.
Güvenli Inetd
Bu modülün amacı fazla servisleri kısıtlanmak ve etkinliğini kaldırmaktır. Hackerlar herhangi bir ayrıcalıklı servisdeki güvenlik açığını kolaylıkla bulabilirler.Bu nedenle,servis ve ayrıcalıklardan her ikisini de kısıtlamalısınız.
Örneğin, RedHat6.0 DNS'deki bir hata uzaktan root olabilmeye olanaktanıyordu.Bahsedilen servisin etkinliğini kaldırmak yada ayrıcalıkları azaltmak bu sıkıntıdan korunmayı sağlıyordu.
Bazı protokoller,daha önce bahsedilen r-komutları hatta ftp veya telnet gibi protokoller oldukça savunmasız. Başkaları makine hesaplarındaki bilgileri elde edebilme olanağına (Mesela;finger veya identd)sahipler.
Bu servislerden bir çoğu, verilen bir servisin dosyalarınin(/etc/hosts.{allow, deny} aracılığı ile) girişini kontrole olanak tanıyan
tcp_wrapper tarafından yönetilir. Sonra, bir kez paketleyici istemcinin servise girişine onay verdiğinde ,iletisimdeki sunucuya istemde bulunur.
Bu kısım hala biraz katı ancak gelecek sürümlerde değiştirilmeli.
- Would you like to modify inetd.conf and /etc/hosts.allow to optimize
use of Wrappers? [Y]
Bastille-Linux bu iki dosyayı kurar.
İhtiyaçlarınız doğrultusunda daha eksiksiz parametrelerle geçmek açısından bu dosyalara bir göz atmak ilgi çekici olabilir.
- Would you like to set sshd to accept connections only from a small list
of IP addresses? [N]
sshd güvenli bir yöntemle bağlantıyı sağlayan bir daemondır (anahtar değişiklikleri,şifre ve veri kodlamaları ...).Bu telnet, rlogin, rsh, rcp ve ftp ile tam bir yer değişikliği durumunda. ssh 'ın BSD lisansı altındakine eşdeğerini söyleyelim: OpenSSH.
- Would you like to make "Authorized Use" banners? [Y]
Makinenize bağlanmaya çalılan herkes bu sunucuya bağlanmasına izin verilip verilmediğine dair bir uyarı mesajı alacaktır. Bu mesaj /etc/motd dosyasında bulunabilir.
Devam etmeden önce,hatırlamanız gereken ağ sunucu-istemci modeli üzerine kuruludur.
Böylece her servisin sunucu tarafında mı yoksa istemci tarafında mı olunup olunmadığı bilinmelidir.Örneğin web sunucunuzu kapatmak web sayfalarını browserınızda görüntülemenize engel değildir.Çünkü browserınız istemcidir.
Azaltılmış Kullanıcı Aygıtları
Bu kısa modül bir serverda esasdır. Genellikle bir hacker bir makineye normal bir kullanıcı hesabını kullanarak girer.Sonra makinedeki birkaç programı yeniden derleyerek bu zayıflıkdan faydalanır. Bu modül root.
hariç herkes için C derleyicisinin etkinliğini ortadan kaldırır.Daha sonra,kimse hiçbirşey derlemek zorunda değilse sadece serverın bulunduğu makineden derleyici kaldırılır.
MiscPAM konfigürasyonu
Bu modülün amacı servislere yapılacak sakdırı risklerini sınırlandırmaktır.Bu saldırılar sistemin fazla yüklenerek dondurulmasını sağlar.(örneğin,bir bölümü
core dosyaları ile doldurmak, ping komutunun çalışamaması, vb ...)
PAM 'ın açılımı "Pluggable Authentification Module" şeklindedir.
Bu, sistem yöneticisinin her uygulama için kullanıcı "authentication"larının çeşitlerini,onların sahip olduğu hakları,kullanabileceği kaynakları...vb seçmesini sağlayan bir kütüphanedir.
- Would you like to put limits on system resource usage? [Y]
/etc/security/limits.conf dosyası sistem limitlerini içerir. Bastille-Linux onları şu yolla değiştirir:
- core dosyaları 0 ile sınırlandırılır;
- Her kullanıcı 150 process çalıştırabilmekle sınırlandırılır ;
- Azami dosya ölçüsü 40Mb ile sınırlandırılır.
Her değer daha sonra konfigirasyon dosyasından doğrudan değişitirilir.
- Should we restrict console access to a small group of user accounts?
[N]
RedHat6.0/6.1 'da konsoldan bağlanan kullanıcılar ,CD-ROM'u mount edebilmek gibi ayrıcalıklara sahipler.
Kullanıcıların bir grubuna konsoldan girişi kısıtlamak mümkündür.Bu soru bu kullanıcılar için böyle bir yöntem uygulayıp uygulamamayı tanımlamaya olanak tanır.
Logging
syslog bir makinenin işlenip işlenmediğini saptamaya yarayan en önemli servislerden biridir.Bu daemon bazı sistem olaylarını kaydeder.Kaydedilmiş bilgilerin seviyesini değiştirmeyi seçebilirsiniz.
Eğer az sayıda çalışan servisiniz varsa her problem /var/log dosyalarından süratle gösterileceği dikkate değerdir.Diğer taraftan, sisteminizde gereksiz pek çok servis çalışır durumdaysa /var/log dosyaları çok büyük olucak ve yönetilmesi daha zorlaşacaktır
(Bu durumda bu iş için hazırlanmış betikler kullanılabilir).
Bu modül /etc/syslog.conf dosyasına yemi kontroller ekler.
- Would you like to add additional logging? [Y]
Bastille-Linux çekirdekden gelen mesajlar ve önemli sorunların
(firewall mesajları bu kategorinin bir kısmını oluşturur)kaydı için bir
/var/log/kernel dosyası oluşturur.
Bazı bilgiler 2 terminale gönderilir
(TTY 7 and 8). /var/log/loginlog isimli yeni bir dosya sisteme bağlanan kullanıcıları kaydeder.
- Do you have a remote logging host? [N]
Eğer mesajlarınızı yollayacağınız başka bir makine yoksa cevabınız hayır olmalı.
- Would you like to set up process accounting? [N]
Linux altında, komutkarın ne zaman ve kim tarafından kullanıldığını kayıtlamak mümkündür.Eğer makine aktivitesini konrol etmek faydalıysa bu kayıt çabucak çok büyük bir dosya halini alır.Tabii ki bu çok sistem kaynağı tüketir ve ihtiyacınız olmadıkça bu özelliği etkin halde tutmamak daha iyi olur.
Çokyönlü Daemonlar
.Daima küçültmeyle ilgili olarak bu modül boot zamanında gerçekten ihtiyacınız olan sunucuları etkin kılar. Varsayılan olarak hemen her servis faydasızdır ve bu nedenle ekin halde tutulu değildir.Bir servisi chkconfig komutu ile tekrar etkin kılabilirsiniz.
Servisler |
Tanımlama |
apmd |
Laptop batterilerini kontrol için kullanılır. |
NFS and samba |
Paylaşılımlı dosya sistemlerini yönetmek için kullanılır.Büyük güvenlik açıkları olan heterojen sistemlerde oldukça faydalıdır |
atd |
atd ile yapılan bilen her şey cron. ile de yapılabilir. |
PCMCIA servisleri |
Eğer laptoplarda yaygın ancak workstaionlarda nadir PCMCIA donanımına sahipseniz kullanılır.
|
dhcpd |
Geçici IP adresi sağlayan sunucu. Bu servis ISS(Internet servis sağlayıcısı) veya yerel ağda kullanılmak üzere sunulur. |
gpm |
Konsoldayken fareyi yönetmekte kullanılır.Sık sık konsolda çalışmıyorsanız bu servis faydasızdır. |
Haber sunucusu |
Çok az insan bir haber sunucusuna ihityaç duyar.Genellikle bu ISS 'lerin işidir. |
routed |
Haber sunucuları içindir.ISS'lerin görevidir:DNS nizi ilgilendirir.
DNS. |
NIS |
Yerel ağ için çok faydalıdır ancak büyük güvenlik açıklarının başlangıç noktasıdır
!!! |
snmpd |
Ağ yönetimiyle ilgili sunucudur(istatistikler,yönetim,kullanıcılar)
sendmail |
İleti almak veya yollamak için bunu daemon olarak çalıştırmanın gereği yoktur.Üstelik, eğer ISS'den POP veya IMAP yoluyla ileti alıyorsanız,sendmail
yararsızdır ve bu program büyük güvenlik açıkları içerir
... |
Sendmail
Az önce bahsettiğimiz üzere, sendmail mail yönetiminde kullanılan bir servistir .Tarihi, bir mail sunucusunun yönetmek zorunda olduğu görevlerden ve gerekli ayrıcalıkların (isim kararı,syslog bilgisi,...vb) yapılmasından kaynaklanan güvenlik açıklarıyla doludur.
Zayıflığı bir yana, sendmail
özgül bir kullanıcı hakkında belirlenen bir sunucudan bilgi alınmasını mümkün kılar. Örneğin, sendmail EXPN ve VRFY komutları birinin özgün bir kullanıcı hesabı olup olmadığını bilmeyi sağlar.Daha önce söylediğimiz gibi sendmail'in
ileti almak ve yollamak için daemon olarak çalıştırılması gereksizdir.Ev kullanıcıları için sendmail (netscape oldukça yarasızdır,çünkü herhangi bir mail istemcisi rmail, pine, mutt, vb...) kullanılır.İleti kabul edebilmek için sendmail 'i düzenli bir temel üzerinde mailboxınızı kontrol amacıyla etkin hale
geçirebilirsiniz
.
- Do you want to leave sendmail running in daemon mode? [Y]
Henüz gördük ki pek çok durumda bu faydasız ve tehlikelidir, o halde onu aktif halde kullanmamak daha iyidir.
.
- Would you like to run sendmail via cron to process the queue? [N]
Bunu kullanmakla, sendmail her 15 dakikada bir mail sırasını kontrol eder. Bu parametreleri /etc/sysconfig/sendmail dosyasından değiştirebilirsiniz.
- Would you like to disable the VRFY and EXPN sendmail commands? [Y]
Bu komutlar hackerlar ve spamming için faydalı bilgi sağlar.
Sisteme Uzaktan Erişim
Uzak bir makineye bağlanabilmek çoğu zaman yararlıdır.Gördük ki r-komutları
bunu güvenli olmayan bir yolla yapıyor. Bastille-Linux ssh'ı yüklemenizi önerir.Bu, bağlantı içinden transfer edilen verileri şifreliyen bir yazılımdır.
session key uzunluğu
128 biti aşmayan yazılımalr kulllanabilirsiniz .Önce session key'in . ne olduğunu anlatalım.Bu veriyi şifrelemekte kullanılan bir anahtardır. Bu session key, istemci ve sunucu tarafından adım adım kurulur:anahtar değişim protokolünden ( pek çok durumunda Diffie-Hellman) gelir,kurulumda her üyenin anahtarının bir kısmından bir anahtar içerir.Daha sonra bu session key simetrik bir algoritmaya göre şifrelemekte kullanılır.Böylece, Unix parolalarını şifrelemekte kullanılan DES 56bitlik bir anahtarla simetrik bir algoritmadır.
128 bitlik anahtar işlerin güvenliği ve rahatlığının garantisi için oldukça yeterlidir:EVET!Bugün dahi DES'in çok da güvenli olmadığı söylenmektedir.En iyi saldırılar pek çok insanın sahip olduğu CPU güç
menzilinin içinde olmaz. Diğer taraftan 2k uzunluğundaki bir anahtarın bulunmasının k uzunluğundaki bir anahtardan daha zor olduğuna inanmak bir hatadır.Olayın bir parçası olarak eğer zorluk bir eksponensiyal ise bu anahtar boyutundan daha hızlı büyür. k uzunluğunun bir anahtarı için
2^k ihtimal anahtar mevcuttur (ve aynı şekilde 2k uzunluk için 2^2k).
Sonra anahtar uzunluğunu 2 ile çarpıp, olası anahtarları ekleriz.DES(56 bit)'i kırmanın zorluğunu farkettiğinizde 128 bit anahtarları kırılamaz olarak umabilirsiniz. Saldıran olarak baktığınızda ise, bu sınırı artırmak sadece zorluğu imkansız seviyeden daha imkansız seviyeye taşır.
4 farklı yazılım paketi benzer hizmetleri sağlar:
ssh 1.2.x : şifreli bağlantı kurmak için bir istemci-sunucu sistemi.;
ssh 2.x : önceki ile aynı ancak daha az zayıflık ve daha çok ihtimal içeriyor ;
OpenSSH :önceki ile aynı ancak BSD lisansı altında;
ssf : sshgibi fakat Fransız yasalarınca kabul edilmiş. (Bu şekilde söylenilmeli!)
Takip eden modüller hala servisleri ilgilendiriyor.Onlar için politika belirlemek şaşırtıcı görünebilir:Ayrıcalıkları kısıtlamayla başlayın ve sonra onları durdurun.Görünüşün aksine iki ölçüt birbiriyle çelişmiyor.Bu servisler yanlışlıkla veya istenmeyen biri tarafından tekrar etkin hale getirilebilir.O halde onları kısıtlamak daha iyi görünmektedir.
DNS
A DNS (Domain Name Server) bir IP adresini ve bir makineyi ve tam tersini birbirine bağlar.Örneğin, 198.186.203.36 adresi
www.bastille-linux.org adresine karşılık gelir. Bu sunucunun an fonksiyonu BIND'dir.Son zamanlarda, BIND'e karşı bir DoS tipi saldırı tesbit edilmiştir. Sadece küçük bir grup dizine DNS ulaşımı tanımaktan sakınmalısınız.(root dizininizi bir komut yada betiği çalıştırmadan önce varsayılan olan /- ı chroot ile değiştirebilirsiniz.)Şimdi Bastille-Linux davranışını açıklamadan önce biraz teknik detaylar ekleyelim.
Bu daemonı yöneten servis named olarak isimlendirilir. konfigürasyonu
/etc/named.conf dosyasından gelir.
- Would you like to chroot named
and set it to run as a non-root user? [N]
Bunu yaptığınızda, Bastille-Linux
dns isimli kabuğu olmayan ancak kendi dizini /home/dns bulunan yeni bir kullanıcı oluşturur. Bu dizinde alışılmış dizinleri (/usr, /etc, /var,...vb) ekleyerek klasik bir sistem mimarisi inşaa edersiniz. Sonra daemonın ihtiyacı olan konfigirasyon dosyalarını ve kütüphaneleri kopyalamak zorundasınız. (mesela syslog için
- DNS.pm betiğini kontrol edin).
Şimdi DNS 'ın kendi çevresi var :)
- Would you like to deactivate named, at least for now? [Y]
Pek çok insan makinesinde isim sunucusu istemez,çünkü ISS'ler bu servisi sağlamaktadır. DNS-HOWTO isim kararı için gizli kurulumu tanımlamaktadır ancak bu bile bir problem kaynağı olabilmektedir.
Apache
Apache internette en çok kullanılan web sunucusu durumundadır. Böyle bir sunucu sadece iki durumda faydalıdır:
- bir siteye ev sahipliği yapmak: Bunun için değişmez bir IP adresine sahip olamk gerekmektedir.ISS'ler böyle adreslere sahiptirler ancak istemcileri için bu normalde doğru değildir.
- kendi web sayfalarını kontrol için:bu durumda sunucuyu (/etc/rc.d/init.d/httpd start)sadece ihtiyaç duyulduğunda başlatmak zorundasın.
Bu daemon için konfigürasyon dosyaları /etc/httpd/conf dizininin altında bulunabilir.
- Would you like to deactivate the Apache web server? [Y]
Since
Bu daemona daima ihtiyaç duymadığımızdan ve küçültme ruhu ile onu etkin yapmayalım.
- Would you like to bind the web server to listen only to the localhost?
[N]
httpd daemonunu özel bir adrese bağlamak mümkündür.Burada,
Bastille-Linux, onu localhost ,127.0.0.1 adresine bağlamayı önerir. Bu bir makinede kendi web sayfalarınızı deneyebileceğiniz bir sunucuya sahip olmaya olanak tanır.
Bu sayfalara şu şekilde ulaşabilirsiniz:
http://localhost/ (veya http://localhost/raynal kendi sayfalarına giriş için )Apache çalışmak için
loopback arayüzünü (lo) kullanır.
- Would you like to bind the web server to a particular interface?
[N]
Yes cevabı önceki cevabı iptal eder . Burada web sunucusunu loopback ile kullanmak istediğimizi söyleriz... ve bu soru kendisine bağlı bir IP adresiyle başka bir arayüz (örneğin Ethernet) verilmesini sağlar.
- Would you like to deactivate the following of symbolic links? [Y]
Bunu yapmalısınız. Kısıtlanmış bir alanda DNS'nin çalışmasına gelirsek Apache 'nin alanını
(mesela; /home/httpd) terketmesine müsade etmemelisiniz. Örneğin, kullnıcılardan biri kendi web sunucusu dizininde roota/ bir link var.O zaman herkes tüm dosyalara ulaşabilir... özellikle de passwd ve diğerleri gibi konfigürasyon dosyalarına.
- Would you like to deactivate server-side includes? [Y]
Jay
Beale'in dediği gibi,eğer birşeyin ne olduğunu bilmiyorsan ona ihtiyacın yok demektir. Şunu söylemek yeterlidir ki bu konfigüre edilebilir eğer ki kullanıcılara sunucu üzerinde herhangi bir programı çalıştırma hakkı tanımışsanız.(Korkarım ki öyle...sistemci arkadaşlardan korkun...ki bu sizin için bir hayal olabilir;-)
- Would you like to disable CGI scripts, at least for now? [Y]
Bir CGI(Common Gateway Interface) betiği yazmak hiç zor değildir ancak dikkatli olmayı gerektirir (Örneğin, sunucuda biriken core dosyalarının tekrar tekrar yükleniminden sakının ).Bu betiklerdeki hatalara dayandırılan bir sistemi işlemek için pek çok yöntem kullanılmıştır.
- Would you like to disable indexes? [N]
Apache, index.html dosyası olmayan bir dizindeki tüm dosyaları listeler. Bu sembolik linklerin açtığı problemden daha küçük bir problemdir ancak bir dizinin kolay zarar verilebilecek bilgiler içerip içermeyeceğini düşünününz.
Bir web sunucusu diğerleri gibi makinenizi ziyaret için doğru bir adres olabilir yada zarar vermek için. Bu bazı durumlarda kızdırıcı olabiliyor. Öyle bir banka söyleyelim ki müşterilerin adları,(Belki şifreleri) okunabilir olsun... hemen http://www.kitetoa.com/ sitesine gidin ve ziyaret edin, pişman olmayacaksınız
;-) ( Çevirmenin notu: Ne yazık ki, sadece Fransızca!)
Yazdırma
Sadece bir soru:makinenizden birşeyler yazdırıyor olacak mısınız? Eğer cevap hayır ise, Bastille-Linux lpd daemonlarının ekinliğini kaldırır ve lpr ve lprm 'den SUID bitleri kaldırır. =============
FTP
Güvenlik açısından bakacak olursak, FTP pek çok sorunun kaynağı olabilir. Örneğin, bir bağlantı kurulurken şifreler açık yazı dosyası şeklinde transfer edilirler.Veri için de aynı şeyler geçerlidir ki eğer veri önemliyse (parasal yada hayati bir veri...) bu tehlikelidir.
Dahası, son zamanlarda wu-ftpd 'da güvenlik açikları tesbit edilmiştir. Eğer bu sunucuyu açık durumda bırakmaya ihtiyacınız varsa, Bastille-Linux bazı özellikleri kısıtlayacaktır.
FTP sunucusuna erişimi sağlayan dosya /etc/ftpacces'dır.
- Would you like to disable user privileges on the FTP daemon ? [N]
FTP sorunlarından biri anonymous bağlantıya imkan tanımasıdır (biliyorsunuz bu kullanıcı şifre olarak bir email adresine sahip... bazen de bir hayalet olarak;-). Diğer bir problem dosya gönderimi (Mesela, sunucuya dosyalar göndermek ve diski doldurmak yada sunucuyu göçertmek için programlar göndermek). Çoğu saldırı bu zayıflıkları kullanır.
Diğer sorun kayıtların şifrelenmemiş olmasından kaynaklanır.
- Would you like to disable anonymous download? [N]
Bu sunucuya anonymous olarak bağlanmayı kaldırır.
Biraz daha hile ve ipucu
Daha önce söylediğim gibi, Bastille-Linux büyük bir eğitici alet. Sorular ve yorumlar anlamlı. Sorular net olmadığı zaman doğru cevabı vermek için pek çok kaynak mevcut. Verilen konuyu öğrenmenin en iyi yolu ilgili modülü kullanmak.
Bunu yapmak için soruları içeren dosyayı yedekleyin.Sonra Questions.txt dosyasını açın.Her modül FILE anahtar sözcüğü ile başlar.İhtiyaç duyduklarınızı etkin tutun.
/root/Bastille >> cp
Questions.txt Questions.txt-orig
/root/Bastille >> emacs Questions.txt
BackEnd.pl &
/root/Bastille
>> ./InteractiveBastille
Tabii ki Bastille-Linux ölçüleri sisteminizin güvenliği için yeterli değil:
- Hiç bir sistem %100 güvenli değildir;
- Bastille-Linux "işini" tamamlamak için daha çok ölçüt gerekli.
Bu ölçütler arasında log dosyası çözümleyicisi, port tarayan saptayıcılar (portsentry, snort, snplog, vb ...), http://www.openwall.com/ çekirdek yamaları (çalıştırılamaz stacklar, /tmp ve /proc haklarında kısıtlamalar ...vb) kullanımı düşünülebilir.
Bir sistemi korumak uzun ve zor bir yoldur.Kendinizi güvenlik açıkları konusunda sürekli bilgili tutmalısınız. (Örneğin, securityfocus sitesinden bugtraq gibi mailling grupları aracılığı ile).
Sonuç
Bastille-Linux güvenliğe çok iyi bilinen Linux dağıtımlarında yardım etmektedir.
Şöyle diyebilirsiniz: "o zaman niçin bunu kullanayım?"Kesinlikle... fakat RedHat (Mandrake - benzer durumdalar) çok hoş özelliklere sahip. Bu makalenin amacı bir dağıtımın reklamını (yada suçlamasını) yapmak değil.Nede olsa, seçimdeki özgürlük serbest yazılımın gücüdür.Sonuç olarak bu makale pek çok amaca hizmet etti.
Birinici olarak,size heyecandan titreyişleri özlemleyen birileri tarafından ağı yokedilmiş olarak görme korkusunda yaşayan bir sistem yöneticisinin değişmez endişesini göstermekti.Diğer taraftan bu alet size bir Linux sistemin konfigürasyonunu derin olarak inceleme imkanı sağlamakta. Böyle bir bakış açısından, bu sadece yenilere değil aynı zamanda ileri kullanıcılara da Linux konfigürasyonunun gizemini keşfetmek için güzel bir yoldur. .
İki temel ve genel kavram küültme ve derinlikdir. Daha az çalışan servis daha az güvenlik açığı demektir. Her bir servis için çeşitli korumalar bir diğerinden daha iyidir... fakat bu kötü konfigüre edilmiş bir konfigürasyon yüzünden(yada pekçoğunun birleştirilmesi ). sizin aleyhinize olabilir.
Son olarak, gelecek versiyonun BUS (Bastille Unix
Security) olarak isimlendirileceğini ifade edelim. Bu Bastille-Linux ve Msec (Mandrake
Security Project) 'ın akıllı bir karışımı olacak.Daha sonraki Usec (Unix Security
Project) olarak isimlendirilecek.
Kaynaklar
Son güncelleme: 12 Haziran Pazar 16:40:50 CEST 2000
Bu makale için görüş bildirme ve destek formu
Her makalenin kendi görüş bildirim sayfası vardır:Bu sayfada bir yorumunuzu iletebilir veya diğer okuyucuların yorumlarına bakabilirsiniz.
2000-08-13, generated by lfparser version
1.7