29 Haziran 2010 Salı

Blog Sitesi Nasıl Yapılır(How to create a blog site)

Şu adresi tıklayın: https://www.blogger.com/start 1
Bloğ oluşturun buttonu tıklayın.http://prntscr.com/izwh
2 http://prntscr.com/izx3
Google hesabınız varsa giriş yapın yoksa google hesabı oluşturun.
3 http://prntscr.com/izxi
Blog başlığı yazın ve bloga isim verin mesela ethemsulan gibi.Sonra uygun olup olmadığını kontrol edin.
4http://prntscr.com/izy0
Istediğiniz bir tema seçin.
5 http://prntscr.com/izyb
Bloğunuza yazı buradan d ayazabilirisniz ama windows live writer aracı kullanmanızı tafsiye ederim.
Msn ile yüklememişseniz http://windowslivewriter.spaces.live.com/ indirin ve yükleyin.
6 http://prntscr.com/izzb
7 http://prntscr.com/izzl
8 http://prntscr.com/j00d
Bende şu an yüklü olmasaydı kutucuğu işaretleyip yüklerdim.
9http://prntscr.com/j00r
Windows live writeter Bloglar—>Blog hesabı ekle yi tıklayın.
10 http://prntscr.com/j017
Başka blog hizmetini seçin.
11http://prntscr.com/j01d
Oluşturduğunuz blog adresini girin ve google hesabınızın bilgilerini girin.
12http://prntscr.com/j01g
Blogğunuz başlığı nasıl görünsün.Örneğin Mehmet Ethem SULAN benimki.
14 http://prntscr.com/j01s
Şimdi de kodların resnkli görünmesi için Eklenti Ekle tıklayın.
15
http://prntscr.com/j01y
Gidilen sayfada Tüm diller kısmını seçin ve ikinci sayfada Source Code Formatter yükleyin.
16 http://prntscr.com/j02i
Şimdi de bir yazı yayınlamak için Source Code yi tıklayın.
17 http://prntscr.com/j02l
hangi dilde kod yazmışsanız onu seçin ve kodunuzu kopyalayıp yapıştırın ve inser ile windows live writer yayınlama sayfasına ekleyin kodunuzu.
18 http://prntscr.com/j02r sol tarfa kodu yapıştırın ve insert buttonu tıklayın.Bu seçilen dile ait ayrılmış isimleri renkelndiriyor.
r http://prntscr.com/j035
Sol alt köşede Kategori Ekle tıklayıp yazınızın kategirisni belirleyin.
13 http://img689.imageshack.us/img689/3284/5de359513a154defb86732d.png
Son olarak yazdığınızı Yukarda belirtilen yayınla tıklayınca bloğunuzda yayınlanır.

19 Haziran 2010 Cumartesi

IPSEC, Yönlendirme Teknikleri, OSI ve TCP Arasındaki Farklar, TC/IP Katmanları

IPSEC(Internet Protocol Security)

IPV4 çıkışında güvenlik ön planda tutulmamıştı. 
Internet’in yaygınlaşmasıyla güvenlik önemli bir hal aldı.
 Asıl IPV6 için çıkartılan IPSEC IPV4’tede kullanmak 
üzere değiştirildi.Asıl çıkış amacı IPV6’da güvenliği
 sağlamaktır. IPSEC’te şifreleme ve filtreleme bir
 arada kullanılarak bilgilerin güvenliği sağlanılıyor.


Güvenlik anlaşmaları : Ipsec’in trafiği nasıl 
koruyacağını belirler.
Bu problemin çözümü için internet anahtar değişim
 protocolu IKE geliştirilmiştir.
IPSEC protocolleri IP datagramlarının gizliliğini 
korumak için standart şifreleme algoritmalarını
 kullanırlar. IP datagramların koruması için ihtiyaç 
duyulan bütün bu parametreler bir güvenlik 
anlaşmasında(security association) saklanılır.
Güvenlik anlaşması kaynak ve hedef IP adreslerini 
tanımladığından çift yönlü IPSEC iletişiminde sadece bir
 yöndeki trafikte koruma sağlayabilir. IPSEC her iki yönde 
de koruma sağlamak için iki adet tek yönlü güvenlik 
anlaşmasına ihtiyaç duyar. Güvenlik anlaşması sadece IPSEC 
trafiğinin nasıl koruyacağını belirler.
2 farklı protocol kullanır.Bunlar : AH ve ESP
Bu protocolleri kullanma amacı : Iletişimin doğruluğunu
 kanıtlamak, bütünlük ve gizliliğinden emin olmak içindir. 
Tüm IP datagramlarını koruyabileceği gibi sadece daha üst
 katmanalrın protocollerini de koruyabilir.Bu durumlar
 için karşılık gelen modlar 1. Tünel 2.Taşıma dır.
