İPUCU

Linux Linux İle İlgili Bilgi Paylaşım Platformu

Seçenekler

Sisteminizin Güvenliğini Sağlamak için İpuçları

ByCrauSeRs - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
09/2007
Nereden:
THT KaLıcı KonutLarı
Mesajlar:
2.643
Konular:
1220
Teşekkür (Etti):
0
Teşekkür (Aldı):
47
Ticaret:
(0) %
19-01-2008 19:35
#1
Sisteminizin Güvenliğini Sağlamak için İpuçları
Giriş

Bu yazı yeni kurulmuş olan veya kurulacak olan sistemde ortaya çıkabilecek olan güvenlik açıklarını bulmayı ve kapatmayı gösteren kapsamlı bir güvenlik yazısı değildir. Tersine sisteminizin güvenliğini sağlamak üzere ne yapılması gerektiğine dair bir yol haritasıdır. Ele geçirişlmiiş veya güvenlik açıkları ile sisteme ısızlmış sistemlerde sorun çözmeye yönelik değildir. Yeni kurulan ve kurulmuş olan sisteminizin güvenliğini sağlamlaştırmak amacı ile yapılacak işlemleri kapsamaktadır.

GNU/Linux dağıtımları temelde en güvenli işletim sistemi olarak tanımlanır. Bu şekilde anılmasını sağlayan sistemin güvenliğinin diğer işletim sistemlerine göre üsütün olmasıdır. Ancak güvenli bir işletim sistemi kullanıyorum şeklinde düşünen tüm kullanıcılar sistemlerinin bir süre sonra sonra davetsiz misafirlerce ziyaret edildiğini ve kullanıldığı anladıklarında düştükleri hatanın farkına varmaktadır.
Unutulmaması gereken güvenli sistemin olmadığı değil, sistemi güvenliğinin bir kaç adım uzakta olduğunudur.

Bir çok kullanıcının ve sistem yöneticisinin düştüğü bu hata sistemleri ciddi tehlikeler ile karşı karşıya bırakmaktadır. Güncel araştırmalar Windows işetim sisteminin güncellenmeden internet bağlanması durumunda davetsiz misafirlerce istaila edilmesinin sadece 4 dk olduğunu ortaya çıkarmıştır. GNU/Linux için ise bu süre 4 ay. Sürenin uzun olması güvende olduğumuz anlamına gelmemektedir.

Sistem Güvenliğinin Temel Bileşenleri

Sistem güvenliğinin bana göre üç temel bileşeni vardır:

  • Güncellemeler ve yamalar
  • Sistem Yönetimi
  • Doğru yapılandırılmış bir güvenlik sistemi
Güncellemeler ve Yamalar: Sisteminizi kurmadan önce yapmanız gereken seçtiğiniz dağıtımın sitesini ziyaret ederek elinizdeki veya kurmayı düşündüğünüz dağıtımın ilgili sürümünün yayınlanmasından bu güne dek çıkarılan güvenlik uyarılarını ve yamaları incelemeniz gereklidir. Bunun yapılmasındaki neden kurulumu izleyen süreçte kurulacak olan yamaları belirlemektir. Bazen ender de olsa, belirlenen bazı güvenlik açıklarına karşı yamalar eş zamanlı olarak geliştirelememekte ve ilgili paketlerin kullanımında geçici çözümlere gidilebişmektedir. O halde, yamalar kadar da hazırlanmakta olan yamalar da önem kazanmaktadır. Yaması hazırlanmamış sorunlu bir paketin olanaklı ise kullanılmaması, gerekiyorsa da gerekli düzenlemeler yapılmadan kullanılmamasına dikkat edilmelidir.

