Güvenlik Duvarı - Satın Almak, Kendiniz Yapmak?
Önceki Internet'e Bağlanırken Gerekenler: Firewall ve Proxy Sonraki
Güvenlik Duvarı - Satın Almak, Kendiniz Yapmak?
Neyi, nasıl güvenlik altına aldığınızı bilmeden, pahalı bir ticari güvenlik duvarı satın almak size güvenlik sağlamaz. Dünyanın en pahalı ve gelişkin güvenlik duvarı, eğer çeşitli protokolleri açmış, fiziksel bağlantının tekliği kavramına uymamış, her tür erişime izin vermiş iseniz, size bir fayda sağlamaz. Elinizdeki Cisco Router'unuzu paket filtrelemek için programlamaktan tutun, ticari ve pahalı bir güvenlik duvarı satın almaya kadar uygulayacağınız her tür yöntem, neyi, ne için yaptığınızı biliyorsanız faydalıdır. Güvenlik duvarları, sizin ağ altyapınız ve sizin erişim ihtiyaçlarınız ile alakalıdır. Dolayısıyla ticari bir güvenlik duvarı satın almak niyetinde olsanız dahi, güvenlik duvarlarının ne yaptığını öğrenmek ve erişim ihtiyaçlarınızı belirlemek zorundasınız.
Güvenlik duvarınızı kendiniz, Linux temelli bir makina üzerinde oluşturabilirsiniz veya kendiniz oluşturmak istemezseniz Linux temelli hazır bir güvenlik duvarını uygulayabilirsiniz. Ticari olarak satılan güvenlik duvarlarının yapıp, doğru oluşturulmuş bir Linux sisteminin yapamadığı hiç bir şey yoktur.
Satın Almak
Linux Temelli Hazır Güvenlik Duvarları
Her ne kadar genel bir dağıtım (örneğin Red Hat) ile başlayıp kendiniz güvenlik duvarını oluşturabilseniz dahi bazı sebeplerden dolayı bunu yapmak istemeyebilirsiniz:
  • Güvenlik duvarı olarak kullanacağınız makinayı doğru kurmanız gereklidir. Bunun üzerindeki gerekmeyen servisleri kaldırmanız, makinayı güvenli çalışabilecek şekilde kurmanız gereklidir. Bunları yapmakta kendinize güvenmiyorsanız, aşağıda bahsedilen hazır Linux güvenlik duvarlarından birini kurmak isteyebilirsiniz.
  • Güvenlik duvarı bir kez kurulup ondan sonra hiç güncellenmeyecek bir sistem değildir. Ticari güvenlik duvarları da sürekli olarak yeni bulunan eksiklikleri kapatmak için güncellenirler. Genel bir dağıtım kullanarak bir güvenlik duvarı oluşturduktan sonra, sürekli olarak yeni çıkan güncellemeleri takip etmek zorundasınız. Eğer bu takibi yapmaya zaman ayıramayacaksanız, aşağıdaki hazır Linux güvenlik duvarlarından birini kullanın. Yalnızca bu paketlere gelen güncellemeleri takip eder ve genel bir dağıtıma yapılan güncellemelerin sizin açınızdan gerekli olup olmadığına karar vermek yükünden kurtulursunuz.
  • Güvenlik duvarı üzerinde aşağıda bahsedilen yöntemleri doğru uygulamanız gereklidir. Eğer bunları doğru uygulayacak sistem bilgisine sahip değilseniz ve öğrenmek istemiyorsanız, hazır bir güvenlik duvarı sizin için en iyi yöntem olabilir.
  • Güvenlik duvarını gün be gün yönetecek kişi ile güvenlik duvarını kuracak kişi aynı olmayabilir. Aşağıda bahsedilen Linux temelli güvenlik duvarları gayet profesyonel görüntülü, grafik arayüzlerine sahiptir. Bunları kullanmak ve yönetmek kendi oluşturacağınız bir makinayı kullanmak ve yönetmekten daha kolay olacaktır.
  • Güvenlik duvarı için gereken bütün servisleri bir araya getirmek azımsanmayacak bir sistem entegrasyonudur. Bu işi yapmak yerine hazır, Linux temelli bir güvenlik duvarı kurmayı tercih edebilirsiniz.
