Een Private Network configureren op Ubuntu 16.04
Stap 1: Log in op uw VPS met SSH
U dient op uw VPS in te loggen met het SSH-protocol. Hiermee wordt toegang verkregen tot de CLI (command-line interface), waar we al het werk zullen doen.
Stap 2: Controleer de beschikbare netwerkadapters
Om een overzicht te krijgen van alle beschikbare netwerkadapters dient het volgende commando uitgevoerd te worden:
ip addr
Dit zal een output genereren dat er als volgt uitziet:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1d:d8:b7:49:3a brd ff:ff:ff:ff:ff:ff
inet 145.131.8.19/24 brd 145.131.8.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::21d:d8ff:feb7:493a/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:1d:d8:b7:49:3c brd ff:ff:ff:ff:ff:ff
Hieruit valt op te maken dat er drie adapters beschikbaar zijn, namelijk localhost, eth0 en eth1. Localhost is de machine zelf, eth0 is de primaire netwerkadapter waaraan uw WAN-IP is gekoppeld. Tot slot is eth1 de adapter die we zullen gebruiken om het lokale netwerk mee tot stand te brengen. Als hier meerdere netwerkadapters beschikbaar zijn (eth2, eth3, etc.), controleer dan in uw Mijn Argeweb-omgeving welke de juiste is. U kunt hiervoor het MAC-adres gebruiken.
Stap 3: Configureer de netwerkadapter
Op Ubuntu 16.04 is het noodzakelijk om de netwerkadapter toe te voegen aan de interface-configuratie. Om het relevante bestand aan te passen met de een tekstbewerker (vi) dient de volgende opdracht te worden opgegeven:
vi /etc/network/interfaces
In dit bestand dient het onderstaande toegevoegd te worden. U dient er wel rekening mee te houden dat het niet mogelijk is om hetzelfde IP-adress (IPADDR) in te stellen op meerdere apparaten binnen hetzelfde netwerk. Op de eerste VPS (hieronder) dient u dan ook het IP-adres 10.0.0.1 in te stellen, terwijl de tweede VPS bijvoorbeeld het IP-adres 10.0.0.2 kan krijgen.
auto eth1
iface eth1 inet static
address 10.0.0.1
netmask 255.255.255.0
Herstart vervolgens het netwerk op uw VPS door de volgende opdracht op te geven:
sudo /etc/init.d/networking restart
Check vervolgens opnieuw de beschikbare netwerkadapters met het commando ip addr om te zien of de eth1-netwerkadapter goed is ingesteld. Dit zou nu het volgende moeten laten zien:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1d:d8:b7:49:3a brd ff:ff:ff:ff:ff:ff
inet 145.131.8.19/24 brd 145.131.8.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::21d:d8ff:feb7:493a/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1d:d8:b7:49:3c brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 brd 10.0.0.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::21d:d8ff:feb7:493d/64 scope link
valid_lft forever preferred_lft forever
Als het resultaat er goed uitziet zou het nu mogelijk moeten zijn om succesvol een ping uit te voeren naar deze VPS vanaf een andere VPS die geconfigureerd is om deel te nemen aan het virtuele privénetwerk. Op de tweede VPS, welke bijvoorbeeld IP-adres 10.0.0.2 heeft gekregen, kunt u dit met de volgende opdracht testen:
ping 10.0.0.1
Stap 4: Configureer de firewall
Om een daadwerkelijke dataoverdracht tussen twee VPS’en binnen hetzelfde lokale netwerk mogelijk te maken, dient de iptables-firewall hiervoor geconfigureerd te worden. Hiervoor is het alleen nodig om het lokale IP-adres van de andere VPS toe te laten. Zo zal bijvoorbeeld op de eerste VPS (10.0.0.1) de onderstaande opdracht moeten worden gegeven om de tweede VPS (10.0.0.2) toe te kunnen laten:
iptables -I INPUT -s 10.0.0.2/32 -p tcp -m tcp -j ACCEPT
Het is ook mogelijk om een andere VPS slechts toegang tot specifieke porten te geven. Hieronder hebben we een volledig overzicht geplaatst van de verschillende manieren waarop dit gedaan kan worden. In het onderstaande overzicht wordt de firewall op de eerste VPS met IP-adres 10.0.0.1 ingesteld. Als dit juist andersom moet, pas dan het IP-adres in de onderstaande voorbeelden aan naar het correcte adres.
Om een specifieke port open te zetten:
iptables -I INPUT -s 10.0.0.2/32 -p tcp -m tcp --dport 3000 -j ACCEPT
Om meerdere specifieke porten open te zetten:
iptables -I INPUT -s 10.0.0.2/32 -p tcp -m multiport --dports 3000,4000,5000 -j ACCEPT
Om een portrange open te zetten:
iptables -I INPUT -s 10.0.0.2/32 -p tcp -m multiport --dports 3000:3010 -j ACCEPT
Stap 5: Sla de nieuwe iptables-regels op
Op Ubuntu 16.04 zullen de bovenstaande iptables-opdrachten niet standaard bewaard blijven en gaan bijvoorbeeld met een herstart van de server verloren. De meest eenvoudige manier om dit te voorkomen is door gebruik te maken van iptables-persistent. Deze kan worden geïnstalleerd met de volgende opdracht:
sudo apt-get install iptables-persistent
De bovenstaande regels blijven alleen actief in de huidige sessie. Zodra de firewall of VPS worden herstart zullen de regels niet langer actief zijn. Zorg er daarom voor dat de nieuwe configuratie wordt opgeslagen nadat de bovenstaande opdrachten zijn gegeven. Zo blijven deze ook na een herstart actief. Dit kan worden gedaan met de volgende opdracht:
iptables-save > /etc/iptables/rules.v4
Categorieën
Woordenlijst
De woordenlijst is een alfabetisch gerangschikte lijst met technische termen die in de artikelen voorkomen.