Online-Bilgi Yardımı
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Online-Bilgi Yardımı

Online-Bilgi | Uzun Soluklu Paylaşım
 
AnasayfaLatest imagesAramaKayıt OlGiriş yap

 

 Socks Nedir? Nasıl Çalışır ?

Aşağa gitmek 
YazarMesaj
Metruk
Root Admin
Metruk


Mesaj Sayısı : 351
Kayıt tarihi : 02/04/10
Yaş : 33

Socks Nedir? Nasıl Çalışır ? Empty
MesajKonu: Socks Nedir? Nasıl Çalışır ?   Socks Nedir? Nasıl Çalışır ? Icon_minitimeSalı Nis. 06, 2010 2:58 pm

SOCKS

SOCKS, client-server uygulamalarının şeffafça network güvenlik
duvarıservislerini kullanmasına izin veren bir internet protokolüdür.
SOCKS ,SOCKETS in kısaltılmış şeklidir.

Bu protokol MIPS Computer Systems sistem müdürü David Koblas
tarafındangeliştirilmiştir. MIPS firmasının Silicon Garphics tarafından
1992yılında devralınmasından sonra Koblas aynı yılın Usenix
Securitysempozyumunda bir sunum gerçekleştirerek SOCKS kullanımı herkese
açıkhale getirildi. Protokol, 4. versiyonuna NEC firmasından Ying-Da
Leetarafından getirildi.

SOCKS referans mimarisi ve clienti Permeo Technologies'e aittir. ( Not:
Permeo Technologies , Blue Coat Systems tarafından satın alınmıştır). (
Blue Coat Systems , NEC firmasının bir türevidir ).

SOCKS , OSI modelinin 5. katmanında - (Session Layer : sunum
(presentation ) ve taşıma ( transport ) katmanları arasındaki
ortakatmandır.) işler.

İçerik:


* 1 SOCKS 4 protokol
o 1.1 SOCKS 4a protokol
* 2 SOCKS 5 protokol
* 3 SOCKS yazılım
* 4 Referanslar
* 5 Harici linkler

SOCKS 4 protokol


Tipik bir Socks 4 bağlanma isteği şuna benzerdir ( her rakam 1 byte
olmak üzere ) :

Client'den SOCKS Server'a:

field ( Alan ) demek çevirme gereği duymadım.

* field 1: SOCKS versiyon numarası , 1 byte, bu versiyon için 0x04
olmalıdır
* field 2: komut kodu, 1 byte:
o 0x01 = TCP/IP kur , stream bağlantı
o 0x02 = TCP/IP port binding kur
* field 3: port numarasına göre sıralandırılmış network byte, 2 bytes
* field 4: IP adresine göre sıralandırılmış network byte, 4 bytes
* field 5: kullanıcı adı (user ID), değişken uzunluğu, boş olarak
sonlandırılmış (0x00)

Server'dan SOCKS client'e:

* field 1: null byte
* field 2: status, 1 byte:
o 0x5a = istek sağlandı
o 0x5b = istek reddedildi ya da gerçekleştirilemedi
o 0x5c = istek gerçekleştirilemedi çünkü client identd' ı çalıştırmıyor
(ya da server tarafından ulaşılamıyor )
o 0x5d = istek gerçekleştirilemedi çünkü client' in identd'si istekteki
kullanıcı adını (user ıd ) onaylıyamadı
* field 3: 2 arbitrary bytes, görmezden gelinmeli
* field 4: 4 arbitrary bytes, görmezden gelinmeli

Örnek Olarak:

Bu Fred'i 66.102.7.99:80 e bağlamak için bir SOCKS 4 bağlanma isteğidir ,
server "OK" ile cevaplar.

* Client: 0x04 | 0x01 | 0x00 0x50 | 0x42 0x66 0x07 0x63 | 0x46 0x72 0x65
0x64 0x00
o Son alanda 'Fred' ASCII karakterlerle , takiben null byte.
* Server: 0x00 | 0x5a | 0xXX 0xXX | 0xXX 0xXX 0xXX 0xXX
o 0xXX herhangi bir byte değeri olabilir. Socks 4 protokolünün
belirttiği bu byte değerleri görmezden gelinmeli.

Bu noktadan itibaren SOCKS client den SOCKS servera gönderilen her
data66.102.7.99 ile yer değiştirecektir ve bu işlem tersine de
yapılabilir .
"connect" için Komut alanı 0x01 ya da "bind"için 0x02 olabilir .
"bind"aktif FTP gibi protokoller için gelen bağlantılara izin verir .

SOCKS 4a protokolü


SOCKS 4a , hedefteki hostun domain ismini çözümleyemeyen
clientlere,hostun domain ismini belirlenmesine izin veren basit bir
SOCKS4protokol uzantısıdır

