Linux wireless LAN support
Wireless Kart almadan önce bu listeye göz atmak istersiniz !!!!
http://linux-wless.passys.nl/query_alles.php
Wireless Kart almadan önce bu listeye göz atmak istersiniz !!!!
http://linux-wless.passys.nl/query_alles.php
Ip cop Firewall hakkında bir önceki makalemizde tanımlamalar yapmıştık ve kurulum öncesi gerekli ayarları yaptıktan sonra kuruluma geçelim ve güvenli bir ortam oluşturalım .
Hatırlarsanız daha önceki anlatımda ipcop’u Cd’den kuracağımı belirtmiştim
- CD’yi kurulum yapılacak olan PC ye takıp PC’nin CD den boot edecek şekilde açılmasını sağlayın.
Enter’a basıyoruz.
1) Cd ile açıldığında karşınıza gelen ekranı Enter’ a basarak standart kurulum aşamasına eçebilirsiniz. IPCop yazılımı ilk önce kurulum yapmış olduğunuz donanımı inceleyecektir.
2-)
2) Donanım incelemesinden sonra dil seçeneği ile IPCop yazılımını hangi dilde kuracağımızı seçmemiz gerekiyor. Türkçe dil seçeneği de gelmektedir. Bu aşamada Dili İngilizce veya bir başka dil olarak seçebilme imkanımız mevcut. IPCop yazılımı kurulduktan sonra eğer kurulumda farklı bir dil seçmişsek web arayüzünden Türkçe’yi seçerek menüleri Türkçe olarak görebilme imkânınız vardır. Ancak ek paketler de henüz Türkçe dil desteği ile gelmediği için İngilizce kullanmanızı öneririm.
Kurulumda ben Türkçe seçiyorum
3) IPCop yazılımını nereden yükleyeceğimizi belirliyoruz. Cd’den kurulum yaptığımız için Cd-Rom ‘u seçip Ok Diyoruz.
4) CD de bulunan dosyaların kurulumu için ön hazırlık aşaması gelecektir. Disk biçimlenecek ve kurulum yapılacak yüzeye dosyalar kurulacak.
Atla’yı spacebar tuşuyla seçili hale getirip. Tamam’ı tıklıyoruz.
5) Local Networkünüz için ethernet kartının sürücüsünün tanıtımı gerekmektedir. Araştırma(Probe )seçeneği ile ethernet kartınızın otomatik olarak tanıtılmasını sağlayabilirsiniz.
Eğer ethernet kartını manual olarak tanıtmak istiyorsanız seçim ‘i seçerek açılan menüde ethernet kartınızı tanıtabilirsiniz. Ama Listede ethernet kartınızın modeli ve serisi yok ise modül ve serisi ile irq değerlerini giriniz.
6-)Araştırma seçeneği ile ethernet kartınızı IPCop yazılımı otomatik olarak bulduğunda size kartınıza ait yüklenecek driverin model ve serisini mesaj olarak gösterecektir.
Daha sonra karşımıza gelen arayüzde Green arayüzün ip numarasını belirtiyoruz.
7) TEBRİKLER Kurulumu başarıyla tamamladınız.
Tamam diyoruz ve daha sonraki aşamaya geçiyoruz.
PC veya Server’ınıza bağlı klavye türünü seçiniz.
9) Sırada saat dilimini seçmeye geldi.Avrupa/İstanbul seçeneğini seçiyoruz.
10) Domain adınızı giriniz.
11) Makine adını giriyoruz.(standart olarak gelen ipcop) olarak bırakıyorum
12)Eğer sisteminizde ISDN kart kullanıyorsanız [Enable ISDN] seçeneği ile devam edebilirsiniz. Sisteminizde ISDN kart kullanmıyorsanız (sadece ethernet kartları kullanılıyorsa) [Disable ISDN] seçeneği ile devam edebilirsiniz. Ben ISDN kullanmıyorum o yüzden ISDN kullanma seçeneğini seçiyorum.
13)Network konfigürasyonumuzu yapacağımız kısma sıra geldi. Bu menüdeki tüm adımları tek tek yapmamız gerekiyor. Değişiklik için kurulumdan sonra setup komutu ile açılacak olan menü bu menü olacaktır.
Networkümüzün yapısına göre konfigürasyon tipini seçmemiz gerekmektedir.
GREEN= local network tarafı”192.168.2.5” olarak yapıyorum
RED= internet tarafı “10.0.0.2” olarak ayarladım.
ORANGE= DMZ tarafı (eğer sisteminizde server barındırıyorsanız)
BLUE= İlave network tarafı (Wireless gibi uygulamaları bağlayabilirsiniz)
İnternet tarafı (RED) için IP adresi yapılandırmasına sıra geldi.
· ADSL modem tarafından IP otomatik olarak dağıtılmıyorsa (Static) seçeneğini seçerek IP adresini giriniz.(Ben bunu seçiyorum)
· ADSL modem tarafından IP otomatik olarak dağıtılıyorsa (DHCP) seçeneğini seçiniz.
· ISDN kartı kullanıyorsanız Türkiye için (PPOE) seçeneğini seçmeniz gerekmektedir.
Bu birimde Green ve Red arayüzleri tanımlıyoruz. Ve Sürücüler ve network adapter atamalarını gerçekleştiriyoruz.
Yukarıda da belirtildiği gibi her kart için ayarlar değiştirilebilinir.
14-)Sadece bir üst menüde (Static IP tanımlaması yaptıysanız bu menüde DNS ve Gateway tanımlamalarını yapacaksınız. Ağ geçidi olarak ADSL modeminizin IP adresini giriniz.
15-)Local networkünüzde bulunan bilgisayarlara DHCP hizmetini IPCop’un üstlenmesini istiyorsanız bu menüde [Enabled] seçeneği ile DHCP yi aktif edebilirsiniz. Local networkünüzde bulunan bilgisayarların hangi IP aralığında IP adresi almasını istiyorsanız Başlangıç / Bitiş adresi alanlarını doldurunuz.
16-) Bu aşamadan sonra IPCop yazılımında en üst seviye yetkili olan “root” kullanıcısı için parola yazınız. IPCop yazılımına ek paket yüklemek ve yazılımda değişiklikler ve ayarlamalar yapabilmek için gerekli olacaktır.
|
|
|
|
|
17-)Yönetici parolası ise web arayüzünden IPCop yazılımınızı yönetmeniz için vereceğiniz paroladır.
18-)Yedek almak için de parola adımını bitirdikten sonra.
19-)Kurulum başarıyla tamamlandı.
Daha sonra pc veya server’ımız yeniden başlayacaktır. Ve aşağıdaki ekran ile karşılaşacağız IPCop’u seçip Enter’a basıyoruz.
Daha sonra Local network’te herhangi bir bilgisayarın Explorer penceresinden
Green olarak seçtiğiniz ethernet kartınızın IP adresi ile http://192.168.2.5:445 IPCop yazılımının Yönetim Paneline ulaşabilirsiniz.
Vmware 6.5 üzerinde ipcop 1.4.20 Firewall yazılımını kurmuş bulunmaktayız. Yönetim paneline hoş geldiniz.
Not: Vmware üzerinde Ipcop kurulumunu Türkçe olarak gerçekleştirdik. Bu kurulum rehberinde karşılaştığınız sorunlarınızı portalımızın Linux bölümünden sorabilirsiniz. Linux alanında desteklerini esirgemeyen özgür sistemci Eyüp HAMAMCI’ya teşekkürü bir borç biliyorum
Vmware 6.5 uzerine Ipcop 1.4.20 Firewall Kurulumu – 1
Merhaba arkadaşlar bu makalede sizlere İpcop firewall yazılımının 1.4.20 versionunun vmware 6.5 üzerinde kurulumu hakkında bilgi vereceğim.
Bilindiği üzere IPCop bir Linux dağıtımıdır. Fakat Firewall olarak tasarlanmış bir dağıtım. Hatta sadece firewall demek bile yetersiz olacak ki; Firewall, IDS, VPN, Antivirüs, Antispam gibi pek çok özelliğide üzerinde barındırmakta. Güvenlik yazılımları arasında kısa bir sürede yerini alan ve ücretsiz olduğu için çok fazla ilgi gören bir yazılım free olarak dağıtılması nedeniyle kendisiyle birlikte getireceği risk’leri de yazılımı mevcut sisteme dahil eden güvenlik veya sistem uzmanı kişiler üstlenecektir. Açık kaynak kodlu bu yazılımın geliştirilmesine hali hazırda devam edilmektedir. Güncellemeleriyle birlikte birçok kaynakta yeni güvenlik açıkları için çözümler üretilmektedir.
Kurulum öncesinde aşağıda belirttiğim kaynaktan ipcop yazılımını indirmeyle işleme başlıyoruz
- Ipcop İndir – İndirmiş olduğunuz (.iso) formatındaki dosyayı kullandığınız CD kayıt programı ile bootable olacak şekilde hazırlayın.
— Network yapınıza göre kurulum yapacağınız PC/Server’ın ethernet kartı olduğuna emin olun. (en az iki ethernet kartı gerekli)
Vmware 6.5 sürümü üzerinde kurulum öncesi yapılması gerekli işlemlere başlıyalım.
1-)Karşımızdaki vmware penceresinden New Virtual Machine butonunu tıklıyoruz.