Sistem yönetimi: Sistemin yönetiminde dikkat edilmesi gereken sistem yöneticisi olan kişinin sistem üzerindeki kontrolüde önemlidir. Sistem yöneticileri, sistemi yönetmekte ve gereken önlemeleri almakta bazı hatalara düşebilmektedir. Her paket veya yazılım incelenmeden sisteme kurulmamalıdır. Güvenlik yapılandırımasında kullanılan araçlar ve yazılımların dikkatle elden geçirilmesi gereklidir. Örneğin geliştirme aşamasında olan bir firewall düzenleme aracının kritik öneme sahip bilgilerin saklandığı sunucularda kullanılmasının hatalı olacağı açıktır. Öncelikle kullanacağınız paketler ve yazılımları deneme amaçlı olarak yapılandırdığını bir sistemde deneyip emin olduktan sonra kullanmanız uygun olacaktır.


Yazılım ve paket yönetimi sistem yöneticilerinin dikkate alması gereken bir noktadır. Ancak bununla da bitmemektedir. Sistem yöneticilerinin gelişen teknolojiyi de yakından izlemesi gereklidir. Değişen ve gelişen yazılımlar her zaman için süreklilik göstermemektedir. Bunun anlamı ise kısaca kullandığınız uygulamanın desteğinin kesilmesi ile kullanılıp kullanılmayacağına karar vermek durumunda olmanızdır. Kod üzerinde hakim değilseniz artık geliştirilmeyen veya kullanılmayan yazılım ve paketlerideki hataları, açıkları da bulmak size kalmaktadır.

www.turkhackteam.net


Doğru yapılandırılmış bir güvenlik sistemi: Güvenlik sistemi bir sunucu veya kişisel kullanıma yönelik bir kişisel bilgisayardan, bir iş istasyonuna dek geniş bir yelpaze üzerinde yer alan tüm sistemlerin güvenliğinin sağlanması için gerekli ve yeterli düzenlemlerin yapılmasıdır. Doğru yapılandırılmış güvenlik sistemi için kullanacağınız sistemtiği geliştirmek sistem yöneticilerine, ağ yöneticilerine, veri tabanı yöneticilerine dek geniş bir yelpaze de yer alan bir çok kişinin birlikte çalışmasını gerektirir. Ancak temel ilke savunmanın tek bir hatta değil derinlemesine geniş bir alanda yapılması gerektiği olmalıdır. Derinliğine bir savunma sistemin veya ağ yapılandırmasında olası bir sızmada davetsiz misafirlerin belirli bir noktadan daha ileri gitmesinin engellenmesi olmalıdır.


Şifreler

İlk adım root için seçtiğiniz şifreler ile başlar. İyi yapılandırılmış bir şifre her zaman için kırılması en zor olandır. Evlilik yıl dönümleri, akrabaların veya evcil hayvanların isimleri, tuttuğunuz takımın adı, kuruluş yıldönümü, dağıtımın kurucusu ve LinusTorvalds şifre olarak seçilmemelidir. Bu tür şifreler ilk olarak denenenlerdir.


İyi bir şifre nasıl olur? İiy bir şifre anımsanması kolay ancak anlamsız harf ve sayı dizilerinden oluşmalıdır. Örneğin bir cümledki sözcüklerin baş harfleri ve arealarına serğiştirilmiş sayılar iyi bir şifre oluşturur. Böylece şifrenin çözülmesi kısmen zorlaşacaktır. Aşağıda bu tür bir şifrenin oluşturulmasını gösteriyorum.

www.turkhackteam.net


Ali sahilde koşuyor annesi babası onu iakıyor 2005

askaboi2005

Bir şifre oluşturdunuz. Güvenlik açıkları konusunda şifrelerin kırılması ile sisteme giriş yapılması yaygın bir uygulamadır. bu amaçlı özel yazılımlar hazırlanmıştır.
Sözlük Saldırısı olarak tanımlanan bu saldırılarda sözlüklerde yer alan sözcükler denenerek şifreler bulunmaya çalışılır. Sevdiğiniz bir kitapta okuduğunu kurgusal bir ırka veya canlı türüne ait sözcükleri de kullanmayın. Uzay Yolu'ndaki Klingonlar'ın dilincen hazırlanmış Klingon sözlüğü dahi vardır. Kaldı ki Hobbitçe, Elfçe ve sair dillerde de sözlükler neden olmasın? Tüm dünya dilleri, bilim kurgu ve fantezi edebiyatında yer alan tüm dillerde sözlükler bulunmaktadır.