Client, DSTIP nin ilk üç byte'ına null ve son byte'ada sıfırdan
farklıbir değer atamalıdır ( Bu , x sıfırdan farklı olmak üzere
0.0.0.xşeklindeki IP adresine tekabül eder- uygun görülmeyen hedef adres
veeğerki client domain ismini çözebilirse böyle birşey asla
meydanagelemez.) NULL byte'ın kullanıcı adını (USERID) sonlandırmasını
takibenclient hedefteki domain ismini göndermeli ve diğer bir NULL byte
ilebunu sonlandırmalıdır. Bu olay hem "connect" hem de "bind"
isteklerindekullanılır.

Client'den Socks Server'a :

* field 1: SOCKS versiyon numarası, 1 byte, bu versiyon için 0x04
olmalı.
* field 2: komut kodu, 1 byte:
o 0x01 = Bir TCP/IP stream bağlantı kurun
o 0x02 = Bir TCP/IP port binding kurun
* field 3: port numarasına göre sıralandırılmış network byte , 2 bytes
* field 4: geçersiz IP adresi üzerinde dur, 4 bytes, ilk üçü 0x00 olmalı
ve sonuncusu 0x00 dan farklı olmalı.
* field 5: kullanıcı adı , değişken uzunluğu , null ile sonlandırılmış
(0x00)
* field 6: iletişim kurmak istenilen hostun domain ismi, değişken
uzunluğu, null ile sonlandırılmış (0x00)

Server 'dan SOCKS client'e :

* field 1: null byte
* field 2: status, 1 byte:
o 0x5a = istek sağlandı
o 0x5b = istek reddedildi yada gerçekleştirilemedi
o 0x5c = istek gerçekleştirilemedi çünkü client identd yi çalıştırmıyor
(ya da server tarafından ulaşılamaz durumda)
o 0x5d = istek gerçekleştirilemedi çünkü clientin identd si istekteki
kullanıcı adını (user ID) doğrulamadı.
* field 3: port numarasına göre sıralandırılmış network byte , 2 bytes
* field 4: IP adrese göre sıralandırılmış network byte, 4 bytes

4A protokolü kullanan bir server DSTIP yi istek paketinde
kontoletmelidir. Eğerki adresi x sıfırdan farklı olmak suretiyle
0.0.0.xşeklinde gösteriyorsa, server clientin gönderdiği paketteki
domainismini okumalıdır. Server domain ismini çözmeli ve yapabilirse
hostistikametine bağlantıyı gerçekleştirmelidir


SOCKS 5 protokolü

SOCKS 5 protokolü, daha fazla doğrulama seçeneği sunan , RFC 1928
detanımlanmış bir SOCKS 4 protokolü uzantısıdır. İlk anlaşma
aşağıdakigibidir:

* Client bağlar ve desteklenen doğrulama metodlarını içeren bir
karşılama gönderir.
* Server birini seçer (ya da eğerki metodlar kabul edilemez nitelikte
ise gerçekleştirilemediğine dair bir cevap gönderir)
* Birkaç mesajın seçilen doğrulama methoduna dayanarak client ve server
arasında geçişi sağlanır.
* Client SOCKS 4 e benzer bir bağlanma isteği gönderir.
* Server SOCKS 4 e benzer olarak cevaplar.

Desteklenen Doğrulama Metodları aşağıda numaralandırılmıştır:

* 0x00 - Doğrulama yok
* 0x01 - GSSAPI [6]
* 0x02 - Kullanıcı Adı / Şifre [7]
* 0x03-0x7F - metodlar IANA tarafından atanır [8]
* 0x80-0xFE - methodlar özel kullanım için rezerv edilmiştir.

Clientten gelen ilk karşılama şöyledir:

* field 1: SOCKS versiyon numarası ( bu versiyon için 0x05 olmalıdır )
* field 2: desteklenen doğrulama metodu adedi, 1 byte
* field 3: doğrulama metodları, değişken uzunluğu , desteklenen her
metod için 1 byte

Serverın seçimi şöyle ifade edilir:

* field 1: SOCKS versiyon, 1 byte ( bu versiyon için 0x05 )
* field 2: seçilen doğrulama metodu, 1 byte, ya da 0xFF eğerki hiç bir
metod kabul edilemez durumda ise.

Sonraki doğrulama metoda dayalıdır ve RFC 1929 da tanımlanmıştır:

Clientin doğrulama isteği şöyledir:


* field 1: versiyon numarası, 1 byte ( 0x01 olmalı )
* field 2: kullanıcı adı uzunluğu , 1 byte
* field 3: kullanıcı adı
* field 4: şifre uzunluğu , 1 byte
* field 5: şifre

Doğrulamak için Serverın cevabı şöyledir:


* field 1: versiyon, 1 byte
* field 2: status kodu, 1 byte.
o 0x00 = başarılı
o herhangi başka değer = başarısız, bağlantı kapatılmalıdır

Clientin bağlanma isteği şöyledir:

