rsync-ը VPN-ով՝ դեմոնի 873 պորտն ընդդեմ SSH ռեժիմի
873 պորտը թունելի կրած ներքին ծառայությունն է, ոչ թե դրա փոխարինողը։ Տարանջատեք դեմոնի ռեժիմը SSH ռեժիմից, ապա բացեք միայն այն ուղին, որն իրականում օգտագործում եք։
Թունելի ինտերֆեյսում TCP 873-ին թույլ տալը rsync-ը չի անցկացնում OpenVPN-ի միջով, և չի էլ ստիպում հեռավոր կողմին ընդունել մոդուլը։ Թունելը կրում է ներքին կապ, որի արձանագրության և նպատակակետի կանոնները մնում են ճիշտ այնպիսին, ինչպիսին եղել են։ Ուստի առաջին հարցը ոչ թե այն է, թե որ պորտը բացել, այլ այն, թե rsync-ը ինչ տեսակի կապ է հաստատում։ Ստորև ամեն ինչ ենթադրում է, որ թունելն արդեն աշխատում է, և միայն ներքին ծառայությունն է դեռ կասկածելի։
Որոշեք, թե rsync-ը իրականում ինչ կապ է հաստատում
Հրամանի հեռավոր արգումենտը սովորաբար պատասխանում է այդ հարցին մինչև firewall-ի ցանկացած փոփոխություն։ Կրկնակի երկու կետը կամ URL սխեման ընտրում է դեմոնը, մինչդեռ հոսթի անունից հետո մեկ երկու կետը ընտրում է հեռավոր shell։ Կարդացեք այն արգումենտը, որն իրականում գործարկում եք, ոչ թե փաստաթղթի օրինակինը։
Հեռավոր shell-ի բացահայտ ընտրանքը կարող է կրկին փոխել պատասխանը, որովհետև այն rsync-ին ասում է, թե որ ծրագիրը գործարկել փոխադրման համար։ Կարդացեք ամբողջ հրամանի տողը՝ ներառյալ ժառանգված փաթաթող սկրիպտները, ոչ միայն հոսթի մասը։
| Remote argument | What it opens |
|---|---|
rsync://vault.corp.internal/archive/ | rsync daemon, normally TCP 873 |
vault.corp.internal::archive/ | rsync daemon, normally TCP 873 |
[email protected]:/srv/archive/ | Remote shell, normally SSH on its configured port |
Դեմոնի ռեժիմ՝ կապման հասցե, մոդուլ և պորտ
Դեմոնի շարահյուսության մեջ ուղու հատվածը նշում է կազմաձևված մոդուլ, ոչ թե սկավառակի վրա գտնվող պանակ։ Մոդուլի գաղտնաբառը ստուգվում է միայն կապն ընդունվելուց հետո, և մոդուլը կարող է լրացուցիչ լինել միայն-ընթերցվող կամ ցանկից թաքնված։ Այդ հերթականությունը կարևոր է սխալ կարդալիս, որովհետև մերժված կապը և մերժված մոդուլը ձախողումներ են երկու տարբեր փուլերում։ Հաղորդագրություններից ոչ մեկը ոչինչ չի ասում թունելի մասին։
Անկախ դեմոնը կարելի է ամրացնել թունելի հասցեին իր կարգավորումների նիշքում, ինչը նրան պահում է հանրային ինտերֆեյսից առանց որևէ firewall-կանոնի։ Արժեքը պետք է գոյություն ունենա, երբ դեմոնը կապվում է, և socket-ով ակտիվացված կամ inetd-ով կառավարվող լսողը կարող է այն ամբողջությամբ անտեսել։
address = 10.44.0.1
port = 873
[archive]
path = /srv/archive
read only = yes
Այնուհետև փորձարկեք մասնավոր հասցեի դեմ, ոչ թե հանրային անվան։ Հանրային հոսթի անունը լուծվում է WAN հասցեի և անցնում այլ ուղիով, նույնիսկ երբ մեկ մեքենան պատասխանում է երկուսին էլ։
rsync --list-only rsync://10.44.0.1/archive/
Հեռավոր shell-ի ռեժիմ՝ SSH-ն է կրում փոխանցումը
Մեկ երկու կետով rsync-ը գործարկում է հեռավոր shell ծրագիր և խոսում նրա արձանագրությամբ այդ ալիքով, ուստի միակ հասանելի ծառայությունը SSH-ն է այն պորտում, որով սերվերը լսում է։ rsync-ի դեմոնը երբեք չի աշխատում, 873 պորտը անկարևոր է, և հասանելիության որոշումը դառնում է SSH հաշվի որոշում։ Հեռավոր ուղին այդ դեպքում իրական ֆայլային համակարգի ուղի է, որը մեկնաբանում է մյուս կողմի shell-ը։ Ահա թե ինչու 873-ին ուղղված firewall-փոփոխությունը այս ռեժիմի համար ընդհանրապես ոչինչ չի անում։
Այդ ձևավորումը պահանջում է լիազորված հաշիվ և հոսթի բանալու ստուգում, և ժառանգում է SSH-ի սեփական նույնականացման քաղաքականությունը։ Հաճախ սա ավելի լավ ընտրություն է, երբ փոխանցումը պետք է անցնի անվստահելի ցանցով, որովհետև գաղտնագրումը պատկանում է հենց դրա համար կառուցված արձանագրությանը։ Գաղտնաբառ պահանջող դեմոնը նույն բանը չէ։
Բացեք միայն ձեր ընտրած ուղին
Երբ ռեժիմը որոշված է, թույլատրեք միակ ներքին ծառայությունը միակ ինտերֆեյսում, որը կրում է թունելը։ Սահմանափակեք կանոնը ըստ ինտերֆեյսի, աղբյուրի լողավազանի և նպատակակետ հասցեի, որպեսզի հետագա լռելյայն-արգելքի փոփոխությունը չկարողանա լուռ լայնացնել այն։ Ապա վերանայեք կանոնների հերթականությունը, որովհետև շղթայում ավելի վաղ թույլատրող կանոնը նեղը դարձնում է զուտ զարդարանք։
Եթե դեմոնն աշխատում է VPN-դարպասի հետևում գտնվող մեքենայում, այլ ոչ թե հենց դարպասում, դարպասին նաև փոխանցման ուղի է պետք, իսկ թիրախին՝ սեփական թույլտվություն և վերադարձի երթուղի։ Պորտը միայն դարպասում բացելը ստեղծում է կապ, որն ընդունվում է, ապա ոչ մի տեղ չի հասնում։
Ստուգեք հաճախորդից նույն ռեժիմով և նպատակակետով, որոնք մտադիր եք օգտագործել արտադրությունում։ Հաջող ցանկը միասին ապացուցում է լսողին, երթուղին և կանոնը, իսկ ժամկետի լրանալը մատնանշում է ուղին, մերժումը՝ լսողին։
ufw allow in on tun0 from 10.44.0.0/24 to 10.44.0.1 port 873 proto tcp
ss -ltnp | grep 873