Loka á einn OpenVPN-biðlara frá LAN án þess að stöðva göngin
Festið göngufang biðlarans við skírteini hans, sleppið LAN-umferð hans fremst í FORWARD og sannreynið síðan IPv6, raktar lotur og lifun eftir endurræsingu.
Einn biðlari á OpenVPN-þjóninum þínum verður að missa LAN-aðgang á meðan öll önnur göng halda áfram. Ef þú leitar að þessu segir besta svarið yfirleitt að dæmoninn geti það ekki, sem er aðeins hálfsannleikur: OpenVPN hefur ekki eldvegg fyrir hvern biðlara, en hýsillinn sem endar göngin síar nú þegar pakka. Ákvörðunin sem skiptir máli er hver auðkennið eru sem þú lokar á og staða reglunnar. Gerðu þetta rétt og breytingin verður ein lína sem þú getur prófað og fjarlægt.
Festu biðlarann áður en þú skrifar regluna
OpenVPN leigir gönguföng úr laug, svo 10.8.0.6 er sæti, ekki manneskja. Þegar lotunni lýkur fer leigan til baka og má gefa næstu tengingu, sem þýðir að regla skrifuð gegn því fangi fylgir sætinu, ekki notandanum. Ákveddu því fyrst hvað þú ert í raun að loka á: fang fyrir stutta tilraun, eða skírteini fyrir einhvern sem þú vilt halda úti.
Til að binda fangið við skírteinið skaltu búa til skrá í möppunni sem client-config-dir nefnir og gefa skránni nákvæmlega common name skírteinisins. Settu eina skipun í hana, ifconfig-push 10.8.0.6 255.255.255.0, og sá biðlari heldur sama göngufangi yfir endurtengingar. Tvær stillingar verða að vera til staðar til að þetta virki: client-config-dir verður að vera tilkynnt í stillingum þjónsins, og fangið sem ýtt er inn verður að vera í undirneti sem þjónninn getur beint. Ef önnur vantar er skránni hunsuð án villu, sem gerir næstu eldveggjarprófun villandi.
Tímabundin lokun má nota fang úr lauginni, svo framarlega sem miðinn skráir hvaða lota hafði það á þeim tíma.
Röðin ræður því hvort sleppingin keyri
Á Linux-gátt sem sendir á milli ganganna og LANsins fara pakkar um keðjuna FORWARD. Lestu skipunina hér fyrir neðan sem setningu: settu fremst í FORWARD, passaðu umferð sem kemur inn frá tun0, frá þeim eina hýsli, beint að undirneti LANsins, og slepptu henni.
iptables -I FORWARD -i tun0 -s 10.8.0.6/32 -d 192.168.1.0/24 -j DROP-I er það sem lætur regluna keyra. Bætt við með -A lendir hún undir hvaða breiðu samþykki sem er fyrir gönguundirnetið og sér aldrei pakka. Sannreynið stöðuna með iptables -vnL FORWARD --line-numbers og lesið teljarana líka: slepping efst sem telur ekkert þýðir að umferðin kemur aðra leið.
Eigið LAN-fang gáttarinnar er önnur leið. Pakkar sem sendir eru á kassann sjálfan fara í INPUT, ekki FORWARD, svo biðlari getur misst LAN-hýsil og samt opnað stjórnborð beinisins. Bættu við samsvarandi INPUT-reglu þegar það skiptir máli.
Hvað sían getur ekki séð
Síun á sér stað þegar pakki er metinn, svo komin TCP-lota getur haldið áfram þar til henni er lokað eða hún endurstillt. Ef lokunin verður að bíta strax skaltu hreinsa raktu straumana fyrir þá uppsprettu með conntrack -D -s 10.8.0.6 eftir að reglan fer inn. Ef nokkrar sekúndur af skörun eru ásættanlegar skaltu skrá þá ákvörðun í stað þess að láta hana vera óbeina. Hvernig sem fer þarf næsta manneskja að vita hvort reglan stöðvar lifandi umferð eða aðeins nýjar tengingar.
Umferð milli jafningja snertir aldrei eldvegg hýsilsins. Með client-to-client virkt sendir OpenVPN þessa pakka inni í dæmoninum, svo hvorki FORWARD né INPUT sér þá. Einu lagfæringarnar eru að slökkva á client-to-client eða samþykkja að jafningjar geti náð hvor öðrum; iptables-regla mun ekki sjá þá umferð.
IPv6, fastbúnaður og lifun eftir endurræsingu
IPv4-regla segir ekkert um IPv6. Ef göngin og LANið bera báðar fjölskyldur verður samsvarandi regla að vera í ip6tables, eða í nftables-reglusafninu sem á stefnuna á þeim hýsli. Beinir-fastbúnaður felur netfilter oft bak við eigin abstraktun, svo setningafræði og töflunöfn afritaðar af spjallborði eiga kannski ekki við.
Á OpenWrt er skjalfesta leiðin færsla í eldveggjarstillingum en ekki handskrifuð iptables-lína, og handskrifuð lína getur horfið þegar eldveggurinn hleðst aftur. Aðrar dreifingar endurheimta reglur í gegnum netfilter-persistent, ræsingareiningu eða geymslu framleiðanda, og þessar aðferðir eru ekki skiptanlegar. Sannið þá sem þú valdir með endurræsingu, því endurhleðsla æfir aðra leið.
Sannreynið eftir leið og farðu svo hreint til baka
Prófaðu hverja leið fyrir sig, því ein vel heppnuð athugun felur hinar. Lokaður biðlari ætti að ná enn á internetið um göngin en mistakast gegn LAN-hýsli, annar biðlari ætti að ná sama hýsli, og gáttarfangið og jafningjaleiðin þurfa hvort sitt athugunina. Skrifaðu niðurstöðurnar við regluna svo næsta breyting hafi grunnlínu. Taflan hér fyrir neðan er safnið sem er þess virði að halda í miðanum.
| Leið | Vænt með reglunni | Þegar það mistekst |
|---|---|---|
| Lokaður biðlari að LAN-hýsli | Ekkert svar | Reglan er undir samþykki, eða uppsprettan passar ekki |
| Lokaður biðlari að internetinu | Virkar um tun0 | Reglan er of breið, án áfangastaðar |
| Annar biðlari að sama LAN-hýsli | Virkar | Reglan passaði við fleiri en fyrirhugaðan hýsil |
| Lokaður biðlari að LAN-fangi gáttarinnar | Lokað aðeins með samsvarandi INPUT-reglu | INPUT-regla vantar |
| Lokaður biðlari að göngufangi jafningja | Virkar enn | client-to-client er virkt og utan eldveggjarins |
Afturköllun er eyðing samkvæmt forskrift, ekki flush: iptables -D FORWARD -i tun0 -s 10.8.0.6/32 -d 192.168.1.0/24 -j DROP fjarlægir nákvæmlega þá færslu og lætur restina af keðjunni ósnortna. Fjarlægðu sömu línu úr hvaða skrá sem endurheimtir reglurnar við ræsingu, hlaðið henni aftur og staðfestið að biðlarinn nái LAN-hýslinum aftur. Flush á FORWARD myndi líka afturkalla reglur sem þú skrifaðir ekki, sem gerir afturköllun að öðru atviki.
Áður en þú lokar miðanum skaltu staðfesta þrjá hluti: fasta fangið passar við skírteinið, reglan er yfir samþykkin með teljara sem er ekki núll, og varanleikaskráin inniheldur sömu reglu og þú prófaðir. Ef eitthvað af þessu vantar er lokunin tálsýn í shell-lotu.