Mae angen i un cleient gyrraedd gwasanaeth SSH cleient arall, ac mae’n well i weddill y pwll aros mor ynysig ag y mae heddiw. Y switsh sy’n denu yw client-to-client, sy’n troi mynediad cyfoed ymlaen i bawb ar unwaith ac yn rhoi’r penderfyniad i OpenVPN yn lle’r cnewyllyn. Mae ateb culach yn cadw’r switsh hwnnw i ffwrdd ac yn gadael i lwybr a mur tân y gweinydd gario un llif yn union.

Mae’r mecanwaith yn bwysicach na thestun y rheol, oherwydd mae’r ddau ddull yn rhoi’r pecyn mewn gwahanol leoedd. Mae gwybod pa un a ddewisoch yn esbonio’r rheol sy’n ymddangos yn gwneud dim a’r cyfoed sy’n cysylltu hebddo.

Ble mae client-to-client yn symud y pecyn

Gyda client-to-client ymlaen, mae’r gweinydd yn ailgyfeirio pecyn cyfoed yn fewnol yn lle ei anfon yn ôl allan drwy’r ddyfais twnd, felly nid yw’r pecyn byth yn cyrraedd llwybr anfon y cnewyllyn. Mae hynny’n gyfleus ac mae hefyd yn golygu nad yw eich mur tân byth yn gweld y llif y dylai ei warchod. Gadewch yr opsiwn i ffwrdd ac mae’r gweinydd yn llwybro’r pecyn yn ôl allan drwy’r un rhyngwyneb, sy’n ei roi o flaen netfilter. Un rhyngwyneb i mewn, un rhyngwyneb allan, a’r gadwyn FORWARD sy’n cael y bleidlais.

Mae’r cyfnewid yn amlwg: rydych yn ennill pwynt polisi ac yn cymryd y gwaith llwybro ac anfon y roedd y llwybr byr yn ei wneud drosoch. Mae’r gwaith hwnnw’n fach ar gyfer un llif ac yn tyfu gyda phob eithriad a ychwanegwch. Cyfrwch yr eithriadau nawr, oherwydd y set reolau yw lle mae polisi cyfoedion yn byw mewn gwirionedd.

Y llwybr y mae pecyn cyfoed yn ei ddilyn mewn gwirionedd

Tybiwch wasanaeth Linux Community OpenVPN 2.6, prosesu TUN yn y gofod defnyddiwr yn lle DCO, topoleg isrwyd, tun0, a phwll o 10.44.0.0/24 gyda chleient A yn 10.44.0.21 a chleient B yn 10.44.0.37. Gyda thopoleg isrwyd mae’r cyfeiriad a’r mwgwd a gafodd A eisoes yn cynnwys y pwll, felly mae A yn anfon y pecyn i’r ddyfais twnd heb fod angen llwybr gwthiedig ychwanegol. Gwiriwch y llwybr effeithiol ar A yn lle tybio un.

Ar y gweinydd mae’r pecyn yn cyrraedd wedi’i gyfeirio at B, nad yw’n gyfeiriad lleol, felly mae’n cael ei anfon ymlaen. Rhaid i anfon IPv4 fod ymlaen i hynny ddigwydd o gwbl, a rhaid i’r chwilio llwybr anfon y pecyn yn ôl allan drwy tun0. Felly mae’r mur tân yn gweld llif a anfonwyd ymlaen gyda’r un rhyngwyneb ar y ddwy ochr, a dyna’r manylyn y mae’r rhan fwyaf o setiau rheolau yn ei golli. Nid oes angen cyfieithu ffynhonnell yma, a chadw cyfeiriad A yn gyflawn yw’r hyn sy’n gadael i B ddefnyddio ei reol seiliedig ar ffynhonnell ei hun.

Dwy reol ar y gweinydd, yn y drefn hon

Mae tair rheol yn cario’r caniatâd cyfan: anfon ymlaen, yr eithriad pâr, a gollwng diofyn ar gyfer y pâr twnd. Mae’r rheol derbyn yn enwi’r pâr a’r gwasanaeth, felly mae’r caniatâd yn goroesi pwll sy’n tyfu. Rhowch hi o flaen unrhyw wadiad cyffredinol ar gyfer traffig twnd-i-dwnd, oherwydd y pariad cyntaf sy’n ennill:

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i tun0 -o tun0 -s 10.44.0.21 -d 10.44.0.37 -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -i tun0 -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o tun0 -j DROP

Mae’r gorchmynion hynny’n ddarluniadol ac yn perthyn i ba bynnag fecanwaith y mae eich gwesteiwr yn ei ddefnyddio i gadw rheolau; mae mewnosodiad amser rhedeg yn diflannu ar y cychwyn nesaf. Y rheol gyflwr sy’n gadael i atebion B a’r gwasgâd llaw TCP ddychwelyd heb ail dderbyniad cyfatebol.

Gwiriwch y cyfrifwyr wedyn yn hytrach na’r rhestr reolau, oherwydd mae rheol nad yw byth yn cyfateb yn edrych yn union yr un fath â rheol sy’n gweithio. Os bydd y cyfrifwyr yn aros ar sero, nid yw’r pecyn yn dilyn y llwybr rydych yn meddwl.

Beth sy’n rhaid i B ei ganiatáu o hyd

B sy’n rhedeg y gwasanaeth SSH, felly B sy’n penderfynu a yw rhywbeth yn gwrando ar y cyfeiriad twnd ac a yw ei fur tân ei hun yn derbyn y ffynhonnell. Nid yw caniatâd rhwydwaith ar y gweinydd yn ganiatâd i unrhyw gyfrif ar B, ac mae dilysu allwedd gwesteiwr a dilysu defnyddiwr yn dal i fod yn berthnasol fel y byddent o unrhyw le arall.

Profwch yr achos positif yn gyntaf: cysylltiad SSH newydd o A i gyfeiriad twnd B, wedi’i dderbyn gyda’r allwedd gwesteiwr a ddisgwylir. Yna profwch gyfoed gwahanol neu borth gwahanol a chadarnhewch ei fod yn cael ei wrthod, oherwydd mae caniatâd sy’n caniatáu popeth yn dawel yr un fath â chaniatâd sy’n gweithio nes ei fod yn bwysig. Mae angen y ddau hanner o’r prawf hwnnw, a’r ail un yw’r un mae pobl yn ei hepgor.

Cofnodwch y cyfeiriadau a neilltuwyd, y llwybrau effeithiol ar y ddau gleient a’r union reolau ar y gweinydd ac ar B. Nid yw ping llwyddiannus i’r giât neu borth agored ar y gweinydd yn profi dim o hyn, gan y gall y ddau fod yn wir tra mae anfon rhwng cyfoedion yn dal ar waith. Ysgrifennwch y rhifau hynny tra mae’r twnd i fyny, oherwydd efallai y bydd y cyfeiriad a gaiff cleient ar ôl ailgysylltu yn un gwahanol.

Erthyglau cysylltiedig