Squidek CONNECT eskaera bat bat datorren lehen http_access lerroarekin erantzuten du, eta lerro hori ukapena izan daiteke. Gertaera bakar honek azaltzen du zergatik VPN amaierako puntu baterako salbuespena lehen saiakeran huts egiten duen, eskaera inoiz ez baita behealdean norbaitek gehitu zuen baimenera iristen. Konponketa estu batek lehendik dauden portu-zaindariak mantentzen ditu eta berrikusitako iturri, helmuga eta portu bakarra irakasten die. Proxyko beste guztiak lehen bezala jokatzen du.

Nola erabakitzen duen Squidek CONNECT eskaera bat

CONNECT eskaera batek ostalari bat eta portu bat izendatzen ditu, eta Squidek http_access lerroak ordenan zeharkatzen ditu, horietako bat bat etorri arte. Bat datorren ukapenak ebaluazioa berehala amaitzen du eta bezeroak 403 bat jasotzen du proxyarengandik. Horregatik du arau baten kokapenak haren idazkerak baino garrantzi handiagoa. Lerro bera maila bat gora mugitzeak emaitza erabat alda dezake.

Zaindari konbentzionalek Safe_ports-etik kanpo dagoen guztia ukatzen dute eta CONNECT ukatzen dute SSL_ports-etik kanpo. Izen horiek zure konfigurazioan definitutako ACLak dira, beraz haien edukia zurea da, ez protokoloarena. Banaketa batek portu-sorta zabala onar dezake Safe_ports gisa, CONNECT bereiz mugatuz. Irakurri balio bizia portu bat diseinuz blokeatuta dagoela suposatu aurretik.

Egiaztatu proxya dela eskaera ukatzen duen osagaia. Squidek sortutako 403 bat ez da inola ere VPN zerbitzariko TLS abisu baten antzekoa, eta biak arazo bakarrean batu nahi izateak lehen ordua kostatzen du. Egiaztatu eskaeraren sarbide-erregistroko lerroa, ekintza zein hura sortu zuen araua erregistratzen baititu.

Eraiki bat-etortze konbinatu bat hiru ACL solte ordez

Eraiki salbuespena hiru ezarritatik: onartutako iturri-tarte bat, onartutako helmuga-helbide bat eta amaierako puntuak entzuten duen portu bakarra. Bi ACL soltek eta bat-etortze konbinatu batek politika oso desberdina sortzen dute, ebaluatzen dena konbinazioa baita. Izendatu ACL konbinatua uzten duenaren arabera, ez daraman metodoaren arabera.

Beheko formak dokumentazioko tarteak erabiltzen ditu, berrikusitako balioekin ordezkatu behar direnak. Squidek ez du izen horietako bat ere erreserbatzen, beraz zurea da hautatzea eta zurea da koherente mantentzea. Errezeta hau Squid 6 eta 7-ra mugatuta dago, haien dokumentatutako konfigurazioak all-of taldea onartzen baitu. Uneko erreferentziak direktiba horiek Squid 8-n eskuragarri ez daudela markatzen du, beraz hartu hau bertsioari lotutako errezeta gisa eta ez migrazio-bide gisa, eta egiaztatu direktiba zure bertsioaren erreferentzian aplikatu aurretik.

acl pvpn_src src 192.0.2.128/25
acl pvpn_dst dst 198.51.100.77/32
acl pvpn_port port 1194
acl pvpn_ok all-of CONNECT pvpn_port pvpn_dst pvpn_src

All-of taldea kide bakoitza bat datorrenean soilik dator bat, hau da, iturria, helmuga eta portua lerro bakarrean egiaztatzen dira. Taldeak berez ez du ezer ematen, eta hiru ezarrietatik bi soilik betetzen dituen eskaera batek ezin du hura asetu. Propietate horrek salbuespena estua mantentzen du norbaitek geroago bigarren ate bat gehitzen duenean. Edo helmuga berria nahita gehitzen da, edo eskaera jatorrizko zaindarietara itzultzen da.

Makurtu portu-zaindariak kendu gabe

Haien egungo posizioetan, bi zaindari-lerro konbentzionalek horrela egiten dute. Normalean autentifikazioaren ondoren eta dena onartzen duten politika-lerroen aurretik egoten dira.

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

