Llwybro polisi yn erbyn SOCKS: pa haen sy’n gweithredu fel procsi mewn gwirionedd
Nid yw llwybr i borth SOCKS yn sesiwn SOCKS. Cymharwch osodiadau procsi ar lefel ap, addasydd IP-i-brocsi a phorth llwybro yn ôl yr haen sy’n trosi.
Fe wnaethoch ychwanegu llwybr polisi sy’n anfon traffig cleient VPN i westeiwr sy’n rhedeg gwrandawr SOCKS ar borth 1080. Mae’r pecynnau’n cyrraedd, nid yw’r gwrandawr yn cofnodi dim, ac mae’r cysylltiad yn hongian. Nid oes dim o’i le ar y llwybr: mae’r naid nesaf yn dewis i ble mae pecyn yn mynd, a sgwrs yw SOCKS y mae’n rhaid i gleient ei dechrau. Cymharwch y tair pensaernïaeth y mae pobl fel arfer yn eu golygu wrth anfon traffig trwy brocsi, a daw’n amlwg pa ddarn sydd ar goll yn eich sefydliad.
Mae llwybro, DNAT a SOCKS yn newid pethau gwahanol
Mae llwybr polisi yn ailysgrifennu penderfyniad haen 3. Mae dwy linell yn ddigon i anfon traffig un cleient i’r naid nesaf a ddewiswyd:
ip route add default via 10.50.0.2 table 101
ip rule add from 10.77.0.2 lookup 101Wedi hynny, mae’r cnewyllyn yn trosglwyddo’r pecyn i 10.50.0.2 gyda’r cyrchfan wreiddiol yn dal yn y pennawd IP. Os yw 10.50.0.2 yn llwybrydd, mae’n anfon y pecyn ymlaen. Os yw’n westeiwr â daemon SOCKS ar 1080, nid yw’r pecyn wedi’i gyfeirio at unrhyw beth a allai ei dderbyn, ac nid yw DNAT i borth 1080 yn helpu chwaith, oherwydd mae pecyn a droswyd yn dal i gario llwyth ap gwreiddiol yn lle cyfarchiad SOCKS.
SOCKS5 yn dechrau â beit fersiwn, rhestr dulliau, cyfnewid dilysu a chais sy’n enwi’r cyrchfan. Data ap yw hynny. Nid oes unrhyw gofnod llwybro nac unrhyw darged netfilter yn ei greu, a dyna’r gymhariaeth mewn un linell: mae llwybro yn dewis llwybr, mae SOCKS yn gofyn i weinydd wneud ail gysylltiad.
Achos un: gall yr ap siarad SOCKS ei hun
Pan fo gan y rhaglen osodiad procsi, dyma’r llwybr byrraf ac nid oes angen newid yn y cnewyllyn. Pwyntiwch ef at y gwrandawr, rhowch dystlythyrau os yw’r gweinydd yn gofyn amdanynt, a phenderfynwch a yw enwau’n cael eu datrys yn lleol neu’n cael eu trosglwyddo i’r procsi. Gyda curl mae’r rhain yn faneri gwahanol, ac mae’r gwahaniaeth yn bwysig pan fo’r cyrchfan yn datrys o ochr y procsi yn unig:
curl --socks5 10.50.0.2:1080 https://docs.example.com
curl --socks5-hostname 10.50.0.2:1080 https://internal.example.comNi ellir helpu apiau sy’n anwybyddu newidynnau amgylchedd procsi, neu sy’n agor socedi crai, fel hyn. Mae porwyr a’r rhan fwyaf o offer HTTP yn iawn; nid yw cleient gêm, daemon post neu ffeil ddeuaidd gan ddeliwr mympwyol fel arfer. Mae’r ffin ar gyfer pob ap a phob protocol, a dyna pam mae’r opsiwn hwn yn ardderchog ar gyfer profi ac yn wan fel ateb ar gyfer y VPN cyfan.
Achos dau: addasydd sy’n trosi llifoedd IP yn sesiynau procsi
Ar gyfer rhaglenni na allant siarad SOCKS, rhaid i’r trosi ddigwydd mewn rhywbeth sy’n terfynu traffig IP ac yn agor sesiynau procsi ar eu rhan. Mae gan y gydran hon ryngwyneb twnnel, mae’n derbyn y llifoedd a ddewiswyd gan lwybro polisi, mae’n perfformio’r ysgwyd llaw SOCKS ar gyfer pob un, ac mae’n ailadeiladu’r ymatebion. Mae’r llwybr yn cyfeirio traffig ati; yr addasydd sy’n creu’r sesiwn.
Darllenwch ei ddogfennaeth cyn ymddiried is-rwydwaith cyfan iddo. Mae llawer o addasyddion yn cario TCP yn dda ac yn trin UDP yn unig trwy gysylltiad UDP SOCKS5, ac nid oes yr un ohonynt yn troi ICMP yn draffig procsi, felly nid yw ping llwyddiannus yn dweud dim am y llwybr procsi. DNS yw’r trap arall: os yw’r addasydd yn datrys enwau’n lleol, mae cofnodion mewnol yn unig yn datrys i’r ateb anghywir, neu i ddim o gwbl.
Atal dolennau yw’r manylyn gweithredol sy’n brathu. Rhaid peidio â llwybro cysylltiadau’r addasydd ei hun i’r gweinydd SOCKS yn ôl i’r addasydd, felly mae angen eithriad yn y rheol neu gyfeiriad ffynhonnell penodol ar ei draffig. Gwnewch hynny’n anghywir a bydd y sesiwn procsi’n ceisio procsi ei hun.
Achos tri: y westeiwr yw porth llwybro mewn gwirionedd
Weithiau nid oes unrhyw SOCKS o gwbl yn y sefydliad sy’n gweithio. Mae’r westeiwr pell yn anfon pecynnau ymlaen neu’n gwneud NAT arnynt, ac mae’r rheol yn seiliedig ar ffynhonnell yn ei ddewis fel yr allanfa. Mae’r cynllun hwnnw’n gyfreithlon, ac mae’n esbonio pam mae cyfluniad a gopïwyd yn gweithio ar un rhwydwaith ac yn methu ar un arall: mae’r rheol yr un fath, y darn sydd ar goll yw gwasanaeth anfon ymlaen ar yr ochr arall.
Mae’r tri achos yn gwahanu’n gyflym. Gwiriwch beth sy’n gwrando mewn gwirionedd, ac yna edrychwch ar y beitiau cyntaf sy’n cyrraedd y westeiwr:
ss -ltnp 'sport = :1080'
tcpdump -ni eth0 -X 'tcp port 1080'Beit llwyth cyntaf cleient SOCKS go iawn yw 0x05, y fersiwn yn y gyfarchiad. Os yw’r cipiad yn dangos data ap gwreiddiol yn lle hynny, ni fydd unrhyw daemon SOCKS yn ateb, oherwydd ni ddechreuodd y trafodaethau erioed. Os nad oes dim yn gwrando ar 1080, porth yw’r westeiwr, a’r cwestiwn yw a yw’n anfon ymlaen ac a oes llwybr dychwelyd.
Dewiswch yr haen gyda phedwar cwestiwn
A oes gan y rhaglen osodiad procsi? Defnyddiwch ef a stopiwch yno. A yw’r traffig yn cynnwys UDP neu ICMP y mae’n rhaid iddynt oroesi? Dim ond porth llwybro neu borth NAT sy’n cario ICMP, ac mae UDP angen cysylltiad SOCKS5 y mae’r ddwy ochr yn ei gefnogi. A oes rhaid gorchuddio pob proses ar y peiriant, gan gynnwys y rhai na allwch eu cyflunio? Yna mae angen addasydd sy’n berchen ar y rhyngwyneb ac yn terfynu llifoedd. A allwch chi hefyd fod yn berchen ar ei lwybro, DNS a’i eithriadau atal dolennau? Os na, bydd y porth plaen yn costio llai i’w weithredu.
Mae un gwahaniaeth yn werth ei gadw’n syth. Mae opsiwn socks-proxy cleient VPN ei hun yn disgrifio sut mae’r cysylltiad twnnel allanol yn cyrraedd ei weinydd, ac yn dweud dim am drosi llifoedd mewnol y cleient. Mae’r ddau’n cael eu drysu’n gyson yn yr un tocyn. Penderfynwch pa berthynas sydd ei hangen arnoch cyn cyffwrdd â llwybr.