İPUCU

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

Seçenekler

Linux Güvenliği

By-CyL1nD3r - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
09/2008
Nereden:
BuRs4
Mesajlar:
1.490
Konular:
1115
Teşekkür (Etti):
0
Teşekkür (Aldı):
547
Ticaret:
(0) %
19-09-2008 20:37
#1
Thumbs down
Linux Güvenliği
Çok değil bundan 9-10 yıl kadar önce, bir bilgisayarın güvenliğinden bahsedildiğinde anlaşılan çoğunlukla fiziksel güvenlik idi. Zamanla yaşanan olaylar, ağ güvenliğinin de bu işin bir parçası olduğunu öğretti bizlere.
Bilgisayarımızı ağa bağladığımızda, guvenlikte olmasını istediğimiz belgelerimiz, kişisel verilerimiz vb. ile dış dünya arasında bir kapı açmış oluyoruz aslında. Bu kapıdan kimlerin geçmesi gerektiğine, kimlerin geçmesini istemediğimize yapacaklarımızla/alacağımız önlemlerle yine biz karar
veriyoruz. Yaygın bir kanı vardır: 'Güvenlik için ayrılan zamanın %20 si ile bilgisayarınızın güvenliğinin %80 ini sağlayabilirsiniz.' (Bu oranları %10-%90 diye telaffuz edenler de var. İnsanlar abartmayı seviyorlar ) Bu belgede yeni bir Linux işletim sistemi kurulduğunda, güvenlik için ilk etapta dikkat
edilmesi gereken birkaç noktadan bahsedeceğiz. Yazının içeriği özellikle Linux/Unix dünyası ile yeni tanışan kullanıcılar hedeflenerek oluşturulmuştur.


Sisteminizde tanımlı, gerek yetkili kullanıcı(root) gerekse diğer
kullanıcıların parolalarının güvenliği çok önemlidir. Bu nedenle:
- Parola asla sozlüklerde bulunan bir kelime veya birkaç kelimenin bileşimi olmamalıdır.
- Parola, doğum tarihiniz, kedinizin adı gibi kolaylıkla tahmin edilebilir şeyler olmamalıdır.
- Parola belirlerken sadece harflerden veya sadece rakamlardan oluşan birşey yerine büyük/küçük harf, rakam ve hatta özel karakterler ( !@#$%^&*()_+ ) içeren bir parola seçin.
- Parolanızı kimseye söylemeyin.
- Belli sıklıklarla parolanızı değiştirin.


Servisler, sadece kendiniz için veya kimi zaman bütün dunyaya sisteminizin sunmasını planladığınız hizmetlerdir. Ve sisteminizin kuruluş amacına gore çalıştırmanız gereken servisleri belirleyip, sayıyı en azda tutmaya çalışmalısınız. Çünkü sisteminizin güvenliği, çalışan servislerin ve kullandığınız yazılımların güvenliği kadardır. Örneğin günlük-masaüstü bir sistemde mail, web, alan adı vb. sunucularının çalışması gereksizdir. Kötü
niyetli kişilerin açıklarını deneyecekleri ilk servislerdir bunlar.
bilgisyarınızda calışan servisleri 'netstat -vat' komutu ile görebilirsiniz.
komutun çıktısı aşağıdaki gibidir:
-----
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *rinter *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 *:x11 *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
-----

LISTEN yazan satırlar, sisteminizde bağlantı kabul eden servisleri gösterir.
Bu servislerin bir kısmı tek başına çalışan programlardır, bir kısmı ise 'inetd/xinetd' ile kontrol edilir. Bu servislerin kimlerden bağlantı kabul edecekleri ise hosts.allow/hosts.deny dosyaları aracılığı ile belirtilebilir.

a) inetd/xinetd
inetd aslında kimi servisleri kontrol eden başka bir servistir. Temel işlevi, servislerin kendi başlarına sürekli çalışmalarındansa sadece istek olduğunda otomatik olaraka çalıştırılarak bilgisayara daha az yük binmesini sağlamaktır.
Bazı Linux dağıtımlarıile gelen xinetd de biraz daha farklı bir yapıya sahip olmakla birlikte aynı işlevi görür.
Kurulum sonrasında inetd/xinetd yapılandırma dosyalarını gözden geçirip gereksiz olduğu düşünülen servislerle ilgili satırları kapatmak güvenlik icin atılabilecek önemli adımlardan birisidir. /etc/inetd.conf(inetd için) dosyası şöyle birşeydir:
-----
ftp stream tcp nowait root /usr/local/sbin/proftpd /usr/local/sbin/ proftpd -c /usr/local/etc/proftpd.conf
#telnet stream tcp nowait root /usr/local/tcpd in.telnetd
#shell stream tcp nowait root /usr/sbin/tcpd rshd
#login stream tcp nowait root /usr/sbin/tcpd rlogind
-----

