coolwolf / 01/12/2010
Öncelikle http://shorewall.de/pub/shorewall/4.6/shorewall-4.6.4/ adresinden aşağıdaki paketleri indiriyoruz:
Siz kurarken daha yeni sürümü varsa onu yükleyebilirsiniz.
wget http://shorewall.de/pub/shorewall/4.6/shorewall-4.6.4/shorewall-4.6.4-3.noarch.rpm
wget http://shorewall.de/pub/shorewall/4.6/shorewall-4.6.4/shorewall-core-4.6.4-3.noarch.rpm
ardından
rpm -ivh shorewall-core-4.6.4-3.noarch.rpm shorewall-4.6.4-3.noarch.rpm
komutuyla shorewall kurulumunu tamamlıyoruz.
Şimdi sıra shorewall yapılandırmasında. Bu örnekte 2 arayüzlü bir firewall düşünülmüştür.
Birinci arayüz internete (eth0) ikinci aryüz (eth1) ise yerel ağımıza bağlı.
Shorewall kurulumu ile birlikte basit ayarları içeren ön tanımlı ayar dosyaları da gelmektedir.
rpm -ql shorewall | fgrep two-interfaces
komutuyla bu dosyaların nerede saklandığını buluyoruz.
cd /usr/share/doc/shorewall-4.6.4/Samples/two-interfaces
komutuyla bu dosyaların bulunduğu dizine giriyoruz.
cp * /etc/shorewall/
komutuyla buradaki dosyaları /etc/shorewall/ altındaki asıl yerlerine kopyalıyoruz.
Kopyalama esnasında dosyaların üzerine yazılsın mı diye sorarsa hepsine evet diyoruz.
Şimdi buradaki dosyaları kendimize göre düzenleyelim
/etc/shorewall/interfaces dosyası
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect dhcp,tcpflags,routefilter,nosmurfs,logmartians
loc eth1 detect tcpflags,nosmurfs
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
bizim yapılandırmamız da aynı şekilde olduğu için buraya dokunmuyoruz. Eğer ağ arayüz ayarlarınız farklı ise buradan gerekli değişiklikleri yapabilirsiniz.
/etc/shorewall/masq dosyası
#INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARK
eth0 eth1
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
dış ağ arayüzü olan eth0, iç arayüz eth1 de masquerade yapılacak.
policy ve rules dosyalarını kendi isteklerinize göre özelleştirebilirsiniz.
Son olarak /etc/shorewall/shorewall.conf dosyasında
STARTUP_ENABLED=No
olan değeri
STARTUP_ENABLED=Yes
yapıyoruz.
shorewall start
komutu ile güvenlik duvarımız devreye giriyor.
NOT: shorewall’ı başlatmadan önce lütfen policy ve rules dosyalarında gerekli ayarları yapınız. aksi takdirde uzaktan bağlanamazsınız.
Tabi makina başındaysanız sorun yok.
Eğer yerel ağda bir sunucunuz çalışıyor ve dışarıdan gelen istekleri bu sunucuya yönlendirmek istiyorsanız aşağıdaki komutu rules dosyasına yazabilirsiniz. Aşağıdaki gibi bir komut internetten 25,53,80 ve 110 portlarına gelen istekleri yerel ağdaki 10.1.1.1 ip’li bilgisayara yönlendirecektir.
DNAT net loc:10.1.1.1 tcp 25,53,80,110
Peki ya yerel ağda birden fazla makinada aynı portu kullanan servisler varsa (uzak masaüstü gibi).
Böyle bir durumda aşağıdaki komutu kullanıyoruz:
DNAT net loc:10.0.0.2:3389 tcp 3388
bu tanımlama internetten 3388 portuna gelen istekleri 10.0.0.2 makinasının 3389 (yani uzak masaüstü) portuna yönlendirir.
Peki MSN Messenger kullanımını engellemek istersem:
REJECT loc net tcp 1863
komutu tüm yerel ağ kullanıcılarının MSN Messenger kullanmasını engeller. Eğer bazı ip adreslerine MSN Messenger izni vermek istiyorsak da aşağıdaki komutu kullanabiliriz:
REJECT loc:!10.1.1.10,10.1.1.11,10.1.1.12 net tcp 1863
bu komutla yerel ağdaki herkes msn engelli iken, 10.1.1.10,10.1.1.11 ve 10.1.1.12 ipli makinalara MSN izni verilmiş oluyor.