Linux'u Güvenli Hale Getirmek Gerek sunucu sistemi gerekse masa-üstü kişisel bilgisayarımız olarak linux, her geçen gün kullanıcı sayısını artırmaktadır. Buna paralel olarak linux çalışan sistemler, kötü niyetli kişilerin daha belirgin bir hedefi haline gelmektedir. Şu anda mutlu şekilde çalışmamıza izin veren linux`umuz, eğer gerekli önlemleri almazsak farkında bile olmadan başımızı ciddi belaya sokabilir. Bu belgede linux`a yeni başlayanlar ve orta derecede linux bilenler için birtakım güvenlik önlemlerinin nasıl alınacağını anlatmaya çalıştık. Bu önlemlerin bir kısmı tek aşamada ve basit bir şekilde yapılabileceği gibi bir kısmı da periyodik olarak ve özen gösterilerek yapılmalıdır. Belgemizin kronolojik bir sıra takip etmesi açısından konuya ilk olarak kurulum aşamasından başlamak istiyoruz. Temelde bilgisayarımızın güvenliğini 3 değişik aşamada gerçekleştirebiliriz: - Kurulum aşamasında - Kurulumdan hemen sonra - Ve kullanırken Temiz Kurulum: Eğer linux kuracağınız bilgisayarınızda daha önce kurulu olan herhangi bir linux sürümü varsa, sizin açınızdan tavsiye edilen edilen en güvenli kurulum, 'disk' e 'format' atarak yapacağınız bir kurulumdur. Bu şekilde 'disk' inizi sıfırlamış olup temiz bir kuruluma başlayabilirsiniz. Güvenlik Seviyesi: Bazı Linux sürümleri (örn: Mandrake 8.1) kurulum aşamasında bilgisayarımızı hangi güvenlik seviyesinde kuracağımızı sorar. Eğer kuracağımız sistem kritik bir iş yapacaksa veya önemli bilgiler barındıracaksa yüksek güvenlikte kurmamızda fayda vardır. Bu şekilde kurulum seçtiğimizde bazı güvenlik araçları kurulum aşamasında seçili hale gelecek ve bazı güvenlik ayarlarını kurulum programı otomatik olarak yapacaktir. Fakat, en yüksek seviyede kurulan bir sistem, herhangi bir saldırıda yapılan fakat normalde de oluşabilen bazı işlemlerde uyarı mesajı vereceğinden sizi gereksiz yere üzebilir. Bu nedenle kişisel kullanım için orta seviyede bir güvenlik ayarı yeterli olacaktir. Disk Bölme: İlk defa bir işletim sistemi kuracak birisi, 'disk' üstünde tek bir bölmenin yeterli olacağını düşünerek tüm sistemini bu bölmeye kurar. Linux'umuzun çalışması açısından fazla bir problem teşkil etmiyecek olan bu kurulum, hiç beklemediğimiz bir anda veri kaybımıza neden olabilir. Yoğun istekte bulunarak herhangi bir sunucu programımızın planladığımızdan daha fazla 'log' almasına ve tek olan 'disk' bölmesini doldurmasına neden olabilecek kötü niyetli bir arkadaşımız, böylelikle o esnada başka bir program tarafından 'disk' e yazılması gereken ve bize çok gerekli olan herhangi bir bilginin disk dolu olduğu için kaybolmasına neden olabilir. Bu nedenledir ki 'disk' bölme aşamasında a) Sistem dosyalarını koyacağımız kök bölmesi b) Çeşitli programların 'log' larının yazıldığı, 'mail' sunucusu çalışıyorsa, gelen mesajların yazıldığı, ve yazıcı dosyala- rının gönderildiği bir bölme c) Eğer sistemimizde bizden başka kullanıcıların da çalışmasını istiyorsak, onların programlarının çıktılarının yazıldığı bir bölme d) Eğer önemli belgelerimiz varsa ve sistemi tekrar kurmak gerektiğinde bu belgeleri başka bir yere taşımak istemiyorsak bunları koyacağımız başka bir bölme şeklinde 'disk' bölmeleri açmamız, hiç beklemediğimiz bir anda hayatımızı çok kolay bir hale getirebilir. Az Paket Seçimi: Kurulum aşamasında bizim işimizi halledecek ve yakın bir zamanda kullanmayı planladığımız paketleri seçmek güvenlik açısından önemlidir. Çünkü her geçen gün bir programın açığı bulunmakta ve yükleyeceğimiz her bir paket o anda sağlam olsa dahi potansiyel olarak güvenlik tehlikesi oluşturmaktadır. Yamaların Atılması: Daha önce bahsedildiği gibi kuracağınız sürümün bazi paketlerinin güvenlik açığı bulunabilir. Sürümünüzü öğrenen kötü niyetli arkadaşımız kullandığınız delik programın açığını kullanarak başınıza dertler açabilir. Bu nedenle kurulum yaptıktan sonra sürümünüze göre linux`unuza yamaları atmakta her zaman fayda vardır. Bunu yapmak için Mandrake ve RedHat`lerde 'rpm' komutunu, bu işi otomatik olarak yapmak istiyorsanız Mandrake'de 'MandrakeUpdate', RedHat`te 'autorpm' komutunu kullanabilirsiniz. Gereksiz Servislerin Kapatılması: Linux`umuzu kurup, yamalarını atıp tekrar sistemimizi başlattığımızda artık bilgisayarımızın açık kapılarını kapatma zamanı gelmiştir. Yabancı insanların bilgisayarımıza ulaşabileceği en temel yollardan birisi çalışan sunucu programlar üzerindendir. Bu nedenle sizin işinize yaramayan sunucu programların sisteminizde çalışmasına izin vermeyin. Kişisel bir masa-üstü linux`da sadece 'sshd' sunucu programının çalışması yeterlidir. Sunucu programları genelde 3 değişik şekilde çalıştırılır: 1- Sunucu programın ismini yazarak çaliştirma: Bu tip çalıştırma tamamen insiyatifinizde olan bir çalıştırma şeklidir. Genelde linux`unuza daha sonra kurduğunuz ve belirli zamanlarda ihtiyaç duyduğunüz sunucu programlarını çalıştırırken bu yolu izlersiniz. Eğer bu şekilde çalıştırdığınız sunucu programına ihtiyacınız yoksa 'ps -ef | grep sunucu_program_ismi' komutu ile 'process id' sini öğrenip, 'kill process_id' komutu ile bu sunucu proğramı öldürebilirsiniz. Eğer hala size direniyorsa 'kill -9 process_id' komutunu en son çare olarak düşünebilirsiniz. 2- Açılırken Otomatik Olarak Çalıştırılan Sunucu Programları: Başlangıçta çalışacak programlar '. rc' betikleri ile belirlenir. Linux`unuz açıldıktan sonra KDE ya da GNOME gibi grafiksel arabirim otomatik olarak çalıştırılıyorsa çalışma-düzeyiniz 5 demektir ve başlangıç betikleriniz /etc /rc. d/rc5. d dizini altında bulunur. Başlangıçta çalıştırılan betiklerin başlarında 'S' vardır. Eğer bu betiğin çalışmasını istemiyorsanız isminin baş harfini 'S' yerine 's' yapın. 'K' ile başlayan betikler çalışan servisleri öldürmek için kullanılır. İlk harften sonra gelen numaralar ise bu betiklerin çalıştırılma sıralarını belirler . Aşağıda bu betiklerin bir kısmını ve açıklamalarını göreceksiniz: S05apmd S10xntpd S11portmap S15sound S15netfs S20rstatd S20rusersd S20rwhod S20rwalld S20bootparamd S25squid S34yppasswdd S35ypserv S35dhcpd S40atd S45pcmcia S50snmpd S55named S55routed S60lpd S60mars-nwe S60nfs S72amd S75gated S80sendmail S85httpd S87ypbind S90xfs S95innd (Haber sunucusu) S99linuxconf Eğer başlangıç programlarını yukarda açıklanan şekilde değiştirmek zorunuza gidiyorsa bunun başka yolları da vardır. Çoğu dağıtımlarda bulabileceğiniz 'chkconfig', Mandrake`de '/usr/sbin/setuptool', RedHad`ta '/usr/bin/setup' yapılandırma programları ile istediğiniz başlangıç betiklerini açıp ya da kapatabilirsiniz. Bilgisayarınız açıldıktan sonra hangi sunucu programların çalıştığınız öğrenmek için 'netstat -an | grep -i listen' komutundan faydalanabilirsiniz.