Genel olarak, eğer Internet erişiminiz, kullanacağınız makina, uygulayacağınız protokoller Linux temelli hazır güvenlik duvarlarının birisi tarafından karşılanıyorsa, bunu kurmayı tercih edin. Eğer daha özel bazı istekleriniz varsa, kullandığınız donanım bu sistemler tarafından desteklenmiyorsa, o zaman aşağıda Red Hat dağıtımından yola çıkılarak sıfırdan güvenlik duvarının nasıl oluşturulduğu anlatılmıştır.
Astaro
Astaro gerçekten profesyonel bir güvenlik duvarı. Internet'den indirebilirsiniz. Ticari kuruluşların lisans alması isteniyor. Güvenlik duvarı üzerinde, Internet'den gelen postalar virüs kontrolünden geçiriliyor ve alınan lisans ağırlıklı bununla ilgili. Modem bağlantısı desteklemiyor -- fakat eğer sabit bir bağlantı ile Internet'e erişiyorsanız, bu sistemi kurun. Piyasadaki bütün ticari, kapalı güvenlik duvarları ile rahatlıkla yarışabilecek bir ürün. Lisanslandığı zaman otomatik olarak virüs dosyalarını ve kendisini güncelleyebiliyor. Sahiden güzel bir web tabanlı grafik arayüzü var.
Smoothwall
Daha ziyade ev kullanıcıları için tasarlanmış, modem bağlantısı da destekleyen bir güvenlik duvarı. Sevenleri çok, fakat 2.2 çekirdeği kullandığından dolayı dinamik filtreleme yapamıyor. Geliştiricileri pek geçimli değil ve son zamanlarda ürünlerini giderek daha fazla kapalı hale getirme çabası içerisindeler. Salt bu sebeplerden dolayı ben kullanmazdım.
Kendiniz Yapmak
Sıfırdan, Genel Bir Linux Dağıtımı (Red Hat) Kullanarak Güvenlik Duvarı Oluşturmak
Neden Kendi Güvenlik Duvarımızı Kurduk?
Bizim Firma A.Ş.'de henüz hızlı bir Internet bağlantısı bulunmamaktadır. Sabit hattın kurulması beklenirken Internet erişimini başlatmak istedik. Bunu yaparken elde olan Equinox çoklu modem kartını kullanmak ve karttaki modemlerden birisini Internet'e tahsis etmek istedik. Karttaki diğer modemler başka işler için kullanılacak. Bir modem ise gerektiği zaman çevir/bağlan yöntemi (dial-on-demand) ile Internet'e bağlantı sağlayacak.
Bir modem ile sürekli olmayan bir bağlantı üzerinden ne kadar dış saldırı gelebileceği tartışılabilir. Fakat bu uygulamayı gelecek olan sürekli bağlantı için bir ön çalışma olarak kullandık. Üstelik, bir modemin bağlantısını paylaştırabilmek için NAT yapmamız, bu kadar düşük hızlı bir bağlantıda biraz daha iyi performans sağlamak için web vekili (squid) kullanmamız ve ICQ vs. gibi iş için gerekli olmayan erişimleri engellememiz gerekmekte idi. Bu da zaten genel bir güvenlik duvarı oluşturmakta kullanılan bütün kavramları devreye soktu.
Özel bir modem kartı kullanmamız, bu karttaki başka modemler üzerinde farklı hizmetler vermek istememiz ve Internet bağlantımız modem üzerinden olduğu için Astaro'yu kullanamadık.
Kullanılan Donanım
  • Pentium III 800 Mhz CPU, on-board (Trident Generic) grafik kartı.
  • 128 MB RAM
  • 16 GB IDE Hard Disk
  • Intel Pro Dual 100 Mbit Ethernet kartı (çift portlu, ileride biri sabit bağlantı için kullanılacak)
  • Equinox SST 8 Çoklu Modem Kartı (8 modemin birisi Internet bağlantısı için kullanılıyor)