Tünel modunda, ıp datagramını ıpsec protocolunu kullanarak 
yeni bir ıp datagramı tarafından tamamen kapsüllenir(wan’lar arasında)
Taşıma modunda ise ip datagramının sadece kullanıcı 
verisi(payload), ipsec protokolü tarafından ip başlığı ile daha 
üst katman protocol başlığı arasına yerleştirilerek 
işlenir(LAN üzerinde yapılan ipsec uygulamaları)
Modlar : http://prntscr.com/hos8


Bütünlük koruma : IPSEC protokolleri ipdatagramının bütünlüğünü 
korumak için hash mesaj doğrulama kodlarını (HMAC) kullanırlar.
MD5 ve SHA gibi hash algoritmaları kullanarak ip datagramını 
ve bir gizli anahtarı temel alan HMAC çıkartılır.Amaç verinin
 değiştirilmesini engellemektir.oluşturulan HMAC, ipsec 
protocol başlığına eklenir ve paketin alıcısı, eğer eğer
 gizli anahtara erişimi varsa bu HMAC’ı kontrol edebilir.
Gizlilik : Ipsec protokolleri, ip datagramlarının gizliliğini 
korumak için standart olarak, simetrik şifreleme algoritmaları
 kullanır.Günümüğzde genel olarak 3DES,AES, Blowfish gibi 
güçlü algoritmalar kullanılır.
Ipsec protokollerini karşılıklı olarak kapsülleyip açabilen
 eşlerin gizli anahtarı algoritmaları ve iletişiminde 
izin verilen ip adreslerini saklamak için bir yönteme 
ihtiyaçları vardır.Ip datagramlarının korunması için ihtiyaç
 duyulan bu parametreler bir güvenlik anlaşmasında 
saklanılır(SA).Güvenlik anlaşmaları sırayla güvenlik 
anlaşmaları vt sinde(SAD) da saklanırlar.
•  Her bir güvenlik anlaşması aşağıdaki parametreleri tanımlar;
1.Oluşan ipsec başlığının hedef ve kaynak ip adresleri.
 Bu adresler, paketleri koruyan ipsec eşlerinin ip adresleridir.
2.Ipsec protokolü(AH veya ESP) bazen sıkıştırmada desteklenir.
3.Ipsec protokolünün kullandığı gizli anahtar ve protokol
4.Günlük parametre dizinini(SPI) : Bu güvenlik anlaşmasını
 belirleyen 32 bit sayı.
•Bazı SAD gerçeklenimleri başka parametrelerinde saklanmasına izin verir.
1.Ipsec modu(tünel ya da taşıma)
2.Cevap ataklarına karşı koruma sağlayan kayan pencerenin büyüklüğü
3.Güvenlik anlaşmasının geçerlilik süresi
•Güvenlik anlaşması kaynak ve hedef ip adresini tanımladığında
 çift yönlü iletişiminde sadece bir yöndeki trafikte koruma
 sağlayabilir.Ipsec 2 yönde de koruma sağlamak için 2
 adet tek yönlü güvenlik anlaşmasına ihtiyaç duyar.
•Güvenlik anlaşması elle yapılandırılması hataya yatkın ve çok da güvenli değil.
•Gizli anahtarın ve şifreleme algoritmaların VPN deki tüm
 eşler arasında paylaşamsı gerekir.
•Ipsec protokol ailesi 2 bağımsız ip protokolünden oluşur.
1.Kimlik kanıtlama başlığı(AH) : 51 nolu protokol
2.Kapsüllenen güvenlik yükü(ESP) : 50 nolu protokol
•AH(Authentication Header)(Kimlik Kanıtlama Başlığı) : 
AH protokolü ip datagramının bütünlüğünü korur.Bunu yapabilmek
 için datagramının HMAC’ini hesaplar.HMAC hesaplanırken, gizli 
anahtar, paketteki kullanıcı verisi ve ip başlığındaki ip adresi
 gibi değişmeyen bölümler temel alınır.Bu bilgi daha sonra paketin 
AH başlığına eklenir.


TCP/IP protocol takımında, veri iletişimi için nelerin gerekli 
olduğunu ve bunların nasıl gerçekleştirileceği tanımlanmıştır.
 Katmanlar ve bu katmanlarda çalışacak(IP, TCP gibi)
 protocoller belirlenmiştir.OSI referans modelindeyse sadece
 veri iletişimi için gerekli olan şeyler belirlenmiştir.
Protocol : Katmanlar arası konuşmayı düzenleyen kurallar topluluğudur.
 AH : Kimlik kanıtlama başlığı
ESP : Kapsüllenen güvenlik yükü.ESP protokolü hem hmac
 kullanarak paketin bütünlüğünü hem de şifreleme kullanrak 
