Le but de cette procédure est de pouvoir ouvrir des ports en entrée sur une connexion Starlink via un serveur Wireguard externe.
Dans cet exemple, un vps chez OVH sera utilisé, mais il n'y aucune affiliation avec eux.
Vous devez également avoir un firewall comme OPNSense sur votre connexion Starlink qui servira déjà de firewall évidemment et ensuite permettra de faire du nat uniquement sur les ports souhaités.
Exemple de configuration d'un firewall OPNSense avec Starlink : https://wiki.abyssproject.net/fr/starlink/connecting-starlink-opnsense
Dans cet exemple, nous utilisons un VPS Starter chez OVH sous Debian 11 : https://www.ovh.com/fr/order/vps/?v=3#/vps/
Installez Wireguard avec le script de Nyr qui est disponible ici :
wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh
A la fin, le fichier conf sera créé avec toutes les informations nécessaires :
root@vps:~# cat opnsense.conf
[Interface]
Address = 10.7.0.2/24
DNS = 1.1.1.1, 1.0.0.1
PrivateKey = XXX
[Peer]
PublicKey = XXX
PresharedKey = XXX
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = XXX:51820
PersistentKeepalive = 25
root@vps:~#
Allez d'abord dans System -> Firmware -> Plugins et installez le plugin os-wireguard comme ceci :
Maintenant, allez dans VPN -> WireGuard -> Endpoint et ajoutez un endpoint :
Ajoutez le endpoint comme ceci avec les informations de la section [Peer] du fichier de configuration de la section précédente :
Allez maintenant dans l'onglet Local et cliquez sur le + :
ajoutez l'interface locale comme ceci avec les informations de la section [Interface] du fichier de configuration de la section précédente, pensez-bien à désactiver les routes :
Activez maintenant le service WireGuard depuis l'interface General :
Attendez quelques secondes et allez dans List Configuration pour vérifier que des données sont échangées :
Allez dans Interfaces -> Assignments et assignez l'interface wg1 sur un port optionnel :
Allez dans Interfaces -> Wireguard/opt1 -> Activez l'interface sans aucune configuration IP :
Allez dans System -> Gateways -> Single et ajoutez une passerelle :
Configurez la passerelle comme ceci, il faut bien utiliser l'interface Wireguard créée dans le chapitre précédent et indiquer la passerelle en Far Gateway :
Pour autoriser la communication dans le tunnel, créez la règle suivante :
Créez un alias WireguardClients qui contiendra les hôtes qui doivent sortir sur Internet via le tunnel Wireguard :
Créez ensuite les deux règles LAN suivante, la 1ère permettra aux clients dans le groupe de sortir via le tunnel et la 2ème fera sortir tout le reste via le WAN :
Allez dans Firewall -> NAT -> Outbound et passez le firewall en Hybrid outbound NAT rule Generation.
Créez ensuite les règles manuelles suivantes :
Allez dans Firewall -> NAT -> Port Forward et créez les règles dont vous avez besoin selon le format suivant :
Allez dans Firewall -> Rules -> Wireguard et créez les règles correspondantes aux Port Forward que vous avez faits :
Nous sommes maintenant revenus sur votre VPS et non plus l'OPNSense.
Activez la redirection de port dans Debian avec la commande suivante :
sysctl -w net.ipv4.ip_forward=1
Activez le forward permanent en ajoutant la ligne suivante dans /etc/sysctl.conf
:
net.ipv4.ip_forward = 1
Redirigez ensuite les ports avec les commandes suivantes (adaptez selon vos ouvertures précédentes) :
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.7.0.2:443
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.7.0.2:80
iptables -t nat -A PREROUTING -p udp --dport 1194 -j DNAT --to-destination 10.7.0.2:1194
iptables -t nat -A PREROUTING -p udp --dport 514 -j DNAT --to-destination 10.7.0.2:1194
iptables -t nat -A POSTROUTING -j MASQUERADE
Installez le paquet suivant :
apt-get install iptables-persistent
Sauvegardez ensuite les règles avec la commande suivante :
iptables-save > /etc/iptables/rules.v4
Vous pourrez ensuite vérifier l'ouverture de vos ports avec un outil comme https://www.yougetsignal.com/tools/open-ports/ :