İşletim Sistemi ve Kurulum
Makina üzerine Redhat 7.2 kurduk. Custom server (özel sunucu) seçeneğini kullandık. Disk bölümünü Disk Druid ile elle yaptık, 96 MB /boot, 1 GB takas alanı (ileride RAM'i arttırırsak ek iş çıkarmamak için gereğinden 4 kat fazla), geri kalanı da / olarak bölümledik. /boot ve / üzerinde ext3 günlüklü dosya sistemini kullandık.
Makina üzerindeki iki ethernet kartının birini devre dışı bıraktık. İleride sabit bağlantı olduğu zaman bu kart üzerinden dışarıya bağlanacağız. İçeriye bağladığımız ethernet kartına elle 10.254.254.254 IP numarasını verdik. Ağın genelinde bu IP numarası ağgeçidi (gateway) adresi olarak kullanılacak. DNS sunucu numarası 127.0.0.1 (makina üzerinde yerel bir DNS sunucusu çalıştırıyoruz, iç ağdaki DNS sunucusundan bağımsız).
Güvenlik duvarını kendimiz kuracağımızdan dolayı "no firewall" seçeneğini seçtik. Kurulumda yaptığımız paket seçimleri:
  • Classic X
  • X Windows
  • KDE
  • Network Support - Ağ desteği
  • Dialup Support - Çevirmeli ağ desteği
  • DNS Server - Alan adı sistemi sunucusu
  • Web Server - Web sunucusu
  • Messaging/Web Tools - İletişim/Web araçları
  • Router/Firewall - Yönlendirici/Güvenlik duvarı
  • Authoring/Publishing - Yazarlık/Yayıncılık
  • Emacs
  • Utilities - Yardımcı uygulamalar
  • Software Development Yazılım geliştirme
  • Kernel Development - Çekirdek geliştirme
Makinayı metin bazlı açma seçeneğini etkinleştirdik. Kurulum esnasında kurduğumuz paketler gerekenden bir hayli fazla. Bunların bir bölümünü daha sonra makinadan kaldırdık. Güvenlikli bir sistem kurmanın püf noktası makinada gerekmeyen hiç bir şeyin bulunmamasından geçmekte. Dolayısıyla daha sonra makinadan pek çok paketi kaldırdık.
Servislerin Kapatılması
Red Hat kurulduktan sonra ilk işimiz gerekmeyen servisleri kapatmak oldu. Teker teker bütün servisleri gözden geçirip gerekip gerekmediğini düşündük.
# cd /etc/rc.d/rc3.d
# ls *
# mv S09isdn K09isdn
# mv S28autofs K28autofs
# mv S80sendmail K80sendmail
# mv S13portmap K13portmap
# mv S14nfslock K14nfslock
# mv S60lpd K60lpd
# mv S56rawdevices K56rawdevices
# mv S25netfs K25netfs
# mv S55sshd K55sshd
#
Bundan sonra /etc/xinetd.d dizininde yer alan, xinetd vasıtası ile başlatılan servislere baktık (telnet, ping vs.). Bunların hepsinin kapalı olduğundan emin olduk.
Gereksiz Paketlerin Kaldırılması
Sistemden kaldırılan paketler biraz sizin tercihinize bağlı. Biz bütün paketlere bakarak gerekmediğini düşündüğümüz herşeyi kaldırdık. Genel teamüle aykırı olarak geliştirme (development) ile ilgili paketleri ve istediğimiz zaman grafik arayüz kullanmak için kullanılan paketleri sistemde bıraktık. Bunun ne kadar doğru olduğu tartışılabilir, fakat güvenlik duvarı makinası üzerinde yapılacak işlemleri bizim açımızdan kolaylaştırmakta.
Güncellemeleri Uyguladık
Red Hat web sitesinden sistemimizi ilgilendiren bütün güncellemeleri uyguladık. Genel prensip olarak, eğer sistemde kurulu ise ve güncellenmesi çıkmış ise, bunu indirip kurduk. Zaman zaman da bu güncellemeyi yapmaya devam edeceğiz. Bu makinanın güncellenmesi, iç ağda yer alan herhangi bir makinanın güncellenmesinden çok daha önemli. Saldırılar genelde bilinen ve yeni sürümlerde düzeltilmiş olan eksikleri kullanarak güncellenmemiş sistemlere yönelik oluyor.
Modem Kartımızı Sisteme Tanıttık
Kullandığımız modem kartının sürücülerini Internet'ten indirmek zorundayız. Equinox web sitesinden eqnx-4.01-1.i386.rpm paketini indirdik ve kurduk. Bu paket rpm -Uvh eqnx* komutu ile sürücüsünü derliyor ve sistem açılırken gerekli olan ayarlarını /etc/rc.d/rc.local dosyasına yazdırıyor. Bu işlemden sonra Internet için kullanacağımız modem /dev/ttyQ1a1 aygıtı olarak sistem tarafından görüldü. Eğer seri port üzerinden haricî modem kullansa idik, aygıtımız /dev/ttyS01 olarak görülecekti ve bu işlemi yapmak zorunda olmayacaktık.
PPP Ayarlarının Yapılması
Bağlantının Sağlanması
Grafik arayüzleri (kppp vs.) normal masaüstü kullanımı için bu işlemi çok kolay hale getirmiş durumda, fakat bizim yaptığımız gibi sunucu şeklinde otomatik aranacak bir sistemde kendi bağlanma betiklerimizi hazırlamak zorundayız. Bu işlem biraz deneme yanılma gerektiriyor ve bir ISP'de çalışan betik bir diğerinde çalışmayabiliyor.
Deneme yanılma yöntemi ile bulduğumuz, NetOne ve AttGlobal için çalışan arama betikleri (telefon yazan yere telefon numarasını, örneğin 08225551212, yazın):
call-netone
TIMEOUT         5
ABORT           '\nBUSY\r'
ABORT           '\nNO ANSWER\r'
ABORT           '\nRINGING\r\n\r\nRINGING\r'
''              \rAT
'OK-+++\c-OK'   ATH0
TIMEOUT         30
OK              ATZ0
OK              ATM0L0
OK              ATDTtelefon
'\r'            ''
CONNECT         ''
call-attglobal
TIMEOUT         5
ABORT           '\nBUSY\r'
ABORT           '\nNO ANSWER\r'
ABORT           '\nRINGING\r\n\r\nRINGING\r'
''              \rAT
'OK-+++\c-OK'   ATH0
TIMEOUT         40
OK              ATZ0
OK              ATM0L0
OK              ATDTtelefon
CONNECT
'\n'            ''
''              ''
Bu betikleri /etc/ppp dizinine kaydedin:
# cp call-netone /etc/ppp
# cp call-attglobal /etc/ppp
Başka ISP'ler için çalışan bağlanma betikleriniz varsa, lütfen bana gönderin..
Bu betiklerin dosya izinlerinin gerektiği kadar olduğundan emin olun:
# chmod 600 /etc/ppp/call*
ISP'deki parola ve kullanıcı isminizi chap-secrets ve pap-secrets dosyasına kaydedin.
chap-secrets dosyası:
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
kullanici-ismi  netone  parola
pap-secrets dosyası:
# Secrets for authentication using PAP
# client        server  secret                  IP addresses
kullanici-ismi netone       parola
kullanici-ismi attglobal    parola
AttGlobal Chap desteklemiyor, dolayısıyla onu yalnızca pap-secrets dosyasına koyduk. Bu dosyalarda kullanici-ismi yazan yere ISP'deki kullanıcı isminizi (örneğin: mehmet), parola yazan yere parolanızı (örneğin: c2fj80d90) yazın. Bu dosyaları /etc/ppp dizinine kaydedin (orada boş dosyalar olduğundan soru sorabilir):
# cp chap-secrets /etc/ppp
# cp pap-secrets /etc/ppp
Bu dosyaların dosya izinlerinin gerektiği kadar olduğundan emin olun:
# chmod 600 /etc/ppp/*secrets
PPPD Seçeneklerinin Yapılandırılması
PPPD çok amaçlı bir servis. Bütün seçeneklerini ayrıntılı anlatmamıza imkan yok. Önemli bir nokta, eğer /etc/ppp/options.ttyXYZ diye bir dosya bulur ise, o aygıt için o dosyayı otomatik uygulayacağı. Bizim aygıtımız /dev/ttyQ1a1 olduğu için, /etc/ppp/options.ttyQ1a1 dosyası aşağıda:
#Bu seçenek bağlantı olduğu zaman aradaki ayar paketlerinin sayısını
#belirliyor. Bazen öntanımlı 10 paket yetmeyebiliyor. 30 olarak kullandık.
lcp-max-configure 30
#Bağlantı başlayınca modemi kilitliyor
lock
#10 dakika bir iletişim olmadığı zaman bağlantıyı kapatıyor
idle 600
#Dışarıdaki bağlantı ppp'nin iki ucundaki dinamik IP adreslerini belirler
ipcp-accept-remote
ipcp-accept-local
#Biz parola sormuyoruz, onlar bize soruyor
noauth
#Hangi kullanıcı olarak bağlandığımız. secrets dosyalarındaki parolayı
#bulmak için kullanılıyor.
user kullanici-ismi
#Birden fazla hesap secrets dosyasında yer alıyor. Bunlardan hangisi
#kullanılacak.
remotename attglobal
#Modem hızımız
57600 crtscts
#İlk başlatıldığı zaman ppp'nin iki ucundaki IP numaralarını belirlemek
#zorundayız. Bağlantıdan sonra bunlar değişecek ve gerçek (ve o bağlantıya
#has) IP numaraları olacak. Ama şimdi bir şeyler vermek zorundayız.
139.92.80.128:152.158.100.30
#Bağlantı betiğimiz.
connect '/usr/sbin/chat -v -f /etc/ppp/call-attglobal'
#Dial-on-demand, yani dışarıya biri bir paket gönderdiği zaman
#bağlanacağız, hemen değil.
demand
#ppp bağlantısı bu makina için öntanımlı ağgeçidi olacak.
defaultroute
Bu dosyayı birebir değil, sizin modem aygıtınızın ismi ile kaydedeceksiniz. Yani modeminiz /dev/ttyS01 ise,
# cp options.ttyQ1a1 /etc/ppp/options.ttyS01
Bu dosyanın dosya izinlerinin gerektiği kadar olduğundan emin olun:
# chmod 600 /etc/ppp/options*
PPP Servisinin Başlatılması
Bizim modemimiz ancak /etc/rc.d/rc.local dosyasında ilgili satırlar işlendikten sonra sistem tarafından görülebilir. Dolayısıyla biz pppd başlatma komutumuzu rc.local'e koyduk. Bu bütün sistem ayağa kalktıktan sonra en son işlendiği için sizin için de çalışacaktır. /etc/rc.d/rc.local dosyasına
/usr/sbin/pppd ttyQ1a1
ilave ettik. Sizin modeminiz /dev/ttyS01 ise, /usr/sbin/pppd ttyS01 yazacaksınız. Bundan sonra makinanız her yeniden başlatıldığında, "dial-on-demand" yntemi ile Internet'e bağlanmaya hazırdır. Henüz bu Internet bağlantısını başkalarına paylaştırmak konusunda bir bilgisi yok, fakat kendisi Internet'e otomatik olarak ihtiyaç gördükçe bağlanır, ve belli bir süre trafik olmazsa bağlantıyı kapatır.
Güvenlik Duvarını Oluşturma Yazılımı: Fwbuilder
Bundan sonra ilgili NAT ve filtreleme kurallarını oluşturmamız gerekiyor. Bu işlemi elle de yapabilirdik. Fakat Internet'ten indirebileceğiniz fwbuilder yazılımı bu işlemi bir hayli kolaylaştırıyor.
Ön Gereklilikler
fwbuilder'ı derleyebilmemiz için bize libxml2-devel, libxslt-devel, libsigc++ ve libsigc++-devel paketleri gerekti. Bunları Redhat CD'sinden yükledik. Ayrıca, Internet'ten Gtkmm paketini indirdik. Bu paketi
# rpm -tb gtkmm-1.2.8.tar.gz
komutu ile derledik ve oluşan RPM'leri sisteme kurduk:
# rpm -Uvh /usr/src/redhat/RPMS/i386/gtkmm*
Paketlerin derlenmesi
Fwbuilder web sitesinden fwbuilder-1.0.0-1rh72.src.rpm ve libfwbuilder-0.10.4-1rh72.src.rpm paketleri indirildi.
# rpm --rebuild libfwbuilder*
komutu ile libfwbuilder paketi derlendi,
# rpm -Uvh /usr/src/redhat/i386/libfwbuilder*
komutu ile sisteme kuruldu. Daha sonra
# rpm --rebuild fwbuilder*
komutu ile fwbuilder derlendi,
# rpm -Uvh /usr/src/redhat/RPMS/i386/fwbuilder*
komutu ile sisteme kuruldu.
NAT ve Filtreleme Politikalarının Yazılması
fwbuilder komutu ile yazılım açıldı. Iptables seçeneği seçildi. Yerel ağ (intranet) ve güvenlik duvarı makinası (perde adında) tanımlandı. "Help me build firewall policy" seçeneğinin yardımı ile ilk temel kurallar oluşturuldu, üzerine aşağıdaki kurallar ilave edildi.
Tablo 13.1. Ağ Birimlerine Ait Politikalar - ppp0
KaynakHedefServisİşlemYönAçıklama
HerkesHerkesip_fragmentsPaketi yok et (deny)içeri gelen (inbound) Modem kartına gelen (içeriden veya dışarıdan) her tür IP paket parçacığı reddedildi.
intranet, perdeHerkesBütün servislerPaketi yok et (deny)içeri gelen (inbound) Modem kartına dışarıdan içeriye gelip de kaynağını iç ağ olarak gösteren bir paket bir ip taklidi (ip spoofing) saldırısı olabilir. Reddedildi.
XIntranet, XperdeHerkesBütün servislerPaketi yok et (deny)dışarı çıkan (outbound) Modem kartına içeriden gelip de kaynağını dışarısı olarak gösteren bir paket olmaması gerekir, fakat başka bir sorunun işareti olabilir. Reddedildi.
Tablo 13.2. Ağ Birimlerine Ait Politikalar - lo0
KaynakHedefServisİşlemYönAçıklama
HerkesPerdeHepsiKabul etİçeri gelen (inbound) Loopback, makinanın kendi içinde çalışması gerekli olan bir arabirim. Herşey buna açık.
PerdeHerkesHepsiKabul etDışarı çıkan (outbound) Loopback, makinanın kendi içinde çalışması gerekli olan bir arabirim. Herşey buna açık.
Tablo 13.3. NAT Politikaları
İlk Kaynakİlk Hedefİlk ServisÇevrilen KaynakÇevrilen HedefÇevrilen ServisAçıklama
IntranetHerşeyhttpDeğişmediPerdesquid Bir web vekili (squid) kullanıyoruz. Dolayısıyla iç ağdan web (http) kullanarak dışarı çıkmak isteyen bütün paketleri güvenlik duvarı üzerinde squid portuna gönderiyoruz. Bunu kullanabilmek için güvenlik duvarı üzerinde squid vekil sunucusu çalıştıracağız.
IntranetHerşeyHerşeyPerdeDeğişmediDeğişmedi Intranet'ten dışarıya çıkmak isteyen herşeyi sanki paket güvenlik duvarından kaynaklanmış gibi yeniden yazıyoruz.
Tablo 13.4. Genel Politikalar
KaynakHedefServisİşlemAçıklama
HerkesHerkesip parçacıklarıPaketi yok et (deny)Bütün olmayan IP paketlerini yok ediyoruz
HerkesIntranet, perdeFaydalı ICMPKabul et Bu icmp servisleri bazı servislerin doğru çalışması için faydalı.
PerdeIntranetZaman aşımıKabul etTraceroute için bu gerekiyor
IntranetPerdeHerşeyKabul etİçeriden güvenlik duvarına erişim var
XIntranetPerdessh, telnet, httpPaketi yok et (deny) İçeriden gelmeyen ssh, telnet, http isteklerine cevap vermiyoruz. Zaten güvenlik duvarı üzerinde ssh ve telnet çalıştırmıyoruz ve aşağıdaki genel kural bunları da engellerdi. Fakat gene de emin olalım dedik.
perdeHerşeyherşeyKabul etGüvenlik duvarı herkese erişebilir
IntranetHerşeyhttp, https, dns_tcp, dns, ntp, traceroute, bütün icmp, telnet, imap, imaps, pop3, smtp, smtps, ssh, ftp, ftp dataKabul etİç ağdan bu servislerle dışarıya erişime izin var
IntranetHerşeyHerşeyReddetYukarıda kabul edilmeyen servisleri iç ağ için hemen reddediyoruz (bekleme olmuyor)
HerşeyHerşeyHerşeyPaketi yok et (deny)Yukarıdaki kuralların dışında kalan bütün durumları reddediyoruz.
fwbuilder, verilerini bir XML dosyası halinde saklıyor. /usr/local/firewall adında bir dizin oluşturduk ve burada perde.xml adında bir dosyada tanım dosyamızı tutuyoruz. Bizim kullandığımız tanım dosyasını proxy-fw-files.tar.bz2 paketinde bulabilir ve bunu değiştirerek kendi kurallarınıza uygun hale getirebilirsiniz. Kural kümemizi oluşturduktan sonra derleme (compile) seçeneği ile kuralları derliyoruz. Derlenen kurallar /usr/local/firewall/Perde.fw adında bir dosyaya konuyor.
NAT ve Filtrelemenin Devreye Alınması
Filtreleme kurallarımız /usr/local/firewall/Perde.fw dosyası altında oluştu. Şimdi bunu devreye almamız gerekli. Red Hat'in iptables betiğini bu iş için değiştirerek kullandık. Burada dikkat edilecek nokta, filtreleme işinin modem devreye alınıp pppd çalıştırıldıktan sonra yapılması gerektiği. Dolayısıyla Red Hat'in öntanımlı iptables çalıştırma sırası da değişmek zorunda. Bu betiği rc.local'dan çalıştıracağız.
Önce bir hata olmaması için iptables betiğini normal yerinden sildik:
# rm -f /etc/rc.d/rc3.d/*iptables
Değiştirilmiş iptables betiğini /etc/rc.d/init.d altına kopyaladık. Dosya izinlerinin doğru olduğundan emin olduk:
# chmod 755 /etc/rc.d/init.d/iptables
/etc/rc.d/rc.local betiğinde, pppd satırından sonra:
# /etc/rc.d/init.d/iptables start
satırını ekledik. Bundan sonra makina yeniden başlatıldığı zaman otomatik olarak NAT ve filtreleme başlayacak. Yerel ağdaki makinalara ağgeçidi adresi olarak güvenlik duvarımızın IP adresi olan 10.254.254.254'ü verip, iç ağdan herhangi bir şekilde Internet'e ulaşmak istediğimiz zaman güvenlik duvarımız Internet'e bağlanacak ve oluşturduğumuz kurallar dahilinde erişimi sağlayacak.
Önceki Üst Ana Başlık Sonraki
Güvenlik Duvarı Kavramları Başlangıç Web Vekili (Squid)
Bir Linux Kitaplığı Sayfası