* field 1: SOCKS versiyon numarası, 1 byte ( bu versiyon için 0x05
olmalı )
* field 2: komut kodu, 1 byte:
o 0x01 = bir TCP/IP stream bağlantısı kur
o 0x02 = bir TCP/IP port binding kur
o 0x03 = bir UDP portu birleştir
* field 3: rezerv edilmiştir, 0x00 olmalıdır
* field 4: adres şekli, 1 byte:
o 0x01 = IPv4 adresi
o 0x03 = Domain ismi
o 0x04 = IPv6 adresi
* field 5: Hedef adres :
o IPv4 adresi için 4 byte
o Domain name için ismi takiben isim uzunluğu 1 byte
o IPv6 adresi için 16 byte
* field 6: network byte sıralanışıyla port numarası , 2 bytes

Server cevabı:

* field 1: SOCKS protokol versiyonu, 1 byte (bu versiyon için 0x05)
* field 2: status, 1 byte:
o 0x00 = istek sağlandı
o 0x01 = genel başarısızlık
o 0x02 = kurallara dayanarak bağlantıya izin verilmedi
o 0x03 = network ulaşılamaz durumda
o 0x04 = host ulaşılamaz durumda
o 0x05 = bağlantı hedefteki host tarafından reddedildi
o 0x06 = TTL zaman aşımına uğradı
o 0x07 = komut desteklenmiyor / protokol hatası
o 0x08 = adres tipi desteklenmiyor
* field 3: rezerv edildi, 0x00 olmalı
* field 4: adres tipi, 1 byte:
o 0x01 = IPv4 adresi
o 0x03 = Domain name
o 0x04 = IPv6 adresi
* field 5: Hedef adres:
o IPv4 adresi için 4 byte
o Domain name için ismi takiben isim uzunluğu 1 byte
o IPv6 adresi için 16 byte
* field 6[Resimleri görebilmek için üye olun veya giriş yapın.]ort numarasına göre sıralandırılmış network byte , 2
byte

Herhangi bir network yazılımının SOCKS vasıtasıyla harici
networklerebağlanmasında adaptasyonu sağlayan Client Programları vardır.


SOCKS yazılımı

* Kernel SOCKS Bouncer ksb26 (Kernel Socks Bouncer) TCP
bağlantılarınısocks 4/5 zinciri yoluyla yeniden yönlendiren (kullanıcı
tanımlı hedefhostlara ) bir Linux Kernel 2.6.x Yüklenebilir Kernel
Modulüdür.
* SS5 Socks Server , açık kaynaklı bir SOCKS4/SOCKS5 serverıdır.
* Dante, Inferno Nettverk A/S tarafından geliştirilmiş açık kaynaklı ve
ticari destekli bir SOCKS4/SOCKS5 uygulamasıdır.
* OpenSSH , SSH tünelinden uzaktan kontrollü servera SOCKS isteklerinin
gönderilmesini destekler.
* WinSocks , Proxy Labs tarafından geliştirilmiş küçük ama işlevsel bir
SOCKS4/SOCKS5 serverıdır.
* SOcat Multipurpose relay (SOcket CAT): SOCKS4 ve SOCKS4a
fonksiyonelliğini içerir.(Linux / Mac)
* FreeCap Socksifyer ( Windows için ), herhangi bir uygulama
kendinetwork trafiğini SOCKS veya HTTP proxy vasıtasıyla
şeffafçagerçekleştirebilir.
* Simple Socks Server ( Perl için) - SSS -Simple SOCKS Server perl
dilinde yazılmış ve SOCKSS v5 protokolünü tamamlar.

Referanslar

1. ^ Hummingbird SOCKS FAQ
2. ^ Darmohray, Tina. "Firewalls and fairy tales". ;LOGIN:. Vol 30, no.
1.
3. ^ [Linkleri görebilmek için üye olun veya giriş yapın.]
(broken link as of July 2008)
4. ^ News Release from Bluecoat
5. ^ Article from infosecurityproductsguide.com
6. ^ RFC 1961
7. ^ RFC 1929
8. ^ [Linkleri görebilmek için üye olun veya giriş yapın.]

Harici Linkler

* draft-ietf-aft-socks-chap Challenge-Handshake Authentication Protocol
for SOCKS V5
* RFC 3089 - SOCKS tabanlı bir IPv6/IPv4 Geçit Mekanizması
* RFC 1961 - SOCKS Version 5 için GSS-API doğrulama metodu.
* RFC 1929 - SOCKS V5 için kullanıcı adı / şifre doğrulaması
* RFC 1928 - SOCKS Protocol Version 5
* SOCKS: TCP proxy için bir protokol - SOCKS Protokol Versiyon 4 (NEC)
Sayfa başına dön Aşağa gitmek
http://online-bilgi.nstars.org
 
Socks Nedir? Nasıl Çalışır ?
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Socks Proxy Nedir? Nasıl Çalışır ?
» DNS Nedir? DNS Sorgu Sistemi Nasıl Çalışır?
» WWW nedir?
» Dry Box nedir?
» URL nedir?

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Online-Bilgi Yardımı :: Donanım&İşletim Sistemleri&Network :: İnternet ve Network-
Buraya geçin: