Aller au contenu

Réseau - configuration d'une machine en router et passerelle pour internet

Principe

  • Une machine "router" avec 2 réseau :
  • enp0s3 = réseau NAT VirtualBox pour l'accès à internet
  • enp0s8 = réseau privé hôte VirtualBox ( IP : 192.168.159.1 )
  • Une machine "vm-1" avec 1 seul réseau :
  • enp0s3 = réseau privé hôte VirtualBox ( IP : 192.168.159.10 (statique) / 192.168.159.50 (DHCP))

Côté router

Configuration de l'IP statique

Dans /etc/network/interfaces :

auto enp0s8
iface enp0s8 inet static
  address 192.168.159.1
  netmask 255.255.255.0
# redémarrage réseau
sudo systemctl networking restart

# contrôle IP
ip address

Activation du routage

# Activer le routage IPv4 de manière persistante
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.d/99-custom.conf > /dev/null

# Appliquer les paramètres
sudo sysctl --system

Configuration du pare-feu et du NAT

# 1. Tout bloquer par défaut
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP

# 2. Autoriser les connexions établies et relatives
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# 3. Autoriser le trafic local (loopback)
sudo iptables -A INPUT -i lo -j ACCEPT

# 4. Autoriser NAT LAN → Internet
sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE

# Pour vérifier 
sudo iptables -L FORWARD -v -n

# Pour sauvegarder la configuration iptables
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
sudo systemctl status netfilter-persistent

Configuration d'un serveur DHCP (optionnel)

Dans /etc/default/isc-dhcp-server :

# Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server)

# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
#DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf

# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPDv4_PID=/var/run/dhcpd.pid
#DHCPDv6_PID=/var/run/dhcpd6.pid

# Additional options to start dhcpd with.
#   Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#   Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="enp0s8"
INTERFACESv6=""

Dans /etc/dhcp/dhcpd.conf :

option domain-name "vbox.local";
option domain-name-servers 1.1.1.1, 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
subnet 192.168.159.0 netmask 255.255.255.0 {
  range 192.168.159.50 192.168.159.250;
  option routers 192.168.159.1;
}

Côté vm-1

Avec enp0s3 = 192.168.159.1/24 = réseau privé hôte

Dans /etc/network/interfaces, on configure comme suit pour IP statique :

auto enp0s3
iface enp0s3 inet static
  address 192.168.159.10
  netmask 255.255.255.0
  gateway 192.168.159.1

...et comme suit en DHCP :

auto enp0s3
iface enp0s3 inet dhcp