Monday, December 14, 2009

Dinamik NAT Konfigürasyonu

Bu yazımızda Cisco marka bir yönlendiricide dinamik NAT (Network Address Translation) ayarının nasıl yapıldığını göstermeye çalışacağız. Topolojimiz aşağıdaki gibi. ANKARA yönlendiricisine bağlı NAT yapacağımız iki adet ağımız var: 192.168.1.0/24 ağı ve 192.168.2.0/24 ağı. Amacımız; bu iki ağa ait olan IP adreslerini 171.69.238.208/28 ağına ait olan IP adreslerine dönüştürmek ve TRABZON yönlendiricisine bağlı olan 194.99.2.0/24 ve 192.11.33.0/24 ağlarına eriştirebilmek.

İlk olarak NAT yapılacak IP adres bloklarını belirlememiz gerekiyor. Bunun için yönlendiricimizin konfigürasyonuna aşağıdaki gibi bir erişim kontrol listesi girmemiz gerekiyor:

Router(config)#access-list 61 permit 192.168.1.0 0.0.0.255
Router(config)#access-list 61 permit 192.168.2.0 0.0.0.255


Yukarıdaki 61 numaralı erişim kontrol listesine yazılmış olan IP adres bloklarına NAT uygulanacaktır.
Bundan sonra adres dönüşümlerinin yapılacağı adres havuzunun yönlendiricinin konfigürasyonunda aşağıdaki gibi belirtilmesi gerekiyor:

Router(config)#ip nat pool IP-HAVUZU 171.69.233.210 171.69.233.221 netmask 255.255.255.240

Yukarıdaki konfigürasyon satırında adres dönüşümlerinin yapılacağı IP adresi havuzunun ismi, "IP-HAVUZU" olarak belirtilmiştir. Sonra dönüşüm yapılacak adreslerin başlangıç ve bitiş IP adresleri belirtilmiştir. Yukarıdaki örnek için adres havuzunda bulunacak olan başlangıç IP adresi 171.69.233.210 ve bitiş IP adresi de 171.69.233.221 olarak belirtilmiştir.
Bundan sonra adres dönüşümü yapacağımız IP adreslerini IP adres havuzumuzla aşağıdaki gibi eşleştirmek olacaktır:

Router(config)#ip nat inside source list 61 pool IP-HAVUZU

Yukarıdaki konfigürasyon satırında söylenmek istenen şudur: 61 numaralı erişim kontrol listesine uyan IP paketleri "IP-HAVUZU" adı verilen IP havuzundan IP adres alacaktır. Yani 192.168.1.0/24 ve 192.168.2.0/24 IP adres blokları 171.69.233.210 ile 171.69.233.221 IP adres aralığında yer alan IP adreslerine dönüştürülecektir.
Bundan sonra yapılacak iş, arayüzlerin hangisinin "iç", hangisinin "dış" olduğunun belirlenmesidir. Toplojimize göre ANKARA yönlendiricisi üzerindeki 192.168.1.0/24 (FastEthernet 0/0) ve 192.168.2.0/24 (FastEthernet 0/1) ağları "iç ağ (inside)" ve dönüşüm yapılacak olan 171.69.233.208/28 (FastEthernet 0/2) ağı da "dış ağ (outside)" olacaktır. Aşağıda, yönlendiricide olması gereken arayüz ayarları gösterilmiştir:

ANKARA
!

interface FastEthernet 0/0

ip address 192.168.1.111 255.255.255.0
ip nat inside
!
interface FastEthernet 0/1
ip address 192.168.2.111 255.255.255.0
ip nat inside
!
interface FastEthernet 0/2
ip address 171.69.233.209 255.255.255.240
ip nat outside

192.168.1.0/24 ve 192.168.2.0/24 ağlarının 194.99.2.0/24 ve 192.11.33.0/24 ağlarına NAT yapılmış olarak erişebilmeleri için ANKARA yönlendiricisinde bu ağlar için aşağıdaki gibi yön girilmesi gerekir:

Router(config)#ip route 194.99.2.0 255.255.255.0 171.69.233.222
Router(config)#ip route 192.11.33.0 255.255.255.0 171.69.233.222

192.168.1.101 ve 192.168.2.101 IP numaralı bilgisayarlardan 194.99.2.101 ve 192.11.33.101 IP numaralı bilgisayarlara "ping" atıldığında bu ağların birbirleriyle görüşebildiği görülecektir.

ANKARA ve TRABZON yönlendiricilerinin NAT ve buna bağlı yönlendirme konfigürasyonları aşağıdaki gibi olacaktır:

ANKARA Yönlendiricisi

