07-31-2012
|
#1
|
Prof. Dr. Sinsi
|
Pop Ve Smtp Protokolleri Nedir, Nasıl Çalışır ?
POP ve SMTP protokolleri nedir, nasıl çalışır ?
O karmaşık e-posta haberleşmesinin nasıl çalıştığını hiç düşündünüz mü? Üstten bakışla ne kadar karmaşık görünüyor değil mi Oysa, gerçekte, hiç te o kadar zor sayılmaz Öncelikle sistemin nasıl çalıştığını bilmek gerekir
E-posta sistemi 2 bölümden oluşur
1-Post office protokol(POP3): POP3 bizim posta kutumuza gelen mesajları oradan almamız için e-posta programımızla (Netscape Messenger veya Outlook Express gibi ) abonesi olduğumuz POP3 server'i arasında geçen konuşup anlaşma protokulüdür Bu protokolün nasıl işlediğini kendimiz de, e-posta programı kullanmadan TELNET vasıtasıyla görerek deneyebiliriz Ayrıca bu bize başka yararlar da sağlayacaktır Örneğin e-mail programıyla alamadığımız bazı postaları hiç almadan posta kutusundan silmemiz mümkün olacaktır Ya da kendi SMTP server'imizi hiç kullanmadan istediğimiz birisinin posta kutusuna kısa mesajlar bırakabiliriz
POP3 protokolü sırasında e-mail programı bazı standart komutlar kullanmak zorundadır Bunlar:
USER <KullanıcıAdı> : Bunu yazarak POP3 server'e hangi kullanıcı olarak bağlandığımızı belirtmiş oluruz Örneğin
>USER aguler /Bizim yazdığımız
Bu kullanıcı server'de tanımlıysa Server'in yanıtı,
<+OK welcome aguler
eğer bu kullanıcı olmasaydı
<-ERR …
şeklinde olacaktır (Bazı server'ler kullanıcı yoksa hatayı PASS komutundan sonra verirler )
PASS <Parola> : Bunu yazarak bağlanılan kullanıcının parolasını veririz Eğer parola yanlışsa bağlanamayız Örneğin
>PASS ozelbisiy
doğruysa
<+OK …
yanlışsa
<-ERR invalid password (veya –ERR …)
şeklinde yanıt verecektir
STAT : Posta kutumuzun durumunu almak için kullanılan komuttur Yani posta kutusunda kaç mesaj var ve toplam büyüklüğü nedir, sorularının yanıtını bu komutla alırız
>STAT
<+OK 0 0 Posta kutusunda hiç mesaj yokmuş
veya
<+OK 6 15978 Posta kutusunda 6 adet mesaj varmış ve toplam büyüklüğü 15978 (byte|octet)
miş
LIST [MsgNo] : Mesajların listesini ve her birinin büyüklüğünü verir Eğer MsgNo yazılırsa aynı işlemi sadece o nolu mesaj için yapar
Mesaj nosu yazmadan komutu verirsek
>list
<+OK 11 messages (218146 octets)
<1 940
<2 7044
<3 165064
<4 863
<5 1907
<6 907
<7 2500
<8 2091
<9 4445
<10 1223
<11 31162
<
Şeklinde bir liste verir bize ve en sonunda da bittiğini göstermek için sadece ilk kolonunda (nokta) olan bir satır gönderir Böylece biz (e-mail programı anlar ki tüm mesajlar bunlarmış )
Mesaj nosu yazarak (1 nolu mesaj) komutu verirsek
>list 1
<+OK 1 940
UIDL [MsgNo] : Her mesajın, başka bir mesajda aynısı olayan (benzersiz, unique) bir kodu vardır Bu komut bize o kodu verir Özellikle e-mail programlarında (örneğin Outlook Express 5'te Tools|Accounts|<xx internet account> Properties menüsünde Advanced sayfasındaki
Leave a copy of messages on server işaretlendiğinde aldığın mesajları posta kutusundan silme, kalsın anlamına gelir Dolayısıyla tekrar bağlanılıp mesajlar alınırken Outlook Express 5 daha önce aldığı mesajları işte bu mesaj ID'si yardımıyla tesbit ederek onları birdaha tekrar almaz Eğer mesajlar Outlook Express Inbox'tan ve Deleted Items'dan silinirse aynı mesajları tekrar alacaktır Eğer Leave a copy of messages on server İşaretli değilse Outlook Express bu kontrolu yapmaz, dolayısıyla herhangi bir nedenle bağlantı kesilirse daha sonra mesajları tekrar çekmeye kalktığımızda aynı mesajları tekrar alacaktır
Komutlar Telnetten yazılırsa
>uidl
<+OK
<1 4cf6ef281a0eaae6f906669ad5d097 e9
<2 49ba75aeb7a13ad9925979c91b8b67 fe
<3 74af7f5470ec50e639c5c0e750b99e 99
<4 c335fced9d3004aa794e636646ed84 c9
<5 B0003006265 MSG
<6 <001201bedd74$05a07820$3c14a8c 0@veronique gozenair com>
<7 84fe916939f91687ad3487c45237cf ce
<8 2691d46fc915d63f488e797fb860ba 7e
<9 B0003018571 MSG
<10 <000c01bedda9$93690f20$3c14a8c 0@veronique gozenair com>
<11 B0003020608 MSG
<
>uidl 1
<+OK 1 4cf6ef281a0eaae6f906669ad5d097 e9
şeklinde sonuçlar alınacaktır
TOP <MsgNo> <SatırNo> : Belirtilen numaralı mesajın satır nosu olarak verilen en üstten (mesaj gövdesi başladıktan itibaren) o kadar satırı server'den okumak için kullanılır Server en sonunda ilk kolonunda nokta olan bir satır gönderir Böylece gönderimin bittiği anlaşılır
>TOP 5 1
<……
<…
<…
<
RETR <MsgNo> : Belirtilen numaralı mesajın tümünü almak için bu komut verilir Server mesajın sonunda, ilk kolonunda nokta olan bir satır gönderir Böylece mesajın bittiği anlaşılır
>RETR 5
<……
<……
<……
<
DELE <MsgNo> : Belirtilen mesajı sil komutudur Örneğin 5 nolu mesajı silmek için
>DELE 5
yazdığımızda
<+OK
yanıtını veren server 5 nolu mesajı sildiğini bu şekilde belirtecektir
QUIT : Server'le bağlantının kesileceği komutunu verir Bu komut verilir verilmez Server posta kutusundaki güncellemeleri yaparak bağlantıyı keser Bağlantı başka şekillerde (örneğin Telnet penceresini kapatarak veya menüden Disconnect'e basarak) kesilirse çoğu server'de posta kutusu güncellenmez, dolayısıyla QUIT komutuyla çıkmaya dikkat etmek gerekir
>QUIT
<+OK ………
ve bağlantı kesilir, Telnet penceresi boşalır
LAST : Son mesaja konumlanmayı sağlar Çok kullanılmayan bir komuttur
RSET : Bir server'den bağlantıyı kesmeden başka bir kullanıcı ile login olmayı sağlar Örneğin
>USER agil
<+OK …
>PASS ghtj
<+OK
>LIST
<+OK 0 messages (0 octets)
<
>RSET
<+OK
>USER ggg
<+OK …
>PASS hhhh
<+OK …
>LIST
<+OK 0 messages (0 octets)
<
gibi
NOOP : İşlem yapma demek Ne için kullanıldığını bilmiyorum Bir işe yarıyordur mutlaka ama önemli olduğunu sanmıyorum Belki yeni serverler buna hata mesajı veriyor olabilirler Bunun için ilgili RFC'ye bakmak lazım Uzun iş…
Tabii bunların sonucunda şu soru sorulabilir
"Biz tüm bunları yapıyoruz ama bunların hepsi Text formatında ve şifrelenmemiş yazılar tarzında, bu hacker'lar için bir ziyafet değil mi ?"
Ne yazık ki bu doğru! Adamcağızlar uğraşmış didinmişler ve son derece esnek (bana göre) harika bir sistem kurmuşlar Şimdi hacker'lar yüzünden bunu değiştirecek miyiz Bence gerek yok Onlara karşı en iyi korunma mesajların ulaşılmaz derecede çok olması olacaktır İnternette o kadar çok mesaj dolaşıyor ki garipler hangi birini inceleyecekler
|
|
|