Hur skapa subnätverk uppkopplat till VPN? Med docker?

Permalänk

Hur skapa subnätverk uppkopplat till VPN? Med docker?

Har ett subnätverk som jag skulle vilja ha uppkopplat till VPN konstant med kill switch dvs att den inte ger tillgång till nätet om VPN går ner. Har tillgång till VPN tjänst och kör en server med dubbla nätverksuttag där bara en används till att koppla till routern, servern kör docker med några containers men är inte så bekant med hur man går tillväga för att få till VPN som jag vill. Söker jag på vpn i docker library så får jag upp följande, är det bara att välja den populäraste? Men det är väl vpn server och jag vill köra någon slags klient? Är det tredje populäraste jag ska välja (gzm55/vpn-client https://registry.hub.docker.com/r/gzm55/vpn-client/)? 🤔

https://imgur.com/a/C1SZoCc

Har lyckats fått till Transmission torrent docker med uppkoppling till VPN så helt lost är jag dock inte. Någon som kan guida mig med att skapa subnätverk uppkopplat till VPN med docker?

Visa signatur

Macbook Pro 14"
10Gb internet 🙌

Permalänk
Medlem

får man fråga varför du tänker att det är ett subnätverk du behöver? eller syftet med hela äventyret så att säga. Är det en VPN-tjänst du vill ansluta till, eller ska du köra en VPN-server från en docker container som du inte ska kunna ansluta till från det "vanliga" lokala nätverket?

Permalänk
Skrivet av Hothep:

får man fråga varför du tänker att det är ett subnätverk du behöver? eller syftet med hela äventyret så att säga. Är det en VPN-tjänst du vill ansluta till, eller ska du köra en VPN-server från en docker container som du inte ska kunna ansluta till från det "vanliga" lokala nätverket?

Bra fråga! Syftet är att skapa ett separerat nätverk som ska vara skilt från det huvudsakliga nätverket, och ha som krav att vara uppkopplad till VPN hela tiden. Inte säker på att jag förstår din andra fråga men som jag förstår den är det alternativ 1, jag vill ansluta till en VPN-tjänst, inte köra en VPN-server från en docker container.

Jag tänker mig att jag vill köra en docker container med vpn client och sedan tvinga nätverket som är kopplat till ethernet uttag 2 i servern att ansluta via docker containern? Kanske finns det ännu enklare sätt att uppnå det jag vill än att hålla på med docker container öht?

Visa signatur

Macbook Pro 14"
10Gb internet 🙌

Permalänk
Medlem

Mig veterligen är det inte möjligt. Du behöver en routerfunktion typ pfsense för att kunna prata mellan nätverken och jag tror inte man kan köra pfsense eller motsv i en container. Det blir knöligt för om du vill isolera ett nätverk eller en del av ett nätverk (subnät) så kommer det nätverket inte kunna prata med din router som är anslutningen till internet. Beroende på vad du har för router så kan du göra ett separat nätverk och göra en ny anslutning till din server, men det medför att bara din server kommer kunna prata där, inga andra enheter såvida du inte har en switch ansluten.

Permalänk
Medlem
Skrivet av Hothep:

Mig veterligen är det inte möjligt. Du behöver en routerfunktion typ pfsense för att kunna prata mellan nätverken och jag tror inte man kan köra pfsense eller motsv i en container. Det blir knöligt för om du vill isolera ett nätverk eller en del av ett nätverk (subnät) så kommer det nätverket inte kunna prata med din router som är anslutningen till internet. Beroende på vad du har för router så kan du göra ett separat nätverk och göra en ny anslutning till din server, men det medför att bara din server kommer kunna prata där, inga andra enheter såvida du inte har en switch ansluten.

Jag försökte köra en docker container från NordVPN (har dock bytt bort dem nu pga osäkra ägarförhållanden) och sedan internt i själva docker routa all trafik igenom NordVPN-containern. Som du skriver är det väldigt besvärligt med docker och jag har inte hittat något riktigt bra sätt för detta (typ att sätta dockern med VPN-container som default gateway för resterande dockers). Är ingen expert på docker-nätverk, men det verkar lämna en hel del övrigt att önska. Som nätverksnörd blir man bedrövad när man försöker hitta dokumentationen...

Det man kan göra är med policy based routing identifiera trafiken baserat på portnummer exempelvis. Då kan man välja att skicka viss trafik igenom en VPN-tunnel och viss trafik rakt ut med en router/firewall. Det känns dock inte som en riktigt bra variant.
Problemet är ju att datorn/servern med docker-miljön skickar ut trafiken från sin egna IP, så för routern ser det likadant ut oavsett om det är en docker eller datorn/servern själv.

Det slutade hur som helst med att all trafiken får burken med docker går ut krypterat. Då har jag fördelen att ha VMware, så jag kan ha ett par burkar som krypteras och ändå skicka min och de andras datorer rakt ut om jag vill.

Permalänk
Medlem

Skapa ett separat vlan som kör vpn. Sedan lägger du din container på det vlanet, tex med macvlan drivern.
Detta kräver dock att din router stödjer vlan och står för uppkopplingen till vpn.servern.

Jag kör precis så.
I pfsense ställer du in vilket vlan som ska gå mot vilken wan (multi wan)
Jag har tex följande.vlan:
Iot
Isp (min vanliga uppkoppling)
Vpn (går.mot vpn)
Video
Osv

Det blir mer logiskt att dedikera ett separat nät till vpn än köra per klient. Då kan du dessutom knyta trådlösa nät till antigen vpn eller direkt till isp. Kolla setup.i.denna guide som jag tycker är rätt bra.

https://blog.monstermuffin.org/pfsense-guide-nat-firewall-rul...

Visa signatur

RedHat <3 CentOS <3 OpenSuse <3 FreeBSD

Permalänk
Medlem

Som jag tolkar det så vill du koppla upp en container till vpn, med killswitch.

Jag kör denna: https://hub.docker.com/repository/docker/aiwi/docker-qbittorr...

Det är qbittorent som kör över vpn med killswitch. Du kan se koden här, och modifiera efter behov:

https://github.com/aiwipro/docker-qBittorrentvpn

Det är mycket möjligt att du kan köra någon av de vpn-clienter du angett, och sedan skapa ett gemensamt nätverk för de containers som skall vara med i detta nätverk. Detta genom att i tex din docker compose definiera ett gemensamt nätverk för dina containers:

version: "3" services: mycontainer: container_name: mycontainer restart: always networks: my_network: environment: - ... networks: my_network: ipam: config: - subnet: 172.20.0.0/16

Visa signatur

Sakura gaming: Ryzen 5 5600X, 16GB 3600MHz CL16, RTX 3080, X570 Aorus Elite, 1TB MP600, NH-D15 Chromax, H510, Varmilo VA88M Sakura
Arbetshäst: Macbook Pro 14" M2 Max
Golden oldies: ThinkPad 600, ThinkPad T400, ThinkPad T400s x2, iMac 27" 2010 & 2017, Mac Pro 2010, Mac mini 2011 & 2021, Mac Pro 2012, Macbook Air 13" 2013, Macbook Pro Retina 15" 2013, 2017 & 2019

Permalänk
Medlem
Skrivet av DuckMuck:

Skapa ett separat vlan som kör vpn. Sedan lägger du din container på det vlanet, tex med macvlan drivern.
Detta kräver dock att din router stödjer vlan och står för uppkopplingen till vpn.servern.

Jag kör precis så.
I pfsense ställer du in vilket vlan som ska gå mot vilken wan (multi wan)
Jag har tex följande.vlan:
Iot
Isp (min vanliga uppkoppling)
Vpn (går.mot vpn)
Video
Osv

Det blir mer logiskt att dedikera ett separat nät till vpn än köra per klient. Då kan du dessutom knyta trådlösa nät till antigen vpn eller direkt till isp. Kolla setup.i.denna guide som jag tycker är rätt bra.

https://blog.monstermuffin.org/pfsense-guide-nat-firewall-rul...

Jag kör nog ännu mer komplicerat där en Clavister segmenterar i VLAN och två PFSense sköter all kryptering med lastbalansering och redundans (eller snarare står Clavister för redundans och balansering, för PFSense skickar det bara ut via wireguard eller OpenVPN beroende på inkommande länk-VLAN).
Företrädelsevis är det precis som för dig segmenterat för VLAN, men inte helt då jag för vissa burkar bara vill att vissa tjänster ska krypteras osv.

Ska titta på macvlan senare, men det känns inte riktigt aktuellt då de containers som jag vill ha krypterade ligger på en burk där 100% krypteras. De containers (som Plex) som jag vill ha åtkomlig utifrån (via certfikat från Letsencrypt) ligger på en burk som inte krypterar något.

Sedan kör jag IOT-devices på 2.4GHZ och på ett eget VLAN. Fläktar (Dyson) och sådant ska inte in på det interna nätet!

Permalänk
Medlem
Skrivet av Talisker00:

Ska titta på macvlan senare, men det känns inte riktigt aktuellt då de containers som jag vill ha krypterade ligger på en burk där 100% krypteras. De containers (som Plex) som jag vill ha åtkomlig utifrån (via certfikat från Letsencrypt) ligger på en burk som inte krypterar något.

Mcvlan borde inte ha något att göra med om burken du kör på är krypterat. Det man kan göra med mcvlan är att binda
containern till ett specifikt vlan, där de som bonus dessutom får ett eget ip, som utifrån inte är ihoppkopplat med värd-datorn.
Jag kör tex flera docker containers som jag anropar på port 80 och 443, dessa ligger med helt egna olika ip-nummer.

Tex:

docker network create -d macvlan --subnet=10.0.40.0/24 --gateway=10.0.40.1 -o parent=vlan1 vlan40
docker run -dit --name myvlanContainer --cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH -p [Mina mappade portar] --net=vlan40 --ip=10.0.40.40 myCoolimage/image:latest

Först skapar jag ett nät kallat vlan40
Sedan tilldelar jag container ip 10.0.40.40
Därefter är det upp till routern att routa 10.0.40.40 till din VPN.

Jag har en container som är helt krypterad. Den ligger på en krypterad disk på värddatorn som manuellt måste mountas när man loggar in med lösenord och PIM (värddator är fö också är krypterad), den kommunicerar sedan med vpn för säker kommunikation. När min dator stängs av är continer krypterad och kommer inte kunna startas innan man har låst upp disken.

/D

Visa signatur

RedHat <3 CentOS <3 OpenSuse <3 FreeBSD

Permalänk
Medlem
Skrivet av DuckMuck:

Mcvlan borde inte ha något att göra med om burken du kör på är krypterat. Det man kan göra med mcvlan är att binda
containern till ett specifikt vlan, där de som bonus dessutom får ett eget ip, som utifrån inte är ihoppkopplat med värd-datorn.
Jag kör tex flera docker containers som jag anropar på port 80 och 443, dessa ligger med helt egna olika ip-nummer.

Tex:

docker network create -d macvlan --subnet=10.0.40.0/24 --gateway=10.0.40.1 -o parent=vlan1 vlan40
docker run -dit --name myvlanContainer --cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH -p [Mina mappade portar] --net=vlan40 --ip=10.0.40.40 myCoolimage/image:latest

Först skapar jag ett nät kallat vlan40
Sedan tilldelar jag container ip 10.0.40.40
Därefter är det upp till routern att routa 10.0.40.40 till din VPN.

Jag har en container som är helt krypterad. Den ligger på en krypterad disk på värddatorn som manuellt måste mountas när man loggar in med lösenord och PIM (värddator är fö också är krypterad), den kommunicerar sedan med vpn för säker kommunikation. När min dator stängs av är continer krypterad och kommer inte kunna startas innan man har låst upp disken.

/D

Nej, jag förstår att det inte har med om burken kör krypterat eller inte att göra. Jag valde helt enkelt att låta allt från den burken bli krypterat för att jag inte visste om macvlan helt enkelt. Det låter som det alternativ jag letade, men då det inte fanns löste jag det på mitt sätt istället.

Dock kör jag uteslutande docker-compose, så jag får kolla hur man löser macvlan den vägen. Förmodligen skapar man väl macvlan utanför docker-compose, men man lägger de containers man vill ha på respektive VLAN under network på respektive container.

Off topic. Jäklar vad jag felsökte igår när kunden lagt vlan 1 taggat mot brandväggen. Jag har bara aldrig sett det, utan default vlan brukar alltid vara untagged. I alla fall i min värld.

Permalänk
Medlem
Skrivet av Talisker00:

Dock kör jag uteslutande docker-compose, så jag får kolla hur man löser macvlan den vägen. Förmodligen skapar man väl macvlan utanför docker-compose, men man lägger de containers man vill ha på respektive VLAN under network på respektive container.

Off topic. Jäklar vad jag felsökte igår när kunden lagt vlan 1 taggat mot brandväggen. Jag har bara aldrig sett det, utan default vlan brukar alltid vara untagged. I alla fall i min värld.

Det går fint att skapa macvlan nätet i docker-compose filen. Har också stött på vlan 1 tagged, körde tex tidigar en unifi cloudkey som access port på vlan 1. Men ja det kanske inte hör till vanligheter att man gör så.

Visa signatur

RedHat <3 CentOS <3 OpenSuse <3 FreeBSD

Permalänk
Skrivet av DuckMuck:

Skapa ett separat vlan som kör vpn. Sedan lägger du din container på det vlanet, tex med macvlan drivern.
Detta kräver dock att din router stödjer vlan och står för uppkopplingen till vpn.servern.

Jag kör precis så.
I pfsense ställer du in vilket vlan som ska gå mot vilken wan (multi wan)
Jag har tex följande.vlan:
Iot
Isp (min vanliga uppkoppling)
Vpn (går.mot vpn)
Video
Osv

Det blir mer logiskt att dedikera ett separat nät till vpn än köra per klient. Då kan du dessutom knyta trådlösa nät till antigen vpn eller direkt till isp. Kolla setup.i.denna guide som jag tycker är rätt bra.

https://blog.monstermuffin.org/pfsense-guide-nat-firewall-rul...

Kör en Ubiquiti Amplifi HD, tror inte den har vlan funktion...
Tack för svaren, även om jag förstår ca hälften av vad ni skriver 😃
Ska försöka sätta mig in i era svar och komma framåt och skriver här om fler frågor dyker upp.

Visa signatur

Macbook Pro 14"
10Gb internet 🙌