interface FastEthernet0/0
ip address 192.168.1.254 255.255.255.0
ip nat inside
!
interface FastEthernet0/1
ip address 192.168.2.254 255.255.255.0
ip nat inside
!
interface FastEthernet1/0
ip address 171.69.233.210 255.255.255.240
ip nat outside
!
ip nat pool IP-HAVUZU 171.69.233.210 171.69.233.223 netmask 255.255.255.240
ip nat inside source list 61 pool IP-HAVUZU
!
ip route 194.99.2.0 255.255.255.0 171.69.233.222
ip route 192.11.33.0 255.255.255.0 171.69.233.222
!
access-list 61 permit 192.168.1.0 0.0.0.255
access-list 61 permit 192.168.2.0 0.0.0.255

****************************************************
TRABZON Yönlendiricisi

interface FastEthernet0/0
ip address 194.99.2.254 255.255.255.0
!
interface FastEthernet0/1
ip address 192.11.33.254 255.255.255.0
!
interface FastEthernet1/0
ip address 171.69.233.222 255.255.255.240
Not: Yukarıdaki toplojiye ait konfigürasyonlar "Packet Tracer 5.1" yazılımı üzerinde denenip, çalıştırılmış konfigürasyonlardır.

Friday, September 11, 2009

SNMP ile Cisco Yönlendiricinin Konfigürasyonunu Almak

Bu yazımızda, SNMP ile Cisco marka bir yönlendiricinin konfigürasyonunun uzaktan nasıl alındığını anlatmaya çalışacağız. Topolojimiz aşağıdaki gibi: Bir adet TFTP sunucumuz var, bir adet Cisco yönlendiricimiz var ve bir de komutları konsolundan yazdığımız LINUX CentOS işletim sistemine sahip bir bilgisayarımız var.
Şimdi LINUX CentOS işletim sistemi yüklü bilgisayardan yazacağımız komutlarla hedef yönlendiricinin konfigürasyonunu almaya çalışacağız. Bunun için bir "Perl script"i kullanacağız. "script"imizin adı copy-router-config.pl
Yönlendiricinin işletim sistemini aktarmayı planladığımız Windows XP işletim sistemi yüklü bilgisayarın üzerinde TFTP sunucu servisinin çalışıyor olması gereklidir. Yönlendiricinin konfigürasyonu TFTP ile alınacağı için bu gereklidir.

"script"in kullanımı aşağıdaki gibidir:
./copy-router-config.pl

Göstermeyi planladığımız örnekte yönlendiricimizin IP adresi 192.168.2.222, TFTP sunucumuzun IP adresi de 192.168.2.111 olarak belirlenmiştir. Yönlendiricinin SNMP "community name" değeri de "public"tir.

Aşağıdaki komutu yazdıktan sonra, yönlendiricinin konfigürasyonu TFTP sunucusuna aktarılmış olacaktır.
[root@SSS]#./copy-router-config.pl 192.168.2.222 192.168.2.111 public

"SNMP community" değeri üretilen tüm ağ cihazlarında "public" olarak gelmektedir. "SNMP community" değeri "public" olan Cisco yönşendiriclerin konfigürasyonlarını almak yukarıda da görülebilecği gibi oldukça basittir. Bu nedenle varsayılan değeri "public" olan bu değerin başka ve daha karmaışk bir değerler değiştirilmesi gerekmektedir.

Selçuk Şahin

Friday, August 7, 2009

TCP Sıra ve Onay Numaraları (Sequence Number & Acknowledgment Number) - 1

Bu yazımızda, TCP bağlantısı kurulması aşamasında ve TCP bağlantısı kurulduktan sonra, sıra ve onay numaralarının (sequence number & acknowledgment number) durumları incelenecektir.

Bir ağ üzerinde yer alan iki bilgisayar birbirleri arasında bilgi transferi yapacağı zaman aralarında bir TCP bağlantısı kurmaları gerekmektedir. Bu TCP bağlantısı, iki taraftan birisinin TCP bağlantı isteğini yapmasıyla başlar.

TCP bağlantılarında, karşılıklı gönderilen paketlerin hedefe ulaşıp, ulaşmadığını garanti etmek amacıyla sıra ve onay numaraları (sequence number & acknowledgment number) kullanılır.

TCP bağlantısını başlatan taraf, göndereceği TCP segmentinin başlığının (header) içerisindeki SYN bitinin değerini "1" yapar ve TCP bağlantısı için bir başlangıç sıra numarası (ISN = Initial Sequence Number) üretir. Bu sıra numarası , her işletim sisteminde farklı algoritmalarla, rastgele olacak şekilde üretilen bir sayıdır. Sıra ve onay numaralarının her birinin uzunluğu 32 bittir.