su ve sudo

Her zaman size root olarak sisteme giriş yapmamanız ve kullanıcı hesabı oluşturmanız söylenmiştir. Kullanıcı olarak sisteme giriş yaptıktan sonra
su komutu ile root olarak işlem yapabilirsiniz. Biz ise bir adım ileri giderek komutu kimlerin kullanabileceğini ve kullanamayacağını belirleyeceğiz. etc dizininde yer alan suauth (veya sudoers) dosyası su komutunun kullanımını düzenleyen dosyalardır. Bu dosyaya aşağıdaki gibi bir satır ekleyelim.


root:ALL EXCEPT GROUP webhost

Burada
webhost olarak tanımlanmış grubun su yetkisinin olmadığı tanımlanmıştır. Düzenleme grup bazında yapılabileceği gibi kullanıcı bazında da yapılabilir. Ayrıntı bilgi için man sayfalarında Bölüm 5 bakınız.


Kısıtlamak kadar da izlemek de gereklidir. Bir adım daha ileri gidip su komutu ile yapılan işlemleri izlemeye bağşlayalım.
etc dizininde yer alan login.defs dosyasını düzenleyebiliriz. Burada yer alan


SYSLOG_SU_ENAB yes

Satırının önünde
# işareti yer alıyorsa kaldırın. Bu satır yoksa da ekleyiniz. Örneğin bu işlemleri ayrı bir dosyaya alıp inceleyelim. Yine aynı dosyada aşağıdaki satırı ekleyerek kayıtların tanımladığımız dosyaya aktarılmasını sağlayabiliriz.


SULOG_FILE /var/log/sulog

Bu satır sizin sisteminizde yer alan dosya da yer alıyor olabilir. Yer alıyorsa ve önünde # işareti varsa işareti kaldırın. Kayıt işlemi başlayacaktır. Sisteminizde
sudo kullanılıyorsa sudoers dosyası yer alacaktır. Bu durumda sudosudoers man sayfalarına baş vurmanız ve seçenekler hakkında bilgi almanız gereklidir.


Hangi Hizmetler Çalışacak?

Çoğunlukla ilk kurulumda bir çok hizmet çalışıt durumda kalmaktadır. Bunların bazılarına gerek duyulmaz. Gerek duyulmadığı halde neden çalışmaktadır? Bunun nedeni sistemi geliştiren ekibin genel bir yapılandırmayı standart olarak belirlemesidir. Böylece bir çok hizmet ilk kurulumdan sonra çalışmaktadır. Gereksinmenize göre bu hizmetleri durudurabilir ve başlatabilirsiniz.


En yaygın hata gereksiz hizmetlerin ve sunucuların çalışır durumda bırakılmasıdır. Bunlardan yararlanılarak sisteme girilebilmektedir. O halde hangileri kalmalı hangileri kapatılmalı? Bu sorunun yanıtı verecek olan sistem yöneticisi veya kullanıcıdır. Basit bir yaklaşım olarak emin olamıyorsanız kapatınız, gerektiğinde yeniden açarsınız. Hizmetleri yönetmek için sisteminiz size iki araç sunar: Birincisi konsol diğeri de grafik arabirime sahip olan araçlardır. Yazının kapsamını genel tutmak açısından ben konsol ile devam ediyorum. Dağıtımınızda size uygun grafik arabirime sahip bir araç varsa kullanabilirsiniz.



Konsolda öncelikle açık portlar ve dinleyen uygulamalara bakalım:

netstat -pat

Sonrada süreçlere bir göz atalım.

ps -aux | less