paketin gizliliğini garanti eder.
NAT : Ağ adres çeviricisi
TCP : Transmission control protocol
IP :  Internet protocol
DNS : Domain Name System
http : Hyper Text Transfer Protocol
HTTPS : Secure http
FTP : File Transfer Protocol
SFTP : Secure FTP
SNMP : Simple Network Managment Protocol
DHCP : Dynamic Host Configuration Protocol
NFS : Network File System
LPD : Line Printer Daemon
SMTP : Simple Mail Transfer Protocol
POP3 : Post Office Protocol 3
Telnet : Telecommunication Network
SLIP : Serial Line Internet Protocol
PPP : Point-to-point Protocol
UDP : User Datagram Protocol


Yönlendirme



1.Static   2.Dinamik  3.Kaynaktan yönlendirme  
4.Hop by hop yönlendirme
  Yönlendirme Teknikleri
1-En kısa yolu bulma algoritması : Bilgisayar ağlarında iki
 nokta arasındaki en kısa yolu bulurken ölçüt olarak:
a-Bağlantı noktaları arasındaki coğrafi uzaklık
b-Geçilen düğüm(sekme) sayısı
c-Hatalar üzerinde ortaya çıkan aktarım süreleri, 
gecikme değerleri sonuçta amacımız, kullanılan ölçüte 
bağlı olarak kaynak noktasından varış noktasına
 en kısa yolun bulunmasıdır.
2.Flooding : Bu yöntemde bir düğüme ulaşan paketin 
kopyaları çıkarılır ve bu kopyalar paketin geldiği 
bağlantı(hat) dışındaki tüm bağlantılardan gönderilir.
3.Distance Vector Routing : Uzaklık vektörü yönlendirmesi
 dinamik yönlendirme algoritmasıdır. Bu teknikte her 
yönlendirici bir yönlendirme tablosu tutar.Bu tabloda ağdaki 
her yönlendirici için bir satır bulunur. Her satırda ilgili 
yönlendiricinin tablonun bulunduğu yönlendiriciye olan 
uzaklığı ve ilgili yönlendirmeye hangi çıkış hattı üzerinden 
ulaşılacağı bilgisi saklanılır.Uzaklık vektörü 
yönlendirmesinde her yönlendirici(peryodik olarak) her 
T milisaniyede bir kendi tablosunda bulunan ölçüt değerlerini
 komşularına gönderir ve benzer bir tabloyu da komşusundan alır.


RSA(Anahtar Üretimi)



Örnek: 123 şifreleyip göndermek için  verilen p=61, 
q=53 n=p*q=3233      
q=(p-1)(q-1)=60*52=3120 1<e13120 olacak şekilde 3120 
ile arasında asal 17’yi seçelim. d*17=1(mod 3120) 
olması için d=2753 bulunur.
Açık anahtar (3233, 17) şifreleme c=m^e(mod n) 
Gizli anahtar 2753 deşifreleme m=c^d(mod n)
Bunlar verilir
C=123^17 (mod 3233)=855 bu şifrelenmiş hali. 
855 i deşifrelemek için m=855^2753(mod 3233)=123


TC/IP Katmanları



Uygulama : Telnet,FTP,SMTP,DNS
Taşıma : TCP, UDP
Ağ : IP/Arp, ICMP,IGMP
Fiziksel : Arpnet, LAN

OSI ve TCP Arasındaki Farkla

1.OSI’de özel bir protocol eğilimi yok.Ama TCP/IP protocol kullanır.
2.OSI VE TCP/IP modellerindeki katman sayıları farklıdır.
3.OSI modelinde(oturum ve sunum katmanları hariç) 
bilgisayar ağlarını tartışmak ve tasarlamak için yararlı 
bir başvuru modelidir. TCP/IP yeni ağ tasarımı için 
faydalı bir model olmuştur.
4.OSI’de hizmet, arayüz ve protocollarda net hizmet farkı
 belirlenmiş. TCP/IP net bir ayrım yapmamış.
5.OSI VE TCP hizmet türü


Bağlantı hızları: http://prntscr.com/hosj

18 Haziran 2010 Cuma

SAL ile while Örneği

int toplam=0;

int i=0;

while(i<=10){

i=i+1;

toplam=toplam+i;

}

printf(toplam);

C kodunun SAL karşılığı

.data

toplam:               .word 0

i:                         .word 0

.txt

_while:                bgt            i,10, endwhile

                           add            i,i,1

                           add            toplam, toplam, i

                           b                _whil

endwhile:           put            toplam

                           done

3 Haziran 2010 Perşembe

Python ile Girilen Değeri Dosya Yoksa Oluşturup Sonuna Ekleyen Örnek