Yazımızda önce TCP 3 aşamalı el skışıma (TCP 3 way handshaking) aşamasından bahsedeceğiz:
Senaryomuzda A bilgisayarı, B sunucusuna bir HTTP isteği yapacaktır. Bilindiği gibi HTTP istekleri normalde TCP 80 numaralı portu kullanır. Bunun için A bilgisayarının, B sunucusuna 80 numaralı port üzerinden bir TCP bağlantısı başlatması gereklidir.

A bilgisayarı TCP başlığı içindeki SYN bayrağının değerini "1" yapar ve rastgele bir başlangıç sıra numarası (ISN = Initial Sequence Number) üretir. Yukarıda da belirtmiş olduğumuz gibi, ISN her işletim sisteminde farklı bir algoritmayla üretilmektedir. A bilgisayarı TCP bağlantısını başlattığı için ve B sunucusundan henüz herhangi bir cevap da almamış olduğu için göndereceği segmentin onay numarasının (acknowledgment number) değeri "0"dır (sıfır).
Yukarıdaki şekle göre A bilgisayarı, B sunucusuna bir TCP bağlantı isteği göndermektedir. Gönderilen bu TCP segmentinin sıra numarası 4227644578'dir ve TCP segmentinin başlığının içindeki SYN bayrağının değeri de "1"dir.

B sunucusu aldığı bu TCP segmentine, kendi ISN'sini (Initial Sequence Number) içeren bir başka TCP segmentiyle cevap verir. B sunucusunun gönderdiği bu TCP segmentinin başlığındaki SYN ve ACK bayraklarının değeri "1" olarak belirlenmiştir. Ayrıca bu segment, içerisinde A bilgisayarından almış olduğu paketin onay numarası da içermektedir.
Yukarıdaki şekle göre B sunucusu, A bilgisayarına bir cevap segmenti dönmüştür. Bu cevap segmentinin başlığında yer alan SYN ve ACK bayraklarının değeri "1"dir. Ayrıca B sunucusu kendi ISN'sini (Initial Sequence Number) de bu segmente eklemiştir. Yukarıdaki örnekte B sunucusunun ISN değeri 3363649303'tür. Bunun yanı sıra B sunucusu, A bilgisayarına bir önceki segmenti aldığına dair bir de onay numarası (acknowledgment number) gönderir. Bu değer bir önceki pakette yer alan sıra numarasının "1" fazlasıdır. Yani 4227644578 + 1 = 4227644579'dur. B sunucusu, A bilgisayarına şunu demektedir: "4227644578 numaralı segmenti aldım. Bundan sonra bana göndereceğin sıra numarası (sequence number) 42276644579 olsun.

Bunda sonraki aşamada A bilgisayarı, bağlantının kurulması için B sunucusuna son olarak bir segment daha gönderir. Bu segmentin başlığı içindeki ACK bayrağının değeri "1" olarak belirlenir. Ayrıca A bilgisayarı, B sunucusunun göndermiş olduğu segmenti aldığını da bir onay numarası (acknowledgment number) göndererek bildirir. Bu onay numarasının değeri almış olduğu TCP segmentinin içerisinde yer alan B sunucusuna ait olan sıra numarasının (sequence number) "bir" fazlasıdır.
Yukarıdaki şekle göre A bilgisayarı, B sunucuna cevap olarak göndermiş olduğu segmentin başlığındaki ACK bayrağının değerini "1" olarak belirlemiştir. Ayrıca bir önceki segmenti aldığına dair de B sunucusuna bir onay numarası (acknowledgment number) göndermiştir. Bu onay numarası bir önceki segmentte yer alan B sunucusuna ait olan sıra numarasından (sequence number) "bir" fazladır. Yani 3363649303 + 1 = 3363649304'tür. Burada A bilgisayarı şunu demektedir: "Sıra numarası 3363649303 olan segmenti aldım.Bundan sonra yollayacağın segmentin sıra numarası 3363649304 olsun."

Böylece A bilgisayarı ve B sunucusu arasında TCP bağlantısı kurulmuş olur. Bundan sonra her iki uç arasında veri akışı başlayacaktır. Bundan sonra veri akışının devam etmesi için ilk TCP segmentini A bilgisayarı gönderecektir. Bu ilk segmentin sıra numarası 42276644579 ve onay numarası da 3363649304 olacaktır.
Yukarıdaki şekilde A bilgisayarı, B sunucusuna şunu demektedir: "Senden gelen 3363649303 sıra numaralı segmenti aldım. Bundan sonra göndereceğin segmentin sıra numarası 3363649304 olsun."