Gehitu bat-etortze konbinatu ezeztatua bakoitzari, bat datorren salbuespen batek bestela ukatuko lukeen zaindari bat gaindi dezan. Zaindari-lerroak soilik aldatzen dira, eta bakoitza termino gehigarri bakarrarekin.

http_access deny CONNECT !SSL_ports !pvpn_ok
http_access deny !Safe_ports !pvpn_ok

Sarbide-lerro bateko terminoak konbinatu egiten dira, beraz lerroak orain jatorrizko egiaztapenean eta salbuespenean huts egiten duten eskaerak soilik ukatzen ditu. Onartutako amaierako punturako eskaera igarotzen da, eta beste edozein eskaerek portuaren jokabide zaharra mantentzen du. Hau portua SSL_ports zerrenda global batera gehitzea baino estuagoa da, eta horrek portu hori helmuga orori baimenduko lioke. Portua zerrenda horretan badago jada, ACL honek ez du ezer estutzen eta baimen zaharrago eta zabalagoak beste helmuga batzuetarako balio du oraindik, beraz irakurri zerrenda bizia salbuespenak portua ireki zuela esan aurretik. Itzulgarria ere bada, bi lerro lehengo formara itzultzen baitira. Sarbide-kontrolaren erreferentziak aldaketa hau oinarritzen den ordena eta zaindari konbentzionalak dokumentatzen ditu.

Non ez den salbuespena jarri behar

Tentazioa zaindarien gainean baimen bat jartzea eta amaitzea da. Kokapen horrek gainera konfigurazio eragile baten goialdetik gertu egon ohi diren autentifikazio eta helmuga lokalaren babesak saltatzen ditu. Emaitza ez da salbuespen estua, gainean iruzkin bat duen zulo bat baizik. Mantendu edozein baimen berri bezero-politikaren gainerakoaren berrikusitako etapa berean.

Egiaztatu zer behar duen eskaerak portu-zaindarien ondoren oraindik. Autentifikatutako kontu batek, onartutako bezero-helbide batek eta helmuga-politika batek oraindik balio dute, eta salbuespenak ez du horietako bat ere aldatzen. Zure proxyak onartutako kontuari helmuga arbitrarioetara iristen badakioke jada, portu-zaindaria ez zen inoiz benetako kontrola izan.

Hausnartu amaierako puntua TCP ote den. CONNECT salbuespen batek TCP korronteak garraiatzen ditu, eta UDP erabiltzen duen OpenVPN profil bat ez da haren bidez irisgarria izango. Aldatu profila TCPra soilik zerbitzariak horrela entzuten badu eta operadoreak jokabide-desberdintasuna onartzen badu.

Egiaztatu muga analizatzailearekin eta benetako eskaera batekin

Aztertu konfigurazioa berriro kargatu aurretik, eta mantendu bigarren saio bat irekita hori egiten duzun bitartean. Birkarga garaian sintaxi-errore batek proxya konfigurazio zaharrean utz dezake edo berria erabat uka dezake. Analizatzaileak baztertutako lerroa jakinarazten du, bezeroaren erroreak esango dizuna baino gehiago.

Ondoren kargatu berriro eta bidali benetako CONNECT bat proxyaren bidez onartutako iturri batetik. Analizatzailearen exekuzioa lehenengo dator, errore batekin egindako birkarga batek ez baitizu politikari buruz ezer irakasten.

squid -k parse
squid -k reconfigure
curl -v -p -x http://proxy.lab.internal:3128 https://vpn.lab.internal:1194/ --max-time 5

Probatu hiru kasu: iturri eta kontu onartuak, onartu gabeko iturria, eta helmuga desberdina portu berean. Hirugarren kasua da salbuespena estua dela frogatzen duena, portua helmugaren bat-etortzerik gabe erabiltzen baitu. Irakurri sarbide-erregistroa hirurentzat, bezeroaren mezuan fidatu beharrean. CONNECT arrakastatsu batek TCP korronte bat ezartzen du eta ez besterik, beraz VPN esku-ukaldia proba bereizia izaten jarraitzen du.

Erlazionatutako artikuluak