'*nix' Kategori'sine ait arşiv.
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) |
The UNIX-HATERS Handbook
UNIX-HATERS isimli bir mailing liste gönderilen mesajlardan derlenerek 1994 yılında piyasaya sürülmüş böyle bir kitap var. Her ne kadar ben bir Unix sever olsam da ve kitapta Unix işletim sistemlerinin boktan yanları olarak lanse edilmiş bir çok konu artık tarih olmuş olsa da, mizahi içeriği nedeni ile okunabilecek bir kitap.
"There are two major products that come out of Berkeley: LSD and UNIX.
We don’t believe this to be a coincidence."
– Jeremy S. Anderson
Kitapla ilgili geniş bilgi ve kitabın PDF halini download etmek için http://en.wikipedia.org/wiki/UNIX-HATERS_Handbook adresine bakabilirsiniz.
Ayrıca, birileri WINDOWS-HATERS isimli bir mailing list kursa eğlencelik epey malzeme çıkar diyorum ben.
Mysql – Backup to FTP (PHP Script)
Bir mysql sunucusundan mysqldump ile backup alıp ftp üzerinden uzaktaki bir sunucuya gönderen güzel bir php script.
İçeriği aşağıdaki gibi olan bu scripti kendi sisteminize göre düzenledikten sonra cron job olarak tanımlayabilirsiniz. Böylece periyodik olarak alınan backupları istediğiniz bir lokasyonda muhafaza edebilirsiniz.
Gerekenler
PHP
Bir FTP Hesabı
ve son olarak MYSQL
Uygulanışı
1 – Aşağıdaki script içeriğini serverınızda oluşturacağınız backuptoftp.php isimli bir dosyaya kopyalayın.
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.
Firefox add-on: Nagios Checker
Nagios serverınızdan çektiği veriyi parse etmek suretiyle, herhangi bir servis/host check alarmını Nagios Web Interface’inin açık olmasına gerek kalmaksızın görmenize yarayan bir status bar eklentisi.
Problem sırasında verdiği sesli ve görüntülü alarmlar çok işe yarıyor.
Php Upload File Size
Web tabanlı bir php uygulaması ile servera büyük ebatlı dosyalar upload etmek için php.ini’de default 2M olarak belirlenmiş olan upload_max_filesize ve post_max_size değerlerini arttırmanız gerekiyor.
Ancak web üzerinden yapılan upload işlemlerinde, upload edilen veri öncelikle Memory’e yazıldığı için bu değerleri çok arttırmanız durumunda sunucunuzda yeterli memory kalmamasına neden olabilirsiniz. Dolayısı ile bu değerleri girerken, ram miktarı ve sunucunun kullandığı memory miktarını göz önünde bulundurmakta fayda var. Yeni değerleri php.ini’ye girdiğiniz zaman apache’yi restart etmeniz gerekiyor.