Bundan sonra gelecek olan üç segment aşağıdaki gibi olacaktır:
Yukarıdaki şekilde B sunucusu, A bilgisayarına şunu demektedir: "Senden gelen 4227644579 sıra numaralı segmenti aldım. Bundan sonra göndereceğin segmentin sıra numarası 4227644580 olsun."

Yukarıdaki şekilde A bilgisayarı, B sunucusuna şunu demektedir: "Senden gelen 3363649304 sıra numaralı segmenti aldım. Bundan sonra göndereceğin segmentin sıra numarası 3363649305 olsun."

Yukarıdaki şekilde B sunucusu, A bilgisayarına şunu demektedir: "Senden gelen 4227644580 sıra numaralı segmenti aldım. Bundan sonra göndereceğin segmentin sıra numarası 4227644581 olsun."
Veri alışverişi, sıra ve onay numaraları bu şekilde artarak bağlantı bitene kadar devam eder.

ÖNEMLİ NOT: Bu örnekte dikkat edilirse sıra ve onay numaralarının birer birer arttığı görülür. Fakat gerçek hayattaki bir TCP bağlantısında bu numaralar birer birer artmazlar. Bu numaralar, segmentin içerdiği verinin büyüklüğüne bağlı olarak bir artış gösterirler. Bununla ilgili örneği de bir sonraki yazımızda anlatmayı planlıyoruz.

Tuesday, June 2, 2009

Basit SNMP Komutları

Elimizde bir adet Cisco 2621 yönlendirici, bir adet Cisco WS-3550-48-SMI anahtar ve bir adet HP ProCurve 2848 anahtar mevcut. SNMP komutlarıyla bu üç cihazın ayakta kalma sürelerinin ve sistem bilgilerinin nasıl alındığını göstereceğiz. Tabii ki bu üç cihaz üzerinde SNMP servisinin aktif olması gerekmektedir. Komutları LINUX CentOS 5.2 kurulu bir bilgisayardan yazacağız.

Önce Cisco 2621 yönlendiriciden bilgi almaya başlayacağız:
root@SSS#snmpget -v1 -c hedehodokalkani 192.168.2.61 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (134593) 0:22:25.93
root@SSS#snmpget -v2c -c hedehodokalkani 192.168.2.61 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (152809) 0:25:28.09
root@SSS#snmpwalk -v1 -c hedehodokalkani 192.168.2.61 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (190572) 0:31:45.72
root@SSS#snmpwalk -v2c -c hedehodokalkani 192.168.2.61 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (197183) 0:32:51.83

Yukarıdaki komutları açıklayalım:
snmpget ve snmpwalk LINUX komutları yönlendiricimizden SNMP ile bilgi almamıza yarar.
v1 & v2c: SNMP'nin versiyonunu gösterir. Yönlendiricimiz SNMPv1 ve SNMPv2c versiyonlarını desteklediği için her iki komutla da yönlendiricimizden bilgi almak mümkün olmuştur.
-c hedehodkalkani: Burada -c'den sonra yazılan ifade "SNMP community" değeridir. Buraya hem RO, hem de RW değeri yazılabilir.
192.168.2.61: SNMP bilgilerini alacağımız yönlendiricinin IP numarasıdır.
system.sysUpTime.0: Yönlendiricinin ayakta kalma süresini belirten MIB değeridir.
Bundan sonra yazılacak olan komutlar yukarıdaki parametrelere uygun olarak yazılacaktır.

Şimdi de bir SNMP komutuyla yönlendiricimizin sistem bilgilerini alalım:
root@SSS#snmpget -v1 -c hedehodokalkani 192.168.2.61 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-I-M), Version 12.3(25), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2008 by cisco Systems, Inc.
Compiled Mon 28-Jan-08 19:21 by alnguyen
root@SSS#snmpget -v2c -c hedehodokalkani 192.168.2.61 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-I-M), Version 12.3(25), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2008 by cisco Systems, Inc.
Compiled Mon 28-Jan-08 19:21 by alnguyen
root@SSS#snmpwalk -v1 -c hedehodokalkani 192.168.2.61 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-I-M), Version 12.3(25), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2008 by cisco Systems, Inc.
Compiled Mon 28-Jan-08 19:21 by alnguyen
root@SSS#snmpwalk -v2c -c hedehodokalkani 192.168.2.61 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-I-M), Version 12.3(25), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2008 by cisco Systems, Inc.
Compiled Mon 28-Jan-08 19:21 by alnguyen
Bu örnekte Cisco yönlendiricimizden "show version" komutunun bir kısmına karşılık gelen bilgileri almış olduk.
system.sysDescr.0: Cisco yönlendiricimizde "show version" yazdığımızda karşımıza gelen bilgilerin bir kısmını göstermeye yarayan SNMP MIB değeridir.