2- )Ip cop için özel ayarlar gerektiğinden dolayı. Custom(Gelişmiş) seçeneğini seçili hale getirip ilerliyoruz.

3-)Bu pencerede Workstation 6.5 seçip next diyoruz.

4-)Bu aşamada ipcop yazılımını cd-rom,dvd-rw v.b ortamlardan kurmak istiyorsanız Installer Disc seçeneğini seçip aktif sürücünüzü ayarlıyorsunuz. Eğer image dosyasından kurmak istiyorsanız Installer disc image file (iso) seçeneğini seçmeniz gerekiyor.Kurulum için bu işlemi daha sonra ayarlamak istiyorsanız 3. Seçeneğimizi seçiyorsunuz .(Biz burada Installer disc seçeneğinizi seçiyoruz ve next diyoruz.)

5-)Linux ‘ü seçili hale getiriyoruz ve version kısmından Other Linux 2.4.x Kernel’ı seçiyoruz.

6-)Burda Virtual Machine’ne isim veriyoruz ve nereye kaydedeceğimizi belirliyoruz.

7-)İşlemci olarak tek işlemcim olduğu için one’ı seçiyorum.

8-)Ram’i 512 mb olarak ayarlamak faydamıza olacaktır. İsteğe bağlı arttırılabilinir.


Next’i tıklıyoruz. Bir sonraki pencerede karşımıza Virtual Disk Type gelicek IDE seçiyoruz next diyoruz. Ve disk boyutu ile ilgili pencere ile karşılaşıyoruz isteğe göre belirlenebilinir.(Test için 2 Gb yeterli)
10-Yukarıda belirlediğimiz sanal disk dosyalarını nereye kaydetmek istiyorsunuz diye soruyor e altında vmipcop olarak kayıt ediyorum.

Ve. Bir sonraki pencerede vmware üzerindeki gerekli ayarların bittiği görüntülenecek. Kurulum için gerekli ayarlar yapıldı. Bir sonraki adımda network adapter’leri düzenleyeceğiz.

11-)Bu arayüzde Edit virtual machine settings’i seçiyoruz.

12-)Hardware sekmesi seçiliyken device kısmında Network Adapter’in görüntülenmediğini fark edeceksiniz. Alt Kısımdan Add ‘yi seçiyoruz ve karşımıza gelen pencereden Network Adapter’ü seçili hale getirip next diyoruz.

