Hook ɗin client-connect na OpenVPN: inda adireshinka yake zuwa da gaske
Script ɗin client-connect ba zai iya mayar da adireshi ta hanyar buga shi ba. Duba yadda fayil ɗin wucin gadi na hook, matsayin fita da topology ke ƙayyade IP na abokin ciniki.
Mayar da adireshi daga script ɗin client-connect yana kama da ya kamata ya saita IP na abokin ciniki. Ba ya yin haka: hanyar da hook ɗin yake da ita zuwa uwar garken ita ce fayil ɗin wucin gadi wanda hanyarsa ke zuwa a matsayin hujja ta ƙarshe ta script ɗin, kuma dole a rubuta adireshin a can cikin tsarin ifconfig-push. Script da ke buga adireshin ko ya fita da sifili ba tare da rubuta komai ba yana haifar da abokin ciniki da aka haɗa da adireshi daga tafki, kuma log ɗin uwar garken yana kama da lafiya sarai.
Rikice-rikicen suna da ma'ana, domin wasu hooks da yawa suna amsawa ta hanyar lambobin fita ko masu canza yanayi. Wannan yana da nasa yarjejeniya, kuma yarjejeniyar tana farawa da sunan fayil.
Hook ɗin yana rubuta fayil, ba darajar dawowa ba
Sanarwar layi biyu ce: script-security 2 don ba da izinin kira, sannan client-connect /etc/openvpn/server/assign-address.sh. Lokacin da abokin ciniki ya tabbatar, uwar garken tana gudanar da wannan script tare da haɗa hanyar fayil ɗin da aka ƙirƙira a matsayin hujja ta ƙarshe, wadda ita ce $1 kawai idan sanarwar ba ta ba da wata ƙarin hujja ta kanta ba. Duk abin da aka yi wa wannan abokin ciniki yana shiga cikin wannan fayil a matsayin umarni na yau da kullum, ɗaya a kowace layi, daidai yadda za su bayyana a cikin daidaitawa. Wrapper da ke ƙara nasa sigogin yana motsa matsayi, kuma alamar gargajiya ita ce script da ke rubutu zuwa hanyar da ta yi kama da --verbose.
Matsayin fita shine ɗayan rabin yarjejeniyar. Sifili yana nufin karɓa ka karanta fayil ɗin; duk wani abu daban yana ƙin haɗin, kuma haka ake ƙin wata shaida da ba a tsara ta ba maimakon komawa cikin tafki a hankali. Rubuta cikakken umarni kafin mayar da nasara, domin fayil da aka rubuta rabinsa kada ya taɓa zama daidaitawar abokin ciniki.
Umarni biyu sun cancanci kulawa saboda suna hulɗa da komai. ifconfig-push yana ƙayyade adireshin, yayin da route da aka tura yana gaya wa abokin ciniki abin da ake iya samu ta hanyar tunnel; mayar da na farko ka manta na biyu sai ka sami abokin ciniki mai adireshi kuma babu inda zai je. Tsari cikin fayil ɗin ba shi da mahimmanci, amma cikawa yana da mahimmanci. Hook da ke tura hanya don prefix da babu abokiyar hulɗa da zai iya isa gare shi, kuskure ɗaya ne da ake gani daga ɗayan gefen.
Abubuwan shiga suna zuwa ta masu canza yanayi: common_name, trusted_ip, ifconfig_pool_remote_ip da sauransu. Bi da su duka a matsayin kirtani daga wajen uwar garken, ba a matsayin guntun shell ba.
Tsara adireshi shine manufa, ba lissafi ba
Wata hanya mai jan hankali ita ce a tantance sunan takardar shaidar ka yi amfani da lambobinta a matsayin octet ta ƙarshe. Wannan ba mai rarrabawa ba ne, kuma yana kasawa ta hanyoyin yau da kullum: sunaye biyu masu ɗaya ƙarshen suna cin karo, sunan da ya ƙare da 300 ba adireshi ba ne, kuma takardar shaidar da mai gudanarwa ya sake masa suna tana motsa na'ura a hankali. Tabbatar da kasancewar subnet, kewayon masaukai da ake amfani da su, adiresoshin da aka tanada da kuma ketare a kowace kira, kuma ka riƙe tsarin a cikin tebur da mutum zai iya karantawa.
Wanda ke sarrafa sunan yana sarrafa adireshin, don haka yanke shawara abin da common_name yake wakilta a wannan turawar. Tare da username-as-common-name a kunna, shaida ita ce shiga maimakon batun takardar shaidar. Kada ka taɓa ba da wannan darajar ga kimantawar shell, kuma kada ka taɓa barin abokin ciniki ya yi tasiri a hanyar fayil.
Mai rarrabawa da ke da goyon bayan rijista dole ya jimre da haɗin kai. Ajiye adireshin a tsarin atomic, yi mu'amala da rubutun da ya gaza ba tare da yarda da abokin ciniki da ba a daidaita shi gaba ɗaya ba, kuma yi wa kowace rarrabawa alama da haɗin da ya mallake ta, domin jinkirin cire haɗi daga tsohuwar zama ba zai iya sakin adireshin da sabuwar ta riga ta mallaka ba. Yawancin kwafin uwar garken da ke raba tafki ɗaya suna sa wannan buƙata ta fi tsanani maimakon zama na zaɓi.
Topology tana ƙayyade ma'anar ifconfig-push
Tare da topology subnet a kan 10.77.0.0/24, ifconfig-push 10.77.0.20 255.255.255.0 adireshi ne da netmask ɗinsa. A ƙarƙashin topology net30, hujja ta biyu ba netmask ba ce kwata-kwata amma adireshin abokin hulɗa, don haka kwafin siffar subnet zuwa uwar garken net30 yana ba ka abokin ciniki da ke haɗawa kuma ba zai iya wuce zirga-zirga ba. Canza topology da gangan, ba don misali ya yi kama da daidaito ba. Uwar garken da ke aiki da net30 tana da abokan ciniki masu rai akan tsohon adireshin, don haka sauyin ƙaura ne tare da taga kulawa, ba gyaran layi ɗaya ba.
Dole adiresoshin tsayayyu su kasance a wajen tafkin mai motsi da kuma wajen kowace sauran rabo mai tsayawa, gami da waɗanda fayilolin client-config-dir na yau da kullum ke bayarwa. Idan hanyoyi biyu za su iya samar da adireshi ɗaya ga abokan ciniki daban-daban, ɗayansu zai yi hakan a ƙarshe.
Gwada lokuta huɗu kafin ka amince da shi
Gudanar da waɗannan binciken akan shaidar da aka tsara, wadda ba a tsara ba, sake haɗawa da gazawar rijista da aka kwaikwaya. openvpn --config client.ovpn --verb 4 yana nuna adireshin da aka ba a cikin amsar push, kuma a kan uwar garken grep -A2 PUSH_REPLY /var/log/openvpn/openvpn.log yana tabbatar da abin da aka aika da gaske. Ga shaidar da ba a tsara ba, sakamakon da ake tsammani shine haɗin da aka ƙi, ba adireshi daga tafki ba.
Sannan duba jagorar da daemon ɗin ke rubuta waɗancan fayilolin wucin gadi a ciki. Script ɗin yana gudana a cikin yanayin sabis ɗin da aka saukar, don haka hanyar da root zai iya rubutawa amma daemon ɗin ba zai iya ba tana mayar da kowace haɗi ƙi tare da kuskuren izini da aka binne layuka da yawa a cikin log ɗin.
Rarraba ba izini ba ne: adireshin da aka lika har yanzu ba ya ba da damar zuwa kowace manufa a bayan uwar garken. Riƙe manufar turawa da katangar wuta a cikin nata Layer, kuma tabbatar da ita a kan adireshin da ka riga ka daidaita.