Bygg en gateway för ditt privata nätverk

Inledning

Virtuella nätverk i sig är bara en transportfunktion för dina nätverkspaket, de blir en kraftfull infrastrukturkomponent först när du själv fyller dem med innehåll och funktioner. De virtuella nätverken helt saknar kommunikation med omvärlden när du skapar dem, för att du ska kunna ansluta till internet från servrar som bara har privata IP-adresser så krävs det att du sätter in någon form av gateway i ditt virtuella nätverk.

Vi bygger en gateway med hjälp av en vanlig Debian server, men du kan såklart använda en Windowsservrer eller en färdig produkt som pfSense eller någon kommersiell produkt.

NAT - Network Adress Translation

Tekniken vi använder för att ge dina servrar åtkomst till internet kallas NAT (Läs mer på Wikipedia). Konceptet är att låta dina servrar använda din gateways internetanslutning för att nå internet. Konfigurationen är ganska rättfram och inte särskilt komplicerad.

Vi förutsätter att du har en nyinstallerad Debian 8 server med minst 2 stycken nätverkskort, det ena anslutet till internet och det andra på ditt lokala nätverk.

Börja med att slå på IPv4 forwarding på gateway-maskinen.

sysctl -w net.ipv4.ip_forward=1

För att gatewayen ska utföra NAT behövs några Iptables-regler, lägg in dessa i /etc/rc.local så körs de även om maskinen startas om. Viktigt är att du lägger in reglerna ovanför sista raden.

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

När du gjort det så är gatewayen klar att användas, ta bort/kommentera ut allt som rör eth0 i nätverkskonfigurationen på servern som bara ska ha en privat adress, konfigurationen bör se ut ungefär som nedan.

iface eth1 inet static
        address 10.1.1.10
        netmask 255.255.255.0
        gateway 10.1.1.1

Om allt är rätt så kommer du nu kunna nå internet från din server på "insidan."

root@networkclient1:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=9.11 ms

DHCP - Dynamic Host Configuration Protocol

För dhcp i det interna nätverket använder vi isc-dhcp-server.

apt-get install isc-dhcp-server

För att kunna konfigurera dhcpd så behöver du ha koll på en del detaljer kring infratrukturen.

DNS-servrar
FBG: 79.99.4.100 79.99.4.101
Sthlm: 195.20.206.80 195.20.206.81

De flesta inställningarna är självförklarande och du kan lämna dem som de är, det som behöver ändras har vi gjort exempel på nedan.

# DNS-servrarna behöver ändras beroende på datacenter
option domain-name "localdomain.tld";
option domain-name-servers 79.99.4.100 79.99.4.101;

# Troligen har du bara en DHCP-server
authoritative;

# För att undvika att dhcpd klagar så lägger vi till subnätet som den publika adressen finns på, vi ska dock inte ha någon mer konfiguration där.
subnet 109.74.10.64 netmask 255.255.255.255 {
}

# En väldigt enkel subnätskonfiguration
subnet 10.1.1.0 netmask 255.255.255.0 {
  range 10.1.1.10 10.1.1.20;
  option routers 10.1.1.1;
}

Vi har sedan tidigare gateway på 10.1.1.1, det anger du enligt nedan.

option routers 10.1.1.1

Nu återstår bara att ändra konfigurationen på servern som ska använda DHCP. /etc/network/interfaces bör se ut som något enligt nedan.

auto lo eth0
allow-hotplug eth0
iface lo inet loopback

iface eth0 inet dhcp

Självklart så måste eth0 vara ditt privata nätverk. Om du startar om servern och följer syslog så bör du se något liknande nedan.

# tail -f /var/log/syslog
dhcpd: DHCPDISCOVER from 00:50:56:82:02:17 via eth1
dhcpd: DHCPOFFER on 10.1.1.11 to 00:50:56:82:02:17 (networkclient1) via eth1
dhcpd: DHCPREQUEST for 10.1.1.11 (10.1.1.1) from 00:50:56:82:02:17 (networkclient1) via eth1
dhcpd: DHCPACK on 10.1.1.11 to 00:50:56:82:02:17 (networkclient1) via eth1

Du bör säkra upp din gateway med hjälpa av iptables, en enkel guide finns här.

Hittar du inte det du söker?

Kontakta oss gärna för mer information. Vi hjälper dig att komma fram till den bästa lösningen för dina behov.

Skicka e-post Ring 0200-23 88 00