#!/usr/bin/python
# acma modu a secilince eger dosya yoksa olusturur.
#dosya varsa sonuna ekleme yapar.
url=open("./ds.txt","a");
str=raw_input("Dosyaya yazmak icin bir cumle girin : ");
devam="e"
while devam=="e":
  url.write(str);
  url.write("\n");
  devam=raw_input("Devam etmek icin 'e' yazin : ");
  if devam=="e":
    str=raw_input("Dosya icin bir cumle girin : ");
url.close();

2 Haziran 2010 Çarşamba

Random ile Üretilen Sayılardan En Çok Tekrarlanan Sayıyı Bulan Python Kodu

#!/usr/bin/env python
#random modülünü import ettik
import random;
liste=[];
tekrarlanan=0;
sayi=0;
#randint(baslangic,son) arasinda deger uretir
for i in range(1,30):
	x=random.randint(1,15)
	liste.append(x);
	if liste.count(x)>tekrarlanan:
		tekrarlanan=liste.count(x);
		sayi=x;
print sayi," sayisi: ",tekrarlanan," kez tekraralnadi";
liste.sort();
print liste;

Rastgele Sayı Üreten Python Kodu

Python ile rastgele üretilen sayıları diziye attık ve en büyük ücüncü sayıyı ekrana yazan kdo örneği

#!/usr/bin/env python
import random;
buyuk_sayi=0;
liste=[];
for i in range(20):
	a=random.randint(1,10);
	liste.append(a);
liste.sort();
print liste;
for i in liste:
	if liste.count(i)<>1:
		for k in range(1,liste.count(i)):
			liste.remove(i);
print liste;
print "en buyuk ucuncu sayi :",liste[-3];

Pythonda Listelerde Kullanılan insert(), append(), reverse(), sort(), extend() Fonksiyonlar

#!/usr/bin/env python
liste=["a"];
liste.insert(2,1);
girilen=int(raw_input("Bir tamsayi gir:"));
liste.append(girilen);
liste2=[11,23,45];
#liste2 eleman olrak ekleniyor.
liste.append(liste2);
for i in liste:
	print i,
print "liste uzunlugu : ",len(liste);
liste.extend(liste2);
for i in liste:
	print i,
print "liste uzunlugu : ", len(liste);
liste.sort();
print "normal listemiz : ",liste;
liste.reverse();
print "ters cevrilsmis listemiz :",liste;

Sözlüğü Sıralayan Python Kodu

sozluksirala.py

#!/usr/bin/env python
sozluk={"k":11,"b":23,"y":2,"a":33,"c":1}
for i in sozluk:
	print i,"-->",sozluk[i];
print "Siralanmis hali";
for i in sorted(sozluk):
	print i,"-->",sozluk[i];

Sözlekten Anahtar ve Değeri iteritems() Okuyan Python Kodu

anhtardeger.py

#!/usr/bin/env python
sozluk={"anahtar1":"deger1","anahtar2":"deger2","anahtar3":"deger3"}
for a,d in sozluk.iteritems():
	print a," --> ",d;

Dosyadan Verileri Okuyup Anahtar Değer Şeklinde Sözlüğe Ekleyen Python Kodu

eslestir.py

#!/usr/bin/env python
oku_nesnem=open("./sozluk.txt");
sozluk={};
for i in range(0,4):
	satir=oku_nesnem.readline();
	dizi=satir.split(":");
	sozluk[dizi[0]]=dizi[1];
for a,d in sozluk.iteritems():
	print a," --> ",d;
 


sozluk.txt



anahtar1:deger1



anahtar2:deger2



anahtar3:deger3



anahtar4:deger4

Dosyadan Verileri Okuyup Tek Tek Listeye Ekleyen Python Kodu

listem.py

#!/usr/bin/env python
dosya=open("./dosyam");
#ubuntuda dosya olusturunca .txt olmak zorunda degil
satir=1;
listem=[];
while satir:
	satir=dosya.readline();
	gecici=satir.split();
	for i in gecici:
		listem.append(i);
for i in listem:
	print i;


dosyam



mehmet

ethem sulan


nereye gidiyor bu adam


neler oluyor anlamadim ki

Sözlükteki Anahtar ve Değerini Ekrana Yazan Python Kodu

sirala.py

#!/usr/bin/env python
sozluk={"java":"jsp","python":"django"}
for i in sozluk:
	print i,"-->",sozluk[i];

Girilen Anahtara Karşılık Değeri Bulan Python Kodu

sozluk.py

#!/usr/bin/env python
isim=raw_input("Bir anahtar gir: ");
k=0;
sozluk={"ethem":"sulan", "canakkale":"merkez","ogrenci":"evet","anahtar":"deger"}
for i in sozluk:
	if isim==i:
		print "Girilen anahtara karsilik gelen deger: ",sozluk.get(i);
		k=1;
if k==0:
	print "girilen anahtar sozlukte yok";