Michael Jastremski Yazar Hakkında: Michael Jastremski yaklaşık dört yıldır Unix hack etmektedir. Sayfası genellikle http://westphila.net/mike adresinde bulunmaktadır. Andrew'a İngilizcesine yardım ettiği için teşekkür eder. |
Yaygın Linux Sürümlerine Güvenlik EklenimiÇeviri: Aret Özdemirci
Özet: Bu makale, sistem yöneticilerinin sistemlerini hackerlara karşı güvenli hale getirmeye yardım edebilecek ve Linux sistemlerinin güvenliğini geliştirecek çeşitli yolları tartışmaktadır.
GirişInternetdeki bilgisayarların güvenliğini tehlikeye sokacak geniş ölçekli saldırı teşebbüsleri olağan hale gelmiştir. Her geçen gün daha fazla Linux ve FreeBSD sunucuları imapd ve BIND kaynakları içindeki arabellek taşmasının da karıştığı, son zamanlardaki saldırıların hedefi oldular. Hergün, BUGTRAQ posta listesinin 20000'e yakın üyesi, her şekildeki ve boyuttaki açıkları ortaya dökmektedirler. (Eğer yalnızca bir güvenlik posta listesine üye olacaksanız, bu o listedir.). Bu 19305 üyeden birinin bir for() döngüsü yazabileceğini ve kes yapıştır mantığı içerisinde, mümkün olan en fazla sayıda bilgisayara girmeye teşebbüs edebileceğini varsaymak temkinli bir davranış olacaktır. Er geç bu döngü sizin bilgisayarınızın adresini oluşturacaktır. Hazırlanmak için bugünden başka zaman yoktur. Bazı uzmanların sizi inandırdıkları şeylere rağmen, güvenli bir bilgisayar kurmak ve bakımını sağlamak çok zor bir şey değildir. Emin sistem yönetimi alışkanlıkları, genel ağ tehditlerinden korunma olarak hizmet ederler. Bu makale, benim genel olarak ağa bağlı bir RedHat Linux sistemini biçimlendirirken aldığım tedbirleri açıklar. Bu makale bilgisayarınızı, başkalarının tehdit teşkil eden niyetlerinden korumak için anahatlar sunarken, bir eksiksiz başvuru kaynağı olması niyetlenilmemiştir. Aşağıda sunulanlar kurulumunuzun, ağ yazılımındaki bilinen bir açığın bir sonraki kurbanı olmasını önleyecek adımlardır. UYARI: Eğer ne yaptığınızdan emin değilseniz, yapmayın!Bazı adımlar sizin açınızdan belli bir derecede bilgiye sahip olduğunuzu varsayar. Alaska,Hawaii & Puerto Rico 'da garanti yoktur. En sonda okunması önerilen bazı kaynaklar belirtilmiştir. 1. Sisteminizden gereksiz bütün ağ servislerini kaldırın. Bilgisayarınıza bağlanılacak yol ne kadar azsa, bir hacker'ın bilgisayarınıza girmek için o kadar az yolu vardır. /etc/inetd.conf dosyasından ihtiyacınız olmayan herşeyi, satırın başına # işareti koyarak etkisiz hale getirin. Sisteminize telnet ile ulaşmaya ihtiyaç yok mu? O halde onu kaldırın. Aynı şey ftpd, rshd, rexecd, gopher, chargen, echo, pop3d ve friends için de geçerlidir. inetd.conf dosyasını düzenledikten sonra "killall -HUP inetd" komutunu çalıştırmayı unutmayın. Ayrıca, /etc/rc.d/init.d dizinini ihmal etmeyin. Bazı ağ servisleri (BIND, yazıcı iblisi) bu dizindeki dosyalardan başlatılan bağımsız programlardır. 2. SSH kurun. SSH, artık antika olan Berkeley r komutlarını iptal ederek, onların yerine yerleşir. http://www.cs.hut.fi/ssh adresindeki anasayfasında SSH için şöyle yazılmıştır: Ssh (Secure Shell)(Güvenli Kabuk) ağ üzerinden başka bir bilgisayara giriş yapan, uzak bir bilgisayarda komutlar çalıştıran ve bir bilgisayardan diğerine dosya taşıyan bir programdır. Güvensiz kanallar üze- rinden güvenli haberleşme sağlar. Hackerların ilginç bulacağı daha birçok işlevi vardır. SSH'yı http://ftp.rge.com/pub/ssh adresinden indirebilirsiniz. 3. Giriş yapılmayan hesapları kapatmak için vipw(1) kullanın. Şunu söylemek gerekir ki, RedHat Linux altında boş giriş kabuğuna sahip olan hesapların kabuk isimlerinin varsayılan değeri /bin/sh 'dır ki bu istemeyeceğiniz birşeydir. Ayrıca, hiçbir hesabınızın boş bir şifre alanına sahip olmamasına dikkat etmelisiniz. Aşağıdakiler, sağlıklı bir şifre dosyasının sistem kısmının nasıl olması gerektiğine örnektir. daemon:*:2:2:daemon:/sbin:/bin/sync adm:*:3:4:adm:/var/adm:/bin/sync lp:*:4:7:lp:/var/spool/lpd:/bin/sync sync:*:5:0:sync:/sbin:/bin/sync shutdown:*:6:0:shutdown:/bin:/sync halt:*:7:0:halt:/sbin:/bin:/sync mail:*:8:12:mail:/var/spool/mail:/bin/sync news:*:9:13:news:/var/spool/news:/bin/sync uucp:*:10:14:uucp:/var/spool/uucp:/bin/sync operator:*:11:0:operator:/root:/bin/sync games:*:12:100:games:/usr/games:/bin/sync gopher:*:13:30:gopher:/usr/lib/gopher-data:/bin/sync ftp:*:14:50:FTP User:/home/ftp:/bin/sync nobody:*:99:99:Nobody:/:/bin/sync 4. su ayrıcalığına ihtiyaç duymayacak, root tarafından sahiplenilmiş programlardan 's' bitini kaldırın. Bu, argümanları ilgili dosyaların ismi olacak şekilde, 'chmod a-s' komutunu kullanarak yapılabilir. Böyle su programları aşağıdakileri içerir ama sadece aşağıdakilerle sınırlı değildir.
Kişisel olarak etkisiz hale getirmek isteyeceğim her program isminin önüne bir * (asteriks) koydum. Unutmayın ki sisteminizin sağlıklı çalışabilmesi için bazı suid root programlarına ihtiyaç vardır. Bu nedenle dikkatli olmak gerekir. # find / -user root -perm "-u+s" */bin/ping */bin/mount -- yanlız root dosya sistemlerini mount etmeli. */bin/umount -- aynısı /bin/su -- Buna dokunmayın! /bin/login /sbin/pwdb_chkpwd */sbin/cardctl -- PCMCIA kartı kontrol araçları */usr/bin/rcp -- Ssh kullanın */usr/bin/rlogin -- " */usr/bin/rsh -- " */usr/bin/at -- cron kullanın ya da tamamiyle kapatın */usr/bin/lpq -- LPRNG kurun */usr/bin/lpr -- " */usr/bin/lprm -- " */usr/bin/mh/inc */usr/bin/mh/msgchk /usr/bin/passwd -- Dokunmayın! */usr/bin/suidperl -- Her yeni suidperl versiyonunda arabellek taşması var gibi gözüküyor. */usr/bin/sperl5.003 -- Gerçekten gerekliyse kullanın /usr/bin/procmail -- */usr/bin/chfn */usr/bin/chsh */usr/bin/newgrp */usr/bin/crontab */usr/X11R6/bin/dga -- X11'de de birçok arabellek taşması var. */usr/X11R6/bin/xterm -- " */usr/X11R6/bin/XF86_SVGA -- " */usr/sbin/usernetctl /usr/sbin/sendmail */usr/sbin/traceroute -- Bunu kullanmak için root şifresini girmeye dayanabilirsiniz. 5. Sendmail'i güncelleyin. Kaynağını ftp://ftp.sendmail.org/pub/sendma il adresinden indirin. Kaynak paketini açın ve kurulum talimatlarını okuyun. Fazladan birkaç dakikanız varsa Smrsh programını da kurun (sendmail ile paketlenmiştir). Bu program birçok kişinin keyfı programlara e-posta gondermek gibi, sendmail ile olan endişelerini adresler. sendmail.cf dosyasınına girin ve 'PrivacyOptions' seçeneğini 'goaway' olarak girin: O PrivacyOptions=goaway Eğer internet e-postası almayı planlamıyorsanız, SENDMAIL'I ALIŞ MODUNDA ÇALIŞTIRMAYIN (sendmail -bd)!. Bu durumda, /etc/rc.d/init.d/sendmail.init 'i etkisiz hale getirin ve 'killall -TERM sendmail' komutunu çalıştırın. Hala dışarıya e-posta gönderebilirsiniz. 6. BIND kullanıyorsanız güncelleyin. En son BIND sürümü http://www.isc.org adresinden bulunabilir. Aksi taktirde hepsini etkisiz hale getirin. 7. Çekirdeği tekrar derleyin. Ben genellikle, benimsenmiş çekirdeğin boyutunu küçültmek için yaparım. IPUCU:Bilgisayarınız bir firewall değilse bile tüm firewalling seçeneklerini açın . CONFIG_FIREWALL=y CONFIG_NET_ALIAS=y CONFIG_INET=y # CONFIG_IP_FORWARD seçili değildir # CONFIG_IP_MULTICAST seçili değildir CONFIG_SYN_COOKIES=y CONFIG_RST_COOKIES=y CONFIG_IP_FIREWALL=y CONFIG_IP_FIREWALL_VERBOSE=y # CONFIG_IP_MASQUERADE seçili değildir # CONFIG_IP_TRANSPARENT_PROXY seçili değildir CONFIG_IP_ALWAYS_DEFRAG=y CONFIG_IP_ACCT=y # CONFIG_IP_ROUTER seçili değildir # CONFIG_NET_IPIP seçili değildir CONFIG_IP_ALIAS=m 8. Yamalar uygulayın. RedHat'in yazılımlarıyla ilgili bilinen tüm sorunlar, Redhat'deki Errata sayfalarında bulunabilir. (sizin kullandığınız sürüme hangi yamaların uygulanması gerektiğini görmek için http://www.redhat.com/support/docs/errata.html adresine bakın.) RedHat, bu sayfaları güncel tutarak çok iyi bir iş yapmaktadır. Bu sayfalarda kurulum talimatlarıyla birlikte, ihtiyacınız olan RPM dosyalarının bağlantıları da bulunmaktadır. 9. tcp_wrappers 'ı biçimlendirin: Tcp_wrappers ağ üzerindeki hangi bilgisayarların sizin bilgisayarınızla haberleşebileceğini kontrol eden bir yöntemdir. Güvenlik bilgesi Wieste Venema tarafından yazılan bu paket, inetd 'den çalıştırılan (veya kütüphanesi içinden bağlanmış) programların önünde oturup, biçimlendirme dosyalarına başvurarak bir ağın ağ hareketini reddeder veya izin verir. Örneğin, evinizden bir ISS (Internet Servis Sağlayıcısı) vasıtasıyla ftp ve telnet bağlantılarına izin verirken geriye kalan herşeyi reddetmek için, aşağıdakiler /etc/hosts.allow dosyasına konur. in.ftpd : .dialup.sizin-iss.com : allow all : all : deny SSH, sendmail ve diğer paketleri tcp_wrappers desteğiyle yapılandırabilirsiniz.Daha ayrıntılı bilgi için tcpd(1) elyordam sayfasını okuyun. Solar Designer tarafından Güvenli Linux yamaları : |
Bu sanal yöreninin bakımı
Miguel Angel Sepulveda tarafından yapılmaktadır. © Michael Jastremski LinuxFocus 1998 |