dosyadaki satırları gözden geçirecek olursak:
2. satır sistemin inetd aracılığı ile ftp isteklerini dinlediğini
gösteriyor. diyez (#) karakteri ile başlayan satırlar ise kapatılan
servisler. Sisteme telnet, rsh ve rlogin ile bağlantı kabul etmek
istenmediğinden bu servisler ile ilgili satırlar kapatılmıs durumda.
Bu servisler /etc/services dosyasında tanımlanmışlardır.

xinetd de ise yapılandırma tek dosyadan değil de her servis için ayrı dosyalardan (/etc/xinetd.d dizini altında) oluşur. Örneğin bilgisayarınıza telnet ile bağlanılmasını isterseniz bunun için /etc/xinetd.d dizini altında telnet isimli aşağıdaki gibi bir dosya oluşturulmalı:
-----
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service ftp
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/proftpd
log_on_failure += USERID
}
-----

dosyada diyez(#) ile başlayan satırlar yorum satırlarıdır. 'service' ibaresi
ile istek geldiğinde çalıştırılacak servis belirtiliyor. 'disable = no' satırı ise bu servise gelecek isteklerin dinlendiğini belirtiyor.
inetd/xinetd yapılandırmasında herhangi bir değişiklik yapıldığında, yeni durumu aktif hale getirmek için:

/etc/rc.d/init.d/inetd restart veya benzeri şekilde xinetd için
/etc/rc.d/init.d/xinetd restart komutunu başarı ile çalıştırmak yeterli.

b) hosts.allow/hosts.deny
Servislerin bütün dünya tarafından erişilebilir olması, istenilen
bir durum değildir. Genellikle sistem üzerinde çalışan servislere sadece bildiğimiz, güvenebileceğimiz bilgisayarlardan erişilmesini isteriz.
Bunu gerçekleştirmek için /etc/hosts.allow ve /etc/hosts.deny adlı iki dosya kullanılır. İsimlerinden de anlaşılacağı gibi hosts.deny dosyasını kullanarak servisleri kullanamayacak bilgisayarlar, hosts.allow ile de servisleri kullanabilecek bilgisayarlar belirtilebilir. Dosya içeriklerinden gidecek olursak :
-------
hosts.deny:
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the `/usr/sbin/tcpd` server.
#
ALL: ALL
---------
hosts.allow
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the `/usr/sbin/tcpd` server.
#
proftpd: 144.122.111.111
sshd: 144.122.
-------

yukarıdaki bilgilerden anlaşılacağı üzere hosts.deny dosyasındaki
ALL: ALL
satırı ile servisler bütün dünyaya kapalı durumda. hosts.allow dosyasında tanımlanan kurallar hosts.deny dosyasının tanımladıklarının üstüne yazdığı için ssh servisinin 144.122. IP` li bilgisayarlardan(sadece ODTÜ içerisinden), ftp servisinin de sadece 144.122.111.111 IP` li bilgisayardan bağlantı kabul etmesi sağlanıyor.

c) ssh/telnet
ssh ve telnet aslında farklı protokoller olmalarına rağmen, aynı işi yaparlar.
Aralarındaki fark ise veriyi iletme şekilleridir. telnet karşıdaki bilgisayar ile konuşurken ilettiği veriyi düz metin(plain text) olarak iletirken, ssh bağlantı kurulurken ve bağlantı kurulduktan sonraki veri aktarımı aşamalarında karşıdaki bilgisayar ile kriptolu konuşur. Böylece ağınızı dinlemeye çalışabilecek kötü niyetli kişiler verilerinizi düz metin halinde değil sadece kriptolanmış halde görebileceklerdir.



Yukarıda yazılı olan temel şeyleri, ve kendi araştırmalarınız/okumalarınız (ilk kural okumaktır) sonucunda öğrendiklerinizi uyguladığınızda bile hala güvenlik için yapmanız gereken bir şey var: Güvenlik yamalarının uygulanması.
Dağıtım ile birlikte gelen ve daha sonra özel olarak kurulan programların güvenlik açıkları olabileceğini unutmamak gerekir. Bu yüzden güncelleme (update) mekanizmaları hayati önem kazanmaktadırlar. Bugün, bazı dağıtımlar (Redhat,
Mandrake, Debian vb.) içerdikleri bu tarz programlarla güncelleme işini otomatik hale getirebilmektedirler. Bu programlar ve güncelleme işlemleri ile ilgili ayrıntılı bilgi bu dağıtımların web sayfalarından edinilebilir.

Daha ileri okumalar için:
www.linuxnewbie.org
www.linuxdoc.org (Linux Belgeleri)
www.linux.org.tr
www.olympos.org
www.securityfocus.com
---------------------
§§§§§§§§§_§§§___§§§_§§§§§§§§§_§§§__§§§
___§§§____§§§___§§§_§§§___§§§_§§§_§§§_
___§§§____§§§___§§§_§§§§§§§§§_§§§§§§_
___§§§____§§§___§§§_§§§__§§§__§§§_§§§
___§§§____§§§§§§§§§_§§§___§§§_§§§__§§§

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ı