IPFIREWALL ve Snort_Inline ile IPS – Part 2: Snort_Inline Kurulumu
IPFW ve Snort_Inline ile IPS uygulaması ile ilgili olarak http://www.syslogs.org/2008/07/ipfirewall-kurulumu/ linkinden ulaşabileceğiniz bir önceki yazımda IPFIREWALL kurulumuna ait notları paylaşmıştım. IPS uygulaması için ikinci bölüm olan bu yazıda ise Snort ve doğal olarak snort_inline’la ilgili kurulum notlarını bulabilirsiniz.
SNORT NEDİR ?
Snort, açık kaynak kodlu olarak geliştirilen, network tabanlı bir saldırı tespit ve önleme (network intrusion prevention and detection system) yazılımıdır. Adından da anlaşılacağı üzere kullanım amacı, herhangi bir networke dışarıdan yapılan sızma girişimlerini testip etmek ve önlemektir. Offical dökümanlarında yaptığı temel işleri şu şekilde sıralamışlar:
IPFIREWALL ve Snort_Inline ile IPS – Part 1: IPFW Kurulumu
Bir kaç gündür IPFW ve Snort_Inline ile oluşan open source bir IPS sistemini devreye almak için uğraşıyordum. Bu iki bölümlük yazıda kurulumun nasıl yapıldığı ve konfigurasyonlarla ilgili notları paylaşacağım. Siz de networkünüzde IPS olarak IPFW/Snort_Inline ikilisinden yararlanmak isterseniz belki bu döküman işinize yarayabilir.
Zira binlerce dolar ödeyip karşılığında alacağınız bir hardware IPS yerine hiç bir ücret ödemeden bir IPS sistemine sahip olmak cazip bir seçenek olabilir. Kaldıki Snort’un sektörde artık bir standart haline gelmiş olması kafanızdaki şüpheleri ortadan kaldırabilir Önce IPFIREWALL. |
IPFIREWALL NEDİR ?
Namı diğer IPFW, FreeBSD tarafından geliştirilen hem Stateless hem de Statefull firewall mimarisini üzerinde barındıran güzel bir ip tabanlı firewall yazılımıdır. Ayrıca, traffic shaping, transparent forwarding ile NAT ve PATgibi özellikler sağlar. Bu özellikler ile ilgili detayli bilgiyi, dökümanın “ipfw komutları” bölümünde bulabilirsiniz. Öncelikle nasıl kurulduğuna değineceğim.
NASIL KURULUR
Aslında IPFW, FreeBSD ile birlikte loadable module olarak geldiği için NAT uygulaması kullanmak istemeniz haricinde ekstradan herhangi bir kuruluma ihtiyaç duymazsınız. Açılışta firewall’un devreye girmesi için rc.conf dosyasına aşağıdaki satırı girmeniz yeterlidir.
firewall_enable="YES"
Ancak NAT kullanmak istemeniz durumunda (ki snort_inline için gerekmektedir.) kernelinize options IPDIVERT satırını eklemeniz ve yeniden derlemeniz gerekmektedir. Kernelinizi yeniden nasıl derleyebileceğiniz ile ilgili bilgiye, daha önce yazmış olduğum Custom Kernel dökümanından ulaşabilirsiniz.
NAT dışında gerekli olmasa da bilgi olması açısından IPFW’nin kernel opsiyonları şu şekilde.
Portsnap ile Süratli Ports Collection Güncellemesi.
Portsnap, FreeBSD’lerde port kurulumu ve güncellemesi için hızlı bir alternatif sunan güzel bir sistem. Ben genelde alışkanlıklarım nedeni ile bu işler için cvsup kullanan ve portsnap’a pek dokunmayan biriyimdir. Ancak bazı zamanlarda alışkanlıkların dışına çıkmak ve zaman kazanmak gerekebilir. İşte bu noktada portsnap tam da aradığınız bir yöntem olabilir.
Portsnap kısaca, FreeBSD ports collection’unun güvenli bir şekilde yayınlanmasını sağlayan bir sistem. Bu yöntem ile önceden oluşturulmuş güncel bir port ağacına ait snapshot’ı HTTP üzerinden sisteminize indirip kurabiliyorsunuz; ya da daha önceden kurulmuş port ağacını güncelleyebiliyorsunuz.
Kurulum ve kullanım:
Portsnap FreeBSD 6.0 ve daha yeni sürümlerde default olarak gelmektedir. Yani bu sürümleri kullanıyorsanız portsnap kurulumu yapmanıza gerek yok. Ben genelde 6.0 ve üzeri sürümleri kullandığım için portsnap kurulumuna detaylı bir şekilde değinmeyeceğim. Ancak eğer sisteminizde ports yüklü durumdaysa, /usr/ports/sysutils/ dizini altında portsnap ‘ı bulabilirsiniz. Bu dizinde make install clean demeniz kurulum için yeterli olur. Eğer FreeBSD’nin 6.0 öncesi bir sürümünü kullanıyorsanız ve ports sisteminizde yüklü değilse CD’den ports kurulumu için http://www.syslogs.org/2007/12/freebsd-62-kurulumu-part-v-ports-collection/ sayfasından yararlanabilirsiniz.
Portsnap’ın /etc/ dizini altında portsnap.conf isimli küçük bir configuration dosyası var. Aslen bu dosyada herhangi bir düzenleme yapmanıza gerek yok; default değerler ile sorunsuz çalışacaktır.
Webmin – Web-Based Unix Management
Genellikle işin kolayına kaçmayı seven ve "İşimi görsün de gerisi önemli değil." şeklindeki yaygın bakış açısından kaçınan bir insanımdır. Zira yaptığım işle ilgili olarak ne yaptığımın, çalıştırdığım bir uygulamanın görevini yaparken ne yaptığının tam olarak bilincinde olmak isterim. Zannedersem *nix’lere olan ilgim de -açık olmalarından dolayı- bu tutumdan kaynaklanıyor. |
Ancak elbetteki bazı zamanlar istisnai durumlar olabiliyor. İşte Webmin de o istisnai durumlardan biri. Webmin normalde komut satırında ve konfigurasyon dosyalarını manuel olarak editlemek suretiyle yönetimini yaptığınız Unix türevi işletim sistemlerini ve üzerinde çalışan uygulamaları web arayüzlü olarak yönetmenizi sağlayan perl ile yazılmış bir araç. Hemen hemen her türlü yönetim faliyetini destekliyor olması nedeniyle de oldukça gelişmiş bir yazılım.
Her ne kadar bu tip daha az efor ve daha az bilgi ile işleri halleden araçlar insanı köreltse de bazı zamanlarda ve bazı uygulamalar için faydalı olabiliyor. (Daha az efor iyi bir şey olabilir ama bence daha az bilgi gerektirmesi, insanın daha fazlasını öğrenmek istemesinin nedenlerini törpüleyen bir durumdur.)
Neyse, bu kullanışlı ama alışkanlık haline getirilmemesi gereken yazılımı kurmak için öncelikli olarak sisteminizde Perl 5’in kurulu olması gerekiyor.
FreeBSD için kaynaktan kurulum adımları şöyle:
Webmin’i download edin.
# fetch http://prdownloads.sourceforge.net/webadmin/webmin-1.420.tar.gz (12MB) |
FreeBSD – IP Aliases
FreeBSD sistemlerde, aynı ethernet arayüzü üzerine ikinci bir ip eklemek istemeniz durumunda ifconfig aracından yararlanarak IP alias tanımlaması yapabilirsiniz.
Sisteme İkinci IP’nin Eklenmesi
Örnek olarak 192.168.12.5 ip adresini sisteme alias olarak tanımlamak için aşağıdaki komutu kullanabilirsiniz.
# ifconfig bge0 192.168.12.5 netmask 0xffffffff alias
Bu komutla birlikte bahsi geçen ip adresi NIC’e alias olarak atanacaktır. Ancak bu yapılandırmanın kalıcı olması için /etc/rc.conf dosyasına da ekleme yapmak gerekmektedir. Aksi taktirde FreeBSD reboot edildiği zaman ilgili değişiklik uçacaktır.
İşte /etc/rc.conf satırına eklenecek satır:
ifconfig_bge0_alias0="192.168.12.5 netmask 0xffffffff"
Bu ayarlardan sonra ifconfig çıktınız şöyle görünecektir.
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING> inet6 fe80::99d:92fs:te99:3e1e%bge0 prefixlen 64 scopeid 0x1 inet 192.168.12.4 netmask 0xffffff00 broadcast 192.168.12.255 inet 192.168.12.5 netmask 0xffffffff broadcast 192.168.12.5 ether 00:3c:92:01:4e:3d media: Ethernet autoselect (1000baseTX <full-duplex>) status: active
Not: Örnek komut satırında geçen bge0 benim ethernet kartımın kısa kodu olduğundan dolayı, bu kısıma kendi ethernet markanızın kısa kodunu girmeniz gerekiyor.
Ayrıca; komut içerisinde verdiğiniz netmaskın çakışmaya neden olmaması için ana ip adresinde belirtilmiş netmask ile aynı olmaması gerekiyor. Bu nedenle 0xffffffff veriyoruz. ilgili ifconfig8 man dosyasında alias konusundaki açıklama:
alias Establish an additional network address for this interface. This is sometimes useful when changing network numbers, and one wishes to accept packets addressed to the old interface.If the address is on the same subnet as the first network address for this interface, a non-conflicting netmask must be given. Usually 0xffffffff is most appropriate.
Varolan IP Alias’ın Sistemden Kaldırılması
Sisteme hali hazırda eklenmiş olan bir ip alias’ı kaldırmak için aşağıdaki ifconfig komutu iş görecektir.
# ifconfig bge0 inet 192.168.12.5 -alias
Aynı zamanda /etc/rc.conf satırından da ilgili alias satırını silmeyi unutmayın.
Dump Backup
FreeBSD’de dump ile örneğin /var’ın backup’ını almak icin komut şu şekilde.
dump -0L -f '/bla/bla.dump' -a '/var'
Switchler için, man dump.
VMWare Server – Guest FreeBSD Sistem Saatinin Geri Kalması…
VMWare Server üzerine guest olarak, FreeBSD kurduğunuz zaman sistem saatinizin sürekli olarak geri kalması problemi ile karşılaşabilirsiniz. Normal saatten yaklaşık olarak %70 oranında yavaş işlemesi nedeni ile sistem saatiniz devamlı geride kalacaktır.
http://www.mydigitallife.info/2006/04/12/freebsd-60-on-vmware- server-time-and-clock-slow-down/ adresinde anlatıldığı üzere bu sorun çözmenin iki yolu mevcut.
Birincisi, /boot/loader.conf doayasına ekleyeceğiniz hint.apic.0.disabled=1 satırı ile APIC device’ı devre dışı bırakmak.
İkincisi ise kernel’den device apic satirini comment out ederek, kernel bazında devre dışı bırakma yöntemi.
Detaylı bilgi için yukarıdaki linke göz atabilirsiniz.
Yukarıdaki makale FreeBSD 6.0 için yazılmış ama ben 7.0 üzerinde de birinci yöntemi kullanarak sorunu giderdim.
FreeBSD 6.3
FreeBSD’nin 6.3 versiyonu release edildi.
Ayrıntılar için bkz: http://www.freebsd.org/releases/6.3R/announce.html