Böylece çalışan ve dinleyen uygulamaları belirleyebiliriz. Dağıtımınızda
Internet Superserver Daemon yani inetd yer almaktadır. Bu daemon ayarları ise inetd.conf dosyasında yer almaktadır. Dosyaı bir editör ile açarak gerek duymadığınız hizmetleir kapatmalısınız. Bunuda başına # koyarak yapın. Gerek duyduklarınız ise olduğu gibi kalsın.


Güncel bir dağıtım kullanıyorsanız inetd yerine
xinetd yer almaktadır. inetd göre daha gelişmiş ve güvenlidir. Eğer inetd kullanmayı düşünmüyorsanız xinetd kullanmanız uygun olacaktır. Ancak inetd kadar da açılışta çalıştırılan script dosyaları da bazı hizmetleri başltır. Bu durumda bazılarını devre dışı bırakmak veya yeniden düzenlemek gereklidir. Özellikel de scriptleri dikkatle gözden geçirin.


Red Hat ve Slackware yaygın olarak sunucu amaçlı olarak iki dağıtımdır. Red Hat kullanıcıları chkconfig kullanarak düzenleme yapabilirler. Farklı çalışma düzeylerinde yer alan hizmetlerin bir listesini görmek için


chkconfig --list

komutunu kullanmanız uygun olacaktır. Herhangi bir devre dışı bırakmak için ise


chkconfig --del hizmet_adı

Biçiminde komutu kullanmanız gereklidir. Ancak tük hizmetleri chkconfig ile düzenlemeniz uygun olmayabilir. Bu durumda ilgili dosyada yer alan kısayolu silmeniz yeterlidir. Asıl dosya ise daha sonra gerek duyulabileceği için kalmalıdır.


Slackware kullanıyorsanız başlangıç dosyalarınız
/etc/rc.d dosyasında yer almaktadır. Burada ya başına # koyarak devre dışı bırakınız veya ilgili scripti çalıştırılamaz hale getiriniz. Daha sonra tekrar çalıştırılabilir hale getirirsiniz. Örneğin


chmod a-x /etc/rc.d/rc.sendmail

komutu ile sendmail çalıştırılamaz hale getirilmiş oldu. Gerektiğinde ise çalıştırılır duruma getirebilirsiniz. Gerekli düzenlemelleri yaptığınızdan emin olmanız gerekli. Bunu ise yukarda hizmetleri ve süreçleri her işlemden sonra kontrol ederek yapınız. Tüm kısıtlamaları yaptığınızden emin olduğunuzda ise değişkiliklerin geçerli olması için sistemi yeniden başlatınız.


TCP Wrappers

TCP Wrappers, temel olarak inetd tarafından sunulan hizmetlere kimlerin erişebileceğin, yararlanabileceği ve tersini tanımlar. Bu işlem yine
etc dizininde yer alan hosts.allow (izin verilen) ve hosts.deny (izin verilmeyen) dosyaları ile yapılmaktadır. Dağıtımı kurduğunuzda bu dosyalar boştur. Gerek duyulan adresleri tanımlamak ise size düşmektedir. Öncelikle hosts.deny doyası ile başlayalım ve her şeyi kapatalım. Dosyayı açıp şu satırı ekleyelim:


ALL:ALL

Böylece erişimi kapattık. Deneyenlerden haberdar olmak istiyorsak şu şekilde düzenlemek yeterlidir:


ALL:ALL:/bin/mail -s "%s baglanti girisiminde bulunan adres %c" kullanıcı_adı@sunucu_adı

Biçiminde uygun şekilde yapılacak düzenleme ile size durum e-posta mesajı olarak bildirilecektir. İzin vermek için ise,
hosts.allow dosyasını benzer biçimde düzenlemek gereklidir.


Sistemden gelen istekler için:

ALL:127.0.0.1

Yazabilirsiniz. Belirli bir hizmetin belirli bir ip adresinden erişilebilir olması için ise;

