FreeBSD IPFireWall Ve netUstad Yazılımı Özkan KIRIK EnderUNIX Yazılım Geliştirme Takımı Dönem Lideri – Yazılım Geliştiricisi ozkan@enderunix.org http://www.enderunix.org/~ozkan/
Güvenlik Duvarı (Firewall) Nedir? Bir sistemin özel kısımlarını, genel kullanıma açık kısımlarından ayırt eden, kullanıcıların kendilerine tanınan haklardan daha fazlasını almalarını engelleyen ve belirlenen güvenlik politikalarını uygulayan yapılardır.
Güvenlik Duvarının Ağ Üzerindeki Yeri İnternet Yerel Ağ FireWall Filtrelenmiş Veri Filtrelenmemiş Veri Güvenlik Duvarı, Internet ile yerel ağ arasındaki tek geçiş noktası olmalıdır.
IPFireWall’un Özellikleri Statik Paket Filtreleme Statefull Paket Filtreleme Layer II, Layer III Seviyelerinde Kural Yazabilme Paket Trafiği Düzenleme (Bant Genişliği ve Queue) IPSTEALTH Paket İletme Lookup Table Kural Takımları (Rule Set) Kural dosyaları için PreProcessor desteği Jail’lerin trafiğini yönetebilme Arayüzler için Antispoof desteği
IPFireWall’u Aktif Hale Getirmek IPFirewall’u kullanabilmek için 2 farkı yöntem: Çekirdeğe statik olarak ekleyebiliriz Çekirdek modülü olarak yükleyebiliriz
IPFireWall’u Çekirdeğe Statik Olarak Eklemek Çekirdek konfigürasyon dosyasına options IPFIREWALL # Firewall Aktif options IPFIREWALL_VERBOSE # Log Tutma (syslogd) options IPFIREWALL_FORWARD # Paket İletme (FreeBSD 5.x ve sonrasında kaldırıldı) options IPDIVERT # Port Yönlendirme options DUMMYNET # Bant genişliği ve Trafik Düzenleme options IPSTEALTH # Traceroute araçlarından gizlenme Parametrelerini ekleyip, çekirdeği tekrar derlemeliyiz.
IPFireWall’u Modül Olarak Yüklemek Eğer sunucunuzun başında iseniz # kldload ipfw komutu ile ipfw modülünü yükleyebilirsiniz. Ancak standart kural “tüm paketleri engelle” olduğu için tüm ağ bağlantılarınız kesilecektir. Eğer sunucunuza ağ üzerinde bağlı iseniz # kldload ipfw && \ ipfw add 65000 allow all from any to any komutu ile ağ bağlantılarınız kesilmeden ipfw modülünü yükleyebilirsiniz.
IPFireWall Kullanımı IPFireWall’un söz dizimi: Örnekler: ipfw add [rule_no] [set set_no] <action> [log] <rule_body> ipfw {list|show} [rule_no | range] ipfw set [disable set_no] [enable set_no] ipfw table table_no {add|delete|list} <parametreler> ipfw {pipe | queue} number config config-options ipfw [–p preproc [preproc-flags]] filename Örnekler: ipfw add 10 set 1 allow log tcp from any to any 22 ipfw show 100-500 ipfw set disable 1 ipfw table 1 add 10.0.0.1 ipfw pipe 1 config bw 100Kbit/s ipfw –p cpp /etc/ipfw.rules
IPFireWall Kural İşlemleri (Actions) Paketlere uygulanabilecek başlıca işlemler, allow | accept | pass | permit deny | drop divert port forward | fwd ipaddr[,port] pipe, queue reset skipto number unreach code
IPFireWall ve Network Address Translation (natd) IPFireWall, nat işlemini doğrudan kendisi yapmıyor. Bu nedenle bu işi yapabilecek bir yazılım (natd) kullanıyor. natd, kullanıcı tarafında bir deamon olarak hizmet veriyor. ipfw ile nat işlemine tabii tutmak istediğimiz paketleri belirleyip divert işlemine tabii tutarak nat daemon’a göndeririz. natd, gelen pakete gerekli işlemleri uyguladıktan sonra paketi firewall’a gönderir. (allow, pipe) ipfw NAT yapılacak Paket (divert) NAT yapılmış paket natd
IPFireWall ve Network Address Translation (natd) Yapılması gereken düzenlemeler; /etc/rc.conf dosyası natd_enable=“YES” natd_flags=“-f /etc/natd.conf” /etc/natd.conf dosyası same_ports yes redirect_address <local_ip> <static_ip> redirect_port <local_ip>:<port> <global_port> alias_address <dnat_ip> ipfw kuralları ipfw add divert natd all from any to any
IPFireWall ile Trafik Düzenleme Statik Bant Genişliği Düzenleme: ipfw pipe 1 config bw 256Kbit/s ipfw pipe 2 config bw 64Kbit/s ipfw add pipe 1 all from any to 10.0.1.0/24 in ipfw add pipe 2 all from 10.0.1.0/24 to any out
IPFireWall ile Trafik Düzenleme Dinamik Bant Genişliği Düzenleme: Belirli bir hızı düzenli paylaştırma, ipfw pipe 3 config bw 2Mbit/s ipfw queue 1 config weight 5 pipe 3 ipfw queue 2 config weight 2 pipe 3 ipfw queue 3 config weight 1 pipe 3 ipfw add queue 1 all from 10.0.1.1 to any keep-state ipfw add queue 2 all from 10.0.1.2 to any keep-state ipfw add queue 3 all from 10.0.1.0/24 to any keep-state
IPFireWall ile Trafik Düzenleme Dinamik Bant Genişliği Düzenleme: Tüm kullanıcıların hızını sabit değerle sınırlama, ipfw pipe 4 config bw 56Kbit/s mask src-ip 0xffffff ipfw pipe 5 config bw 56Kbit/s mask dst-ip 0xffffff ipfw add pipe 4 all from 10.0.1.0/24 to any ipfw add pipe 5 all from any to 10.0.1.0/24
netUstad – Network Üstadı IBM Linux Başarı Ödülleri 2004 Finalisti olan netUstad; Ağ Yönetimini Kolaylaştırmak Kullanıcıdan kaynaklanabilecek yazım hatalarını en aza indirgemek Ağ servislerini birarada yönetmek Amacıyla geliştirilmiş ve geliştirilmeye devam eden bir yazılımdır. Proje Sayfası: http://www.enderunix.org/netustad Yazar: Özkan KIRIK EnderUNIX Yazılım Geliştirme Takımı Dönem Lideri – Yazılım Geliştiricisi
netUstad – Network Üstadı netUstad’ın Özellikleri; FreeBSD ve Linux Platformlarında Çalışabilir Kendi HTTP/HTTPS Sunucusunu Barındırıyor FreeBSD’de ipfw ve natd Yönetimi Linux’ta iptables Yönetimi Routing Tablosu Yönetimi Ağ Arayüzleri Yönetimi Kullanıcı Arayüzü için SSL desteği Çoklu Dil Desteği (NLS – Gettext)
EnderUNIX Yazılım Geliştirme Takımı Yazılım geliştirme konusunda dünyaca kabul görmüş yerli bilgi ve yerli ürün üretmek misyonuyla kurulmuştur. Türkiye’de kurulan ilk açık kod yazılım geliştirme takımıdır. Kurulduğu günden beri aktif olarak proje ve bilgi üreten ve üretmeye devam eden bir oluşumdur. İç tüzüğü ve çalışma prensipleri tanımlanmış yarı sanal yarı gerçek bir organizasyondur. Şu ana kadar tüm dünyada kullanılan, değişik işletim sistemlerine port edilen 12 adet yazılım çıkarmıştır.
EnderUNIX Yazılım Geliştirme Takımı Organizasyon Yapısı Destekleyenler Kullanıcılar Çekirdek Takım: İsmail YENİGÜL Murat BALABAN Ömer Faruk ŞEN Barış ŞİMŞEK Yazılım Geliştirme Takımı Halil DEMİREZEN Atılım BOY Necati Ersen ŞİŞECİ Özkan KIRIK Yazılım Geliştirme Takımı Çekirdek Takım Destekleyenler Özgür ÖZDEMİRCİLİ Huzeyfe ÖNAL Marmara Üniversitesi 9 Eylül Üniversitesi
EnderUNIX Yazılım Geliştirme Takımı Projelerimiz Isoqlog: Sendmail, qmail, postfix ve exim destekleyen Mail Sunucu log analiz programı. Vpwd2SQL: /etc/[shadow|master.passwd] dosyalarını vpopmail kullanıcılarına dönüştürür QLDAPAdmin: qmail kullanıcılarının bilgilerinin tutulduğu LDAP dizinlerini yönetim uygulamasıdır spamGuard: Sendmail, postfix ve qmail destekleyen spam önleyici uygulama Aget: Multithreaded download programı Hafiye: POSIX uyumlu, kişiselleştirilebilir bir TCP/IP ağ paket dinleyicisi
EnderUNIX Yazılım Geliştirme Takımı Projelerimiz Knowlan: ARP protokolü bazlı, yerel ağdaki bilgisayarların IP ve network kartı ARP bilgisini listeler. Zabit: Zabit, qmail için yazılmış bir içerik ve eklenti filtreleyicidir. netUstad: Network servislerini kolayca webden yönetebilmek için bir arabirim qSheff: qmail Antivirüs & İçerik Filitreleme Aracı Program VoIPong: Voice Over IP Sniffer CheckDNS: DNS Sunucu analizi yapan ve raporu HTML olarak üreten bir program.
Sorular Özkan KIRIK -- Teşekkürler -- EnderUNIX Yazılım Geliştirme Takımı Dönem Lideri – Yazılım Geliştiricisi ozkan@enderunix.org http://www.enderunix.org/~ozkan/