İlk Network Adapter’ümüzü Green(Yeşil) olan arayüzü seçiyoruz; (öncelikle Red(kırmızı )arayüzü değil !!! Custom:Specific virtual network kısmından VMnet1(Host –Only) olarak seçiyoruz.
II. Network Adapter’ümüzü de aynı şekilde ekliyoruz.

Ve bu pencerede ise Kırmızı (Red) olarak seçimini yapacağım Default Bridged seçeneğini seçiyorum. Benim bilgisayarımda bu arayüz kablosuz ağ bağdaştırıcıma ait.
Finish’i tıklıyoruz. Ve Ipcop Kurulumunu yapacağımız Vmware ortamını oluşturmuş olduk. Bir sonraki makalemde Ipcop’un vmware üzerindeki kurulu süreci hakkında sizlere bilgi vereceğim.
Savaş abiden inciler ;
/etc/postfix/master.cf dosyasını mc ile edit yapınız
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
smtp inet n – – – – smtpd
587 inet n – n – – smtpd
smtps inet n – – – – smtpd
bu kısımda normalde 587 satırı yoktur eklemeniz gerekmekte,daha sonra yaptığınız işlemi kaydedip servisleri restart etmeniz gereklidir
sudo /etc/init.d/postfix restart
işlem bu kadar test için telnet mailserverip 587 yaparsanız yanıt alacaksınız.
root@mailsecure:~# telnet 192.1.100.1 587
Trying 192.1.100.1…
Connected to 192.1.100.1.
Escape character is ‘^]’.
220 ESMTP (F1secure)
firewallınızdan veya modeminizden 587 portunu direk mail ip adresine natlamanız gerekmektedir.
IPTables konusunda yeterince bilgi verdiğimi umuyorum. Artık iptables yapılandırması sırasına kullanacağımız Red Hat yâda Fedora işletim sistemlerinde, iptables işlemlerinin nasıl çalıştığına göz atalım.
Red Hat ve Fedora işletim sistemleri üzerinde iptables paketi aksini belirtmediğiniz sürece kurulu gelir. Eğer iptables’ı sistemin açılışı sırasında otomatik olarak başlatmaya ayarladı iseniz o zaman her başlangıç esansında sistem /etc/sysconfig/iptables dosyasını okuyarak, gerekli kuralların çalışmasını sağlar.
/etc/sysconfig/iptables dosyası otomatik olarak system-config-securitylevel programı tarafından oluşturulur. Her defasından system-config-securitylevel kullanılarak yapılan değişiklikler /etc/sysconfig/iptables dosyasına kayıt edilir.
Red hat yada Fedora işletim sistemleri üzerinde iptables kurallarını direkt olarak /etc/sysconfig/iptables dosyasına yazabilirsiniz. Ancak bu pek önerilen bir durum değildir. Iptables kurallarını en güzel yazmanın yolu, bir script dosyası hazırlayarak, bu script dosyası aracılığı ile iptables kurallarını oluşturmanızdır. Yazdığınız script’i çalıştırmadan önce iptables servisini durdurmanız gerekmektedir. Bu işlemleri nasıl yapacağımızı makalenin ilerleyen bölümlerinde göstereceğim.
Sisteminizde çalışan kuralları görmek için service iptables status komutu kullanılır. Yaratmış olduğumuz iptables kurallarını kayıt etmek için ise service iptables save komutu kullanılır. Bu komut çalıştırıldığında iptables kuralları otomatik olarak /etc/sysconfig/iptables dosyasına yazılır.
Kurallarımız kayıt etmemizin diğer bir yolu da iptables-save komutunu kullanmaktır. iptables-save komutu –c anahtarını kullanarak otomatik olarak /etc/sysconfig/iptables dosyasına kuralları kayıt eder. Eğer ikinci bir yedek istersek dosyanın adını değiştirerek, ayrı bir dosyaya da yedek alabiliriz.
#iptables-save –c > /etc/sysconfig/iptables
Kayıt edilen kuralların geri yüklenmesi iptables-restore komutu ile yapılır.
#iptables-restore < /etc/sysconfig/iptables
Iptables konusunda bir hayli bilgi yüklemesi yaptık. Artık örnek bir yapılandırma yapabiliriz. Örnek yapılandırmamızı BÖLÜM 6 da anlatmaya çalışacağım. Örneğimizde adet iptables güvenlik duvarı, Web sunucumuz ve iç ağımızdan oluşan bir yapı olacak. Eğer buraya kadar sabırlı bu makaleyi okuduysanız o zaman BÖLÜM 6 daki örneğimizi kolayca gerçek hayatta uygulayabilirsiniz.
Artık internet bağlı bir sistemde gerçek bir IPTABLES örneği verebiliriz. Aşağıda vereceğimiz örnek IPTABLES kullanarak yerel ağımızı ve Web sunucumuzu dışarıdan gelecek saldırılar karşınsında önleme görevi üstlenecek. Direkt olarak komut satırı yerine, bir script yazarak IPTABLES kurallarımızı oluşturacağız.
Yapımızdan biraz bahsedecek olursak, Güvenlik duvarı görevini üstlenmiş bir adet sunucumuz var. Bu sunucumuz üzerinde iki adet ağ kartı bulunmakta, eth0 ve eth1 . eth1 üzerinden yerel ağımıza bağlanıyoruz, eth0 ise internet çıkışımız. İç ağımız 192.168.0.0 ağı ve domain adımız zanzare.com (İtalyanca da sivrisinek anlamına geliyor). İki adet internet adresimiz var, 10.0.0.1 ve 10.0.0.2( Sadece örnek için bunları kullanıyorum. Siz Internet sağlayıcınız tarafından size verilen IP’leri kullanmanız gerek). Güvenlik sunucumuz ağımız için geçerli ağ geçidi olarak çalışmakta. Web sunucumuzun eth0 üzerindeki IP adresi 10.0.0.2.
Güvenlik sunucumuzun yapacaklarını sıralarsak;
Dış ağ adresli tüm isteklerin, iç ağa geçmesini engelle
Dış ağdan gelen ve iç ağ adresi olan tüm istekleri engelle ancak iç ağ adresleri eth1 üzerinden gelen isteklere izin ver
Localhost adresli tüm dış ağ isteklerini hem eth0 hem de eth1 üzerinde engelle
Güvenlik duvarı arkasındaki kullanıcıların mesajlarına izin ver(localhost ağ birimi üzerinde)
Web sunucusu ile haberleşmeye izin ver.
İç ağdan web sunucusu ile hali hazırda yapılmış bağlantılara izin ver.
Web sunucusundan direkt olarak iç ağa bağlantı yapılmasını engellle
Dışarıdan yapılmış ESTABLISHED yada RELATED bağlantılara izin ver.
Güvenlik duvarı ile dış dünyanın ICMP paketleri dışındaki ESTABLISHED ve RELATED bağlantılarına izin ver.
Dışarıdan yapılacak yeni bağlantıları engelle
İç ağdan güvenlik duvarına yâda güvenlik duvarından iç ağa bağlantılara izin ver.
Ip maskeleme yaparak iç ağın internete çıkmasına izin ver.
ICMP Ping ve Destination Unreachable paketlerine izin ver. Diğerlerini iptal et.
Güvenlik duvarlarını yapılandırmadan önce hangi işlemleri yapacağımızı bir liste halinde yazarsak, kuralların oluşturulması esnasında işimiz oldukça kolaylaştıracaktır.
Güvenlik duvarı olarak yapılandıracağınız sisteme root kullanıcısı olarak giriş yapın ve zanzare.sh adında bir dosya yaratın. Bu dosya içersine aşağıdaki kuralı ister yazarak isterseniz kopyala-yapıştır işlemi ile yazabilirsiniz.
# Ic network adresi eth1 üzerinde 192.168.0.0
# web sunucusu adresi 10.0.0.2
# IP forwarding kapat
echo 0 > /proc/sys/net/ipv4/ip_forward
# Tum kurallari temizle
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
# Geçerli kuralları oluştur
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# İç ağda diş ağ adresli tüm paketleri engelle
iptables -A INPUT -j LOG -i eth1 ! -s 192.168.0.0/24
iptables -A INPUT -j DROP -i eth1 ! -s 192.168.0.0/24
iptables -A FORWARD -j DROP -i eth1 ! -s 192.168.0.0/24
#eth1 haricinde dis agdan gelen ic ag adresli paketleri engelle
iptables -A INPUT -j DROP ! -i eth1 -s 192.168.0.0/24
iptables -A FORWARD -j DROP ! -i eth1 -s 192.168.0.0/24
#lo arayüzü haricindeki tüm ağ birimlerinde localhost adresli tüm paketleri engelle
iptables -A INPUT -j DROP -i ! lo -s 127.0.0.0/255.0.0.0
iptables -A FORWARD -j DROP -i ! lo -s 127.0.0.0/255.0.0.0
#İç ağdan gelen kullanıcılara izin ver
iptables -A INPUT -j ACCEPT -i lo
#Web sunucusu ile bağlantı kurulmasına izin ver
iptables -A INPUT -j ACCEPT -p tcp -i eth0 –dport www -s 10.0.0.2
#Web sunucu ile iç ağdan ESATBLISH durumundaki bağlantılara izin ver
iptables -A INPUT -m state –state ESTABLISHED, RELATED -i eth0 -p tcp –sport www -s 10.0.0.2 -d 192.168.0.0/24 -j ACCEPT
#Web sunucusundan iç ağa yeni bağlantıları engelle
iptables -A OUTPUT -m state –state NEW -o eth0 -p tcp –sport www -d 192.168.0.0/24 -j DROP
#RELATED ve ESTABLISHED diş bağlantılara izin ver
#Dış bağlantıların ICMP paketleri hariç firewall ile bağlantı kurmasına izin ver
iptables -A INPUT -m state –state ESTABLISHED, RELATED -i eth0 -p ! icmp -j ACCEPT
#Dışarıdan yeni bağlantı yapılmasına izin verme
iptables -A INPUT -m state –state NEW -i eth0 -j DROP
iptables -A FORWARD -m state –state NEW -i eth0 -j DROP
#iç ağdan güvenlik duvarına yâda güvenlik duvarından iç ağa bağlantılara izin ver
iptables -A INPUT -j ACCEPT -p all -i eth1 -s 192.168.0.0/24
#IP maskeleme ile ic makinelerin internete çıkmasına sağla
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#ICMP Ping ve Destination Unreachable mesajlarına izin ver
#Diger ICMP paketlerini INPUT ve DROP kurallar ile engelle
iptables -A INPUT -j ACCEPT -p icmp -i eth0 –icmp-type echo-reply -d 10.0.0.1
iptables -A INPUT -j ACCEPT -p icmp -i eth0 –icmp-type echo-request -d 10.0.0.1
iptables -A INPUT -j ACCEPT -p icmp -i eth0 –icmp-type destination-unreachable -d 10.0.0.1
#IP Forwarding opsiyonunu aç
echo 1 > /proc/sys/net/ipv4/ip_forward
Eğer ne yaptığımızı grafik olarak göstermeye çalışırsak;
Eğer komut satırına iptables –L –n komutunu girerseniz aşağıdaki çıktıyı almanız gerekir.
[root@server ~]# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
LOG all — !192.168.0.0/24 0.0.0.0/0 LOG flags 0 level 4
ACCEPT all – 192.168.2.0/24 0.0.0.0/0
DROP all — !192.168.0.0/24 0.0.0.0/0
DROP all – 192.168.0.0/24 0.0.0.0/0
DROP all – 127.0.0.0/8 0.0.0.0/0
ACCEPT all – 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp – 10.0.0.2 0.0.0.0/0 tcp dpt:80
ACCEPT tcp – 10.0.0.2 192.168.0.0/24 state RELATED,ESTABLISHED tcp spt:80
ACCEPT !icmp – 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
DROP all – 0.0.0.0/0 0.0.0.0/0 state NEW
ACCEPT all – 192.168.0.0/24 0.0.0.0/0
ACCEPT icmp – 0.0.0.0/0 10.0.0.1 icmp type 0
ACCEPT icmp – 0.0.0.0/0 10.0.0.1 icmp type 8
ACCEPT icmp – 0.0.0.0/0 10.0.0.1 icmp type 3
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP all — !192.168.0.0/24 0.0.0.0/0
DROP all – 192.168.0.0/24 0.0.0.0/0
DROP all – 127.0.0.0/8 0.0.0.0/0
DROP all – 0.0.0.0/0 0.0.0.0/0 state NEW
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP tcp – 0.0.0.0/0 192.168.0.0/24 state NEW tcp spt:80
[root@server ~]#
Iptables ile yazdığım makale serisinin sonuna gelmiş bulunuyoruz. Umarım yazdıklarım size iptables’ın nasıl kullanılacağı ile ilgili bilgi vermiştir. Bir başka Linux makalesinde görüşmek üzere.
Kaynaklar
McGrawHill – Fedora Core 7 and Red Hat Enterprise Linux – Richard PETERSON
www.redhat.com
Kaynaklar
McGrawHill – Fedora Core 7 and Red Hat Enterprise Linux – Richard PETERSON
Erdal YAZICIOĞLU
Zincir kurallarını değiştirmek yada zincire yeni bir kural eklemek için iptables komutu kullanılır. Örneğin iptables –A zincire yeni kural eklerken, iptables –D komutu zincirden kural siler. Bir kuralı değiştirmek için iptables –R komutu kullanılır. Iptables komut listesi aşağıdaki tabloda verilmiştir.
IPTABLES SEÇENEKLERİ
Iptables ile birlikte birçok değişik seçenek gelir. Örneğin, TCP –syn seçeneği SYN paketlerini kontrol eder. ICMP –icmp-type seçeneğini ping işlemlerinde kullanılan ICMP paketlerini belirlemede kullanılır. –limit seçeneğini ile tanımlanan zaman içerisinde aynı paketlere limit koyabilirsiniz.
Aşağıdaki örnekte kaynak adresi 192.168.184.128 gelen tüm paketler –j ACCEPT hedefi kullanılarak kabul edilecektir.
#iptables –A INPUT –s 192.168.184.128 –j ACCEPT
PAKETLERİN KABULÜ ve REDEDİLMESİ (ACCEPT&DROP)
Iptables içerisinde iki adet geçerli hedef vardır. DROP ve ACCEPT. Diğer hedefler, REJECT gibi, kullanıcı tanımlı olabilirler. Zincirleri yönetmek için iptables içerisinde iki adet özel hedef bulunur, RETURN ve QUEUE. RETURN zincirin sonuna gelindiğini belirler ve başlağı zincirin başına döner. QUEUE ise paketleri kullanıcı alanına gönderir. Aşağıdaki örnekte www.btjunkie.org kaynak adresli tüm paketlerin red edilme örneği verilmiştir.
#iptables -A INPUT –s www.btjunkie.org –j DROP
Bir kuralın ters çalışması için ! işareti kullanılır. Örneğin, belirlenen bir IP dışında, gelen tüm paketleri kabul etmek için –s anahtarından önce ! işareti kullanılır. Aşağıdaki örnekte 192.168.184.128 adresi haricindeki tüm adreslerden gelen paketler kabul edilemektedir.
#iptables -A INPUT –j ACCEPT ! –s 192.168.184.128
Herhangi bir adresi DNS adı yada IP adresini kullanarak belirleyebilirsiniz. IP adres aralığı için ağ IP sayısını ve ağ IP maskesi kullanılır. IP maskesi, ip adresi olabileceği gibi, IP maskesini tamamlayan bit sayısı da olabilir. Örneğin192.168.0 ağında bulunan tüm adresler 192.168.0.0/255.255.255.0 yada 192.168.0.0/24 olarak tanımlanabilir. Herhangi bir adres belirtmek için ise 0.0.0.0/0.0.0.0 yada 0/0 kullanır. Geçerli olarak eğer –s ve –d anahtarları kullanılmamış ise yazılan kural tüm adresler için geçerli olacaktır. Aşağıdaki örnekte 192.168.0.0 adresinden gelip, ağımızda herhangi bir adrese giden paketlerin kabülü gösterilmektedir.
#iptables –A INPUT –s 192.168.0.0/24 –j ACCEPT
Iptables kuralları genelde diğer ağlara bağlı ağ birimlerine uygulanır. Internete direkt bağlı olan sistemlerde genelde iki ağ birimi bulunur, eth0 ve lo(lopback). Modem kullanılarak yapılan bağlantılarda arayüz ppp0 olarak adlandırılır. Iptables kurallarında –i anahtarını kullanarak sadece INPUT ve FORWARD zincirlerinde kural atanacak ağ birimi belirtilir. Dışarıya giden trafik için –o anahtarı OUTPUT ve FORWARD zincirleri ile kullanılır. Daha sonra gelen ve giden paketler için belirlen ağ birimine kurallar tanımlanır.
#iptables –A INPUT –j DROP –i eth0 –s 192.168.0.45
#iptables –A INPUT –j ACCEPT –i lo
KULLANICI TANIMLI ZİNCİRLER(CHAINS)
Iptables, FORWARD ve INPUT zinciri içerisindeki kuralları ayrı ayrı değerlendirir. Biraz daha açarsak, eğer belirli bir adresten gelen tüm paketleri engellemek isteniyor ise, hem FORWARD hem de INPUT zincirleri içerisinde bu kurallar tanımlanmalıdır.
#iptables –A INPUT –j DROP –i eth0 –s 192.168.0.45
#iptables –A FORWARD –j DROP –i eth0 –s 192.168.0.45
Bu tür durumlarda kuralların tekrar tekrar yazılmaması için kullanıcı tanımlı zincirler oluşturulur. Oluşturulan kullanıcı tanımlı zincirler içerisine yazılan kuralları daha sonra gerekli zincir içerisine dahil edilerek çalıştırılır.
#iptables –N gelen_paketler
#iptables –A gelen_paketler –j DROP –i eth0 –s 192.168.0.45
#iptables –A gelen_paketler –j ACCEPT –i lo
#iptables –A FORWARD –J gelen_paketler
#iptables –A INPUT –j gelen_paketler
ICMP PAKETLERİ
Güvenlik duvarları üzerinde genelde sistem yöneticileri ICMP(Internet Control Message Protocol) paketleri engellerler. Ancak sistemlerimiz üzerinde, ping,traceroute gibi işlemler için bazı ICMP paketlerine izin vermemiz gerekir. Eğer gerekli ICMP paketlerine izin verilmez ise DNS sorgulama işlemlerinde problemler yaşanır. Iptables üzerinde –icmp-type opsiyonu kullanarak, bu paketlere izin verebilirsiniz. Aşağıdaki örneklerde 0,8 ve 3 numaralı echo-reply,echo-request ve destination-unreachable mesajlarına nasıl izin verileceği gösterilmektedir.
iptables -A INPUT -j ACCEPT -p icmp -i eth0 –icmp-type echo-reply -d 192.168.184.128
iptables -A INPUT -j ACCEPT -p icmp -i eth0 –icmp-type echo-request -d 192.168.184.128
iptables -A INPUT -j ACCEPT -p icmp -i eth0 –icmp-type destination-unreachable -d 192.168.184.128
Bu işlemler sonra komut satırına iptables –L –n yazdığınızda karşınıza aşağıdaki kurallar listesi gelecektir.
ACCEPT icmp – 0.0.0.0/0 192.168.184.128 icmp type 0
ACCEPT icmp – 0.0.0.0/0 192.168.184.128 icmp type 8
ACCEPT icmp – 0.0.0.0/0 192.168.184.128 icmp type 3
Ping-of-death türü saldırılardan korunmak için ping işlemlerinin dikkatli bir şekilde yapılandırılması gerekir. Bunun birkaç değişik yolu vardır. Bunlardan ilki tüm ping fragmanları reddetmektir. Ping paketleri genelde çok küçük paketlerden oluşur. Ping-of-death saldırılarından korunmak için ise içinde fragment bulunan tüm paketleri –f anahtarı ile iptables üzerinde engellenir.
#iptables –A INPUT –p icmp –j DROP –f
Diğer bir yolda gelen ping paketlerinin sayısını limitlemektir.
#iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
Port Erişimi Kontrolü
Eğer sisteminiz internet üzerinden web yada ftp sunucusu görevini yapıyorsa iptables kullanarak erişimi kontrol edebilirsiniz. –sport ve –dport opsiyonları kullanarak istenilen servis portlarını belirtebilir ve erişim izni verebilirsiniz. Iptables ayrıca port numaraları yerine, servislerin kullandığı isimler ile de kural yazmanıza olanak sağlar. Servislerin adlarını ve port numaralarını /etc/services dosyasında bulabilirsiniz. Aşağıdaki örnekte 192.168.1.61 adresinde bulunan sunucuya gelen www isteklerine nasıl izin verileceği gösterilmiştir.
#iptables –A INPUT –d 192.168.1.61 –dport –j ACCEPT
Iptables üzerinde port referanslarını kullanarak da belirli portları koruma altına alabilir yada tamamen yasaklayabilirsiniz. Güvensiz bir bağlantı olan ve 23 nolu portu kullananTelnet buna örnek gösterilebilir. NFS işlemleriniz koruma altına almak için ise portmapper için kullanan 111 nolu porta erişimi engelleyebilirsiniz.
#Dışarıdan gelen portmapper isteklerini engelle
iptables –A arriving –j DROP –p tcp –i et0 –dport 111
#Dışarıdan gelen telnet istemlerini engelle
iptables –A arriving –j DROP –p tcp –i eth0 –dport telnet
Aşağıdaki sistem tarafından kullanılan bazı servislerin port numaraları ve iptables port etiketleri verilmiştir.
PAKET DURUMLARI: BAĞLANTI İZLEME
Bağlantı izleme yani connection tracking, bağlantı ile ilgili kaynak, hedef ve port bilgilerini izler. Bu izlemenin en büyük faydası hangi paketin hangi tamamlanmış yada ilgili bağlantıya ait olduğunu belirler. Bağlantıları izlemek için önce –m state modülü kullanılır. Daha sonra –state anahtarı kullanılır.
Eğer bir güvenlik duvarı yapılandırıyorsanız, dış dünyadan gelen tüm paketleri engellemeniz gerekir. Ancak tüm paketlerin engellemesi, sizin iç ağınızda bulunan diğer istemcilerin dış dünya ile haberleşmesini engelleyecektir. Örneğin internet. Burada dikkat edilmesi gereken konu, bir saldırının nasıl gerçekleşeceğidir. Saldırgan sisteminize girmek için öncellikle yeni bir bağlantı açmak zorunda. Bu tür bağlantı paketlerinin başlıklarında(header) SYN bölümü(bit) açık ve FIN ve ACK bölümleri(bits) boştur. Bu tür paketlerin DROP edilmesi, sisteminize dışarıdan yapılacak olan her türlü bağlantıyı engellemiş olacaktır. Ancak iç ağımızdan dış dünya ile bağlantı kurmuş tüm kullanıcılarımız işlemlerini sorunsuz halde devam edebileceklerdir. Aşağıdaki örnekte eth0 arabirimimize dışardan yapılacak her türlü bağlantının nasıl engeldiği gösterilmektedir.
iptables –A INPUT –m state –state NEW –i eth0 –j DROP
! İşaretini ve ACCEPT hedefini kullanarak eth0 haricinde diğer arabirimlere gelen tüm paketleri kabul edebilirsiniz. Eğer eth0 arabirimi internete açılan arabirim ise bu kural dışarıdan gelen tüm bağlantı isteklerini engelleyecektir. Ancak iç ağınız makineniz ile bağlantı kurabileceklerdir.
iptables –A INPUT –m state –state NEW ! –i eth0 –j ACCEPT
Aşağıdaki örnekte ise, eth0 üzerinden kurulmuş bağlantılar yâda bu bağlantılar ile alakalı paketlerin geçişine izin veriyoruz.
iptables – INPUT –m state –state ESTABLISHED,RELATED –i eth0
NAT(Network Address Translation)
NAT, paketlerin sistem üzerinden geçerken hedef yada kaynaklarını değiştirmeye yarayan bir yöntemdir. Sistem üzerinden geçen paketler, eğer geçtikleri sistem üzerinde NAT uygulaması yapılırsa, kaynak yâda hedefleri değiştirilir. Bu işlem yapılırken, sistem ne tür değişikliklerin yapıldığı bilgisini tutar. Bu gelen paketlere verilen cevaplarda, paketlerin doğru adreslere gitmesine yardımcı olur.
NAT genelde tek genel IP kullanarak internet’e bağlanan sistemlerde kullanılır. IP maskeleme yöntemi ile, kaynak ve hedef adresler değiştirilerek güvenlik duvarı yada ağ geçidinden çıkan geçerek internete çıkan paketlerin güvenliği sağlanır. Ağ geçitlerinin genelde tek IP adresi bulunur. Eğer birden fazla sunucunuz ve tek IP adresiniz varsa, NAT kullanarak gerekli paketleri gerekli sunuculara yönlendirebilirsiniz.
NAT KURALLARI OLUŞTURMAK
NAT tablolarına iptables komutu ile kural eklemek için –t nat anahtarını kullanmanız gerekir. Eğer NAT tablosundaki kuralları görmek için ise –t nat –L komutu kullanılır.
Kural oluşturmak için;
#İptables –t nat
Kuralları listelemek için
#İptables –t nat –L –n
Buradaki –n anahtarı kurallardaki IP adreslerini ve port numaralarını rakamsal formatta görüntüleyecektir.
NAT HEDEF ve ZİNCİRLERİ(Target&Chains)
İki çeşit NAT yöntemi bulunur, SNAT ve DNAT. SNAT kaynak adresi, DNAT ise hedef adresin değiştirilmesinde kullanılır.
NAT tablosundan bulunan 3 adet zincir çekirdek tarafından NAT işlemleri için kullanılır. Bunlar PREROUTING, POSTROUTING ve OUTPUT. PREROUTING DNAT kuralları için kullanılır. POSTROUTING ise SNAT kuralları için geçerlidir. OUTPUT ise yerel işlemler esnasında oluşturulan paketler için DNAT kuralları için kullanılır.
IP maskeleme POSTROUTING zincirine MASQUERADE eklenerek yapılır.
#iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE
Sisteminizden çıkan paketin kaynak adresini değiştirmek için POSTROUTING kuralı ile SNAT hedefi kullanılır. SNAT hedefi için kaynak adresi belirtmek için –to-source seçeneği kullanılır.
#iptables –t nat –A POSTROUTING –o eth0 SNAT –to-source 192.168.0.2
Eğer sisteminize gelen paketin kaynak adresini değiştirmek istiyorsanız PREROUTING kurallı ile beraber DNAT ve –to-destination seçeneği kullanılır.
#iptables –t nat –A PREROUTING –i eth0 –j DNAT –to-destination 192.168.0.2
NAT tablosunu kullanarak, güvenlik duvarınız üzerinde belirli bir port’a gelen istemleri diğer bir sunucuya yönlendirebilirsiniz. Aşağıdaki örnekte 80 nolu www portuna gelen paketler, 192.168.0.4 adresinde bulunan web sunucusunu yönlendirilmektedir.
#iptables –t nat –A PREROUTING –i eth0 –dport 80 –j DNAT –to-destination 192.168.0.4
NAT Yönlendirmesi(NAT Redirection) – Görünmez Vekil Sunucular
(Transparent Proxies)
NAT tablolarını kullanıcıya tamamen görünmez her türlü paket yönlendirmesi yapabilirsiniz. Paket yönlendirmeleri REDIRECT kullanılarak yapılır. Görünmez vekil sunucular sayesinde, alınan paketlerin tümü vekil sunuculara yönlendirilirler. Örneğin 80 nolu www portuna gelen tüm paketler Squid vekil sunucusunun geçerli olarak çalıştığı 3128 nolu porta yönlendirilebilir.
#iptables –t nat –A PREROUTING –i eth1 –dport 80 –j REDIRECT –to-port 3128
Kaynaklar
McGrawHill – Fedora Core 7 and Red Hat Enterprise Linux – Richard PETERSON
www.redhat.com
McGrawHill – Fedora Core 7 and Red Hat Enterprise Linux – Richard PETERSON
Erdal YAZICIOĞLU
Günümüzde internet kullanımının artması ile birlikte, sistemlere izinsiz girişlerde çoğalma başladı. Büyük şirketler bu konuda ciddi önlemler alırken, ev kullanıcıları, küçük ve orta ölçekli işletmelerde maalesef güvenlik konusunun ne kadar ciddi bir konu olduğu henüz anlaşılmış değil. Genelde de saldırganların hedefi de bu kitleler oluyor.
Birazdan aşağıda okuyacağınız makalede, size mümkün olan en sade şekilde evinizde yâda işyerinizde bir Linux makinesini nasıl bir güvenlik duvarı(Firewall) haline getireceğinizi anlatmaya çalışacağım.
Bu yazıyı, sistem ve network bilgisi olanlar, Linux kullananlar ve en azından Linux kurmayı bilenler için hazırladım.
Güvenlik Duvarları(Firewalls)
Yukarıda da belirttiğim gibi, internet ile birlikte sistemlere izinsiz girişler de çoğaldı. Bu tür saldırıların önüne geçmek için biz sistem yöneticilerin kullandığı bazı yolların başında güvenlik duvarları(Firewalls), veri şifrelemesi(encryption) ve kimlik doğrulama işlemleri(Authentication) gelir.
Güvenlik Duvarları, bağlantı kurulumu sırasında, izin verilmemiş bağlantıları engellerken, veri şifreleme izin verilmiş kullanıcıların bağlantıları esnaipsında akan verinin güvenliğini sağlar. Kimlik doğrulama ise, belirttiğimiz bu işlemleri yapan kişinin doğru kişi olup olmadığını kanıtlar.
Şu an geçerli Linux çekirdeklerinde Iptables güvenlik duvarı görevini üstlenmiştir. Bu güvenlik duvarını yapılandırmanız için yapmanız gereken sadece sisteminize ne tür bağlantılara izin vereceğinizi bir takım kurallar ile belirtmeniz olacaktır. Ayrıca IPTables kurulu makineniz eğer geçerli ağ geçidi olarak kullanılıyorsa(Default Gateway), o zaman ağınızı dışarıdan gelecek tüm saldırılara karşı başarı ile koruyacaktır.
Veri şifreleme için SSH ve kimlik doğrulama için Kerberos konularını internet üzerinde araştırmanızı tavsiye ederim. Makale konumuz olmadığından, bu başlıklara girmiyorum.
IPtables
Yerel ağlarınıza kullanabileceğiniz en güzel kaynaklardan biri bir Linux makinesi edinerek, bu sistemi güvenlik duvarı olarak yapılandırmanızdır. Iptables küçük ağlardan geniş ağlara kadar hizmet verebileceği gibi, ücretsiz olarak Linux çekirdeği içine gömülü gelir. Daha fazla bilgi için www.netfilter.org adresini ziyaret edebilirsiniz.
Aslında daha derine baktığınızda iptables’ ın ana görevinin paket filtreleme yaparak, hangi paketin iç ağımıza geçiş izni olup olmadığını kontrol etmesi olduğunu göreceksiniz. Basit olarak açıklamak gerekirse paket filtreleme kaynak adres ve hedef adrese bakarak, eğer izin verilmiş ise, paketlerin gönderilmesinden sorumludur.
Diğer bir görevi adres yönlendirmesidir(NAT- Network Address Translation). Adres yönlendirme işlemi ise gelen paketlerin, NAT tablosunda belirtilen adreslere gönderimesi olarak açıklayabiliriz. Gerçekleştirdiği işlemler sırası ile paketlerin belirtilen adreslere yönlendirilmesi, diğer ağlara iletilmesi ve kaynak adreslerin IP Maskeleme(IP Masquerading) kullanılarak saklanmasıdır.
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Deployment_Guide-en-US/ch-fw.html adresinde Iptables ile ilgili birçok faydalı bilgi bulabilirsiniz.
NAT ve paket filtreleme işlemlerini yapmak için komut satırından iptables komutu kullanılır. Ancak paket filtreleme ve NAT işlemleri ayrı komut ve tabloları kullanılır. Her tablo kendi programı için gerekli komutları içerir. Ayrı tablolarda tutulmasının sebebi sistemin paket filtreleme yaparken aynı tablo üzerinde aynı zamanda NAT görevini yerine getirip asılı kalmasını(overhead) önlemektir. NAT işlemleri ayrıca karışmaması için paket filtreleme işlemlerinden tamamen ayrılmıştır.
Her iki işlemi de gerçekleştirmek için iptables komutu kullanılır. Ancak NAT işlemlerinde iptables komutuna –nat opsiyonu eklenir.
IP6tables
Adından da anlaşılacağı üzere ip6tables Ipv6 desteği verir. Iptables kullanımı ile aynıdır ancak sadece IPv6 adreslerini destekler. Tüm filtreleme komutları desteklenir. Ancak NAT tablosu desteklenmez.
MODULLER
Genelde tüm moduller iptables ile gelir. Ancak ek moduller eklemek istiyorsanız, mesela durum modülü(state module) , kuralları tanımlamadan önce bu modülleri eklemeniz gerekir. Fedora sistemleri üzerinde moduller /usr/src/kernels/kernel-versiyonu/net/ipv4/netfilter dizinin de bulunur. Otomatik olarak yüklenen modüler ipt_prefix olarak yer alırken, yüklenebilecek olanlar ip_prefix formatında olurlar.
Yüklemek istediğiniz modülleri /etc/sysconfig/ dizininde olan iptables-config dosyası içerisinde IPTABLES_MODULES bölümüne yazarak otomatik olarak başlatabilirsiniz. iptables-config dosyası iptables başlatma yazılımı her çalıştığında otomatik olarak bu yazılım tarafından okunurak gerekli modüller yüklenir. ip6tables konfigürasyonu için ise ip6tables-config dosyası kullanılır. Iptables servisini çalıştırmak için komut satırına aşağıdaki komut yazılır.
# service iptables start
Iptables üzerinde paket filtreleme için filter,nat ve mangle tabloları üzerindeki kurallar kullanılır. Paket filtreleme paketleri red etme(drop) ve kabul etme(accept) üzere bir filtre tablosu üzerine kurulmuştur. NAT işlemleri, IP maskeleme gibi, IP maskeleme kurallarının tanımlı olduğu NAT tablosu üzerinde tutulur. MANGLE tablosu ise, Türkçe karşılığı olarak sıkıştırma yâda mengene tablosu da diyebiliriz, özel paket değişimleri için kullanılır. Paketler gönderilmeden, kabul edilmeden yâda iletilmeden önce bu değişiklikler yapılabilir.
Değişik tablolar üzerinde tutulması, paketler sistemi ulaştığında tek bir büyük tablo üzerinden kontrol edilmesi yerine, sadece kendi ihtiyaçlarının olduğu tablo üzerinden işlem yapılmasını sağlar. Bu sayede sistem performansı yükseltilmiş olur.
Daha önce de belirttiğim gibi IP tabloları kuralları iptables komutu kullanılarak yönetilir. Bu komut ile yönetmek istediğiniz tabloyu belirtmeniz gerekir. Geçerli olan filtre tablosudur. Eklediğiniz kuralları listelemek ve görüntülemek istediğiniz de –L ve –n anahtarlarını kullanabilirsiniz. –n anahtarı listeleme esnasında IP adres ve port sonuçlarını sadece rakamsal olarak gösterir. Sadece –L anahtarını kullanarak makine isimlerini ve port etiketlerini görüntüleyebilirsiniz.
#iptables –L –n
ZİNCİRLER (CHAINS)
Linux çekirdeği gelen ve giden paketleri yönetmek için chain adı verilen bir kontrol listesine bakar. Bu kontrol listesi paket işleme konulmadan önce ne tür işlemlerin yapılacağını belirten kurallar içerir. Kuralların işleyişi programcılıkta sıkça kullanılan if-then-else yapısındadır. Kısaca açıklamak gerekirse, paket birinci kurala uymuyor ise, ikinci kural kontrol edilir. Paketin uyduğu kural bulunana kadar bu işlem devam eder. Tabloda paketin uyduğu herhangi bir kural bulunamaz ise o zaman paket rededilir. Paket bir kurala uymazsa o zaman hedefe(target) yönlendirilir ve hedefte bu paketin nasıl değerlendirileceğine karar verilir. Standart hedefler aşağıdaki tabloda açıklanmıştır. Paket burada da herhangi bir kurula uygun değil ise tekrar zincirin(chain) geçerli hedefine(target) yönlendirilirilerek işleme konulur.
HEDEFLER (TARGETS)
Hedef, iptables terimi ile target, diğer bir zincir(chain) yada kullanıcı tanımlı kurallar zinciridir. Sisteme giren her paket hedefine ulaşmadan önce birçok zincir kurallarından geçer. Kullanıcı tanımlı zincirlerde, geçerli hedef daima çağırıldığı zincir içerisindeki bir sonraki kuraldır. Örneğin bir kuralın hedefi kullanıcı tanımlı zincir ise, kullanıcı tanımlı zincir çalışır. Zincir içerisinde herhangi bir eşleşmez ise o zaman ana zincirdeki bir sonraki kural çalışır.
FIREWALL ve NAT ZİNCİRLERİ(Chain)
Güvenlik duvarı üç adet zincir kullanır. INPUT, OUTPUT ve FORWARD. Paket ağ arabirimimize ulaştığında INPUT zinciri bu paket’in nasıl işlem göreceğine karar verir. Daha sonra sistem çekirdeği(kernel) kendi yönlendirme bilgisini(routing information) kullanarak paketin nereye gönderileceğine karar verir. Eğer başka bir sunucu yâda istemciye gönderilecek ise o zaman FORWARD zinciri kontrol edilir. Paketin gönderilmesinden önce ayrıca OUTPUT zinciri de kontrol edilir. Sonuç olarak, iki adet NAT tablo zinciri, POSTROUTING ve PREROUTING zincirleri, IP maskeleme ve paket adres değişimleri için yaratılır. Geçerli iptables zincirleri aşağıda verilmiştir.
Buraya kadar iptables ile ilgili birçok bilgi verdik. Bir sonraki bölümde iptables tablolarına nasıl kural ekleyeceğimiz ve eklenen kurallarının nasıl değiştirileceğini anlatacağım.
Kaynaklar
McGrawHill – Fedora Core 7 and Red Hat Enterprise Linux – Richard PETERSON
www.redhat.com
McGrawHill – Fedora Core 7 and Red Hat Enterprise Linux – Richard PETERSON
Erdal YAZICIOĞLU
Bu makalede size küçük ölçekli Microsoft ağları için Samba Dosya paylaşım sunucusu nasıl yapılandıracağız onu anlatmaya çalışacağım. Kullanıcı sayımızı ben 10 olarak saptadım. Samba sunucusu bu ağdan daha büyük ağlar üzerinde de sorunsuz olarak çalışmaktadır. Ancak aşağıda vereceğim örneği, ortamlarında Domain Controller bulunmayan tüm ağlarda kullanabilirsiniz. O zaman işe koyulalım
GİRİŞ
Birazdan okumaya başlayacağız paragraflarda Samba sunucusu yapılandırması için gerekli temel adımları öğreneceksiniz. Adım adım size ev yada küçük bir ofis ağında ücretsiz, güvenli ve sağlam bir dosya sunucusunun nasıl yapılandırılacağını anlatacağım. Kolay gelsin
Samba TCP/IP protokolü kullanarak, UNIX, Linux, IBM System 390, OpenVMS vb. işletim sistemlerinin Microsost işletim sistemleri ile dosya paylaşımına yarayan bir yazılımdır. Daha detaylı bilgi için http:/www.samba.org adresini ziyaret edebilirsiniz.
Size biraz yapımızdan bahsedelim. Ofisimizde 10 adet kullanıcı var ve bu kullanıların hepsi kendi bilgisayarlarını kullanıyor. Ortamda herhangi bir Domain Controller yok. Herkes kendi makinesinde yerel olarak belirtilen kullanıcı adı ve şifreler ile makinelerine giriyorlar.
Şirket sahibi benim arkadaşım. Şirket dijital dizayn sektöründe. Kendisi bana şirketteki dosya paylaşımdan bahsetti ve herkesin dosyalarını kendi bilgisayalarda tuttuklarını, bunun da bilgisayarların arıza yapması durumda çok fazla problem çıkarttığını belirtti. Küresel ekonomik kriz nedeni ile lisans ücreti ödeyemeceğini, bu işi bir şekilde ücretsiz halletmesi gerektiği söyledi( Burası tamamen sallama inanmayın
). Tabi benim de yardımıma hemen Açık Kaynak Kod ailesi yetişti. Şirketi ziyaret ettiğimde şirket yapısının bir krokisini çıkarttım. Tüm bilgisayarlar bir switch üzerinden ağa girmekteler. Kullanıcı tablosu ise aşağıda verilmiştir.
Kullanıcı tablomuz ve vereceğimiz paylaşımlar yukarıdaki gibi olacak. Şirket sahibi Hakan Uzuner’in tüm dizaynlar üzerinde tam kontrolü olurken, diğer kullanıcılar sadece kendi klasörlerine yazabilecekler. Ancak diğer kişilerin dizaynlarını Read-Only olarak görebilecekler.
Kullanıcı adı ve şifreler tamamen uydurmadır.İsim bulamadığımdan portaldaki arkadaşların ismini kullandım. Umarım kızmazlar
Kullanacağımız işletim sistemi CentOS-5.2. Bu yazı yazılırken en son sürüm bu idi. Detaylar için http:/www.centos.com adresini ziyaret edebilirsiniz. Anlatacağım özellikler diğer Linux versiyonlarında çalışacaktır.
SAMBA SUNUCUSUNUN YÜKLENMESİ
Samba sunucusunu her linux dağıtımı ile yüklenecek paket olarak gelir.Aşağıdaki ekranda işletim sisteminizin ilk kurulumu esnasında yada Paket Yöneticisini kullanarak SAMBA’nın kurulumu gösterilmektedir. Aşağıdaki ekran test makinem olan Fedora8′den alınmıştır. Ancak CentOS işletim sistemlerinde de aynı uygulamalar yapılır.
Ben yukarıdaki uygulamayı yapmayarak, daha güncel sürümü alabilmek için yum fonksiyonun kullanarak Samba sunucusunu yükleyeceğim.
Önce Samba sunucusunun sistemizde kurulu olup olmadığına bakalım ve eğer kurulu değil ise o zaman samba yı sunucumuza kuralım.
[root@server2 /]# rpm -q samba
package samba is not installed
root@server2 /]# yum install samba
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
……
Transaction Summary
===========================================
Install 1 Package(s)
Update 2 Package(s)
Remove 0 Package(s)
Total download size: 30 M
Is this ok [y/N]: y
Yukarıdaki soruya y cevabı verip dosyaları indirmeye başlıyoruz.
Downloading Packages:
(1/3): samba-client-3.0.2 100% |========| 4.9 MB 00:16
(2/3): samba-common-3.0.2 100% |=====| 8.7 MB 00:27
(3/3): samba-3.0.28-1.el5 100% |=======| 16 MB 00:52
İndirme işlemi bittikten sonra bize GPG anahtarını yüklememiz gerektiği belirten bir uyarı verir. Bu uyarıda y diyerek kurulum işlemini tamamlıyoruz.
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897 Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) " from http://mirror.centos.org/
centos/RPM-GPG-KEY-CentOS-5
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : samba-common ######################### [1/5]
Installing: samba ######################### [2/5]
Updating : samba-client ######################### [3/5]
Cleanup : samba-common ######################### [4/5]
Cleanup : samba-client ######################### [5/5]
Installed: samba.i386 0:3.0.28-1.el5_2.1
Updated: samba-common.i386 0:3.0.28-1.el5_2.1
Dependency Updated: samba-client.i386 0:3.0.28-1.el5_2.1
Complete!
[root@server2 /]#
Buraya kadar herşeyi yukarıda anlatılan gibi uyguladıysanız artık sunucunuzda SAMBA kurulumu tamamlanmıştır. Artık kullanıcılarımız için SAMBA yapılandırmasına geçebiliriz.
SAMBA YAPILANDIRMASI
Bir önceki bölümde SAMBA sunucumuzu sistemimize kurmuştuk. Bu bölümde ise SAMBA sunucumuzu yapılandıracağız.İlk olarak SAMBA sunucumuzun her açılışta otomatik başlaması için ayarlıyoruz
chkconfig smb on komutu SAMBA sunucusu 2,3 ve 5 nolu açılış düzeylerinde otomatik olarak başlatmaya yarar. chckconfig –list smb komutu ile hangi açılış düzeyleri için ayarlanmış olduğunu listeleyebiliriniz.
[root@server2 /]# chkconfig smb on
[root@server2 /]# chkconfig –list smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
chkconfig smb on komutu sadece SAMBA sunucumuzu işletim sistemi açılırken başlaması için gerekli dedik. İşletim sistemimizi program yüklemesinden sonra tekrar başlatma ihtiyacı olmadığından (Linux!!!:)) Samba sunucumuzu el ile başlatıyoruz. Bir dahaki açılışta SAMBA sunucusu otomatik olarak başlayacaktır.
[root@server2 /]# service smb start
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
Şimdi ise istemcilerin SAMBA sunucusuna yani smbd uygulamasına bağlanıp bağlanadıklarını test edelim.
[root@server2 /]# smbclient -L localhost -U%
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.28-1.el5_2.1]
Sharename Type Comment
——— —- ——-
IPC$ IPC IPC Service (Samba Server Version 3.0.28-1.el5_2.1)
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.28-1.el5_2.1]
Server Comment
——— ——-
SERVER2 Samba Server Version 3.0.28-1.el5_2.1
Workgroup Master
——— ——-
MYGROUP
[root@server2 /]#
Yukarıdaki işlem SAMBA sunucusunun loopbak arayüzüne cevap verdiğini belirtir. %U komutu SAMBA’ya boş kullanıcı adı ve şifre ile bağlanmaya yarar. Samba dökümanlarında bu komutu Samba çalışmaya başladıktan 15 dakika sonra koşun yazıyor. Ancak ben hemen uyguladım. Sonuç aynı.
Bir sonraki adım ise SAMBA sunucusunda paylaşımlarımızı açmak. Samba yapılandırma dosyası /etc/samba altında smb.conf adı ile bulunur. Bu dosyamızı vi editörünü kullanarak aşağıdaki gibi yapılandırın
[global]
workgroup = CREATIVEDIZAYN
[Dizayn]
comment = Ana dizayn dizini
path = /dizayn
valid users = hakan
read only = No
[%U Dizayn]
comment = Kullanıcı dizayn dosyaları
path = /dizayn/%U
read only = No
Yukarıdaki yapılandırma dosyasında gördüğünüz gibi tüm dosyaların paylaşım alanı Dİzayn olarak belirledik. Daha sonra hakan kullanıcısına bu alanda tüm hakları vereceğiz. Diğer kullanıcılar ise /dizayn/%U ile belirlenmiş kendi alanlarında çalışıyor olacaklar.
Öncelikle dizayn adında grubumuzu yaratalım ve kullanıcıları bu grubun altına ekleyelim. Bu bir test ortamı olduğundan şifreler kısa hatası verecektir. Gerçek ortamlarda daha güçlü şifreler kullanınız.
[root@server2 /]# groupadd dizayn [root@server2 /]# useradd -m -G dizayn -c "Hakan Uzuner" "hakan"
[root@server2 /]# passwd hakan
Changing password for user hakan.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@server2 /]# useradd -m -G dizayn -c "Rahmi Dilli" "rahmi"
[root@server2 /]# passwd rahmi
Changing password for user rahmi.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@server2 /]#
Sadece hakan ve rahmi kullanıcısı için hesapları açtık. Bu işlemi yukarıda verilen tabloda tüm kullanıcılar için yapmanız gerekmektedir.
Şimdi ise hakan ve rahmi kullanıcısının samba şifrelerini düzenleyelim. Buradaki şifrelerin Windows üzerindeki şifreler ile aynı olması gerekmektedir.
[root@server2 /]# smbpasswd -a hakan
New SMB password:
Retype new SMB password:
Added user hakan.
[root@server2 /]# smbpasswd -a rahmi
New SMB password:
Retype new SMB password:
Added user rahmi.
Kullanıcılarımızı ve şifrelerini oluşturduk. Şimdi ise sırada kullanıcı dizinleri var. Bu dizinleri linux komut satırından çok kolay bir şekilde yaratacağız. Ufak bir yazılım işimizi kolaylaştıracak. Komut satırından aşağıdaki komutu girerek dizinleri yaratalım.
[root@server2 /]# for i in rahmi eser mumin sinan serhad selim murat serhat gokhan; do mkdir -p /dizayn/$i; chown $i /dizayn/$i; done
[root@server2 /]# ls -al /dizayn/
total 48
drwxr-xr-x 11 hakan root 4096 Nov 16 17:11 .
drwxr-xr-x 28 root root 4096 Nov 16 17:09 ..
drwxr-xr-x 2 eser root 4096 Nov 16 17:11 eser
drwxr-xr-x 2 gokhan root 4096 Nov 16 17:11 gokhan
drwxr-xr-x 2 mumin root 4096 Nov 16 17:11 mumin
drwxr-xr-x 2 murat root 4096 Nov 16 17:11 murat
drwxr-xr-x 2 rahmi root 4096 Nov 16 17:11 rahmi
drwxr-xr-x 2 selim root 4096 Nov 16 17:11 selim
drwxr-xr-x 2 serhad root 4096 Nov 16 17:11 serhad
drwxr-xr-x 2 serhat root 4096 Nov 16 17:11 serhat
drwxr-xr-x 2 sinan root 4096 Nov 16 17:11 sinan
[root@server2 /]#
Dizinleri hakları ve sahipleri ile mükemmel bir yapımız oluştu. Artık Xp tarafında geçip, istemcilerimizi ayarlama vaktimiz geldi. Bravo bize.
XP tarafında test amacı ile iki adet kullanıcı yaratacağız. Birinci kullanıcının adı hakan ve şifresi hakan’dır, ikinci kullanıcı ise rahmi ve şifresi rahmidir. Önce hakan kullanıcı ile girip test edelim…
Hakan kullanıcısının tüm dizinleri görüp göremediğini test edelim…
Şimdi de rahmi kullanıcısı ile giriş yapalım.
Rahmi kullanıcısı ile giriş yaptığınızda Dizayn dizinine tıklarsanız, sistem sizden kullanıcı adı şifre isteyecektir. Rahmi dizinine ise sorunsuz bir şekilde bağlanabileceksiniz.
Bir sonraki makalede görüşmek dileği ile… Herkese kolay gelsin.