HİZMETİN_ADI:IP_ADRESİ

veya

HİZMETİN_ADI:IP_adresi1,IP_adresi2,IP_Adresi3

veya

HİZMETİN_ADI:10.10.22.,

Biçiminde belirli bir ip grubu tanımlanmalıdır. Burada alan adları, örneğin şirket.com, organizasyon.net gibi, kullanılabilir ancak DNS sunucularında olabilecek bir sorunda devre dışı kalmaları durumunda bu hizmetlere erişimde sorunlar yaşanabiliecektir. Bu nedenle de ip adreslerinin kullanılması uygun olacaktır.


SUDO ve İlgili Dosyalar

Sistem güvenliğinde bir başka önemli nokta da kullanıcıların SU komutu ile root haklarını alarak işlem yapmasını önlemektir. Kullanıcılar
SUDO ve SUGID çalıştırılabilir dosyaları kullarak root haklarını almaya çalışacaktır. Kullanıcıların bu dosyaları çalıştırması önlenmelidir. Sistemde yer alan dosyaları bulup bunların gereken izinleini iptal etmek uygun olacaktır. Dikkat edilmesi gereken ise bazı uygulamaların su gereksinim duyması nedeni ile çalıştırılamayacak duruma geleceğidir.


Sisteminizde yer alan SUDO ve SUGID çalıştırılabilir dosyalarını bulmakla başlayalım. Öncelikle
SUID.txt adlı bir dizin oluşturalım. Bu dosyaya SUID ve SUGID dosyalarının listesini yazacağız. şu komutu kullanabilirsiniz:


find / -perm -4000 -o -2000 -exec ls -ldb {} ; >>SUID.txt

Dosyaların listesini elde ettiğimize göre, bu dosyaların izinlerini kaldıralım:


chmod -s /dizin_adı/dosya_adı

Bu şekilde çalıştırılabilir dosyaları devre dışı bıraktık. Kullanıcıların ev dizinlerinde komutları çalıştırmasını da devre dışı bırakmalıyız. Burada temel varsayımım sunucu tabanlı bir kurulumda kullanıcıların ev dizinlerinin ayrı bir disk bölümünde tutulmakta olduğudur. Bu tür bir yapılandırma disk yönetimi açısından da önemli kolaylaıklar sağlayacaktır.


Kullanıcıların ev dizinlerinin yer aldığı dizk bölümüne ait düzenlemyi de fstb dosyasında gerekli satıra bir ekleme yaparak çözüyoruz.


/dev/disk_bölümü /home reiserfs defaults,nosuid 1 1

Böylece kullanıcılar kendilerine ait olan bölümde SU çalıştıramazlar.


Dosya İzinleri ve Sahiplik

Konsolda çalışmak adlı yazı dizimizde izinler, sahiplik ve gruplar hakkında yazılanlara anımsayalım. Dosayalrın sahipleri ve ait oldukları gruplar vardır. Bir de dünyanın geri kalanı. Gruplar ve sahiplik bizim için sorun çıkarmaz. Ancak dünaynın geri kalanı baş ağrıtabilir. Nedeni de grup ve sahiplik tanımlanmamış bir dosyanın farklı amaçlarla kullanılmasının yaratabileceği sakıncalardır. O halde dünyanın geri kalanı için okunabilir ve yazılabilir dosyaların izinlerini değiştirmek uygun olacaktır.Yukarıda anlattığımız gibi dosyaları bulmak için bir liste yaratalım. Bunu da
dunya_oku_yaz.txt dosyasında oluşturalım. Aşağıdaki komut ile listeyi oluşturalım:


find / { -perm -a+r -o -perm -a+w }) ! -type 1 >> dunya_oku_yaz.txt

Bu listede yer alan dosyalardan okuma ve yazma izinlerini kaldırabilirsiniz. Gereksiz izinler de sorun olabilir.


