SUKAT

SOCKS  on OSI -mallin istuntotason verkkoprotokolla , jonka avulla voit välittää paketteja asiakkaalta palvelimelle välityspalvelimen kautta läpinäkyvästi (näkymättömästi heille) ja siten käyttää palveluita palomuurien (palomuurien) takana .

SOCKS5:n uudempi versio olettaa todennuksen, jotta vain valtuutetut käyttäjät pääsevät palvelimeen.

Johdanto

Palomuurin takana olevat asiakkaat , jotka tarvitsevat pääsyn ulkoisiin palvelimiin, voidaan sen sijaan yhdistää SOCKS- välityspalvelimeen . Tällainen välityspalvelin hallitsee asiakkaan oikeuksia käyttää ulkoisia resursseja ja välittää asiakkaan pyynnön ulkoiselle palvelimelle. SOCKSia voidaan käyttää myös päinvastoin, sillä se hallitsee ulkoisten asiakkaiden oikeuksia muodostaa yhteys sisäisiin palvelimiin palomuurin takana .

Toisin kuin HTTP -välityspalvelimet, SOCKS välittää kaiken datan asiakkaalta lisäämättä mitään itsestään, eli lopullisen palvelimen näkökulmasta sen SOCKS-välityspalvelimelta saamat tiedot ovat identtisiä sen kanssa, jonka asiakas siirtää suoraan. , ilman välityspalvelinta. SOCKS on yleisempi, se ei riipu tietyistä sovelluskerroksen protokollista ( OSI-mallin kerros 7 ) ja toimii TCP-yhteyksien tasolla ( OSI-mallin kerros 4 ). Toisaalta HTTP - välityspalvelin tallentaa tiedot välimuistiin ja voi suodattaa lähetettyjen tietojen sisällön tarkemmin .

Protokollan on kehittänyt MIPS - järjestelmän ylläpitäjä David Koblas . Kun MIPS tuli osaksi Silicon Graphics Corporationia vuonna 1992 , Koblas piti puheen SOCKSista Usenix Security Symposiumissa ja SOCKS tuli julkisesti saataville. Protokollan neljännen version on kehittänyt Ying-Da Lee NEC :stä .

SOCKS-palvelimet käyttävät yleensä porttia 1080 [1] .

SOCKS 4 -protokolla

SOCKS 4 on suunniteltu toimimaan palomuurin läpi ilman todennusta TCP -protokollaa käyttäville asiakas-palvelinsovelluksille , kuten Telnetille , FTP :lle ja suosituille viestintäprotokollia, kuten HTTP , WAIS ja Gopher . Pohjimmiltaan SOCKS-palvelinta voidaan pitää palomuurina, joka tukee SOCKS-protokollaa.

Tyypillinen SOCKS 4 -pyyntö näyttää tältä:

Asiakkaan pyyntö SOCKS-palvelimelle:

Koko Kuvaus
1 tavu SOCKS-versionumero, 1 tavu (tämän version tulee olla 0x04)
1 tavu Komentokoodi:
  • 0x01 = TCP/IP-yhteyden muodostaminen
  • 0x02 = TCP/IP-portin määritys (sidonta)
2 tavua Porttinumero
4 tavua IP-osoite
n+1 tavua Käyttäjätunnus. Vaihtuvapituinen merkkijono, joka päättyy NUL-tavuun (0x00). Kentän tarkoituksena on tunnistaa käyttäjä (katso Tunnus )

Palvelimen vastaus SOCKS-asiakkaalle:

Koko Kuvaus
1 tavu NUL-tavu
1 tavu Vastauskoodi:
  • 0x5a = pyyntö hyväksytty
  • 0x5b = pyyntö evätty tai virheellinen
  • 0x5c = Pyyntö epäonnistui, koska identd ei ole käynnissä (tai ei ole saatavilla palvelimelta)
  • 0x5d = Pyyntö epäonnistui, koska asiakastunnus ei voi vahvistaa pyynnön käyttäjätunnusta
2 tavua Mielivaltaiset tiedot tulee jättää huomiotta
4 tavua Mielivaltaiset tiedot tulee jättää huomiotta

SOCKS 5 -protokolla

