Wireguard sur OpenWrt

De Wiki de Mémoire Vive
Aller à la navigation Aller à la recherche

Nous partons d'une installation existante de OpenWrt sur Pi3, documentée sur présent Wiki.

OBJECTIF : permettre à un PC connecté en wifi au routeur puisse accéder à un réseau distant 192.168.2.xx via un VPN.

L'objectif est de mettre en oeuvre un tunnel entre ce routeur et un serveur VPN MV. Ce routeur jouant le rôle de client VPN.

Installation des modules wg

Avec l'interface graphique,

Allez dans "System" > "Software".

Cliquez sur "Update lists" pour mettre à jour les paquets.

Dans la barre de recherche, tapez wireguard et installez les paquets suivants :

- luci-proto-wireguard → Ajoute WireGuard comme protocole réseau dans LuCI

=> wireguard-tools → Outils en ligne de commande

=> kmod-wireguard → Module du noyau

Une fois installé, redémarrez le routeur pour appliquer les changements.

Mise en oeuvre

Configurer WireGuard via LuCI :

- Aller dans Network > Interfaces.

- Cliquer sur Add new interface.

- Lui donner un nom (wg0) et choisir WireGuard VPN comme protocole.

- pour la configuration on peut utiliser un serveur WGDashboard ou autre, et récupérer un fichier de configuration, à importer

- ensuite on définit la route sortante

- et on ajoute une règle pour autoriser le trafic dans le firewall

1) le fichier network

cat network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdff:439c:8c73::/48'
        option packet_steering '1'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.2'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.1.1'
        list dns '8.8.8.8'

config interface 'WIFI'
        option proto 'static'
        option ipaddr '192.168.3.1'
        option netmask '255.255.255.0'
        list dns '8.8.8.8'
        option device 'phy0-ap0'

config device
        option name 'phy0-ap0'

config route
        option interface 'WIFI'
        option target '192.168.1.0/24'
        option gateway '192.168.1.1'

config interface 'wg0'
        option proto 'wireguard'
        option private_key '6GBgppEmExBIyy6a62cswBwWkIaTM1e/hgUa8zlk2mw='
        list addresses '10.0.0.4/32'
        list dns '1.1.1.1'

config wireguard_wg0
        option description 'Imported peer configuration'
        option public_key 'YdGXdZJv7uC+HJc6BPGTqRsnF1//rBSyxl2IYqzOd0s='
        option persistent_keepalive '21'
        option endpoint_host '88.136.157.51'
        option endpoint_port '51823'
        list allowed_ips '192.168.2.0/24'

config route
        option interface 'wg0'
        option target '192.168.2.0/24'

2) le fichier firewall

 cat firewall

config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option synflood_protect '1'

config zone
        option name 'lan'
        list network 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option masq '1'

config zone
        option name 'wifi'
        list network 'WIFI'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option masq '1'

config forwarding
        option src 'wifi'
        option dest 'lan'

config zone
        option name 'wireguard'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option masq '1'
        list network 'wg0'

config forwarding
        option src 'wifi'
        option dest 'wireguard'

Le reste est inchangé.