Diğer bir sorunda sahibi olmayan dosyalardır. Eğer sisteminizde sahibi olmayan bazı dosyalar varsa birileri sisteminize girmiş olabileceğine işaret edebilir. Eğer bu tür dosyalar bulduysanız siliniz. Eğer dosyanın sistem tarafından yaratılmış olduğunu düşünüyorsanız uygun bir grup veya kulanıcı tanımlayarak bu gruba ve sahibe atamanız uygundur. Sahipsiz ve grupsuz dosyaları taramak için şu komutu kullanınız:


find / -nouser -o -nogroup

Kullanıcılar kendi ev dizinlerinde çalıştırılabilir dosyalar oluşturabilirler. Bu "izin" sizin tarafınızdan düzenlenmiş olmalıdır. Kullanıcılara çalıştırma izinlerini vermek için chmod komutunun kullanılmasını sağlamanız gereklidir. O halde ev dizinini barındıran disk bölümünün tanımlandığı
etc/profile dosyasında, oluşturulan her yeni dosya için çalıştırma izninin verilmesini sağlamak için umask ile gerekli tanımlamayı yapınız. umask 022 ile dosya izinleri 644 olarak tanımlanmış olacaktır; yani her yaratılan yeni dosya için izinler -rw-r--r-- olarak düzenlenmiş olacaktır.


Eklenebilir ve Değiştirilemez Dosyalar

Dosya yazma izinleri devam ettiğimize göre sistem kayıtlarına gelelim. Sistem kayıtları size sistemin işleyişi hakkında tüm bilgileri verecektir. Bu dosyaların sadece root tarafından düzenleneceğine göre, dosya özellikleri üzerinde durmak gereklidir. Benim özellik ile dosyanın içeriğinin değiştirlip değiştirilemeyeceğine dair yapılan düzenlemeleri tanımlıyorum. Dolayısıylada iki temel özellik tanımlanmaktadır: Dosya içeriği değiştirilemez ve dosya içeriğine ekleme yapılabilir. Bu özellikleri düzenlemek için kullanılacak olan komut
chattr'dur.


Bu komutu kullanacağınız yer ise önemli sistem dosyaları olmalıdır. Örneğin sistem tarafından kullanılan
/sbin dizininde yer alan dosyalar ve /etc dizininde yer alan ayar dosyaları


chattr +i /usr/bin/ps
chattr +i /etc/services

Bu iki örnekte dosyaları değiştirilmeye karşı bağışık hale getirdik (i=immune yani immune=bağışık, aklınızda kalsın )
gibi. Aşağıda iki örnek üzerinde dosyaların değiştirilmesini önleyecek biçimde yapılan düzenleme yer almaktadır. chattr ile değiştirilen dosyaların içeriği lsattr ile görüntülebilir. syslog dosyasının yeniden silinerek yazılmasını istemiyorsanız chattr +a /var/log/syslog olarak kullananınız uygun olacaktır.


Sistem Kayıtlarını Tutmak

Geldik sistem kayıtlarını tutmaya. Buraya kadar sistem girişlerini, hizmetleri ve dosyaları düzenledik ancak işimiz bununla bitmiyor. Sistem kayıtlarının tutulması da gereklidir. Bu şekilde sistemin işleyişine ilişkin önemli bilgileri edinebiliriz. Sistemnizdeki tüm faaliyetler
syslod daemon tarafından kayıt edilir. Kayıt için düzenleme ise syslog.conf dosyasında belirtildiği şekilde yapılır.


Söz konusu dosyada gerekli düzenlemeleri yaparak tüm faaliyetleri önem sırasına göre farklı dosyalara kayıt edebilirsiniz. Aşağıda kendi sistemlerimde de kullandığım ve internette rastmış olduğum bir örnek dosya yer alıyor. Sizde kendi düzenleminizi kendi tercihlerinize göre yapabilirsiniz.