Şimdi de Cisco WS-3550-48-SMI anahtarında aynı bilgileri, aynı komutlarla alalım:
root@SSS#snmpget -v1 -c hedehodokalkani 192.168.2.60 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9442666) 1 day, 2:13:46.66
root@SSS#snmpget -v2c -c hedehodokalkani 192.168.2.60 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9450371) 1 day, 2:15:03.71
root@SSS#snmpwalk -v1 -c hedehodokalkani 192.168.2.60 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9454687) 1 day, 2:15:46.87
root@SSS#snmpwalk -v2c -c hedehodokalkani 192.168.2.60 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9459263) 1 day, 2:16:32.63

root@SSS#snmpget -v1 -c hedehodokalkani 192.168.2.60 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C3550 Software (C3550-I9Q3L2-M), Version 12.1(11)EA1, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2002 by cisco Systems, Inc.
Compiled Mon 28-Aug-02 09:33 by antonino
root@SSS#snmpget -v2c -c hedehodokalkani 192.168.2.60 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C3550 Software (C3550-I9Q3L2-M), Version 12.1(11)EA1, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2002 by cisco Systems, Inc.
Compiled Mon 28-Aug-02 09:33 by antonino
root@SSS#snmpwalk -v1 -c hedehodokalkani 192.168.2.60 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C3550 Software (C3550-I9Q3L2-M), Version 12.1(11)EA1, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2002 by cisco Systems, Inc.
Compiled Mon 28-Aug-02 09:33 by antonino
root@SSS#snmpwalk -v2c -c hedehodokalkani 192.168.2.60 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C3550 Software (C3550-I9Q3L2-M), Version 12.1(11)EA1, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2002 by cisco Systems, Inc.
Compiled Mon 28-Aug-02 09:33 by antonino

Şimdi de HP ProCurve 2848 anahtarının bilgilerini aynı komutlarla alıyoruz:
root@SSS#snmpget -v1 -c hedehodokalkani 192.168.2.62 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1209861314) 140 days, 0:43:33.14
root@SSS#snmpget -v2c -c hedehodokalkani 192.168.2.62 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1209868785) 140 days, 0:44:47.85
root@SSS#snmpwalk -v1 -c hedehodokalkani 192.168.2.62 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1209872829) 140 days, 0:45:28.29
root@SSS#snmpwalk -v2c -c hedehodokalkani 192.168.2.62 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1209878435) 140 days, 0:46:24.35

root@SSS#snmpget -v1 -c hedehodokalkani 192.168.2.62 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: ProCurve J4904A Switch 2848, revision I.10.43, ROM I.08.07 (/sw/code/build/mako )mkfs))
root@SSS#snmpget -v2c -c hedehodokalkani 192.168.2.62 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: ProCurve J4904A Switch 2848, revision I.10.43, ROM I.08.07 (/sw/code/build/mako )mkfs))
root@SSS#snmpwalk -v1 -c hedehodokalkani 192.168.2.62 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: ProCurve J4904A Switch 2848, revision I.10.43, ROM I.08.07 (/sw/code/build/mako )mkfs))
root@SSS#snmpwalk -v2c -c hedehodokalkani 192.168.2.62 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: ProCurve J4904A Switch 2848, revision I.10.43, ROM I.08.07 (/sw/code/build/mako )mkfs))

Thursday, May 28, 2009

IEEE 802.1x RADIUS Sunucusu Konfigürasyonu

IEEE 802.1x konfigürasyonu yukarıdaki topolojiye göre yapılmıştır:

Senaryo:

  • www.sss61.com etki alanına dahil olan kullanıcılar, PC1 ve PC2 üzerinden, IEEE 802.1x kimlik doğrulamasını kullanarak etki alanına dahil olacaklardır.
  • Aktif dizin Windows 2008 Server üzerine kurulmuştur.
  • RADIUS sunucusu olarak IAS kullanılmıştır. IAS, Windows 2003 Server üzerine kurulmuştur.
  • PC1, HP ProCurve 2848 anahtarına bağlıdı. Anahtarın işletim sistem versiyonu I.10.43'tür.
  • PC2, Cisco 3550 anahtarına bağlıdır. Anahtarın işletim sistem versiyonu 12.1(11)EA1'dir. Anahtarın üzerindeki işletim sistemi c3550-ipservicesk9-mz.122-44.SE6.bin'dir.
RADIUS Sunucusu Konfigürasyonu

Bu konfigürasyonumuzda RADIUS sunucusu olarak Windows IAS sunucusunu kullanacağız. Bunun için önce IAS penceresini açıyoruz:

Burada, RADIUS sunucumuza bağlanacak olan istemcileri tanımlaycağız. Bunun için, açılan pencerede "Internet Authentication Service (Local)" başlığı altında yer alan "RADIUS Clients"a sağ tıklıyoruz ve "New RADIUS Client" seçeneğini seçiyoruz:

Bundan sonra "New RADIUS CLient" penceresi açılır. "Friendly name" kısmına RADIUS sunucumuza bağlanacak olan istemciyi temsil eden bir isim yazıyoruz. Bu örnekte RADIUS istemcimizin ismi "ETHERNET_SWITCH_A" olarak belirlenmiştir. Penceredeki "Client address" kısmına ise RADIUS istemcimizin IP adresini yazıyoruz. Bu örnekte RADIUS istemcisinin IP adresi 192.168.61.61 olarak belirlenmiştir. Bu alana IP adresi yerine RADIUS istemcimizin ismi de yazılabilir. Ama bilgisayarımızın, bir DNS sunucusu üzerinden bu ismi çözebilmesi gereklidir. IEEE 802.1x konfigürasyonu yaptığımız için RADIUS istemcilerimiz, anahtarlama cihazlarımız olacaktır. Bu pencerede yazmış olduğumuz bilgiler, aslında IEEE 802.1x uygulamasında kullanacağımız anahtarlama cihazlarımızın bilgileri olacaktır:

Bundan sonra "Next"e basarak bir sonraki pencereye geçiyoruz. Bu pencerede "Client-Vendor" alanındaki menüden "RADIUS Standard"seçeneğiini seçiyoruz. RADIUS istemcilerimizin, RADIUS sunucumuzla konuşması için bir şifre tanımlamamız gerekmektedir. Bu RADIUS şifresini de penceredeki "Shared Secret" ve "Confirm Shared Secret" alanlarına yazıyoruz. Yazmış olduğumuz şifre, doğal olarak pencerede görünmeyecektir:

"Finish"e basarak IAS sunucumuz üzerinde, RADIUS istemcimizi tanımlamış oluyoruz. "Internet Authentication Service (Local)" başlığının altında "RADIUS Clients"a tıklamak suretiyle, tanımlamış olduğumuz istemciyle beraber tüm RADIUS istemcileri görebiliriz.

Bu şekilde RADIUS istemcimiz olacak olan anahtarımızı, IAS sunucumuz üzerinde tanımlamış olduk. IEEE 802.1x uygulamasına dahil edeceğimizi tüm anahtarlarımızı bu şekilde IAS sunucusu üzerinde tanımlamamız gerekmektedir.

Bundan sonraki yazımızda; Windows 2008 Server üzerindeki bir aktif dizinde yer alan ve IEEE 802.1x uygulamasında dahil edeceğimiz kullanıcılarımız için aktif dizin ayarlarını anlatacağız.

Wednesday, May 13, 2009

IEEE 802.1x IAS Konfigürasyonu

IEEE 802.1x konfigürasyonu yukarıdaki topolojiye göre yapılmıştır:

Senaryo:

  • www.sss61.com etki alanına dahil olan kullanıcılar, PC1 ve PC2 üzerinden, IEEE 802.1x kimlik doğrulamasını kullanarak etki alanına dahil olacaklardır.
  • Aktif dizin Windows 2008 Server üzerine kurulmuştur.
  • RADIUS sunucusu olarak IAS kullanılmıştır. IAS, Windows 2003 Server üzerine kurulmuştur.
  • PC1, HP ProCurve 2848 anahtarına bağlıdı. Anahtarın işletim sistem versiyonu I.10.43'tür.
  • PC2, Cisco 3550 anahtarına bağlıdır. Anahtarın işletim sistem versiyonu 12.1(11)EA1'dir. Anahtarın üzerindeki işletim sistemi c3550-ipservicesk9-mz.122-44.SE6.bin'dir
IAS konfigürasyonu

Bu yazıda Windows 2003 Server üzerine IAS’ın nasıl kurulduğuna yer verilmemiştir. IAS’ın Windows 2003 Server üzerine kurulmuş olduğu varsayılmıştır.

“Internet Authentication Service” ekranında “Remote Access Policies” sağ tıklanarak “New Remote Access Policy” seçilir:


Bundan sonra gelen "New Remote Access Policy Wizard" ekranı gelecektir. Burdan "Next"e tıklanarak bir sonraki ekrana geçilir:

Sonraki ekranda "Use the wizard to set up a typical policy for a common scenario" seçeneği seçilir ve "Policy name"in karşısına IEEE 802.1x için kullanacağımız bu politikanın ismi yazılır. Burada politika ismi, "8021x_policy_for_wired_users" olarak seçilmiştir.