SOCKS 5 [2] on yhteensopimaton laajennus SOCKS 4 -protokollalle. Se lisää tuen UDP :lle , tarjoaa yleisiä vahvoja todennusjärjestelmiä ja laajentaa osoitemenetelmiä, lisää tuen verkkotunnuksille ja IPv6 -osoitteille . Alkuperäinen viestintäasetus koostuu nyt seuraavista:

Todennusmenetelmät on numeroitu seuraavasti:

0x00 Todennusta ei vaadita
0x01 GSSAPI
0x02 RFC 1929 käyttäjätunnus/salasana
0x03-0x7F Varaa IANA
0x03 LUKU
0x04 Ei käytössä
0x05 Haaste-vastaus (todennus)
0x06 SSL
0x07 NDS-todennus
0x08 Monivaiheinen todennuskehys
0x09 JSON-parametrilohko
0x0A–0x7F Ei käytössä
0x80-0xFE Varattu yksityiskäyttöön

Alkutervehdys asiakkaalta:

Koko Kuvaus
1 tavu SOCKS-versionumero (tämän version tulee olla 0x05)
1 tavu Tuettujen todennusmenetelmien määrä
n tavua Todennusmenetelmien numerot, muuttuva pituus, 1 tavu jokaiselle tuetulle menetelmälle

Palvelin ilmoittaa valintansa:

Koko Kuvaus
1 tavu SOCKS-versionumero (tämän version tulee olla 0x05)
1 tavu Valittu todennusmenetelmä tai 0xFF, jos hyväksyttävää menetelmää ei tarjottu

Myöhempi tunnistaminen riippuu valitusta menetelmästä.

Asiakaspyyntö:

Koko Kuvaus
1 tavu SOCKS-versionumero (tämän version tulee olla 0x05)
1 tavu Komentokoodi:
  • 0x01 = TCP/IP-yhteyden muodostaminen
  • 0x02 = TCP/IP-portin määritys (sidonta)
  • 0x03 = UDP-porttiyhteys
1 tavu Varattu tavu, on oltava 0x00
1 tavu Osoite tyyppi:
  • 0x01 = IPv4-osoite
  • 0x03 = verkkotunnuksen nimi
  • 0x04 = IPv6-osoite
Riippuu osoitteen tyypistä Osoite:
  • 4 tavua IPv4-osoitteelle
  • Ensimmäinen tavu on nimen pituus, jota seuraa verkkotunnuksen nimi ilman päättävää nollaa
  • 16 tavua IPv6-osoitteelle
2 tavua Portin numero järjestyksessä korkeasta matalaan ( big-endian )

Palvelimen vastaus:

Koko Kuvaus
1 tavu SOCKS-versionumero (0x05 tälle versiolle)
1 tavu Vastauskoodi:
  • 0x00 = pyyntö hyväksytty
  • 0x01 = SOCKS-palvelinvirhe
  • 0x02 = Yhteys estetty sääntöjoukon mukaan
  • 0x03 = verkko ei ole käytettävissä
  • 0x04 = isäntä ei tavoitettavissa
  • 0x05 = yhteys evätty
  • 0x06 = TTL :n vanheneminen
  • 0x07 = komentoa ei tueta / protokollavirhe
  • 0x08 = osoitetyyppiä ei tueta
1 tavu Tavu varattu, on oltava 0x00
1 tavu Seurantaosoitteen tyyppi:
  • 0x01 = IPv4-osoite
  • 0x03 = verkkotunnuksen nimi
  • 0x04 = IPv6-osoite
Riippuu osoitteen tyypistä Osoite:
  • 4 tavua IPv4-osoitteelle
  • Ensimmäinen tavu on nimen pituus, jota seuraa verkkotunnuksen nimi ilman päättävää nollaa
  • 16 tavua IPv6-osoitteelle
2 tavua Portin numero järjestyksessä korkeasta matalaan ( big-endian )

Toteutukset

Katso myös

Muistiinpanot

  1. Palvelun nimi ja kuljetusprotokollan portin numerorekisteri . IANA. Käyttöpäivä: 8. tammikuuta 2016. Arkistoitu alkuperäisestä 3. maaliskuuta 2016.
  2. Marcus Leech <[email protected]>. SOCKS-protokollan versio  5 . tools.ietf.org. Haettu 6. kesäkuuta 2020. Arkistoitu alkuperäisestä 18. lokakuuta 2020.

Linkit