|
İşletim SistemleriWindows,Linux,Macos...Tüm sorunların ve bilmen gerekenler. forumlarındaki Linux bölümü Linux Güvenliği konusu Giris Güvenilir sistem yapılan saldırılara maksimum seviyede karşı koya bilecek bir sistemdir. Bir sistemin güvenilir olması için sistemde saldırganlara yardımcı olabilecek açıklar ve zayıflıklar minimuma indirilmelidir. Bunun için sistem zamanında ... |
| | #1 |
| Resmi Üye ![]() | Giris Güvenilir sistem yapılan saldırılara maksimum seviyede karşı koya bilecek bir sistemdir. Bir sistemin güvenilir olması için sistemde saldırganlara yardımcı olabilecek açıklar ve zayıflıklar minimuma indirilmelidir. Bunun için sistem zamanında güncellenmeli, kullanılmayan servisler ,portlar kapatılmalı, sistemin temel görevi olmayan tümprogramlar kaldırılmalıdır. Aşağıdaki metinde tüm bunların nasıl yapılacağı ele alınmıştır. Metin 2 kısımdan oluşmaktadır a)Sistemi güvenilir yapmak için gereken güncellemeler Bu bölümda kernelin yeni versiyonlarının ve update’lerin ne işe yaradıkları ve nasıl yüklenecekleri anlatılmıştır. b)Gereksiz programların, portların, servislerin kaldırılması Bu bölümde portların , gereksiz servislerin neden tehlikeli olabilecegi ve nasıl kaldırılacağı anlatılmıştır. Güncelleme Bu bölümde RedHat Linux için güncellemenin nasıl yapılacağı anlatılmıştır. RedHat Linux’un her versiyonunun bir sürü update’i ve kernelinin de sürekli yeni versiyonları çıkar. Bunların çıkmasının nedeni, Bir önceki versiyondaki açıkları kapatmak, sistemi daha güvenli ve saglıklı yapmaktır. Bunların sürekli takip edilmesi ve sistemin güncel tutulması gerekmektedir. Bunları yapmazsanız sisteminizde çoğu Linux kullanıcısı tarafından bilinen açıklar kapatılmamış olur ve bu da sisteminize yapılabilecek saldırıların daha fazla zarar vermesine yol açar. Sistemin güncellenmesini iki alt başlık altında inceleyeceğiz. a) Kernelin yeni versiyonunun indirilmesi ve derlenmesi. b) Update’lerin geçilmesi. Kernelin Yeni Versiyonun Indirilmesi Ve Derlenmesi NOT: Kernelin derlenmesi fazla zor değil. Fakat daha önce hiç derlemediyseniz, dikkatli olmanızda ve daha önce bu işi yapmış olan birisini yanınızda bulundurmanızda fayda vardır. İlk yapmanız gereken iş kernelin en son versiyonunun indirilmesidir. [Sadece kayıtlı üyeler linkleri görebilirler. ] sayfasına gidiniz ve kernelin en son stable versiyonunu /tmp dizinine indiriniz.Daha sonra [Sadece kayıtlı üyeler linkleri görebilirler. ] /linux/ adresinden indirdiginiz kernelle ayni versiyonda olan patch’i indiriniz. Daha sonra asagidaki komutlari sırası ile çalıştırınız. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# cp /tmp/linux-2.x.tar.gz /usr/src [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# cp /tmp/patch-2x.gz /usr/src [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# cd /usr/src [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# gzip -cd linux-2.x.tar.gz | tar xvf - [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# gzip -cd path-2x.gz | patch -p0 Yukarıdaki komutlar vasıtası ile indirdiğiniz paketler /usr/src dizinine kopyalanır, açılır ve kernel’e patch uyğulanir. Bunları yaptıktan sonra aşağıdaki komutları da çalıştırınız [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# cd /usr/src/linux-2x [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# make mrproper Sıra kernelin configurasyonunu belirlemektedir. Bunun için make config komutunu çalıştırmanız lazım. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# cd /usr/src/linux-2x [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# make config make config komutuna alternatif olarak make menuconfig ve make xconfg komutlarını da çalıştıra bilirsiniz. make xconfig komtunu çalıştıra bilmeniz için startx’de olmaniz lazim. make config komutunu çalıştırdıktan sonra karşınıza bir sürü soru çıkacak. Kernelin neyi destekleyip, neyi desteklememesi gerektiğini burdan belirlemeniz lazim. Sorulara cevap verirken size gerekmeyen hiç bir pakete "Y" dememeye dikkat edin. Bu hem sizin kernel’in boyutunu küçültücektir, (Böylece kernel daha hızlı çalışacak ve daha az RAM kullanacaktır), hem de sisteminizin daha güvenli olmasını sağlayacaktır Daha sonra make dep ve make clean komutlarını çalıştirınız [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# cd /usr/src/linux-2x [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# make dep [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# make clean Bunlar bittikten sonra make zImage komutunu çalıştırınız [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# cd /usr/src/linux-2x [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# make zImage Daha sonra modulleri desteklemek için make modules ve make modules_install komutlarını çalıştırınız. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# cd /usr/src/linux-2x [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# make modules [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# make modules_install Yeni kerneliniz hazırdır, /usr/src/linux/arch/i386/boot/ dizini altındakı zImage dosyasıdır yeni kerneliniz. Bunu /boot dizinine ve ya floppy’den boot ediyorsaniz floppy’ye kopyalayınız. Daha sonra /etc/lilo.conf dosyasındaki image=/boot/vmlinuz-2x satırını değiştiriniz ve vmlinuz-2x yerine /boot/ dizinine kopyaladığınız dosyanın adını yazınız. /sbin/lilo komutunu çalıştırınız ve artık yeni kernel hazırdır. Makinenizi reboot ede bilirsiniz. NOT: Daha fazla bilgi için /usr/src/linux/ dizini altındakı README dosyasına baka bilirsiniz. Update’lerin Geçilmesi Update’ler kernel’in güncellenmesinden daha önemlidir. Çünki her update çok önemli bir açığı kapatır. İlk yapmanız gereken iş updatelerin indirilmesidir. Bunun için [Sadece kayıtlı üyeler linkleri görebilirler. ] adresine gitmeniz lazım. Bu sayfadan size gereken tüm update’lerin rpm paketlerini indiriniz. Bir paketin size gerekip-gerekmediğini oğrenmek için rpm -q komutunu paket adını parametre olarak verip çalıştırmanız lazım. Örneğin emacs paketinin sizde var olup-olmadığını oğrenmek istiyorsanız aşağıdaki komutu çalıştırınız. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# rpm -q emacs Eğer çıktı aşağıdaki gibiyse bu paket sizde var ve bunun update’ini indirmeniz lazım. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# rpm -q emacs emacs-20.5-7 [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# Çıktı bu şekilde değilde aşağıdaki gibiyse bu paket sizde zaten yok ve olmayan bir paketin update’ini indirmenize gerek yok [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# rpm -q x package x is not installed [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# Update’leri indirdikten sonra teker-teker geçilmesi lazım. Örnek paketin adı package-x.y.rpm ise bu paketin update’ini geçmek için update’lerin oldugu dizine geçerek aşağıdakı komutu çalıştırmanız lazım: [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# rpm -Uvh package-x.y.rpm Bu komutu indirdiğiniz tüm paketler için çalıştırdıktan sonra iş bitmiştir. Sisteminiz artık günceldir. Genel güvenlik Sisteminizin saldırılardan etkilenmesini istemiyorsanız, sisteminize erişimi minimuma indirmeli ve dışarıya sisteminiz hakkında minimum bilgi vermelisiniz. Sisteme minimum erişim saldırganın sisteme girişini elgelleyeceği gibi, sistem hakkında minimum bilgi vermek de saldırganın sisteminiz hakkında bilgi toplamasını engelleyecek ve işini zorlaştıracaktır. Basit bir finger komutu sisteminiz hakkında saldırgana az denemeyecek kadar bilgi veriyor. Bu bölümde sisteminizin maksimum şekilde güvenli olması için yapmanız gerekenler madde-madde ele alınmıştır. a) Password Sisteminiz çok kullanıcılı bir sistem ise, kullanıcıları kompleks ve uzun şifreler seçmeye zorlayın. Genelde , kırılamayacak şifre yoktur, fakat şifreler uzun ve kopleksse bu saldırganın işini zorlaştırır ve hatta belki çok zamanını aldığı için sisteminizi kır- maktan vaz geçire de bilir. Şifreleri kompleks ve uzun tutmak için ilk yapmaniz gereken şey kullanıcıları bu konuda uyarmak , daha sonra da sistemde bir takım önlemler almaktır. İlk olarak /etc/login.defs dosyasını herhangi bir editörde açarak PASS_MIN_LEN satırının sonundakı sayıyı (default olarak 5’tir) 8 yapınız. Daha sonra ise /etc/pam.d/login dosyasını yine bir editörde açarak auth ve account kelimeleriyle başlayan satırlardan sonra aşağıdaki satırı ekleyiniz password required /lib/security/pam_cracklib.so Bu satır , kullanıcıyı şifre seçerken kompleks şifreler seçmeye zorlayacaktır. NOT: Pam , sistem güvenliyini artırmak için önemli bir araçtır. Daha fazla bilgi almak için /usr/doc/pam-xx/ dizinine göz ata bilirsiniz. b) /etc/exports dosyası Bu dosya sisteminizdeki hangi dizinleri ortak kullanıma açtığınızı gösterir. NFS kullanmıyorsanız bu dosyanın içinin boş olmasına dikkat edin. Dosyanın attribute’unu da değiştirerek immutable (değişmez) yapınız. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# chattr +i /etc/exports c) /etc/inetd.conf dosyası Bu dosya sisteminizin dışarıya hangi hizmetleri verdiğinizi gösteren bir dosyadır. Dosya hizmet adlarıyla başlayan satırlardan oluşur. Satırın başında # işareti varsa bu satır comment’lenmiştir ve bu hizmet artık verilmemekktedir, direk hizmet programı adıyla başlıyorsa bu hizmet halen verilmektedir. Örneğin, aşağıdaki /etc/inetd.conf dosyasından götürülmüş satırlar bu sistemde ftp hizmetinin verildigini, telnet hizmetinin ise verilmediğini gösterir. ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd İlk olarak bu dosyanın modunu sadece root tarafından okunup-yazıla bilinecek şekilde değiştiriniz, başka kullanıcıların bu dosyayı görmeleri sistem hakkında gerektiğinden fazla bilgi almalarına neden olur. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# chmod 600 /etc/inetd.conf Daha sonra ise attribute’unu değiştirerek immutable yapınız. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# chattr +i /etc/inetd.conf Daha sonra sisteminizin vermesini istemediginiz hizmet progamlarını tespit ederek bu programın adıyla başlayan satırın başına # koyup bu satırı comment’leyerek hizmet programını kaldırınız. Örneğin sisteminizin artık finger’lere cevap vermesini istemiyorsanız önceden finger stream nowait root /usr/sbin/tcpd in.fingerd şeklinde olan satırı değiştirerek aşağıdakı şekle getiriniz #finger stream nowait root /usr/sbin/tcpd in.fingerd Sisteminiz temel görevleri arasında olmayan tüm hizmetleri kesinlike kaldırmanız lazım. inetd.conf dosyası ile işiniz bittikten sonra yaptığınız değişikliklerin aktif olması için aşağıdaki komutu çalıştırınız [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# killall -HUP inetd d) /etc/hosts.allow ve /etc/hosts.deny dosyalari Makinenize erişimi kısıtlamalısınız. Bunun için /etc/hosts.deny dosyasına aşağıdakı satırı ekleyiniz ALL: ALL@ALL, PARANOID Bu satır makinenize herhangi bir şekilde erişimi yasaklayacaktır. Tabii ki , bazi kullanıcılara bazı programları kullanmaları için izin vermeniz gereke bilir. Bu izinleri ise /etc/hosts.allow dosyası vasıtasıyla veriyorsunuz. Örnegin , makinenize 192.168.1.1 adresinden telnet çekile bilmesini istiyorsanız, /etc/hosts.allow dosyasına aşağıdakı satırı eklemeniz lazim: in.telnetd: 192.168.1.1 myhost.mydomain. myhost.mydomain 192.168.1.1 IP adresli makinenin domain name’idir. e)/etc/aliases dosyasi Saldırgan bu dosyayı kullanarak sisteminizde root hakkına sahip ola bilir. Bundan dolayı bu dosyayı açarak bin, daemon ve nobOdy kelimeleri ile baslayan satırlar hariç tüm satırları ,satır başına # koyarak comment’leyiniz. f) Sisteminizin ping’e cevap vermesini yasaklayınız Ping, TCP/IP protokollarındaki zayıflıklardan dolayı saldırganlar tarafından sıkça kullanılan bir programdır. Sisteminize ping çekilmesini yasaklarsanız, önemli bir açiği kapatmış olursunuz. Ayrıca sisteminize ping çekemeyen saldırgan sisteminiz hakkında daha az bilgi alır ve hatta belki sisteminizin şu an ayakta olup olmadığından bile haberi olmaz. Sisteminize ping çekilmesini yasaklamak için aşağıdaki komutu çalıştırmanız lazım: [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all Bunun sistemi reboot ettikten sonra da aktıf olmasını istiyorsaniz yukarıdaki satırı /etc/rc.d/rc.local dosyasına da eklemeniz lazım. g) Issue dosyası Sisteminiz telnet hizmeti veriyorsa, /etc/inetd.conf dosyasındakı telnet kelimesi ile başlayan satırı aşağıdaki gibi değiştiriniz telnet stream nowait root /usr/sbin/tcpd in.telnetd -h Daha sonra "killall -HUP inetd" komutu ile inetd’yi değerleri tekrar okumaya mecbur ediniz. /etc/inetd.conf dosyasını bu şekilde değiştirmeniz makinenize telnet çekildiginde ekrana gelen issue dosyasının içeriğinin görüntülenmemesini sağlıyacaktır. Bu ise sisteminiz hakkında dışarıya daha az bilgi verecek. Örneğin saldırgan kernel versiyo- nunuzu bilemiyecek ve hangi crack programını kullanması gerektiğine karar vermekte zorlanacaktır. h) /etc/host.conf dosyasi Bu dosyayı açarak order kelimesi ile başlayan satırı değiştirerek şu şekle getiriniz "order bind, hosts". Bu makinenizi Adres sorgulamasını ilk olarak DNS’den yapmasına zorlayacaktir. Daha sonra dosyaya şu satırı ekleyiniz. " nospoof on" .Bu satır da makinenizi IP address spoofing’e karşı dikkatli olmaya zorlayacaktır. i) Source routing IP Source routing saldirganların sistemi kırmak için kullandıkları başka bir yöntemdir. Bunu yasaklamak için aşağıdaki komutu çalıstırmanız gerekmektedir. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# for f in /proc/sys/net/ipv4/conf/*/accept_source_route;do echo 0> $f done Çalıştırdığınız komutun makine reboot edildikten sonra aktif olmasını istiyorsanız yukarıdaki komutu /etc/rc.d/rc.local dosyasına da eklemeniz lazım. j) SYN Cookie’ler. "SYN attack" DoS’a (Denial Of Service) neden ola bilecek önemli bir saldırı çesididir. Denial Of Service saldırıları sistemdeki tüm kaynakların tükenmesine yol açarak sizi makineyi reboot etmeye zorlar.Bu saldırıya karşı koymak istiyorsanız aşağıdaki komutu çalıştırmanız lazım [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# echo 1 > /proc/sys/net/ipv4/tcp_syncookies Komutun sistem reboot edildikten sonra da aktif olmasını istiyorsanız yukarıdaki komutu /etc/rc.d/rc.local dosyasına da eklemeniz lazım. k) /etc/services dosyası Bu dosya sistemdeki hizmet programlarının port numaralarını belirler Bu dosyanin kimse tarafından değiştirile ve görüle bilmemesi için aşağıdaki komutları çalıştırarak attribute’unu ve modunu değiştiriniz Saldırgan bu dosyaya yaza bilmesi halinde portları kafasına göre kullanıma açar, ve başka bir zaman geri döne bilmek için backdoor bıraka bilir. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# chattr +i /etc/services [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# chmod 600 /etc/services l) /etc/securetty dosyasi Bu dosyanın var olması sisteminize root olarak telnet çekilememsini saglar. Dosyayı açarak içine makineye root olarak login olma hakkı tanıdığınız terminallerin adını yaza bilirsiniz. Örneğin , makineye sadece birinci terminalden root olarak login oluna bilmesini istiyorsaniz dosyaya "tty1" satırını ekleyiniz, birinci ve ikince terminaller- den login olunmasını istiyorsanız "tty1" ve "tty2" satırlarını ekleyiniz. m) gereksiz hesaplar Sisteminizde default olarak gelen , fakat hiç bir şekilde kullanmadığınız hesaplar vardır. Örneğin gopher , uucp genelde kullanılmayan hesaplar. /etc/passwd dosyasına bakın ve uid’si 500’ün altında olan tüm kullanıcıları teker-teker gözden geçiriniz. Bunu kullanmıyorum, dediğiniz tüm hesapları kaldırınız. Çünki bu hesaplar herbiri saldırganın sisteminize girmesi için birer kapıdır. Bir kullanıcı hesabını kaldırmak için aşağıdaki komutu çalıştırmanız lazım: [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# userdel gopher Bu komut gopher kullanıcısını sisteminizden kaldırır. n) su izni Kimsenin su yapmasına izin vermemeniz lazım. Bunu yaparsanız, birisi bir şekilde root şifresini öğrendiyse bile ,root olarak telnet çekemeyeceği (bak. madde l. ) ve su izni olmadığı için sisteminizde root hakkı kazanamayacaktır. Kullanıcıların su yapmasını engellemek için aşağıdaki satırları /etc/pam.d/su dosyasına eklemeniz lazım. auth sufficient /lib/security/pam_rootok.so debug auth required /lib/security/pam_wheel.so group=wheel Bundan sonra su yapa bilmesini istediğiniz kullanıcı adlarını /etc/group dosyası içine wheel’le başlayan satırın sonuna virgülle ayırarak ekleye bilirsiniz. o) /etc/limit.conf Dos(Denial Of Service)’lerle karşı-karşıya kalmak istemiyorsanız bu dosyaya aşağıdaki satırları eklemeniz lazım * hard rss 5000 * hard nproc 20 Birinci satır bir kullanıcının maksimum 5 M RAM kullana bileceğini, ikinci satır ise bir kullanıcının sistemde maksimum 20 proses çalıştıra bileceğini belirtir. Tabii ki, bu sayıları kullanmak zorunda değilsiniz ve bunları değiştirip istediğiniz değerleri yaza bilirsiniz. p) Derleyiciler ve rpm. Sisteminizde Derleyicinin bulunması (gcc, cc) sisteminize sızmış saldırgana sisteminizde kaynak kodunu derleyerek çalıştırmasına izin verir.Bunu önlemek için derleyicileri (kullanmıyorsanız) kaldırınız. Ayni şey rpm komutu için de geçerlidir, sisteme sızmış bir saldırgan rpm komutunu kullanarak istediği programı sisteminize yükleye bilir. Fakat rpm derleyiciler gibi degil. Derleyiciyi uninstall ettikten sonra tekrar install ede bilirsiniz. Rpm için ise aynı şey geçerli değil.Yapmanız gereken şey rpm komutunu /bin/ dizininde saldırganin düşünemeyeceği bir yere kopyalamaktır. Hatta en saglami rpm’i bir floppy’ye kopyalamaktır.Gerektiği zaman rpm’i geri yerine kopyalayıp çalıştıra bilirsiniz. q) history size Sistemdeki su yapma yetkisine sahip (bak . madde n.) birisinin şifresini ele geçirmis saldırgan, bu kullanıcının history’sine bakar ve yanlışlıkla yazılmış bir şifre arar. Saldırgana minimum imkan tanımak için history uzunluğunu mümkün kadar kısa tutunuz, örnegin 20. Bunu yapmak için /etc/profile dosyasında HISTSIZE ve HISTFILESIZE satırlarını değiştirerek bu kelimelerden sonraki sayıyı değiştirerek 20 yazmanız yeterli olacaktır. r) /etc/lilo.conf Makineniz herkesin girip-çıka bileceği bir mekanda ise aşağıdaki ayarları yapmanızde fayda vardir. Makine sadece siz ve güvendiğiniz insanların gire bildigi bir yerde ise bu maddeyi geçe bilirsiniz. /etc/lilo.conf dosyasını açınız ve aşağıdaki satırları ekleyiniz timeout=00 restricted password="your_password" timeout satırı makine açılırken LILO’nun beklememesini sağlar ki bu da LILO’ya parametre verilmesini engeller. restricted satırı makinenin single modda açılması için şifre verilmesi gerektiğini belirtir. Şifreyi ise siz veriyorsunuz. (password satırının önüne yazarak). Bunları yaptıktan sonra şifrenizin gözükmemesi için aşağıdaki komutu çalıştırarak /etc/lilo.conf dosyasının izinlerini değiştirmeniz lazım [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# chmod 600 /etc/lilo.conf s) log’lar Sisteminizin herhangi bir şekilde kırılması durumunda , saldırı hakkında bilgi ala bileceginiz tek kaynak log’lardır. Bundan dolayı, sisteminizi kırmış olan bir saldırgan ,işi bittikten sonra log dosyalarını siler ve saldırı hakkında herhangi bir bilgi alamazsınız. Bunu önlemek için log dosyalarının saldırıyı yapan şahsın ulaşamayacağı bir yerde kopyalarının tutulması gerekir. En sağlıklı yöntem log’ların print edilmesidir. Bunun için /etc/syslog.conf dosyasının sonuna aşağıdaki satırı eklemeniz lazım. authpriv.* ; mail.*;local7.*;auth.*;daemon.info /dev/lp0 Fakat bu yontemin birtakım dezantajları var, makinenizde printer tanıtılmamış ola bilir, her log’un çıktısını almak fazla masraflı ve karışık ola bilir.Bundan dolayı en iyi yöntem log’ların başka bir makineye kopyalanmasıdır. Log’ları kopyalacağınız örnek makinenin adı logserver olsun.Bu durumda sizin makinenizin /etc/syslog.conf dosyasının sonuna şu satırı eklemeniz lazım. authpriv.* ; mail.*;local7.*;auth.*;daemon.info @logserver logserver makinesinde ise /etc/rc.d/init.d/syslog scriptindeki "daemon syslogd -m 0 " satırını "daemon syslogd -r -m 0" olarak değiştirmeniz ve değişikliği kayd ettikten sonra her iki makinede aşağıdaki komutu çalıştırarak syslog programını restart etmeniz lazım [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# /etc/rc.d/init.d/syslog restart t) /etc/rc.d/init.d dizini Bu dizinin altında programları çalıştıran scriptler yer almaktadır. Bu dizin altindakı tüm dosyaların izinlerini aşağıdaki komutla değiştiriniz [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# chmod 700 /etc/rc.d/init.d/* NOT: Genel olarak kullanıcılara mutlaka görmeleri gereken dosyalar ve dizinler hariç , hiç bir dosya ve dizine yazma ve okuma izni vermemeye çalışın. u) suid bitli dosyalar Bu tür dosyalar çalışma esnasında , işlemlerini devam ettirmek için root hakkı kazanırlar. Örneğin kullanıcı passwd komutunu çalıştırarak şifresini değiştirirken, passwd programı /etc/passwd dosyasına yazmak için root hakkı kazanır. Saldıgran bu tür programları farklı şekilde kullanarak sisteminize zarar vere bilir. Bundan dolayı sistemdeki tüm suid bitli dosyaların bulunup, bunlardan kullanıcıların kullanmak zorunda olmadıklarını tespit edilerek suid bitinin kaldırılması lazım.Sistemdeki suid bitli dosyalar aşağıdaki komut kullanılarak buluna bilir: [root@serveer /root]# find / -type f \\( -perm -04000 -o -perm -02000 \\) \\-exec ls -l **** \\; Çıktının aşağıdaki gibi olmasi lazım. -rwsr-xr-x 1 root root 34565 sep 22 23:35 /usr/bin/chage Buna benzer 20-30 civarında satır çıka bilir. En sağdaki /usr/bin/chage adını ve yerini gösterir. Sağdaki satıra bakın ve hangi dosyaların kullanıcı tarafından çalıştırılmaması gerektiğine karar verin. Daha sonra "chmod a-s dosya_adi" komutu ile bu dosyanın suid bitini kaldırınız.Örnegin kullanıcının /usr/sbin/traceroute ve /bin/ping kullanmasına ge- rek yok. O zaman aşağıdaki komutları çalıstırmanız lazım [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# chmod a-s /usr/sbin/traceroute [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# chmod a-s /bin/ping v) Gizli dosyalar Sisteminize crack programları ve ya passwd dosyaları getirmiş olan bir kullanıcı bu program ve dosyaların bulunamaması için onları gizli olarak tutar.Ve verdiği isimlerin dikkat çekici olmamasına dikkat eder. Örneğin bir crack programını ".. " adı ile tutar ve bu size sıradan bir şeymiş gibi gelir. Bundan dolayı sistemdeki gizli dosyaları sürekli inceliyor olmanız lazım. Sistemdeki gizli dosyaları görmek için aşağıdaki komutu çalıştırmanız lazım. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# find / -name ".*" Bu komut noktayla başlayan (gizli ) dosyaları bulur ve siz de size normal gözükmeyen dosyaları inceleye bilirsiniz. w) Herkes Tarafından Yazıla Bilen Dosya ve Dizinler Sisteminizi sürekli tarayarak sizin yazma izni verdiginiz dosya ve dizinler hariç hiç bir dosya veya dizinin herkes tarafından yazılabilir olmamasına dikkat etmeniz lazim. Sisteminizi kırmayı başarmış olan bir saldırgan sisteme tekrar geri döne bilmek bu tür dosyaları ve dizinleri backdoor olarak bırakmış ola bilir. Bu tür dosya ve dizinleri bulmak için aşağıdaki komutu çalıştırınız. [root@[Sadece kayıtlı üyeler linkleri görebilirler. ] /root]# find / -type f \\( -perm -2 -o -perm -20 \\) -exec ls -lg **** \\; |
|
| | #2 |
| Resmi Üye ![]() | Çekirdek Güvenliği Çekirdek, bilgisayarnızın ağını denetim altında tuttuğu için, çok güvenli olması ve bozulmaması önemli. En yeni ağ saldırılarını engellemek için, çekirdek sürümünüzü güncel tutmaya çalışmalısınız. Çekirdeklerinizi color=#0000ffftp://ftp.kernel.org adresinden, veya dağıtıcınızdan bulabilirsiniz. Ana Linux çekirdeğine, birleştirilmiş bir şifre yaması sağlayan uluslararası bir grup var. Bu yama, dışsatım kısıtlamaları yüzünden ana çekirdeğe dahil edilemeyen şeyler ve bazı şifreliyazımsal alt sistemler için destek sağlıyor. Daha fazla bilgi için: [Sadece kayıtlı üyeler linkleri görebilirler. ]. 2.0 Çekirdek Derleme Seçenekleri 2.0.x çekirdekleri için izleyen seçenekler geçerli. Bu seçenekleri çekirdek yapılandırma işlemi sırasında görürsünüz. Buradaki yorumların çoğu ./linux/Documentation/Configure.help belgesinden, aynı belge çekirdeğin make config aşamasında Help (Yardım) kısmında da kullanılıyor.
2.2.x çekirdekleri için, seçeneklerin çoğu aynı, fakat yeni bir kaç seçenek daha var. Buradaki açıklamaların çoğu, çekirdeği derlerken ki make config aşamasında kullanılan Yardım [Sadece kayıtlı üyeler linkleri görebilirler. ]ünün referans aldığı ./linux/Documentation/Configure.help belgesiyle aynıdır. Gereken seçeneklerin bir listesi için 2.0 açıklamalarına başvurun. 2.2 çekirdekteki en anlamlı değişiklik IP ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı kodudur. Artık ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı oluşturmak için, 2.0 çekirdeğindeki ipfwadm programının yerine ipchains programı kullanılıyor
Linux üzerinde güvenlik konusunda yardımcı olabilecek bir kaç blok ve karakter aygıtı mevcuttur. Çekirdek tarafından /dev/random ve /dev/urandom aygıtları, rastgele veri sağlama amacını taşır. Hem /dev/random hem de /dev/urandom, PGP anahtarlarının üretilmesinde, ssh bağlantılarında, ve rastgele sayıların gerektiği diğer uygulamalarda kullanılmak için yeteri kadar güvenli olmalıdır. Verilen herhangi bu kaynaklardan çıkan herhangi bir sayı dizisi için saldırganlar bir sonraki sayıyı tahmin edememeli. Bu kaynaklardan elde edilen verinin kelimenin tam anlamıyla rastgele olması için çok fazla çaba ortaya konmuştur. Bu iki cihaz arasındaki tek fark, /dev/random cihazının elindeki rastgele baytların tükenmesi ve yenileri toplanması için beklemek zorunda oluşunuzdur. Yani kullanıcı tarafından üretilen entropinin sisteme girmesi için beklemesi durumunda uzun bir süre çalışması durabilir. Dolayısıyla /dev/random’ı kullanırken dikkatli olmak zorundasınız. (Belki de yapılacak en iyi şey bu cihazı hassas anahtarlama bilgisini üretirken kullanmak, ve kullanıcıya "Tamam, yeterli" denilene kadar klavyesindeki tuşlara rastgele basmasını söylemektir.) /dev/random yüksek kalitede entropi sağlar, kesmeler arasındaki farklı zamanları ölçme vb. şeylerden elde edilir. Yeterli bitte rastgele veri var olana kadar çalışması durur. /dev/urandom benzeri bir aygıttır, fakat depolanmış entropi azalmaya başladığında, olan kadarının, güçlü bir şifreliyazımsal hash değerini döndürür. Bu, rastgele veri kadar güvenli olmasa da çoğu uygulama için yeterli derecede güvenlidir. Bu aygıtlardan okuma yapmak için aşağıdaki gibi bir şey kullanabilirsiniz: root# head -c 6 /dev/urandom | mimencode Bu, konsola sekiz rastgele karakter yazar, örneğin parola üretimi için kullanılabilir. mimencode programını metamail paketi içinde bulabilirsiniz. Algoritmanın açıklaması için /usr/src/linux/drivers/char/random.c’ye bi göz atın. |
|
| | #3 |
| Resmi Üye ![]() | Parola Güvenliği ve Şifreleme Bugün en önemli güvenlik özelliklerinden biri parolalardır. Hem sizin hem de tüm kullanıcılarınız için, güvenli, tahmin edilemeyen parolalara sahip olmak önemli bir konudur. Yakın zamanlı Linux dağıtımlarının çoğu, kolay tahmin edilebilir bir parola belirlemenizi engelleyen passwd programları ile birlikte gelir. passwd programınızın güncel ve bu özelliklere sahip olduğundan emin olun. Şifrelemenin derinlemesine tartışılması bu belgenin konusu ötesindedir, ama bir giriş yapılabilir. Şifreleme gerçekten yararlıdır, hatta bu zaman ve çağda gereklidir de. Şifrelemenin bir çok yöntemi vardır ve her biri kendi özellikler kümesini birlikte getirir. Bir çok Unix (ve Linux bir istisna değil), parolalarınızı şifrelemek için çoğunlukla tek yönlü, DES (Data Encryption Standard - Veri Şifreleme Standardı) adında bir algoritma kullanır. Şifrelenmiş parola (tipik olarak) /etc/passwd veya (daha az sıklıkla) /etc/shadow dosyasının içinde tutulur. Sisteme giriş yapmaya kalktığınızda, girmiş olduğunuz parola tekrar şifrelenir, ve parola dosyalarının içindeki ile karşılaştırılır. Eğer uyarsa, o zaman aynı parola olmalı demektir ve erişime izin verilir. DES aslında iki yönlü bir şifreleme algoritmasıdır (doğru anahtar olduğunda, bir mesajı şifreleyebilir veya şifreli bir mesajın şifresini çözebilirsiniz). Bununla beraber, DES’in Unixler üzerindeki değişik biçimi tek yönlüdür. Bunun anlamı, /etc/passwd (veya /etc/shadow) dosyasının içindeki şifrelenmiş parolaya bakarak, şifreleme algoritmasını tersine çevirmek yoluyla parolayı bulmak mümkün olmamalıdır. "Crack" veya "John the Ripper" programlarında olduğu gibi kaba kuvvet saldırıları, parolanızı yeterince rastgele değilse bulabilir. PAM modülleri (aşağıda), parolalarınız ile birlikte başka bir şifreleme algoritmasının kullanılmasına izin verir (MD5 vb.). Crack programını kendi lehinizde de kullanabilirsiniz. Kendi parola veritabanınızı, güvensiz parolalara karşı Crack programını çalıştırarak düzenli olarak denetlemeyi düşünün. Güvensiz parolaya sahip kullanıcıyla iletişim kurarak, parolasını değiştirmesini isteyebilirsiniz. İyi bir şifrenin nasıl seçildiği hakkında bilgi almak için [Sadece kayıtlı üyeler linkleri görebilirler. ] adresine gidebilirsiniz. PGP ve Açık Anahtarlı Şifreliyazım Açık anahtarlı şifreliyazım, örneğin PGP’de kullanılan gibi, bir anahtarı şifreleme, diğer bir anahtarı da şifre çözme için kullanır. Geleneksel şifreleme tekniklerinde, şifreleme ve şifre çözme için aynı anahtar kullanılır. Bu anahtarın, her iki tarafta da bulunması, dolayısıyla bir şekilde bir tarafdan diğer tarafa güvenli şekilde aktarılmış olması gerekir. Şifreleme anahtarının güvenli aktarımını kolaylaştırmak için, açık anahtarlı şifreleme iki ayrı anahtar kullanır: bir açık anahtar ve bir de özel anahtar. Herkesin açık anahtarı diğerlerine şifreleme yapabilmesi amacıyla "açık"tır, ama herkes özel anahtarını, doğru açık anahtarla yapılmış şifreyi açabilmek için diğerlerinden gizli tutar. Hem açık anahtarın hem de gizli anahtar şifreliyazımın bazı avantajları vardır. İkisi arasındaki farklar hakkında bilgi edinmek için the [Sadece kayıtlı üyeler linkleri görebilirler. ] belgesine göz atabilirsiniz. PGP (Pretty Good Privacy, Oldukça İyi -Kişisel- Gizlilik) Linux’ta iyi desteklenir. 2.6.2 ve 5.0 sürümlerinin iyi çalıştığı biliniyor. İyi bir PGP tanıtımı ve nasıl kullanıldığı ile ilgili bilgiyi PGP SSS içermektedir: [Sadece kayıtlı üyeler linkleri görebilirler. ] Ülkeniz için uygun sürümü kullandığınızdan emin olun. ABD Hükümetinin dışsatım sınırlamalarından dolayı, güçlü şifrelemenin elektronik yollarla ülke dışına aktarılması yasaktır. ABD dışsatım denetimleri, artık ITAR tarafından değil, EAR (Export Administration Regulations - Dışsatım Yönetim Düzenlemeleri) tarafından idare edilmektedir. Ayrıca, Linux üzerinde PGP yapılandırmasını adım adım anlatan bir rehber [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde bulunmaktadır. Bu rehber PGP’nin uluslararası sürümleri için yazılmıştır, ama ABD sürümü için de uyarlanabilir. Bunun yanısıra Linux’un son sürümleri için bir yamaya ihtiyacınız olabilir. Bu yamaya color=#0000ffftp://metalab.unc.edu/pub/Linux/apps/crypto adresinden ulaşabilirsiniz. PGP’nin ücretsiz ve açık kaynak şekliyle yeniden hayata geçirme amacını taşıyan bir proje var. GnuPG, PGP’nin yerini alacak tamamlanmış ve ücretsiz bir yazılım. IDEA veya RSA’yı kullanmadığı için sınırlandırma olmaksızın kullanılabilir. GnuPG aşağı yukarı [Sadece kayıtlı üyeler linkleri görebilirler. ] ile uyumlu. Daha fazla bilgi için GNU Gizlilik Nöbetçisi ana sayfasına bakabilirsiniz: [Sadece kayıtlı üyeler linkleri görebilirler. ]. Şifreliyazım ile ilgili daha fazla bilgi RSA şifreliyazım SSS’ında bulunabilir: [Sadece kayıtlı üyeler linkleri görebilirler. ]. Burda, "Diffie-Hellman", "Açık-Anahtarlı Şifreliyazım", "Sayısal Sertifika" vb. konular hakkında bilgi bulabilirsiniz. SSL, S-HTTP, HTTPS ve S/MIME Kullanıcılar sık sık çeşitli güvenlik ve şifreleme protokolleri arasındakı farkları ve nasıl kullanıldıklarını sorar. Bu bir şifreleme belgesi olmamakla birlikte her bir protokolün ne olduğunu ve daha fazla bilginin nerde bulunabileceğini açıklamak iyi bir fikir olabilir.
CIPE ve diğer veri şifreleme biçimlerinin yanında, IPSEC’in de Linux için bir kaç hayata geçirilme örneği vardır. IPSEC, IP ağ düzeyinde şifreliyazımsal-güvenli iletişimler yaratmak ve kimlik doğrulama, bütünlük, erişim denetimi ve gizlilik sağlayabilmek amacıyla IETF tarafından gösterilen bir çabadır. IPSEC ve İnternet taslağı üzerinde daha fazla bilgiye [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinden ulaşabilir, ayrıca anahtar yönetimini içeren diğer protokollere ve bir IPSEC mektuplaşma (haberleşme) listesi ve arşivlerine ulaşabilirsiniz. Arizona Üniversitesi’nde geliştirilen, Linux için x-çekirdek (x-kernel) uygulaması, x-çekirdek adı verilen ağ protokollerinin hayata geçirilmesi için nesne tabanlı bir iskelet kullanır. Bununla ilgili bilgi [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde bulunabilir. En basit anlatımla, x-çekirdek, mesajların çekirdek düzeyinde aktarılması yöntemidir, ki bu hayata geçirilmesini kolaylaştırır. IPSEC’in ücretsiz bir diğer uygulaması da Linux FreeS/WAN IPSEC’tir. WWW sayfalarında belirtildiğine göre, "Bu servisler, güvenmediğiniz ağların içinde güvenli tüneller oluşturmanızı sağlar. Güvenilmeyen ağdan geçen herşey IPSEC ağ geçidi tarafından şifrelenir ve diğer uçtaki ağ geçidinde şifresi çözülür. Sonuç bir Sanal Özel Ağ, yani VPN’dir (Virtual Private Network). Bu, bir takım farklı sitelerdeki güvensiz İnternet ile birbirine bağlı bulununan makineler içerdiği halde, etkin anlamda özel bir ağdır." [Sadece kayıtlı üyeler linkleri görebilirler. ]ınıza indirmek isterseniz, [Sadece kayıtlı üyeler linkleri görebilirler. ], adresinden ulaşabilirsiniz. Bu belge yazıldığı sırada sürüm 1.0 henüz çıkmıştı. Diğer şifreleme biçimleri gibi, bu da dışsatım sınırlamaları nedeniyle çekirdek ile birlikte dağıtılmıyor. ssh (Güvenli Kabuk) and stelnet ssh ve stelnet uzak sistemlere giriş yapabilmenizi ve şifreli bir bağlantı kurabilmenizi sağlayan programlar grubudur. openssh ise rlogin, rsh ve rcp’nin yerine geçen güvenli bir programlar grubudur. Kullanıcıların kimliğini doğrulamak için ve iki [Sadece kayıtlı üyeler linkleri görebilirler. ] arasındaki iletişimi şifrelemek için açık anahtarlı şifreliyazım tekniğini kullanır. Uzaktaki bir bilgisayara güvenli şekilde giriş yapmak veya bilgisayarlar arasında veri kopyalama yapmak, ama bu sırada gelebilecek ortadaki-adam (oturum kaçırma) ve DNS taklit saldırılarını engellemek amacıyla kullanılabilir. Bağlantılarınız arasındaki verilerı sıkıştırır ve bilgisayarlar arasındaki X11 iletişimini güvenli hale getirir. Şu anda bir çok ssh uygulaması mevcut. Data Fellows tarafından hayata geçirilen özgün ticari sürümü [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde bulunabilir. Mükemmel Openssh uygulamasında, Data Fellows ssh’sinin önceki sürümlerinden biri taban oluşturmuş ve patentli veya tescilli herhangi bir parça bulunmaması için tamamen yeniden bir çalışma yapılmıştır. BSD lisansı altında ücretsiz olarak dağıtılmaktadır: [Sadece kayıtlı üyeler linkleri görebilirler. ]. ssh’yi sıfırdan yeniden yazmak amacıyla, "psst..." adıyla başlatılan bir açık kaynak kodlu bir proje daha mevcut. Daha fazla bilgi için: [Sadece kayıtlı üyeler linkleri görebilirler. ] ssh’yi [Sadece kayıtlı üyeler linkleri görebilirler. ] iş istasyonunuzdan Linux ssh sunucunuza bağlanmak amacıyla da kullanabilirsiniz. Ücretsiz olarak dağıtılan bir çok [Sadece kayıtlı üyeler linkleri görebilirler. ] istemcisi de mevcut, bunlardan birine [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinden ulaşabilirsiniz. Data Fellows’un ticari bir uygulamasına ise aşağıdaki adresten ulaşılabiliyor olmalı: [Sadece kayıtlı üyeler linkleri görebilirler. ]. SSLeay, Netscape’in Güvenli Soket Katmanı protokol uygulamasının, Eric Young tarafından yazılan ücretsiz bir sürümü. Güvenli telnet gibi bazı uygulamalar, Apache için bir modül, bir takım veritabanları ve DES, IDEA ve Blowfish algoritmaları SSLeay’in içinde bulunabilir. Bu kütüphaneyi kullanarak, telnet bağlantısı üzerinde şifreleme yapan güvenli bir telnet uygulaması oluşturuldu. SSH’nin tersine, stelnet SSL’yi, Netscape tarafından geliştirilen Güvenli Soket Katmanı’nı kullanıyor. Güvenli telnet ve Güvenli FTP hakkında bilgiyi SSLeay SSS’ından başlayarak bulabilirsiniz: [Sadece kayıtlı üyeler linkleri görebilirler. ]. Bir diğer güvenli telnet/ftp uygulaması ise SRP. WWW sayfalarından: "SRP projesi, dünya çapında ücretsiz kullanım için güvenli İnternet yazılımı geliştiriyor. Tamamen güvenli bir Telnet ve FTP dağıtımından başlayarak, ağ üzerindeki zayıf kimlik doğrulama sistemlerini değiştirmeyi, bunu yaparken de güvenlik uğruna kullanıcı-dostluğunu kurban etmemeyi amaçlıyoruz. Güvenlik, öntanımlı olmalı, bir seçenek değil!" Daha fazla bilgi için: [Sadece kayıtlı üyeler linkleri görebilirler. ] PAM - Takılabilir Kimlik Doğrulama Modülleri Red Hat Linux dağıtımlarının yeni sürümleri, "PAM" adı verilen birleşmiş bir kimlik doğrulama tasarımı ile birlikte geliyor. PAM, kimlik doğrulama yöntem ve gereksinimlerinizi çalışma kesilmeksizin değiştirmenize izin veriyor ve ikililerinizin yeniden derlenmesine gerek bırakmaksızın bütün yerel kimlik doğrulama yöntemlerinizi çevreliyor. PAM yapılandırması, bu belgenin konusu dışında, bununla birlikte daha fazla bilgi için PAM sitesini şöyle bir gözden geçirmeyi ihmal etmeyin: [Sadece kayıtlı üyeler linkleri görebilirler. ]. PAM ile yapabileceklerinizden sadece bir kaçı:
# # Kullanıcılar için rsh/rlogin/rexec kullanımını yasakla # login auth required pam_rhosts_auth.so no_rhosts Şifreliyazımsal IP Sarma (CIPE)Bu yazılımın birincil amacı (gizlice dinleme, trafik çözümlemesi ve araya sahte mesaj sokmaya karşı), İnternet gibi güvensiz paket ağı boyunca oluşturulan alt ağ bağlantılarını güvenli hale getirmede bir kolaylık sağlamaktır. CIPE veriyi ağ düzeyinde şifreler. Bilgisayarlar arasında ağ üzerinde seyahat eden paketler şifrelenir. Şifreleme motoru, paketleri alan ve gönderen sürücüye yakın bir yerdedir. Bu, verileri soket düzeyinde bağlantılara göre şifreleyen SSH’den farklıdır. Farklı bilgisayarda çalışan programlar arası mantıksal bağlantılar şifrelenir. CIPE, Sanal Özel Ağ yaratmak amacıyla tünellemede kullanılabilir. Düşük-düzey şifrelemenin, uygulama yazılımında değişiklik yapmaksızın VPN’de bağlı iki ağ arasında şeffaf şekilde çalıştırılabilme getirisi vardır. CIPE belgesinden özet: IPSEC standartları, (diğer şeyler arasında) şifrelenmiş VPN’ler oluşturmak için kullanılabilecek protokoller kümesini tanımlar. Bununla birlikte, IPSEC, bir çok seçeneği olan ağır ve karışık bir protokol kümesidr, protokolün bütün olarak hayata geçirilebildiği durumlar nadirdir ve bazı konular (anahtar idaresi gibi) tam olarak çözülmemiş durumdadır. CIPE, değiştirgelenebilen bir çok şeyin (kullanılan asıl şifreleme algoritmasının seçimi gibi) kurulum zamanındaki sabit bir seçim olduğu daha basit bir yaklaşım kullanır. Bu esnekliği kısıtlar, ama daha basit (ve dolayısıyla daha etkili, böcek ayıklamasını kolaylaştıran) bir uygulama olanağı sağlar. Daha fazla bilgi [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde bulunabilir. Diğer şifreleme biçimleri gibi, dışsatım kısıtlamaları yüzünden çekirdek ile birlikte dağıtılmamaktadır. Kerberos Kerberos, MIT’teki (Massachusetts Teknoloji Enstitüsü) Athena Projesi tarafından geliştirilen bir kimlik doğrulama sistemidir. Kullanıcı sisteme giriş yaptığında, Kerberos kullanıcının kimliğini doğrular (bir parola kullanarak) ve kullanıcıya ağa dağılmış diğer sunucular ve bilgisayarlara kimliğini kanıtlamak için bir yol sağlar. İşte bu kimlik doğrulama rlogin gibi programlar tarafından kullanılır (.rhosts dosyası yerine), ve kullanıcıya diğer bilgisayarlara parolasız girebilmesi için izin verilir. Bu kimlik doğrulama yöntemi posta sistemi tarafından da mektubun doğru kişiye dağıtıldığından emin olmak ve gönderen kişinin iddia ettiği kişi olduğunu garanti altına almak amacıyla kullanılabilir. Kerberos ve birlikte gelen diğer programlar, kullanıcıların başka birini "taklit" yoluyla sistemi yanıltmasını engeller. Ne yazık ki, Kerberos’u kurmak kökten değişiklik ister, bir çok standard programın yenileriyle değiştirilmesini gerektirir. Kerberos hakkında daha fazla bilgi almak için [Sadece kayıtlı üyeler linkleri görebilirler. ] (SSS)’a, kodu almak içinse [Sadece kayıtlı üyeler linkleri görebilirler. ] adresine bakabilirsiniz. [Kaynak: Stein, Jennifer G., Clifford Neuman, and Jeffrey L. Schiller. "Kerberos: An Authentication Service for Open Network Systems (Kerberos: Açık Ağ Sistemleri için Bir Kimlik Doğrulama Servisi") USENIX Konferans Tutanakları, Dallas, Texas, Winter 1998.] Kerberos, [Sadece kayıtlı üyeler linkleri görebilirler. ]ınızın güvenliğini iyileştirmede ilk adımınız olmamalı. Oldukça kapsamlı olduğu gibi, örneğin SSH kadar yaygın olarak da kullanılmamaktadır. Gölge Parolalar Gölge parolalar, şifrelenmiş parola bilgilerinizi normal kullanıcılardan gizli tutmanın bir yoludur. Hem Red Hat hem de Debian Linux dağıtımlarının yeni sürümleri, gölge parolaları var sayılan yapılandırmada kullanıyor, fakat diğer sistemlerde, şifrelenmiş parolalar, herkesin okuyabileceği şekilde /etc/passwd dosyasında saklanıyor. Herhangi biri bunlar üzerinde parola-tahmin programları kullanarak ne olduklarını bulmaya çalışabilir. Gölge parolalar ise tam tersine /etc/shadow dosyasında saklanır ve sadece yetkili kullanıcılar okuyabilir. Gölge parolalar, kullanılabilmek için, parola bilgisine erişime gereksinim duyan bütün yararlı programlar tarafından destekleniyor olmalıdır. PAM (yukarıda) de bir gölge modülünün takılmasına izin verir ve çalıştırabilir dosyaların yeniden derlenmesini gerektirmez. Daha fazla bilgi için Shadow-Password HOWTO (Gölge-Parola NASIL) dosyasına başvurabilirsiniz: [Sadece kayıtlı üyeler linkleri görebilirler. ]. Yalnız oldukça eski olabilir ve PAM’ı zaten destekleyen dağıtımlar için gerek yoktur. "Crack" ve "John the Ripper" Herhangi bir nedenle passwd programı tahmini-zor parolalar seçmeye zorlayamıyorsa, bir parola-kırıcı program çalıştırmak, ve kullanıcılarınızn parolalarının güvenli olduğundan emin olmak isteyebilirsiniz. Parola kıran programlar basit bir düşünceye dayanarak çalışır: Sözlükteki her sözcüğü ve sözcüklerden türeyen ifadeleri dener. Önce bunları şifreler, daha sonra sistemdeki şifrelenmiş parola ile karşılaştırır. Eğer birbirini tutarsa, parolayı bulmuş olurlar. En dikkate değer ikisi "Crack" ve "John the Ripper" olmak üzere ([Sadece kayıtlı üyeler linkleri görebilirler. ]) ortalarda dolaşan bir kaç program mevcuttur. Bu programlar çok fazla işlemci zamanı alırlar, fakat önce kendiniz çalıştırarak ve zayıf parolası olan kullanıcıları farkederek herhangi bir saldırganın bunları kullanarak sisteme girip giremeyeceğini öğrenebilirsiniz. Dikkat edilmesi gereken bir nokta, bir saldırganın bu programları kullanabilmesi için, önce başka bir delik kullanarak /etc/passwd dosyasını okumuş olması gerekir ve bu tür delikler düşündüğünüzden daha yaygındır. Güvenlik, en güvensiz [Sadece kayıtlı üyeler linkleri görebilirler. ] kadar güçlü olduğundan, belirtilmelidir ki, eğer ağınızda [Sadece kayıtlı üyeler linkleri görebilirler. ] makineler varsa L0phtCrack programına da bir göz atmak isteyebilirsiniz. L0phtCrack [Sadece kayıtlı üyeler linkleri görebilirler. ] için bir parola kırma uygulamasıdır: [Sadece kayıtlı üyeler linkleri görebilirler. ] CFS - Şifreliyazımsal Dosya Sistemi ve TCFS - Şeffaf Şifreliyazımsal Dosya Sistemi CFS bütün dizin ağaçlarını şifrelemenin ve kullanıcıların bu dizinlerde şifreli dosyalar saklayabilmesini sağlamanın bir yoludur. Yerel makinede çalışan bir NFS sunucusundan yararlanır. RPM dosyalarını, [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinden ve nasıl çalıştığı hakkında daha fazla bilgiyi ise color=#0000ffftp://ftp.research.att.com/dist/mab/ adresinden bulabilirsiniz. TCFS, dosya sistemine daha fazla bütünlük katarak CFS’in geliştirilmiş halidir, böylece dosya sisteminin şifrelenmiş olduğu kullanıcılara şeffaf olur. Daha fazla bilgi: [Sadece kayıtlı üyeler linkleri görebilirler. ]. Ayrıca tüm dosya sistemleri üzerinde de kullanılabilir. Dizin ağaçları üzerinde de çalışılabilir. X11, SVGA ve Görüntü Güvenliği X11 Saldırganların parolalarınızı yazarken çalmasını, ekranda okuduğunuz belge ve bilgileri okumasını, hatta root erişimi sağlama için bir delik kullanmasını engellemek amacıyla, çizgesel görüntünüzü güvenli hale getirmeniz önem taşır. Ağ üzerinde uzak X uygulamaları çalıştırmak da, koklayıcıların uzak sistemle olan tüm etkileşiminizi görmeleri açısından, tehlike dolu olabilir. X bir takım erişim-denetim mekanizmalarına sahiptir. Bunların en basiti [Sadece kayıtlı üyeler linkleri görebilirler. ] bazında olandır. Görüntünüze erişmesine izin verdiğiniz bilgisayarlar için xhost programını kullanırsınız. Bu kesinlikle çok güvenli değildir, çünkü biri makinenize erişim sağlarsa, xhost + saldırganın makinesi yaparak rahatlıkla girebilir. Ayrıca, güvensiz bir makineden erişime izin verirseniz, oradaki herhangi biri görüntünüzü bozabilir. Giriş yapmak için xdm (X Display Manager, X Görüntü Yöneticisi) kullanırken, çok daha iyi bir erişim yönteminiz vardır: MIT-MAGIC-COOKIE-1. 128 bitlik bir kurabiye üretilir ve .Xauthority dosyanızda saklanır. Eğer uzak bir makineye görüntü erişim izni vermek isterseniz, xauth komutunu ve .Xauthority dosyanızdaki bilgiyi bunu sağlamak için kullanabilirsiniz. Remote-X-Apps mini-howto (Uzak-X-Uygulamaları Mini-NASIL) belgesine bir göz atabilirsiniz: [Sadece kayıtlı üyeler linkleri görebilirler. ]. Güvenli X bağlatıları için ssh da kullanabilirsiniz. Bunun son kullanıcıya şeffaf olması avantajı vardır ve ağda şifrelenmemiş hiç bir veri akışının olmadığı anlamına gelir. Ayrıca, X sunucunuzu ’-nolisten tcp’ seçeneği ile çalıştırarak, uzaktan erişimi tamamen kapatabilirsiniz. Bu, sunucunuza tcp soketleri üzerinden herhangi bir ağ bağlantısına engel olacaktır. En güvenilir yol, konsola giriş yapmak için xdm, üzerinde X programları çalıştırmak istediğiniz uzak sitelere gitmek içinse ssh kullanmaktır. SVGA SVGAlib programları, Linux makinenizin [Sadece kayıtlı üyeler linkleri görebilirler. ] donanımına erişmek için tipik olarak SUID-root’tur. Bu onları çok tehlikeli yapar. Eğer göçerlerse, kullanılır bir konsol almak için tipik olarak makinenizi yeniden başlatmak zorunda kalırsınız. SVGA programlarınızın düzgün olduğundan, en azından bir şekilde güvenilir olduğundan emin olun. Daha da iyisi, hiç çalıştırmayın. GGI (Genel Çizgesel Arabirim Projesi) Linux GGI projesi, Linux’ta [Sadece kayıtlı üyeler linkleri görebilirler. ] arabirimlerinden kaynaklanan bir takım problemleri çözmeyi deneyen bir projedir. CGI, bir parça [Sadece kayıtlı üyeler linkleri görebilirler. ] kodunu Linux çekirdeğine taşır, sonra [Sadece kayıtlı üyeler linkleri görebilirler. ] sistemine erişimi denetler. Bu, çekirdeğinizin iyi bir durumunun herhangi bir zamanda tekrar çağrılabileceği anlamına gelir. Verdikleri güvenli anahtar sayesinde, konsolunuzda çalışan bir Truva atı login programının olmadığından emin olabilirsiniz. [Sadece kayıtlı üyeler linkleri görebilirler. ] |
|
| | #4 |
| Resmi Üye ![]() | Dosyalar ve Dosyasistemi Güvenliği Sistemlerinizi ağa bağlı hale getirmeden önce yapılacak bir kaç dakikalık hazırlık ve planlama, sistemlerinizin ve üzerlerinde saklanan verinin korunmasında yardımcı olabilir.
umask komutu, sistem üzerinde varsayılan dosya yaratma kipini belirlemek amacıyla kullanılabilir. İstenen dosya kipinin sekizli sayı düzeninde tümleyicisidir. Eğer dosyalar, erişim ayarlarına bakmaksızın oluşturulursasa, kullanıcı dikkatsizce, okuma veya yazma izni olmaması gereken birine bu izinleri verebilir. Tipik umask ayarları, 022, 027 ve 077 (en fazla sınırlama budur) ayarlarıdır. Normal olarak, umask /etc/profile dosyasında belirlenir, dolayısıyla bütün kullanıcılar için geçerlidir. Dosya oluşturmama maskesi 777’den istenen değerin çıkarılmasıyla elde edilebilir. Diğer bir deyişle, umask ayarı 777 olduğu zaman, yeni oluşturulan bir dosya kimse için okuma, yazma ve çalıştırma izinlerini bulundurmayacaktır. 666 gibi bir maske, yeni oluşturulan dosyaların 111 (Ç.N.: Herkes için sadece çalıştırma) izninde olmasını sağlayacaktır. Örneğin, aşağıdaki gibi bir satır olabilir: # Kullanıcının varsayılan umask değerini belirle umask 033 Root’un umask değeri 077 olmalıdır; bu, root’tan başka herkesi okuma, yazma ve çalıştırma izinlerinden, açık bir şekilde chmod ile izin verilene kadar yoksun bırakır. Yukarıdaki örnekte, yeni oluşturulan dizinlerin izinleri, 777 - 033 = 744 olacaktır. Yeni oluşturulan dosyaların ise bu maske ile erişim izinleri 644 olur. Eğer Red Hat kullanıyorsanız ve onların kullanıcı ve grup ID oluşturma düzenlerine bağlı kalıyorsanız, umask için gereken sadece 002 değeridir. Bunun sebebi, Red Hat’te varsayılan ayarın her kullanıcı için ayrı bir grup olmasıdır.Dosya İzinleri Sistem dosyalarınızın, kullanıcılar tarafından ve sistem dosyalarının bakımından sorumlu olmayan kişiler tarafından açılmadığını garanti altına almak önemlidir. Unix, dosya ve dizinlerdeki erişim denetiminde üç ayrı özelliğe göre sağlar: sahip, grup ve diğer. Bir dosyanın her zaman bir sahibi ve grubu vardır, geriye kalan herkes "diğer" özelliğine sahiptir. Unix izinlerini kısaca açıklayacak olursak: Sahiplik - Hangi kullanıcı(lar) ve grup(lar), dosyanın (veya dizin/üst dizinin) izin haklarını denetim altında tutuyor? İzinler - Kimi erişim tiplerine müsade etmek için 1 veya 0 olabilen bitler. Dosyaların izinleri, dizinlerinkinden farklı anlamlar taşır. Okuma:
SUID Niteliği: (Dosyalar için) Bu, dosyanın "kullanıcı-kimliği-belirle" izinleriyle ilgilidir. Eğer sahip izinleri [Sadece kayıtlı üyeler linkleri görebilirler. ]ünde bu bit 1 ise ve dosya çalıştırılabilir bir dosya ise, çalışan süreçler sistem kaynaklarına, işlemi başlatan kişinin değil, dosya sahibinin kimliğinde erişim sağlar. Bu, bir çok "tampon taşması" açıklarının da sebebidir. SGID Niteliği: (Dosyalar için) Bu bit grup izinlerinde 1 ise, dosyanın "grup-kimliği-belirle" durumunu denetler. Bu kullanıcı-kimliği-belirle biti ile aynı şekilde çalışır, fakat bu kez grup kimliği etkilenir. Bu bitin etkili olabilmesi için dosyanın çalıştırılabilir olması şarttır. (Ç.N.: SGID - set group id, grup kimliğini belirle) SGID Niteliği: (Dizinler için) Eğer bir dizinin bu bitini 1 yaparsanız (chmod g+s dizin ile), bu dizinde yaratılan dosyaların grupları, bu dizinin grubu ile aynı olacaktır. Siz - Dosyanın sahibi Grup - Ait olduğunuz grup Diğer - Sizin ve grubunuzun diğer üyelerinin dışında kalan herkes. Dosya Örneği: -rw-r--r-- 1 kevin users 114 Aug 28 1997 .zlogin 1. bit - dizin mi? (hayır) 2. bit - sahibi okuyabilir mu? (evet, kevin tarafından) 3. bit - sahibi yazailiror mu? (evet, kevin tarafından) 4. bit - sahibi çalıştırabiliyor mu? (hayır) 5. bit - grup üyeleri okuyabilir mu? (evet, users tarafından) 6. bit - grup üyeleri yazabiliyor mu? (hayır) 7. bit - grup üyeleri çalıştırabiliyor mu? (hayır) 8. bit - diğerleri okuyabiliyor mu? (evet, herkes tarafından) 9. bit - diğerleri yazabiliyor mu? (hayır) 10. bit - diğerleri çalıştırabiliyor mu? (hayır) Aşağıdaki satırlar, dosyalar için açıklanan erişim izinlerinin uygulanabilmesi için verilmesi gereken en az izinlerin örnekleridir. Herhangi birine burdakilerden daha fazla izin vermek isteyebilirsiniz, fakat bunların en azları açıklanmaktadır: -r-------- Dosya sahibinin dosyayı okumasına izin verir. --w------- Dosya sahibinin dosyayı değiştirmesine veya silmesine izin verir. (Dosyanın içinde bulunduğu dizine yazma hakkı olan herkes, dosyanın üzerine yazabilir, dolayısıyla dosyayı silebilir) ---x------ Dosyanın sahibi programları çalıştırabilir. Kabuk betiklerini çalıştıramaz, çünkü onlar için de okuma izni olmalıdır. ---s------ Etkin kullanıcı kimliğini dosya sahibinin kullacı kimliği haline getirir. --------s- Etkin grup kimliğini dosyanın grup kimliği haline getirir. -rw------T "Son değiştirilme zamanı" güncellenmez. Genelde takas dosyaları için kullanılır. ---t------ Etkisi yoktur. (Önceleri yapışkan bit olarak kullanılırdı) Dizin Örneği: drwxr-xr-x 3 kevin users 512 Sep 19 13:47 .public_html/ 1. bit - dizin mi? (evet, bir sürü dosya içeriyor) 2. bit - sahibi okuyabilir mu? (evet, kevin tarafından) 3. bit - sahibi yazabiliyor mu? (evet, kevin tarafından) 4. bit - sahibi çalıştırabiliyor mu? (evet, kevin tarafından) 5. bit - grup üyeleri okuyabilir mu? (evet, users tarafından) 6. bit - grup üyeleri yazabiliyor mu? (hayır) 7. bit - grup üyeleri çalıştırabiliyor mu? (evet, users tarafından) 8. bit - diğerleri okuyabiliyor mu? (evet, herkes tarafından) 9. bit - diğerleri yazabiliyor mu? (hayır) 10. bit - diğerleri çalıştırabiliyor mu? (evet, herkes tarafından) Aşağıdaki satırlar, dosyalar için açıklanan erişim izinlerinin uygulanabilmesi için verilmesi gereken en az izinlerin örnekleridir. Herhangi birine burdakilerden daha fazla izin vermek isteyebilirsiniz, fakat bunların en azları açıklanmaktadır: dr-------- Dizin içeriği listelenebilir, fakat dosya nitelikleri okunamaz.d--x------ Dizine girilebilir ve tam çalıştırma yollarında kullanılabilir[<A id=id167 href="http://www.belgeler.org/howto/security-howto_file-security.html#ftn.id167 name=id167 face=Courier New color=#800080167</A">]dr-x------ Dosya nitelikleri sahip tarafından okunabilir.d-wx------ Dosyalar, dizinin içine girilmeksizin yaratılabilir/silinebilir.d------x-t Dosyaların yazma hakkı olan diğerlerince silinmesini engeller. /tmp dizininde kullanılır.d---s--s-- Bir etkisi yoktur. Sistem yapılandırma dosyaları (genelde /etc içinde), genelde 640 kipindedir (-rw-r-----), ve sahipleri root’tur. Sitenizin güvenlik gereksinimlerine bağlı olarak, bunun üzerinde değişiklik yapmak isteyebilirsiniz. Asla herhangi bir sistem dosyasını grup veya herkes tarafından yazılabilir durumda bırakmayın. Bazı yapılanış dosyaları, /etc/shadow’da buna dahildir, sadece root tarafından okunabilir durumda olmalı. /etc içindeki bazı dizinler de en azından diğer kullanıcılar tarafından erişebilir olmamalı. SUID Kabuk Betikleri SUID kabuk betikleri, ciddi bir güvenlik riskidir ve bu sebeple çekirdek tarafından hoş karşılanmazlar. Bir kabuk betiğinin ne kadar güvenli olduğunu düşünürseniz düşünün, bir korsan ondan yararlanarak bir root kabuğuna erişebilir. Bütünlük Denetimi Yerel (ve ağ) saldırılarını ortaya çıkarmanın çok iyi bir yolu da bir bütünlük denetleyici, örneğin Tripwire, Aide veya Osiris gibi bir program çalıştırmaktır. Bu bütünlük denetleyiciler, bütün önemli ikili dosyalarınızın üzerinde bir sağlama toplamı hesaplar ve dosyalar iyi durumda olduklarındaki toplamlarla karşılaştırır. Sonuç olarak, dosyalardaki değişiklikler farkedilebilir. Bu tür programları bir diskete kurmak ve disketin yazma korumasını kapatmak iyi bir fikirdir. Bu yolla saldırganlar bütünlük denetleyicisinin kendisini veya veritabanını kurcalayamazlar. Bir kere bunun gibi bir düzeneğiniz olduktan sonra, bu düzeneği normal yönetim görevleriniz arasında kullanmak ve değişen bir şeyler olup olmadığını görmek de iyi bir fikirdir. Hatta, crontab’a denetleyicinizin her gece disketten çalışması için bir girdi ekleyebilir ve sabaha sonuçlarını gözden geçirebilirsiniz. Aşağıdaki gibi bir şey size her sabah 5:15’te bir raporu mektup olarak yollar: # set mailto MAILTO=ken # run Tripwire 15 05 * * * root /usr/local/adm/tcheck/tripwire Bütünlük denetleyicileri, aksi takdirde farkedilmesi zor olan saldırganları ortaya çıkarmak konusunda bir nimettir. Ortalama bir sistemde çok fazla dosya değiştiği için, hangisinin bir korsan tarafından, hanginizin kendiniz tarafından değiştirildiği konusunda dikkatli olmak zorundasınız. Tripwire’ın açık kaynak sürümünü, ücretsiz olarak [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde bulabilirsiniz. Kitapçıklar ve destek ise satın alınabilir. Aide [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde, Osiris [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde bulunabilir. Truva Atları Truva Atlarının ismi Homeros’un İlyada destanındaki ünlü numaradan gelmektedir. Bunun arkasındaki fikir, bir korsanın, kulağa çok hoş gelen bir program veya ikili dosya dağıtıp, diğer insanların dosyayı indirmesi ve root olarak çalıştırmasını teşvik etmesidir. Çalıştırılan program, sistem güvenliğini dikkat çekmeden bozar. İnsanlar indirdikleri ve çalıştırdıkları dosyanın tek bir şey yaptığını (ve bunu çok iyi yapıyor da olabilir) düşünürler, ama program bir taraftan güvenliğe de zarar vermekle meşguldür. Makinenize hangi programları kurduğunuza dikkat edin. Red Hat, RPM dosyaları için, programın gerçeğini kurduğunuzu doğrulayabilmeniz amacıyla, MD5 sağlama toplamları ve PGP imzaları sağlar. Diğer dağıtımlar da benzer yöntemler kullanır. Asla bilmediğiniz, kaynak kodu elinizde bulunmayan bir ikili dosyayı, root olarak çalıştırmayın! Çok az saldırgan kaynak kodlarını halka açık hale getirir. Karmaşık olabilir, fakat bir programın kaynak kodunu gerçek dağıtım sitesinden aldığınıza emin olun. Eğer program root olarak çalışacaksa, güvendiğiniz birinin kaynak koduna bakmasını ve doğrulamasını sağlayın. Ağ Güvenliği Ağ güvenliği, insanların bağlı olduğu süre arttıkça, daha önemli hale gelmektedir. Ağ güvenliğini bozmak, fiziksel veya yerel güvenliği bozmaktan çok daha kolay ve çok daha yaygındır. Ağ güvenliğine yardımcı olan iyi araçlar var ve Linux dağıtımlarıyla birlikte gelenlerin sayısı gittikçe artıyor. Paket Koklayıcılar Saldırganların, ağınız üzerinde daha fazla sisteme erişim kazanmasının en yaygın yollarından biri, güvenliği bozulan bilgisayarlardan birinin üzerinde bir paket koklayıcı çalıştırmasıdır. Bu "koklayıcı", paket akışı içinde passwd, login ve su gibi şeyler için Ethernet portunu dinler ve günlük tutar. Bu yolla saldırganlar, girmeye hiç kalkışmadıkları sistemlerin parolalarına dahi erişebilirler. Açık metin parolalar bu saldırıya karşı çok korunmasızdırlar. Örnek: A [Sadece kayıtlı üyeler linkleri görebilirler. ]ının güvenliği bozulmuş durumda. Saldırgan bir koklayıcı kurar. Koklayıcı, B [Sadece kayıtlı üyeler linkleri görebilirler. ]ından C [Sadece kayıtlı üyeler linkleri görebilirler. ]ına giriş yapan sisyön (sistem yöneticisi) parolasını ele geçirir. Sonra, sisyön bir sorunu çözmek için su yapar. Saldırganlar böylelikle B [Sadece kayıtlı üyeler linkleri görebilirler. ]ındaki root parolasına da sahip olur. Daha sonra sisyön, herhangi bir kişiye, hesabından Z [Sadece kayıtlı üyeler linkleri görebilirler. ]ına telnet ile bağlanmasına izin verir. Artık saldırgan Z [Sadece kayıtlı üyeler linkleri görebilirler. ]ında da bir parola/giriş bilgisine sahiptir. Günümüzde bir saldırganın bunu yapabilmesi için bir sistemin güvenliğini bozmasına dahi gerek yoktur: Kendi kişisel veya dizüstü bilgisayarlarını bir binaya getirip ağınıza saplanabilirler. ssh veya diğer şifreli parola yöntemlerini kullanarak, bu saldırının önüne geçilebilir. POP hesapları iin APOP gibi şeyler bu saldırıyı engeller (Olağan POP girişleri, ağ üzerinde açık metin parola gönderen herşey gibi, bu saldırıya karşı çok korunmasızdır). Sistem servisleri ve tcp_wrappers Linux sisteminizi HERHANGİ bir ağ üzerine koymadan önce, bakmanız gereken ilk şey hangi servisleri sunmanız gerektiğidir. Sunmanız gerekmeyen servisler kapatılmalı, ki her gereksiz servisin kapatılışı, endişelenmeniz gereken ve saldırganların delik arayacağı şeylerin bir azalması anlamına gelir. Linux’ta servisleri kapatmanın bir kaç yolu vardır. /etc/inetd.conf dosyasına bakarak inetd tarafından hangi servislerin sunulduğunu görebilirsiniz. Gereksinim duymadıklarınızı açıklama haline getirerek (o satırın başına # koyarak) ve sonrasında inetd işlemine bir SIGHUP sinyali göndererek kapatabilirsiniz. Bunun yanısıra, /etc/services dosyasındaki servisleri silebilirsiniz (ya da açıklama haline getirebilirsiniz). Bu, yerel istemcilerin de servisi kullanamaması anlamına gelir (yani ftp satırını siler, sonra o makineden uzaktaki bir siteye ftp bağlantısı yapmaya çalışırsanız, işlem "bilinmeyen servis" mesajı vererek başarısız olacaktır. Genellikle /etc/services dosyasındaki servisleri kaldırarak çıkacak sorunlarla uğraşmaya değmez, çünkü ek bir güvenlik getirisi yoktur. Eğer yerel bir kullanıcı, kaldırmış olmanıza rağmen ftp kullanmak isterse, yaygın ftp portunu kullanan kendi istemcisini yapıp bunu başarabilir. Çalışır durumda olmasını isteyebileceğiniz servislerden bazıları:
Ek olarak, gerçekten rsh/rlogin/rcp gereçlerini /etc/inetd.conf dosyasını kullanarak kapatmak isteyebilirsiniz; buna login (rlogin tarafından kullanılan), shell (rcp tarafından kullanılan) ve exec (rsh tarafından kullanılır) de dahildir. Bu protokoller aşırı derecede güvensizdir ve geçmişte bir çok açığın sebebi olmuştur. /etc/rc.d/rc[0-9].d (Red Hat) veya /etc/rc[0-9].d (Debian) başlangıç dizinlerini kontrol ederek, herhangi bir sunucunun çalıştırılıp çalıştırılmadığını görebilirsiniz. Bu dizindeki dosyalar aslında /etc/rc.d/init.d (Red Hat) dizinindeki dosyalara simgesel bağlardır (Debian’da /etc/init.d). init.d dizinindeki dosyaların isimlerini değiştirmek, o dosyaya bağlı olan simgesel bağları etkisiz hale getirir. Eğer belirli bir çalışma düzeyindeki servisi kapatmak istiyorsanız, ilgili simgesel bağın ismindeki büyük S harfini küçük s harfiyle değiştirebilirsiniz: root# cd /etc/rc6.d root# mv S45dhcpd s45dhcpd Eğer BSD-tarzı başlangıç dosyalarınız varsa, ihtiyacınız olmayan programlar için /etc/rc* dizinini kontrol etmek isteyebilirsiniz. Çoğu Linux dağıtımı, tüm TCP servislerinizi "örten" tcp_wrappers ile birlikte gelir. Gerçek sunucunun yerine bir tcp_wrapper (tcpd) çalıştırılır, tcpd servisi isteyen [Sadece kayıtlı üyeler linkleri görebilirler. ]ı kontrol eder ya gerçek sunucuyu çalıştırır veya o bilgisayardan erişimi reddeder. tcpd, TCP servislerinize erişimi kısıtlamanızı sağlar. /etc/hosts.allow dosyası oluşturmalı ve sadece makinenize erişime gereksinim duyan bilgisayarları eklemelisiniz. Evden bağlanan bir çevirmeli ağ kullanıcı iseniz, önerimiz her bağlantıyı reddetmenizdir. tcpd aynı zamanda başarısız olan bağlantı girişimlerinin de günlüğünü tutar, bu şekilde bir saldırı geldiğinde haberiniz olur. Eğer yeni TCP-tabanlı servisler eklerseniz, tcp_wrappers kullanacak şekilde yapılandırmalısınız. Örneğin, olağan çevirmeli ağ kullanıcıları dışarıdakilerin kendi makinelerine bağlanmasını engelleyebilir, ama aynı zamanda mektup alma ve İnternete ağ bağlantısı kurma işlemlerini de gerçekleştirebilir. Bunu yapmak için, /etc/hosts.allow dosyanıza: ALL: 127. satırını ekleyebilirsiniz. Elbette /etc/hosts.deny dosyanız da ALL: ALL satırını bulundurmalı. Bu şekilde makinenize dışarıdan gelen tüm bağlantıları engeller, bununla birlikte içerde İnternetteki servislere bağlanmanıza izin verirsiniz. tcp_wrappers’ın diğer bir kaç diğer servis dışında, sadece inetd tarafından çalıştırılan servisleri koruduğunu unutmayın. Makinenizde çalışan pekala diğer servisler de olabilir. netstat -ta komutunu kullanarak makinenizde sunulan tüm servislerin bir listesini görebilirsiniz. DNS Bilgisinin Doğrulanması Ağınızdaki bütün bilgisayarların DNS bilgisinin güncel tutulması, güvenliğin artırılmasında yardımcı olabilir. Eğer izinsiz bir [Sadece kayıtlı üyeler linkleri görebilirler. ] ağınıza bağlanırsa, DNS girişinin olmamasından tanyabilirsiniz. Bir çok serviste, sadece geçerli bir DNS girişi olduğunda bağlantıya izin verilmesi şeklinde bir yapılandırma gerçekleştirmek mümkündür. identd identd, inetd sunucunuzun dışında çalışan küçük bir programdır. Hangi kullanıcının hangi TCP servisini çalıştırdığını izler, ve istendiğinde rapor verir. Bir çok kişi identd’nin yararlılığını yanlş anlamakta, dolayısıyla kapatmakta veya site dışı tüm isteklerin önünü kesmektedir. identd, uzak sitelere yardım etmek için değildir. Uzak identd servisinden alınan verinin doğru olup olmadığını bilmenin bir yolu yoktur. identd isteklerinde kimlik doğrulama yoktur. O zaman neden çalıştırmak isteyebilirsiniz? Çünkü size yardım eder ve izlemede diğer bir veri-noktasıdır. Eğer bozulmamışsa, bilirsiniz ki identd servisiniz uzak sitelere TCP servisini kullanan kullanıcı ismi ya da kullanıcı kimliğini bildirmektedir. Uzak sitenin sisyönü gelir ve sisteminizdeki kullanıcının sitelerini kırmaya çalıştığını söylerse, kolaylıkla bu kullanıcıya karşı tavır alabilirsiniz. identd çalıştırmıyorsanız, çok ama çok fazla günlük dosyasına bakmanız ve o anda kimin sistemde olduğunu bulmanız gerekir, genelde bu, kullanıcının kim olduğunun belirlenmesini çok daha uzatır. Çoğu dağıtımla birlikte gelen identd, bir çok kişinin tahmin ettiğinden çok daha yaplandırılabilir durumdadır. Belirli kullanıcılar için kapatabilir (bir .noident dosyası yaratabilirler), bütün identd isteklerinin günlüğünü tutabilir (öneriyoruz), hatta identd tarafından döndürülen bilginin kullanıcı ismi yerine kullanıcı kimliği olmasını ya da NO-USER (KULLANICI-YOK) olmasını sağlayabilirsiniz. Postfix Posta Dağıtım Aracının yapılandırılması ve güvenli hale getirilmesi Postfix posta sunucusu, Postfix ile beraber diğer İnternet güvenlik ürünlerinin yazarı olan Wietse Venema tarafından, yaygın olarak kullanılan Sendmail programına bir alternatif sağlamak amacıyla yazılmıştır. Postfix’in temel hedefi, hızlı, kolay yönetilebilen ve güvenli olması umulan, bunları sağlarken de kullanıcıların rahatı açısından olabildiğince sendmail ile uyumlu bir posta dağıtım aracı olmaktır. Postfix hakkında daha fazla bilgi için [Sadece kayıtlı üyeler linkleri görebilirler. ]ve [Sadece kayıtlı üyeler linkleri görebilirler. ] adreslerine göz atmak isteyebilirsiniz. SATAN, ISS ve Diğer Ağ Tarayıcıları Makinelerde veya ağlarda port ve servis tabanlı tarama yapan bir kaç farklı yazılım paketleri mevcut. SATAN, ISS ve Nessus, iyi bilinenlerden bazıları. Bu yazılımlar hedef makineye bağlanır ve hangi servisin çalıştığını belirlemeye çalışır. Bu bilgiye dayanarak, makinedeki servislerin bir açığı olup olmadığını söyleyebilirsiniz. SATAN (Security Administrator’s Tool for Analyzing Networks - Ağların Çözümlenmesi İçin Güvenlik Yöneticisi Aracı). Herhangi bir makine veya ağda hafif, orta veya güçlü kontroller yapmak üzere yapılandırılabilir. SATAN ile makinenizi veya ağınızı tarayarak bulduğu sorunları düzeltmek iyi bir fikirdir. SATAN’ı [Sadece kayıtlı üyeler linkleri görebilirler. ]’dan veya tanınmış başka bir FTP veya WWW sitesinden aldığınızdan emin olun. Çünkü SATAN’ın İnternet üzerinde dolaşan bir de truva atı kopyası mevcut: [Sadece kayıtlı üyeler linkleri görebilirler. ]. SATAN oldukça uzun bir süredir güncellenmiyor ve aşağıdaki diğer bazı araçlar daha çok işe yarayabilir. ISS ([Sadece kayıtlı üyeler linkleri görebilirler. ] Security Scanner - İnternet Güvenlik Tarayıcı), başka bir port-tabanlı tarayıcıdır. Satan’dan daha hızlıdır, dolayısıyla büyük ağlar için daha uygun olabilir. Bununla birlikte SATAN daha fazla bilgi verme eğilimindedir. Abacus, [Sadece kayıtlı üyeler linkleri görebilirler. ]-tabanlı güvenlik ve izinsiz giriş belirleme aracıdır. İnternet sayfasında daha fazla bilgi bulabilirsiniz: [Sadece kayıtlı üyeler linkleri görebilirler. ] SAINT, SATAN’ın güncellenmiş bir sürümü. WWW-tabanlı ve SATAN’dan daha çok güncel testlere sahip. Daha fazla bilgi için: [Sadece kayıtlı üyeler linkleri görebilirler. ] Nessus, ücretsiz bir güvenlik tarayacıdır. GTK çizgesel arabirimi ile kolay kullanıma sahiptir. Ayrıca yeni port-tarayan testler için çok hoş bir eklenti ayar sitemi birlikte tasarlanmıştır. Daha fazla bilgi için: [Sadece kayıtlı üyeler linkleri görebilirler. ] Port Taramalarını Belirleme SATAN, ISS ve diğer tarayıcı yazılımların yoklamaları durumunda sizi uyaracak bazı araçlar da vardır. Bununla birlkite, eğer tcp_wrappers kullanıyor ve günlük dosyalarınıza düzenli olarak bakıyorsanız, bu tür yoklamaları farketmeniz zor olmaz. En düşük ayarda bile SATAN Red Hat günlüklerinde iz bırakır. Ayrıca "gizli" port tarayıcıları da vardır. TCP ACK biti 1 olan bir paket (bağlantı kurulurken yapıldığı gibi) büyük olasılıkla paket-süzen bir ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ını aşacaktır. Kurulmuş hiçbir bağlantısı olmayan bir porttan döndürülen RST paketi, o portta hayat olduğunun bir kanıtı olarak görülebilir. TCP örtü programlarının bunu farkedeceğini sanmıyorum. Ayrıca, serbest bir IDS (Intrusion Detection System - Saldırı Belirleme Sistemi) olan SNORT’a da bir göz atabilirsiniz. SNORT, ağa yapılan diğer bazı izinsiz girişleri/saldırıları da belirleyebilir: [Sadece kayıtlı üyeler linkleri görebilirler. ] sendmail, qmail ve MTA’lar Sağlayabileceğiniz en önemli servislerden biri posta servisidir. Ne yazık ki, saldırıya en korumasız olanlardan biri de budur. Bunun sebebi basitçe yerine getirmek zorunda olduğu görevlerin sayısı ve bunlar için gereken yetkilerdir. sendmail kullanıyorsanız, güncel sürümlerini takip etmek çok önem taşıyor. sendmail’in güvenlik açıkları konusunda çok uzun bir tarihi var. Daima en güncel sürümünü çalıştırdığınızdan [Sadece kayıtlı üyeler linkleri görebilirler. ] adresine bakarak emin olun. Unutmayın ki mektup atabilmeniz için sendmail’in çalışıyor olması gerekmiyor. Ev kullanıcı iseniz, sendmail’i bütünüyle kapatabilir, ve posta istemcinizi mektup göndermek amacıyla kullanabilirsiniz. Sendmail başlangıç dosyasındaki "-bd" bayrağını kaldırarak posta için dışarıdan gelen istekleri engellemeniz de mümkün. Diğer bir deyişle, başlangıç dosyanızda sendmail’i aşağıdaki komut ile çalıştırabilirsiniz: # /usr/lib/sendmail -q15m Bu, sendmail’in mektup kuyruğunda bekleyen ve ilk girişimde dağıtılamayan tüm mesajların 15 dakikada bir boşaltmasını sağlar. Bir çok yönetici sendmail yerine diğer posta dağıtım araçlarını kullanmayı tercih ediyor. Siz de sendmail yerine qmail kullanmayı düşünebilirsiniz. qmail, temelde güvenlik düşüncesi ile sıfırdan tasarlanmıştır. Hızlı, kararlı, ve güvenlidir. Qmail [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde bulunabilir. Qmail ile doğrudan rekabet içinde olan bir başka program da, tcp_wrappers ve diğer güvenlik araçlarının yazarı tarafından yazılmış olan "postfix". Önceki vmailer isimli ve sponsorluğu IBM tarafından yapılan bu program da sıfırdan güvenlik düşünülerek yazılmış bir posta dağıtım aracı. Postfix hakkında daha fazla bilgiyi [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinden bulabilirsiniz. Servis Reddi Saldırıları Bir "Servis Reddi" saldırısı, saldırganın bazı kaynakları aşırı meşgul etmesi yoluyla servisin meşru isteklere cevap verememesini veya meşru kullanıcıların makineye erişimlerinin reddedilmesini sağlamasıdır. Servis reddi saldırıları son yıllarda oldukça fazlalaştı. Bazı yeni ve gözde olanları aşağıda listelenmiştir. Unutmayın ki bunlar sadece bir kaç örnek, her geçen gün yenileri ortaya çıkıyor. Daha güncel bilgi için Linux güvenlik ve bugtraq listelerine ve arşivlerine göz atın.
NFS, yaygın olarak kullanılan bir paylaşım protokolüdür. nfsd ve mountd çalıştıran sunucuların dosya sistemlerinin tamamının, çekirdeklerinde NFS dosya sistemi desteği bulunan (veya Linux makine değilse diğer istemci desteği bulunan) diğer makinelere ihraç edilmesini sağlar. mountd, /etc/mtab dosyasındaki bağlanmış dosya sistemlerini takip eder ve showmount komut ile bunları görüntüler. Çoğu site NFS’i kullanıcılara ev dizinleri vermek için kullanır, böylelikle [Sadece kayıtlı üyeler linkleri görebilirler. ] demetindeki hangi makineye giriş yaparlarsa yapsınlar, evlerindeki dosyalara ulaşabilirler. Dosya sistemlerinin dışa açılmasında küçük bir miktar güvenliğe izin verilir. nfsd sunucunuzun uzak root kullanıcısını (uid=0) nobOdy kullanıcısına karşılık getirmesini, böylelikle dışa açılan tüm dosyalara erişiminin reddedilmesini sağlayabilirsiniz. Bununla birlikte, bireysel kullanıcılar kendi dosyalarına (en azından uid’si aynı olanlara) erişebileceği için uzak root kullanıcısı, kullanıcıların hesaplarına giriş veya su yaparak onların dosyalarına erişebilir. Bu, dışa açtığınız dosya sistemlerini bağlayabilen bir saldırgan için sadece küçük bir engeldir. Eğer kaçınılmaz şekilde NFS kullanmanız gerekiyorsa, dosya sistemlerini gerçekten sadece gereken makinelere açtığınıza emin olun. Asla kök dizininizin tamamını dışa açmayın; sadece gereken dizinleri açın. NFS hakkında daha fazla bilgi için, [Sadece kayıtlı üyeler linkleri görebilirler. ] adresindeki NFS HOWTO (NFS NASIL) belgesine bakabilirsiniz. NIS (Ağ Bilgi Servisi) (Önceki Sarı Sayfalar, YP) Ağ Bilgi Servisi (YP), bir makineler grubu arasında bilginin dağıtılması için bir yoldur. NIS sunucusu bilgi tablolarını tutar ve onları NIS harita dosyalarına çevirir. Bu haritalar daha sonra ağ üzerinde NIS istemci makinelerinin giriş, parola ve ev dizinleri ile kabuk bilgilerinin (hepsi standart bir /etc/passwd dosyasındadır) alınmasına hizmet eder. Bu, kullanıcının bir makinede parolasını değitirdiğinde diğer bütün NIS alanındaki makinelerde de bu değişikliğin geçerli olmasını sağlar. NIS kesinlikle gvenli değildir. Hiç bir zaman olması düşünülmemiştir. Kolay kullanılır ve yararlı olması amacı güdülmüştür. NIS alanınızın adını tahmin edebilen (İnternette herhangi bir yerdeki) herkes passwd dosyasınızın bir kopyasını alabilir, ve "Crack" ve "John the Ripper" programlarını kullanıcılarınızın parolaları üzerinde kullanabilir. Ayrıca, NIS’i taklit etmek ve her çeşit yaramaz numaralar yapmak mümkündür. Eğer NIS’i kullanmak zorundaysanız, tehlikelerinin de farkında olduğunuzdan emin olun. NIS’in yerine geçen çok daha güvenli bir program vardır: NIS+ Daha fazla bilgi için NIS HOWTO (NIS NASIL)belgesine bir göz atın: [Sadece kayıtlı üyeler linkleri görebilirler. ] Ateşduvarları Ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı, yerel ağınızın içine giren ve dışına çıkan bilgiyi denetim altında tutmanın bir yoludur. Tipik bir ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı, İnternete ve yerel ağınıza bağlanmış durumdadır ve yerel ağınızdan İnternete tek çıkış yolu ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ının içinden geçmektir. Bu yolla ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı yerel ağdan İnternete ya da İnternetten yerel ağa nelerin geçtiğini denetleyebilir. Bir kaç ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı ve kurma yöntemi vardır. Linux makinelerden oldukça iyi ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı olur. Ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı kodu, 2.0 ve daha yukarı sürüm çekirdeğin içine tümleşik olabilir. Kullanıcı araçları, 2.0 çekirdek için ipfwadm ve 2.2 çekirdek için ipchains, izin verdiğiniz ağ trafiği tiplerini çalışma kesilmeksizin değiştirebilmenizi sağlarlar. Ateşduvarları, ağınızı güvenli hale getirmede çok yararlı ve önemli bir tekniktir. Bununla birlikte, bir ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ınız varsa, arkasındaki makinelerin güvenliğini sağlamak gerekmediğini asla düşünmeyin. Bu ölümcül bir hatadır. Ateşduvarları ve Linux hakkında daha fazla bilgi için metalab arşivindeki [Sadece kayıtlı üyeler linkleri görebilirler. ] belgesine bir göz atın. Daha fazla bilgi için IP-Maskeleme mini-nasıl belgesine de göz atabilirsiniz: [Sadece kayıtlı üyeler linkleri görebilirler. ] ipfwadm hakkında daha fazla bilgiyi (güvenlik [Sadece kayıtlı üyeler linkleri görebilirler. ]ınızın ayarlarını yapabileceğiniz bir araç) [Sadece kayıtlı üyeler linkleri görebilirler. ]adresinde bulabilirsiniz. Eğer ateşduvarları ile daha önce hiç tecrübeniz yoksa ve basit bir güvenlik politikasından daha fazlası için kurmayı planlıyorsanız, "O’Reilly and Associates"in "the Firewalls (Ateşduvarları)" kitabını ya da İnternette bulunan diğer belgeleri okumanız şarttır. Daha fazla bilgi için [Sadece kayıtlı üyeler linkleri görebilirler. ] adresine bir göz atın. NIST (The National Institute of Standards and Technology - Ulusal Standard ve Teknoloji Enstitüsü), ateşduvarları üzerine harika bir belge hazırlamıştır. 1995 tarihli olmasına rağmen, hala iyidir. Bu belgeyi [Sadece kayıtlı üyeler linkleri görebilirler. ]adresinde bulabilirsiniz. Ayrıca ilgili olarak:
Linux IPChains, Linux 2.0 ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı sisteminin 2.2 çekirdek için güncellenmiş halidir. Önceki uygulamadan çok daha fazla özelliği vardır, bunların arasında:
Daha fazla bilgi için IP Chains NASIL belgesini okuduğunuzdan emin olun: [Sadece kayıtlı üyeler linkleri görebilirler. ] Netfilter - Linux 2.4.x Çekirdek Ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı Çekirdek IP paket süzüm kodu için bir başka gelişme de, netfilter programı tarafından kullanıcıların 2.4 çekirdeğinde paket süzümünün kurulum, bakım ve denetleme işlemlerini yapabilmesine olanak sağlanmasıdır. Netfilter alt sistemi ipchains ve ipfwadm dahil olmak üzere tüm paket süzüm uygulamalarının yeniden yazılmış halidir. Netfilter çok sayıda geliştirilmiş özellik sunar ve geniş şirket ağlarını korumada artık daha olgun ve kararlı bir çözüm olmuş durumdadır. iptables komutunu kullanarak çekirdek içindeki ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ı tablolarını yönetebilirsiniz. Netfilter, paketleri çekirdeğin çeşitli bölümlerinden geçerken yönetmenize olanak sağlayan ham bir çalışma ortamı sağlar. Bu çalışma ortamınının bir [Sadece kayıtlı üyeler linkleri görebilirler. ]ü maskeleme, standart paket süzümü ve ağ adres çevirisi için destek sağlar. Netfilter, aynı zamanda ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ının arkasındaki bir grup sunucuda çalışan hizmet programlarına yönelik yapılan yük dengeleme istekleri için bile daha gelişmiş bir desteğe sahiptir. Durum denetleme özellikleri gerçekten çok yararlı. Durum denetleme özelliği süzceçten geçen iletişim akışının izlenmesi ve denetlenmesine olanak tanır. Oturum hakkında durum ve bağlam bilgisinin izlenebilmesi kural koyma işlemini basitleştirir ve daha yüksek düzeydeki protokollerin yorumlamaya çalışır. Ayrıca, paketlerin kullanıcı uzayındaki programlara geçirilip ilendikten sonra tekrar paket akışı içine geri döndürülmesi gibi belirli ek işlevleri yerine getirmek üzere küçük modüller geliştirilebilir. Bu programların kullanıcı uzayında geliştirilebilmesi, daha önceki bir zorunluluk olan çekirdek düzeyindeki değişikliğin yol açtığı karmaşıklığın azaltılmasını sağlar. Diğer IP Tables referansları arasında:
VPN’ler, var olan bir ağın üstüne "sanal" bir ağ kurmanın bir yoludur. Bu sanal ağ, bazı durumlarda şifreli olup, sadece ağa katılmış olan ve kim olduğu bilinen bilgisayarlar arasındaki trafiğe izin verir. VPN’ler, çoğunlukla evde çalışan birini, herkese açık İnternet üzerinden dahili bir şirket ağına bağlamak için kullanılır. Eğer bir Linux maskeleme ateş[Sadece kayıtlı üyeler linkleri görebilirler. ]ınız varsa ve MS PPTP paketleri (Microsoft’un VPN noktadan-noktaya ürünü) geçirmeniz gerekiyorsa, bunu yapabilmeniz için gereken bir çekirdek yaması mevcut: color=#0000ffip-masq-vpn. Linux’taki VPN çözümlerinden bir kaçı:
Tamam, sisteminizi gözden geçirdiniz ve olabildiğince güvenli olduğunu belirlediniz ve bağlanmaya hazırsınız. Sisteminize yapılacak olası izinsiz giriş durumunda, giren kişiyi çabucak etkisiz hale getirerek sisteminizi tekrar çalışır duruma döndürebilmek için şimdi yapmanız gereken bir kaç hazırlık var. Makinenizin Tam Yedeğini Alın Yedekleme yöntemleri ve depolama hakkında bir tartışma bu belgenin konusu ötesinde, ama yedekleme ve güvenlik ile ilgili bir kaç söz söylenebilir: Eğer bir sabit disk [Sadece kayıtlı üyeler linkleri görebilirler. ]ünde 650 MB veriden daha azı varsa, verinizi CD-R üzerine kopyalamak iyi bir yoldur (daha sonra kurcalanması da zordur, hem uygun şekilde saklanırsa uzun süreli bir ömrü vardır). Manyetik bant ve diğer yeniden-yazılabilir ortamlar, yedekleme tamamlanır tamamlanmaz yazmaya karşı korunmalı ve değiştirilmenin engellenmesi için doğrulanmalıdır. Yedeklerinizi, güvenli ve bağlı olmayan bir alanda sakladığınızdan emin olun. İyi bir yedeğin anlamı, sistemi iyi bir noktadan tekrar yerine koyabilir olmanızdır. İyi Bir Yedekleme Çizelgesi Seçimi 6-bantlık bir dönüşümün bakımı kolaydır. 4 bant hafta içi, 1 bant çift Cumalar için, bir bant da tek Cumalar için olabilir. Her gün bir artımlı yedekleme uygulayın ve uygun Cuma bandında tam yedek alın. Sisteminizde özellikle önemli değişiklikler yapar veya bazı önemli veri eklemesi yaparsanız da tam yedek almak iyi olabilir. Yedeklerizinin Denenmesi Yedeklerinizin beklediğiniz gibi çalıştığından emin olmak için onları düzenli aralıklarla denemelisiniz. Dosyaların yedeklerden çekilmesi ve gerçek veriyle karşılaştırılması, boyutların ve yedek listelerinin incelenmesi, ve eski yedeklerin okunması düzenli bir şekilde yapılmalıdır. RPM ve Debian Dosya Veritabanınızı Yedekleyin Bir izinsiz giriş durumunda, RPM veritabanınızı, aynı tripwire gibi kullanabilirsiniz, veritabanının da değiştirilmediğinden emin olmanız durumunda elbette. RPM veritabanınızı bir diskete kopyalamalı ve daima bağlantısız şekilde tutmalısınız. Debian dağıtımında da benzer bir şeyler olması muhtemeldir. /var/lib/rpm/fileindex.rpm ve /var/lib/rpm/packages.rpm dosyaları büyük olasılıkla tek bir diskete sığmayacaktır, fakat sıkıştırılırlarsa, her biri bir diskete sığabilir. Şimdi, sisteminizin güvenliği bozulduğunda, root# rpm -Va komutunu, sistem üzerindeki her bir dosyayı doğrulamak amacıyla kullanabilirsiniz. rpm man sayfasına bir bakın, bir kaç diğer seçenek sayesinde bu işlemi daha az şey söyleyerek yapmasını sağlayabilirsiniz. Unutmayın ki bunu yaparken RPM programınızın da bozulmadığından emin olmalısınız. Bunun anlamı, sisteminize her yeni RPM eklendiğinde, RPM veritabanının da yeniden arşivlenmesi gerekecek. Getirileri ve götürüleri karşılaştıracak ve karar verecek olan sizsiniz. Sistem Hesap Verilerinizi Takip Edin syslog’dan gelen bilginin bozulmaması çok önemlidir. /var/log altındaki dosyaların sadece sınırlı sayıda kullanıcı tarafından okunabilmesi ve yazılabilmesi iyi bir başlangıçtır. Gözünüz orda yazılı olanlar, özellikle auth kısmındakiler üstünde olsun. Örneğin birden çok giriş başarısızlıkları, bir kırma girişiminin göstergesi olabilir. Günlük dosyanızın nerde olduğu dağıtımınıza bağlıdır. "Linux Dosyasistem Standart"ına uyan bir Linux sisteminde, örneğin Red Hat’te, /var/log’un altına bakabilir, messages, mail.log ve diğer dosyaları gözden geçirebilirsiniz. Kendi dağıtımızın nereye günlük tuttuğunu /etc/syslog.conf dosyasına bakarak bulabilirsiniz. Bu dosya syslogd’ye (sistem günlük sunucu programı) çeşitli mesajların günlüğünün nerelerde tutulması gerektiğini söyler. Ayrıca günlükleri başa döndüren betik veya sunucu programı logları daha uzun süre tutması için yapılandırabilirsiniz, böylelikle onları incelemek için daha fazla zamanınız olur. Red Hat dağıtımında logrotate paketine bir göz atın. Diğer dağıtımlar da muhtemelen benzer bir işleme sahiptirler. Günlük dosyalarınız kurcalandıysa, tam olarak ne çeşit şeylerin ne zaman kurcalanmaya başladığını belirlemeye çalışın. Hesap bilgilerine ulaşılamayan geniş zaman aralıkları var mı? Kurcalanmamış günlük dosyaları için yedekleme verinize (eğer varsa) bakmak iyi bir fikirdir. Sisteme izinsiz girenler, tipik olarak izlerini saklamak için günlük dosyalarını değiştirir, yine de garip olguları belirlemek amacıyla göz atmak gerekir. İzinsiz giren kişinin, root hesabı için giriş kazanmaya çalıştığını ya da bir programdan yararlandığını belirleyebilirsiniz belki de. Belki de izinsiz giren kişinin, günlük dosyalarını değiştirmeye zaman bulamadığı kısımları görebilirsiniz. Ayrıca, su kullanarak kullanıcı değiştirme girişimleri, sisteme giriş girişimleri ve diğer kullanıcı hesap bilgileri de dahil olmak üzere tüm auth verisini diğer günlük verisinden ayrı tutmalısınız. Mümkünse syslog’u, verinin bir kopyasını güvenli bir sisteme göndermek üzere yapılandırın. Bu, izinsiz giren kişinin, login/su/ftp/vb girişimlerinin izlerini ortadan kaldırmasını engelleyecektir. syslog.conf man sayfasında @ seçeneğine bir göz atın. İnternette daha gelişmiş syslogd programları da vardır: [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde Secure Syslog (Güvenli Syslog) programı mevcuttur. Secure Syslog, syslog verinizi şifreleyebilmenizi ve kimsenin değiştirmediğinden emin olmanızı sağlar. Daha fazla özellikli bir diğer syslogd ise syslog-ng adresinde yer almaktadır. Günlük tutmada daha fazla esnekliğe sahiptir ve ayrıca uzak syslog akışınızın da değiştirilmesini engeller. Son olarak, eğer okuyan kimse yoksa günlük dosyalarının da fazla bir yararı yoktur. Arada bir günlük dosyalarınıza bakmak için zaman ayırın ve olağan bir günde nasıl göründükleri hakkında bir fikir sahibi olun. Bunu bilmek, olağan dışı şeyleri farketmede oldukça yardımcı olacaktır. Bütün Yeni Sistem Güncellemelerini Uygulayın Çoğu kullanıcı Linux’u bir CD-ROM’dan kurar. Güvenlik onarımlarının hızlı doğası sebebiyle, sürekli yeni (onarılmış) programlar çıkar. Makinenizi ağa bağlamadan önce, dağıtımınızın ftp sitesine göz atmak ve CD-ROM’dan beri güncellenen tüm paketleri almak iyi bir fikirdir. Çoğu zaman bu paketler önemli güvenlik onarımlarını içerir, dolayısıyla bu güncelleme paketlerini kurmak iyi bir fikirdir. Güvenlik Bozukluğu Sırasında ve Sonrasında Neler Yapılabilir Güvenlik Bozukluğu Sırasında Güvenlik bozukluğunu, olduğu sırada belirlemek ağır bir yükümlülük olabilir. Vereceğiniz tepki büyük sonuçlar doğurabilir. Gördüğünüz bozukluk fiziksel ise, olasılıklar, birinin evinize, ofisinize veya laboratuvarınıza girmiş olabileceğidir. Yerel yetkililere haber vermelisiniz. Bir laboratuvarda, birinin kasayı açmaya veya makineyi yeniden başlatmaya çalıştığını belirlemiş olabilirsiniz. Yetkileriniz ve yordamlarınıza bağlı olarak, engel olmaya çalışabilir veya yerel güvenlik görevlilerinizle iletişime geçebilirsiniz. Eğer yerel bir kullanıcının güvenliğinizi ihlal ettiğini farkettiyseniz, ilk yapılacak şey, onların aslında sandığınız kişi olduklarının doğrulanmasıdır. Sisteme nerden giriş yaptıklarını kontrol edin. Olağan durumlarda giriş yaptıkları yer ile aynı mı? Hayır mı? O zaman temasa geçmenin elektronik olmayan bir yolunu kullanın. Örneğin, telefon ile arayın ya da konuşmak için ofislerine/evlerine gidin. Eğer sistemde oldukları konusunda anlaşmaya varabilirseniz, ne yaptıklarını açıklamalarını veya yaptıkları şeye son vermelerini isteyebilirsiniz. Eğer sistemde değillerse ve ne söylediğiniz hakkında bir fikirleri yoksa, olasılıkla bu olayın daha fazla araştırılması gerekecek. Bu tür olayları iyice araştırın ve bir suçlama yapmadan önce fazlasıyla bilgi sahibi olun. Eğer bir ağ güvenliği ihlali belirlediyseniz, ilk yapılacak şey (yapabiliyorsanız), ağınızın bağlantısını kesmektir. Modem ile bağlanıyorlarsa, modem kablosunu çıkarabilir, Ethernet yoluyla bağlanıyorlarsa Ethernet kablosunu çıkarabilirsiniz. Bu onların daha fazla zarar vermesini engelleyecek ve yakalandıklarından çok bir ağ problemi olduğuna inanmalarına yol açacaktır. Eğer ağın bağlantısını kesemiyorsanız (yoğun kullanımlı bir siteniz varsa veya makinelerinizin fiziksel denetimi elinizde değilse), en iyi diğer bir adım, izinsiz giriş yapan kişinin sitesinden erişimi tcp_wrappers veya ipfwadm kullanarak reddetmektir. Eğer izinsiz giren kişinin sitesinden erişimi reddedemeyecek durumda iseniz, kullanıcının hesabını kilitlemek zorunda kalabilirsiniz. Unutmayın ki hesabı kilitlemek kolay bir iş değildir. Düşünmeniz gerekenler arasında .rhosts dosyaları, FTP erişimi ve olası başka arka kapılar sayılabilir. Yukarıdakilerden birini yaptıktan sonra (ağın bağlantısını kestiniz, siteden erişimi yasakladınız ve/veya hesaplarını etkisiz hale getirdiniz), yapmanız gereken o kullanıcının çalıştırdığı tüm işlemleri öldürmek ve sistem dışına çıkarmaktır. Sonraki bir kaç dakika için sitenizi izleyebilirsiniz, çünkü saldırgan tekrar girmeyi deneyecektir. Belki de farklı bir hesap kullanarak ve/veya farklı bir ağ adresinden. Güvenlik Bozukluğu Sonrasında Evet, diyelim ki gerçekleşmiş bir güvenlik ihlalini veya bozukluğunu belirlediniz ve saldırganı sisteminiz dışına (umarım) attınız. Sırada ne var? Deliği kapatmak Eğer saldırganın sisteminize ne şekilde girdiğini belirleyebildiyseniz, o deliği kapatmayı denemelisiniz. Örneğin, kullanıcı giriş yapmadan önce belki de günlükte bir takım FTP kayıtları gördünüz. FTP servisini kapatıp güncel bir sürümünün olup olmadığına bakabilir veya listelerde herhangi bir onarım arayabilirsiniz. Bütün günlük dosyalarınızı gözden geçirin ve güvenlik liste ve sayfalarınızı bir ziyaret ederek onarabileceğiniz herhangi bir yeni açık olup olmadığını belirleyin. Caldera güvenlik onarımlarını [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinde bulabilirsiniz. Red Hat henüz güvenlik onarımlarını böcek onarımlarından ayırmadı, fakat dağıtım hata düzelten belgeleri [Sadece kayıtlı üyeler linkleri görebilirler. ] adresinden ulaşılabilir durumda. Debian artık bir güvenlik mektup listesi ve WWW sayfasına sahip. Daha fazla bilgi için: [Sadece kayıtlı üyeler linkleri görebilirler. ] adresine bakın. Eğer bir dağıtımcı firma bir güvenlik güncellemesi çıkardıysa, diğer çoğu Linux dağıtımcılarının da çıkarması olasılığı çok yüksektir. Artık bir Linux güvenlik izleme projesi var. Düzenli bir şekilde bütün kullanıcı gereçlerini deniyor ve olası güvenlik açıkları ve taşmalarını araştırıyorlar. Duyurularından: “ "OpenBSD kadar güvenli olabilme bakış açısıyla bütün Linux kaynaklarını sistemli bir şekilde izleme girişimimiz var. Bazı problemleri belirlemiş (ve onarmış) durumdayız, fakat daha fazla yardıma da açığız. Liste kısıtlı bir liste değil ve aynı zamanda genel güvenlik tartışmaları için de yararlı bir kaynak. Liste adresi: [Sadece kayıtlı üyeler linkleri görebilirler. ]. Abone olmak için [Sadece kayıtlı üyeler linkleri görebilirler. ] adresine bir mektup gönderin" ” Saldırganın girişini kilitleyerek engellemezseniz, muhtemelen geri gelecektir. Dönüşü sadece sizin makinenize değil, ağınızdaki herhangi bir yere olabilir. Eğer bir paket koklayıcı çalıştırıyorduysa, diğer makinelere erişim sağlamış olmaları da muhtemeldir. Hasar Tespiti Yapılacak ilk iş hasarın tespit edilmesidir. Tam olarak bozulan nedir? Tripwire gibi bir bütünlük inceleyici çalıştırıyorsanız, bir bütünlük taraması için kullanabilirsiniz; neyin bozulduğunu bulmanıza yardımcı olacaktır. Kullanmıyorsanız, tüm önemli verinizi kendiniz incelemek zorunda olacaksınız. Linux sistemlerinin gün geçtikçe daha kolay kuruluyor olması nedeniyle, yapılandırma dosyalarınızı saklamayı, disklerinizi temizleyip, yeniden kurmayı, sonra da kullanıcı ve yapılandırma dosyalarınızı yedeklerden yerine koymayı düşünebilirsiniz. Bu yeni ve temiz bir sisteme sahip olduğunuzdan emin olmanızı sağlayacaktır. Eğer bozuk sistemden bazı dosyalar almak durumunda kalırsanız, çalıştırılabilir dosyalar konusunda özellikle dikkatli olun, çünkü izinsiz giriş yapan kişi tarafından konulmuş truva atları olabilir. İzinsiz giren kişinin root erişimi sağlaması durumunda yeniden kurulum zorunlu olarak düşünülmelidir. Ek olarak, var olan kanıtları saklamak isteyebilirsiniz, dolayısıyla yedek bir disk bulundurmak mantıklıdır. Düşünmeniz gereken bir diğer konu da güvenlik bozukluğunun ne kadar zaman önce gerçekleştiği ve yedeklerdeki bilgilerin hasarlı çalışmaları içerip içermediğidir. Şimdi yedekler konusu. Yedekler, Yedekler, Yedekler! Düzenli yedekleme, güvenlik konularında bir nimettir. Sisteminizin güvenliği bozulduysa, gereken veriyi yedeklerden yerine koyabilirsiniz. Elbette, bazı veri saldırgan için de değerlidir, sadece yok etmek değil, bilgiyi çalma ve kendi kopyalarını oluşturma eylemlerini de gerçekleştirebilirler. Ama en azından verinin bir kopyasını elinizde bulundurmuş olursunuz. Kurcalanan bir dosyayı yerine koymadan önce, bir kaç yedek öncesine de bakmalısınız. Saldırgan dosyalarınızı uzun süre önce bozmuş olabilir ve bozulan dosyaların yedeğini almış olabilirsiniz! Elbette, yedeklerle ilgili bir takım güvenlik konuları da vardır. Yedeklerinizi güvenli bir yerde sakladığınızdan emin olun. Kimlerin erişimi olduğunu bilin (Eğer bir saldırgan yedeklerinize ulaşırsa, haberiniz bile olmadan tüm verinize ulaşabilir). İzinsiz Giren Kişiyi İzleme Tamam, izinsiz giren kişiyi dışarı attınız ve sisteminizi iyileştirdiniz, ama işiniz henüz bitmiş sayılmaz. Çoğu saldırganın yakalanma olasılığı düşük olmakla birlikte, saldırıyı rapor etmeliniz. Saldırıyı, saldırganın sitesindeki yöneticilere bildirmelisiniz. Bu yönetici bilgisine whois komutuyla ya da Internic veritabanından ulaşabilirsiniz. Onlara bütün uygun günlük satırlarıyla tarih ve saat bilgilerini içeren bir e-mektup atabilirsiniz. Saldırgan hakkında ayırt edici başka herhangi bir şey de belirlediyseniz, bunu da onlara bildirin. Mektubu gönderdikten sonra (dilerseniz) bir telefon konuşması da yapabilirsiniz. Eğer o yönetici sizin saldırganınızı belirlerse, o siteye giriş yaptığı diğer sitenin yöneticisiyle konuşabilir ve bu şekilde sürer. İyi korsanlar, arada pek çok site kullanırlar, bunlardan bazıları (veya çoğu) güvenliklerinin bozulduğundan dahi habersizdirler. Bir korsanı ev sistemine kadar izlemeyi denemek zor bir iş olabilir. Konuştuğunuz sitelerin yöneticilerine karşı nazik olmak, yardım alma konusunda oldukça yol almanızı sağlayabilir. Ayrıca, Linux sistem dağıtıcınızı olduğu kadar, bir parçası olduğunuz ([Sadece kayıtlı üyeler linkleri görebilirler. ] veya benzer) güvenlik örgütlerini de bu konuda uyarmalısınız. Konu OnLiNe tarafından (29-12-2006 Saat 19:30 ) de değiştirilmiştir. |
|
| | #5 |
| Resmi Üye ![]() | |
|
| | #6 |
| Forumkolik Üye ![]() | konu başlığı düzenlenip uygun görülüp sabitlenmiştir |
|
![]() |
| Konu Seçenekleri | |
| Modları Göster | |
| |
Okuduğunuz Konuya Benzer Konular | ||||
| Konu | Konuyu Açan | Forum | Cevaplar | Son Mesaj |
| kablosuz ağ güvenliği | blue_inside | Bilgisayar Güvenliği | 0 | 31-05-2007 10:10 |
| Mail Güvenliği Hakkında | cyBER_HaYLaZ | Mail Yardım | 0 | 15-04-2007 22:01 |
| E-Mail Güvenliği | şeyt@n | Bilgisayar Güvenliği | 1 | 13-03-2007 17:12 |
| Linux İpuçları | DarkSide | Linux | 0 | 11-12-2006 13:20 |
Forum Saati: 04:27