Bu ekranda da "Next"e tıkladıktan sonra gelen ekranda erişim metodu seçilir. Bu yazıda kablolu bağlantılar (Ethernet) için IEEE 802.1x kurulumunu anlattığımız için ekrandaki menüden "Ethernet" seçeneği seçilir:

"Next"e tıklanarak bir sonraki ekrana geçilir. Bu ekranda hangi etki alanı kullanıcılarının IEEE 802.1x kimlik doğrulamasına dahil olacağı seçilir. Bu örnekte, etki alanı sunucusu üzerinde daha önceden oluşturmuş olduğumuz "8021x" grubuna dahil olan kullanıcıların, IEEE 802.1x kimlik doğrulamasına dahil olmaları sağlanmıştır.

"Next"e tıklanarak kimlik doğrulama metodunu seçeceğimiz ekrana geçilir. Buradaki menüden "MD5-Challenge" seçilir.

"Next"e basarak geçeceğimiz bir sonraki ekranda da "Finish"e basarak IEEE 802.1x için kullanacağımız politikanın oluşturulması işlemi tamamlanmış olur:

Oluşturmuş olduğumuz politikaya ek bazı ayarlar yapmamız gerekiyor. Bunun için önce sunucumuzda IAS (Internet Authentication Service) penceresini açmamız gerekiyor. IAS penceresinde tanımlamış olduğumuz politikayı görebilmemiz gerekir. Bu örnekte tanımlamış olduğumuz politikanın adı "8021x_policy_for_wired_users"dır. Bu politikaya çift tıklıyoruz ve açılan pencerede "Grant remote access permission" seçeneğinin seçili olduğuna emin oluyoruz. Pencerenin üst kısmında tanımlamış olduğumuz poitikanın özelliklerini görmek mümkündür. Bu örnekteki politikaya "Ethernet" kullanıcıları ve öncden tanımlanmış olan etki alanındaki "8021x" grubu kullanıcıları dahildir.
Çıkan bu pencerede "Edit Profile"a tıklıyoruz. Bundan sonra açılacak olan pencerelerde bazı ince ayarlar yapacağız. "Edit Profile" tıkladıktan sonra karşımız altı adet sekmeden oluşan bir başka pencere çıkacaktır:

"Authentication" sekmesinde yer alan "EAP Methods"a tıklıyoruz ve gelecek olan ekrandan da "MD5-Challenge"ı seçiyoruz. Bu ayarı yapmakla kimlik doğrulama metodunda özet (hash) algoritması olarak MD5'i seçmiş oluyoruz.

"Encryiption" sekmesinde sadece "No Encryiption" seçeneğini seçiyoruz, çünkü bu konfigürasyonda herhangi bir şifreleme yapmayı düşünmüyoruz.

"Advanced" sekmesine geçtiğimiz zaman sadece "Service-Type" özelliğinin tanımlı olduğunu görürüz. Bu özellikte "Vendor = RADIUS Standard" ve "Value = Framed" olması gereklidir. Zaten ilk ayar olarak, bu özellikler pencerede görülür.

Bu özelliklere üç adet özellik daha eklememiz gerekecektir. Bunun için "Add"e basıyoruz. Açılan penceredeki özelliklerden önce "Tunnel-Medium-Type"ı seçip, "Add"e basıyoruz:

"Tunnel-Medium-Type" özelliğinin numarası 65'tir. Pencerede bu numara "Attribute Number" altında görülebilir:

Bu pencerede de "Add"e basarak bu özelliğin değerini "Attribute value" menüsünden seçiyoruz. Menüden "802 (includes all 802 media plus Ethernet canonical format)" değerini seçiyoruz. "OK"e basarak da özellikler ana menüsüne dönüyoruz:


Bundan sonra seçeceğimiz özellik "Tunnel-Type" özelliğidir. Bu özelliği ,yine özellikleri seçtiğimiz ana menüden seçiyoruz. Menüden "Tunnel-Type"ı seçip, "Add"'e basıyoruz:

"Tunnel-Type" özelliğinin numarası 64'tür:

Gelen pencerede "Add"e basıp bu özelliğin değerlerini seçiyoruz. "Attribute Value" değeri olarak bu pencerede "Virtual LANs (VLAN)" özelliğini seçiyoruz. "OK"e basarak özellikler ana menüsüne geri dönüyoruz:


"Advanced" sekmesinde görmemiz gereken üç tane özellik vardır. Bunlar: "Service-Type", "Tunnel-Medium-Type" ve "Tunnel-Type" özellikleridir. Gelen pencerede, bu özelliklerin uygun değerlerle aşağıdaki gibi görülmesi gerekmektedir:

Böylece IEEE 802.1x için gerekli olan IAS kongifürasyonunu bitirmiş olduk. Bundan sonraki yazımızda IEEE 802.1x için gerekli olan RADIUS konfigürasyonunu anlatacağız.

Wednesday, April 1, 2009

Windows XP Authenticator sekmesi eksikliği

"Authentication" sekmesi görünmeyen, Windows XP işletim sistemi yüklü olan bilgisayarlarda aşağıdaki işlemler yapılarak bu sekme aktif hale getirilebilir. Normalde ekranın sağ altında bulunan "network" ikonu sağ tıklanır. Buradan "Open Network Connections" seçilir. Gelen pencerede yerel alan ağını temsil eden ikon da sağ tıklanarak "Properties" kısmına girilir. Eğer "Authentication" sekmesi yoksa pencere aşağıdaki gibi görünecektir:



Bu sekmeyi aktif hale getirmek için bilgisayarın servislerinden birisinin çalıştırılması gerekmektedir. Bunun için komut satırından "services.msc" çalıştırılır:



Çalıştırılması gereken servisin adı "Wired Auto Config" servisidir:



Bu servis çalıştırıldıktan sonra eksik olan "Authentication" sekmesinin aktif hale geldiği görülür:

Friday, March 20, 2009

Cisco 3550 anahtarın konsol şifresini kırmak

Cisco 3550 anahtarın konsol şifresi nasıl kırılır?
1. Anahtarı kapatın

2. Anahtarın ön sol kısmında bulunan “MODE” düğmesine parmağınızı basılı tutarak anahtarın güç kablosunu bağlayın.

3. Port1X’e ait olan LED ışığı söndükten sonra parmağınızı “MODE” düğmesinden çekin.

4. flash_init komutunu çalıştırın:
switch: flash_init
Initializing Flash...
flashfs[0]: 21 files, 4 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 15998976
flashfs[0]: Bytes used: 4395008
flashfs[0]: Bytes available: 11603968
flashfs[0]: flashfs fsck took 23 seconds.
...done Initializing Flash.
Boot Sector Filesystem (bs:) installed, fsid: 3

5. load_helper komutunu çalıştırın:
switch: load_helper
switch:

6. dir_flash komutunu çalıştırın: (İki nokta üst üsteyi yazmayı unutmayın.)
switch: dir flash:
Directory of flash:/

1 -rwx 2518 config.text
2 drwx 192 c3550-i9q3l2-mz.121-11.EA1

11603968 bytes available (4395008 bytes used)

7. Bu komutla, “flash” belleğin içindeki dosyalar görülür. “config.text” dosyası anahtarınızın konfigürasyonunu içeren dosyadır. Bu dosyaya ihtiyacınız yoksa silebilirsiniz:
switch: delete flash:config.text
Are you sure you want to delete "flash:config.text" (y/n)?y
File "flash:config.text" deleted
Anahtar açıldıktan sonra “flash” belleğin içinde “config.text” dosyayı yer almayacaktır. “copy running-config startup-config” ya da “write memory” komutlarından birini yazdıktan sonra anahtar yeni “config.text” dosyasını oluşturacaktır.
Eski konfigürasyon dosyasına ihtiyacınız varsa, ismini değiştirmek suretiyle dosyanın bir yedeğini alın:
switch: rename flash:config.text flash:config_old.text
Bu şekilde eski konfigürasyon dosyasının yedeği “config_old.text” dosyası şeklinde alınmış oldu. Anahtar açıldığı zaman boş konfigürasyon dosyası “config.text” dosyası içinde yer alacaktır. Eski konfigürasyona erişmek için anahtarın konsolundan girilip “config_old.text“ dosyasına bakılabilir. (Bu dosyaya istediğiniz ismi ve uzantıyı verebilirsiniz.)

8. Aşağıdaki komutla anahtarı boş konfigürasyonla açın:
switch: boot
Loading "."....: permission denied
Interrupt within 5 seconds to abort boot process.
Loading "flash:/c3550-i9q3l2-mz.121-11.EA1/c3550-i9q3l2-mz.121-11.EA1.bin"...###...

9. Bundan sonra anahtar aşağıdaki gibi boş konfigürasyonla açılacaktır:
--- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]:
00:00:55: %SPANTREE-5-EXTENDED_SYSID: Extended SysId enabled for type vlan
00:01:00: %SYS-5-RESTART: System restarted --
Cisco Internetwork Operating System Software
IOS (tm) C3550 Software (C3550-I9Q3L2-M), Version 12.1(11)EA1, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2002 by cisco Systems, Inc.
Compiled Wed 28-Aug-02 09:33 by antonino
Would you like to enter the initial configuration dialog? [yes/no]:

Friday, January 16, 2009

Selamlar herkese