SOCKS
SOCKS ir viens no interneta protokoliem, kas nodrošina iespēja klienta programmām piekļūt serveriem aiz ugunsmūra. Socks ir saīsinājums no SOCKetS. Aiz ugunsmūra esošie klienti, kas grib pieslēgties ārējam serverim, pieslēdzas socks serverim un tas izveido konnekciju uz ārējo serveri. Socks serveris var noteikt kādām adresēm un portiem lietotāji drīkst piekļūt. Socks darbojas kā klientu programmu vadāms portu redirekts. Līdzīgiem mērķiem biežāk lieto NAT, jo to ir vienkāršāk nokonfigurēt, un tam ir mazāks overhead.
Versijas
Pirmā izplatītā protokola versija bija SOCKS4. Tā nodrošināja izejošās un ienākošās TCP konnekcijas, tomēr daudzi SOCKS4 serveri nenodrošināja ienākošo konnekciju izveidošanu. Te nebija paredzētas nekāda veida UDP komunikācijas un pieprasījumos varēja norādīt tikai IP adreses, tas ir, bija nepieciešams atsevišķs iekšējais DNS serveris. Vēlāk tika izveidota versija SOCKS4a, kur bija iespēja pieprasījumos norādīt domēna vārdu (uz IP adresi pārveidoja pats SOCKS serveris, izmantojot uz tās mašīnas pieejamos DNS serverus).
Vēlāk tika izveidota 5. versija. Šeit ir iespējamas arī UDP komunikācijas un IPv6. Tākā 4a versija nebija oficiāla, var uzskatīt, ka domēnu vārdu lietošanas iespēja pieprasījumos parādījās šeit.
Darbība
Klienta programma atver konnekciju uz socks serveri un nosūta identifikācijas datus. Iespējamas vairākas metodes: null - (nav identifikācijas, vai arī identificē pēc IP adreses); lietotājvādrs un parole - (pašsaprotami); ir arī citas metodes. Pēc veiksmīgas identifikācijas, klients nosūta pieprasījumu, kur var norādīt vienu no iespējamajām darbībām:
- Atvērt izejošo konnekciju (DNS domēns vai IP adrese un ports);
- Atvērt soketu ienākošajām konnekcijām vai UDP paketēm);
- Nosūtīt UDP paketi.
Tālāk (TCP gadījumā) serveris atver konnekciju uz norādīto ārējo serveri (vai atmet atpakaļ kļūdas paziņojumu, ja tas nav iespējams), un komunikācijas notiek tāpat, kā bez socks servera. Daudzi socks serveri nenodrošina 2. un 3. iespēju.
Daudzas klienta programas nenodrošina darbību caur socks. Šādos gadījumos var lietot citas programmas, kas pārtver (sockcificē)(angliski: socksify) attiecīgas programmas tīkla piekļuves pieprasījumus un izlaiž tos caur SOCKS serveri. Socks serveri parasti darbojas uz 1080. TCP porta.