# 'info' ve önemli olanları ancak 'warn' düzeyinde olmayanlar.
# mail hariç.
*.info;*.!warn;mail.none -/var/log/messages

# 'warn' ve üzeri.
# mail hariç.
*.warn; -/var/log/syslog

# Debug bilgisi.
*.=debug -/var/log/debug

# Kernel mesajları:
kern.* -/var/log/kernel

# Authentication mesjalrına dair:
authpriv.* -/var/log/secure

# Cron kayıtları:
cron.* -/var/log/cron

# Mail kayıtları:
mail.* -/var/log/maillog

# Daemon ilgili olanlar:
daemon.* -/var/log/daemonlog

# User-kullanıcılar:
user.* -/var/log/userlog

# işaretler için:
mark.* -/var/log/marklog

# kullanıcı konsllarından gelen hata mesajları:
*.emerg *Burada ' ' kullanılması sisteme sürekli olarak kayıtları güncellemesinin gerekmediğini anlatmaktadır. Eğer ' ' kaldıracak olursanız sistem tüm faaliyetleri kayıt edecektir. Bu durumda da performanstan kayıp yaşamanız söz konusu olabilir. Son olarakda root hesanında yer alan e-posta adresini kendi kullanıcı hesabınıza yönlendirin. Böylece root yönlendirilen e-posta mesajlarını da takip edebilirsiniz.


Ağ Düzenlemeleri

Buraya dek sitemin genel olarak girişi, şifrleri, dosyaların yönetilmesi ve kayıtların tuutlmasını gördük. Ancak sisteme ağ üzerinden erişmek için gerek duyulan düzenlemleri yapmamız gerekli. Kullanmayı düşündüğünüz uygulamaları ve yapılanadırılmasına dikkat etmeniz gereklidir. Özellikle de sistem uzakta ise ve ağ üzerinden erişecekseniz. ilk olarak sisteme erişim ile başlayalım.


SSH

Sisteme bağlanırken TELNET kullanmayınız. TELNET sisteme bilgileri şifrelenmeden ve düz metin dosyası olarak aktarmaktadır. Bu nedenle de SSH daha güvenli bir seçenek olmaktadır. SSH için gerekli olan düzenlemleri
/etc/ssh/ssh_config veya /etc/ssh/sshd_config dosyasında yer almaktadır.


İlk olarak giriş yapılma süresini düzenleyerek başlayalım. Süreyi ne çık kısa ne de çok uzun tutmalısınız. Makul bir süre belirlemek uygun olacaktır; örneğin 20 veya 30 sn gibi. Bunu da


LoginGraceTime 30s

yazarak yapabilirsiniz. Diğer seçenek ise root olarak sişsteme girişleri kapatamak olmalıdır. Bu da,


PermitRootLogin No

ile düzenleyin. Bu durumda su yaparak root girişlerinin yapılması gerekecektir. kullanıcıların kendi ev dizinleri dışına girişlerini engelleyiniz.


StrcitModes Yes

Sonraki aşamada ise SSH kullanabilecek kullanıcıları tanımlayınız.


AllowUsers Kullanıcı_adı1 Kullanıcı_adı2

Bir başka işlem ise giriş için IP adreslerini veya aralıklarını tanımlamak olmalıdır.


AllowHosts IP_adresi

SSH ile sunucuyu yönetmenize de olanak vardır. Bu amaçla SSH size güvenli dosya transferi ve dosya kopyalama işlemleri yapmanıza olanak sağlayan SCP ve SFTP protokollerini de sunar. Bu şekilde yukarıda tanımlamış olduğunuz IP adreslerinden izlenmeden dosya kopyalayabilir ve aktarabilirsiniz.


PAM ile Kaynak Kullanımını Sınırlandırmak.

Kaynakların kullanılmasını sınırlandırmak sistem genelinde kaynaklarınızı grup yada kullanıcı temelinde düzenleyebilirsiniz. Bunun için PAM kullanabilirsiniz. Ayar dosyaları ise
/etc/secutiry dizininde yer alır. PAM bu dizinde yer alan limits.conf dosyasında tanımlanmış olan düzenlemleri esas alır. Bu dosyada yer alan bileşenler şu sıra ile tanımlanır.


Domain Type Item Value

Aşağıda buna göre tanımlanmış bir dosyanın içeriği yer görülüyor.

* soft nproc 100
* hard nproc 150

Bazı durumlarda kullanıcılar sistem kaynaklarının kısıtlanması durumunda birden fazla giriş yaparak fazla kaynak kullnmaya çalışabilirler. kullnıcı girişlerini sınırlayabilirsiniz. Bu sınırlama grup bazında olabileceği gibi kullanıcı adına bağlı olarak da yapılabilir.


* hard maxlogins 4
@users hard fsize 50000

@users ile kullanıcılar grubu tanımlanmıştır.* ise tüm kullanıcıları simgelemektedir. Hard ve soft ise önemli iki bileşen. Ayrımı ise şudur: Hard seçeneğinde tanımlanmış süreçten fazlasına izin verilmez. Süreç sayısı tanımlı sınırı aştığında otomatik olarak sonlandırılır. Soft ise aşılmasına izin verilir ancak kullanıcı uyarılır ve süreçleri sonlandırılmaz.


Diğer seçeneğimiz de kullanıcı hesaplarının sınırlandırılmasıdır. Bu sınırlandırma kullanıcı hesaplarının tamamen yetkilerden arındırılması da olabilir. bu durumda söz konusu hesabın yetkileri olmaz. Örneğin herhangi bir biçimde giriş yapılması gerekmeyen hesapları bu şekilde tanınlayabilirsiniz.

www.turkhackteam.org


PAM çok geniş seçenekler sunmaktadır. Burada bu seçeneklerin ayrıntılı olarak ele alınması ne yazık ki söz konusu değil. Fakat bir noktanın üzerinde durmak istiyorum:
su izinleri.


Tanımlı hesaplardan hangilerinin
su komutunu kullanabileceğini tanımlayabilirsiniz. /etc/pam.d/su dosyasında su için gerekli düzenlemler yer alır. Bu dosyada aşağıdaki gibi bir düzenleme yaparak


auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_grupadı.so group:grup_adı

Burada hangi hesapların ve grupların su yetkisi olduğu tanımlanmış olmaktadır.

Son Cümleler

Buraya kadar geldiğinize göre sisteminizin gerekli ayarlarını yapmış oldunuz. Burada eksik olan veritabanı,web ve diğer sunucuların güvenli hale getirilmesi ise ayrı bir yazı konusu olduğu için şimdilik ele almıyorum. Sisteminizde güvenliği sağlamak sadece burada ele aldığımız noktaları uygulamak ile sınırlı değildir. Sisteminizin güvenliğinin sağlanması için sürekli olarak sisteminizin taranması ve gerekli uygulamaların yürütülmesi gereklidir. Sistem kayıtlarının incelenmesi ve dikkat çeken eylemlerin de incelnemsi gereklidir.

Kullandığıunız yazılımların hataları ve güvenlik açıkları her zaman için söz konusu olabilir. Bunları düzenli olarak izlemeniz ve yamaları kurmanız gereklidir. Yamaların kurulması ve izlenmesi için bir sistemetik oluşturun.

www.turkhackteam.org

Kulandığınız siztemde yer alan hizmetlerin ve sunucuların bir listesini yapın ve bunlardan sadece gerek duyulanları çalıştırın. Temel politikanız önce vur, sonra sor biçiminde olmalıdır: Sistemin tüm servislerini standart olarak kapatın veya durudurun. Gerek duyulanları sonradan aktif hale getirin. Firewall düzenleyin ve kullanın.

İlerlyen yazılarda bazı sunuucların güvenliğinin sağlanması konusuna eğileceğiz.

Görüşmek üzere...

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı