mirror of https://github.com/wg-easy/wg-easy
9 changed files with 178 additions and 18 deletions
@ -1,31 +1,29 @@ |
|||||
'use strict'; |
'use strict'; |
||||
|
|
||||
const { release } = require('./package.json'); |
const { release } = require('./package.json'); |
||||
|
const path = require('path'); |
||||
|
const dirFullPath = path.resolve(__dirname); |
||||
|
|
||||
module.exports.RELEASE = release; |
module.exports.RELEASE = release; |
||||
module.exports.PORT = process.env.PORT || 51821; |
module.exports.PORT = process.env.PORT || 51821; |
||||
module.exports.WEBUI_HOST = process.env.WEBUI_HOST || '0.0.0.0'; |
module.exports.WEBUI_HOST = process.env.WEBUI_HOST || '0.0.0.0'; |
||||
module.exports.PASSWORD = process.env.PASSWORD; |
module.exports.PASSWORD = process.env.PASSWORD || ''; |
||||
module.exports.WG_PATH = process.env.WG_PATH || '/etc/wireguard/'; |
module.exports.WG_PATH = process.env.WG_PATH || '/etc/wireguard/'; |
||||
module.exports.WG_DEVICE = process.env.WG_DEVICE || 'eth0'; |
module.exports.WG_DEVICE = process.env.WG_DEVICE || 'ens3'; |
||||
module.exports.WG_HOST = process.env.WG_HOST; |
module.exports.WG_HOST = process.env.WG_HOST || 'oracle-test.duckdns.org'; |
||||
module.exports.WG_PORT = process.env.WG_PORT || 51820; |
module.exports.WG_PORT = 51820; |
||||
module.exports.WG_MTU = process.env.WG_MTU || null; |
module.exports.WG_MTU = process.env.WG_MTU || 1412; |
||||
module.exports.WG_PERSISTENT_KEEPALIVE = process.env.WG_PERSISTENT_KEEPALIVE || 0; |
module.exports.WG_PERSISTENT_KEEPALIVE = process.env.WG_PERSISTENT_KEEPALIVE || 25; |
||||
module.exports.WG_DEFAULT_ADDRESS = process.env.WG_DEFAULT_ADDRESS || '10.8.0.x'; |
module.exports.WG_DEFAULT_ADDRESS = process.env.WG_DEFAULT_ADDRESS || '10.250.1.x'; |
||||
module.exports.WG_DEFAULT_DNS = typeof process.env.WG_DEFAULT_DNS === 'string' |
module.exports.WG_DEFAULT_DNS = typeof process.env.WG_DEFAULT_DNS === 'string' |
||||
? process.env.WG_DEFAULT_DNS |
? process.env.WG_DEFAULT_DNS |
||||
: '1.1.1.1'; |
: '10.250.0.2'; |
||||
module.exports.WG_ALLOWED_IPS = process.env.WG_ALLOWED_IPS || '0.0.0.0/0, ::/0'; |
module.exports.WG_ALLOWED_IPS = process.env.WG_ALLOWED_IPS || '10.250.0.0/22, 10.254.1.0/24'; |
||||
|
|
||||
module.exports.WG_PRE_UP = process.env.WG_PRE_UP || ''; |
module.exports.WG_PRE_UP = process.env.WG_PRE_UP || ''; |
||||
module.exports.WG_POST_UP = process.env.WG_POST_UP || ` |
// module.exports.WG_POST_UP = '/app/wg0-post-up.sh';
|
||||
iptables -t nat -A POSTROUTING -s ${module.exports.WG_DEFAULT_ADDRESS.replace('x', '0')}/24 -o ${module.exports.WG_DEVICE} -j MASQUERADE; |
module.exports.WG_POST_UP = path.resolve(__dirname, './wgsh/wg0-post-up.sh'); |
||||
iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT; |
|
||||
iptables -A FORWARD -i wg0 -j ACCEPT; |
|
||||
iptables -A FORWARD -o wg0 -j ACCEPT; |
|
||||
`.split('\n').join(' ');
|
|
||||
|
|
||||
module.exports.WG_PRE_DOWN = process.env.WG_PRE_DOWN || ''; |
module.exports.WG_PRE_DOWN = path.resolve(__dirname, './wgsh/wg0-pre-down.sh'); |
||||
module.exports.WG_POST_DOWN = process.env.WG_POST_DOWN || ''; |
module.exports.WG_POST_DOWN = process.env.WG_PRE_DOWN || ''; |
||||
module.exports.LANG = process.env.LANG || 'en'; |
module.exports.LANG = process.env.LANG || 'en'; |
||||
|
|||||
@ -0,0 +1,9 @@ |
|||||
|
const path = require('path'); |
||||
|
|
||||
|
// Relative path to the file
|
||||
|
const relativePath = './app/wg0-post-up.sh'; |
||||
|
|
||||
|
// Resolve the full path
|
||||
|
const fullPath = path.resolve(__dirname, relativePath); |
||||
|
|
||||
|
console.log('Full path of ./app/wg0-post-up.sh:', fullPath); |
||||
@ -0,0 +1,25 @@ |
|||||
|
#!/bin/bash |
||||
|
set +e |
||||
|
|
||||
|
IPT="/sbin/iptables" |
||||
|
|
||||
|
IN_FACE="ens3" # NIC connected to the internet |
||||
|
WG_FACE="wg1" # WG NIC |
||||
|
SUB_NET="10.250.1.0/24" # WG IPv4 sub/net aka CIDR |
||||
|
WG_PORT="51820" # WG udp port |
||||
|
#SUB_NET_6="fd42:42:42::/64" # WG IPv6 sub/net |
||||
|
|
||||
|
# IPv4 rules # |
||||
|
$IPT -t nat -D POSTROUTING -s 0.0.0.0/1 -o $IN_FACE -j MASQUERADE |
||||
|
$IPT -D FORWARD -i $WG_FACE -j ACCEPT |
||||
|
$IPT -D FORWARD -o $WG_FACE -j ACCEPT |
||||
|
|
||||
|
# $IPT -D OUTPUT -o $WG_FACE -j ACCEPT |
||||
|
# $IPT -D FORWARD -i $IN_FACE -o $WG_FACE -j ACCEPT |
||||
|
# $IPT -D FORWARD -i $WG_FACE -o $IN_FACE -j ACCEPT |
||||
|
# $IPT -D INPUT -i $IN_FACE -p udp --dport $WG_PORT -j ACCEPT |
||||
|
|
||||
|
ip route del 10.250.1.0/24 via 10.250.1.1 dev wg0 table wg priority 1 |
||||
|
ip route del 10.254.1.0/24 via 10.254.1.1 dev ens3 table wg priority 2 |
||||
|
|
||||
|
set -e |
||||
@ -0,0 +1,15 @@ |
|||||
|
#!/bin/bash |
||||
|
set +e |
||||
|
|
||||
|
IPT="/sbin/iptables" |
||||
|
|
||||
|
IN_FACE="ens3" # NIC connected to the internet |
||||
|
WG_FACE="wg1" # WG NIC |
||||
|
SUB_NET="10.250.1.0/24" # WG IPv4 sub/net aka CIDR |
||||
|
WG_PORT="51820" # WG udp port |
||||
|
|
||||
|
$IPT -t nat -I POSTROUTING 1 -s $SUB_NET -o $WG_FACE -j MASQUERADE |
||||
|
$IPT -I FORWARD 1 -i $WG_FACE -o wg0 -j ACCEPT #for internet |
||||
|
$IPT -I FORWARD 1 -i wg0 -o $WG_FACE -j ACCEPT #for internet |
||||
|
wg set wg0 fwmark 51820 |
||||
|
set -e |
||||
@ -0,0 +1,28 @@ |
|||||
|
#!/bin/bash |
||||
|
set +e |
||||
|
|
||||
|
IPT="/sbin/iptables" |
||||
|
|
||||
|
IN_FACE="ens3" # NIC connected to the internet |
||||
|
WG_FACE="wg1" # WG NIC |
||||
|
SUB_NET="10.250.1.0/24" # WG IPv4 sub/net aka CIDR |
||||
|
WG_PORT="51820" # WG udp port |
||||
|
#SUB_NET_6="fd42:42:42::/64" # WG IPv6 sub/net |
||||
|
|
||||
|
# IPv4 rules # |
||||
|
$IPT -t nat -D POSTROUTING -s $SUB_NET -o $WG_FACE -j MASQUERADE |
||||
|
$IPT -D FORWARD -i $WG_FACE -o wg0 -j ACCEPT #for internet |
||||
|
$IPT -D FORWARD -i wg0 -o $WG_FACE -j ACCEPT #for internet |
||||
|
|
||||
|
# $IPT -t nat -D POSTROUTING -s 0.0.0.0/1 -o $IN_FACE -j MASQUERADE |
||||
|
# $IPT -D OUTPUT -o $WG_FACE -j ACCEPT |
||||
|
# $IPT -D FORWARD -i $WG_FACE -j ACCEPT |
||||
|
# $IPT -D FORWARD -o $WG_FACE -j ACCEPT |
||||
|
# $IPT -D FORWARD -i $IN_FACE -o $WG_FACE -j ACCEPT |
||||
|
# $IPT -D FORWARD -i $WG_FACE -o $IN_FACE -j ACCEPT |
||||
|
# $IPT -D INPUT -i $IN_FACE -p udp --dport $WG_PORT -j ACCEPT |
||||
|
|
||||
|
# ip route del 10.250.1.0/24 via 10.250.1.1 dev wg0 table wg priority 1 |
||||
|
# ip route del 10.254.1.0/24 via 10.254.1.1 dev ens3 table wg priority 2 |
||||
|
|
||||
|
set -e |
||||
@ -0,0 +1,24 @@ |
|||||
|
#!/bin/bash |
||||
|
set +e |
||||
|
|
||||
|
IPT="/sbin/iptables" |
||||
|
IPT6="/sbin/ip6tables" |
||||
|
|
||||
|
IN_FACE="ens3" # NIC connected to the internet |
||||
|
WG_FACE="wg0" # WG NIC |
||||
|
SUB_NET="10.250.1.0/24" # WG IPv4 sub/net aka CIDR |
||||
|
#SUB_NET_6="fd42:42:42::/64" # WG IPv6 sub/net |
||||
|
|
||||
|
# IPv4 rules # |
||||
|
$IPT -t nat -D POSTROUTING -s $SUB_NET -o $IN_FACE -j MASQUERADE |
||||
|
$IPT -D FORWARD -i $IN_FACE -o $WG_FACE -j ACCEPT |
||||
|
$IPT -D FORWARD -i $WG_FACE -o $IN_FACE -j ACCEPT |
||||
|
# ip rule del from all lookup $WG_TABLE pref 10 |
||||
|
|
||||
|
# IPv6 rules (uncomment) # |
||||
|
# $IPT6 -t nat -D POSTROUTING -s $SUB_NET_6 -o $IN_FACE -j MASQUERADE |
||||
|
# $IPT6 -D INPUT -i $WG_FACE -j ACCEPT |
||||
|
# $IPT6 -D FORWARD -i $IN_FACE -o $WG_FACE -j ACCEPT |
||||
|
# $IPT6 -D FORWARD -i $WG_FACE -o $IN_FACE -j ACCEPT |
||||
|
|
||||
|
set -e |
||||
@ -0,0 +1,27 @@ |
|||||
|
#!/bin/bash |
||||
|
set +e |
||||
|
|
||||
|
IPT="/sbin/iptables" |
||||
|
IPT6="/sbin/ip6tables" |
||||
|
|
||||
|
IN_FACE="ens3" # NIC connected to the internet |
||||
|
WG_FACE="wg0" # WG NIC |
||||
|
SUB_NET="10.250.1.0/24" # WG IPv4 sub/net aka CIDR |
||||
|
#SUB_NET_6="fd42:42:42::/64" # WG IPv6 sub/net |
||||
|
WG_PORT="61820" # WG udp port |
||||
|
WG_TABLE='10' |
||||
|
|
||||
|
# IPv4 rules # |
||||
|
$IPT -t nat -D POSTROUTING -s $SUB_NET -o $IN_FACE -j MASQUERADE |
||||
|
$IPT -D FORWARD -i $IN_FACE -o $WG_FACE -j ACCEPT |
||||
|
$IPT -D FORWARD -i $WG_FACE -o $IN_FACE -j ACCEPT |
||||
|
$IPT -D INPUT -i $IN_FACE -p udp --dport $WG_PORT -j ACCEPT |
||||
|
ip rule del from all lookup $WG_TABLE pref 10 |
||||
|
|
||||
|
# IPv6 rules (uncomment) # |
||||
|
# $IPT6 -t nat -D POSTROUTING -s $SUB_NET_6 -o $IN_FACE -j MASQUERADE |
||||
|
# $IPT6 -D INPUT -i $WG_FACE -j ACCEPT |
||||
|
# $IPT6 -D FORWARD -i $IN_FACE -o $WG_FACE -j ACCEPT |
||||
|
# $IPT6 -D FORWARD -i $WG_FACE -o $IN_FACE -j ACCEPT |
||||
|
|
||||
|
set -e |
||||
@ -0,0 +1,29 @@ |
|||||
|
#!/bin/bash |
||||
|
set +e |
||||
|
|
||||
|
IPT="/sbin/iptables" |
||||
|
IPT6="/sbin/ip6tables" |
||||
|
|
||||
|
IN_FACE="ens3" # NIC connected to the internet |
||||
|
WG_FACE="wg0" # WG NIC |
||||
|
SUB_NET="10.250.1.0/24" # WG IPv4 sub/net aka CIDR |
||||
|
# SUB_NET_6="" # Change this according |
||||
|
WG_PORT="51820" # WG udp port |
||||
|
WG_TABLE='10' |
||||
|
|
||||
|
## IPv4 ## working with single tunnel |
||||
|
$IPT -t nat -I POSTROUTING 1 -s $SUB_NET -o $IN_FACE -j MASQUERADE |
||||
|
$IPT -I FORWARD 1 -i $IN_FACE -o $WG_FACE -j ACCEPT #for internet |
||||
|
$IPT -I FORWARD 1 -i $WG_FACE -o $IN_FACE -j ACCEPT #for internet |
||||
|
$IPT -I INPUT 1 -i $IN_FACE -p udp --dport $WG_PORT -j ACCEPT # for incoming connection |
||||
|
$IPT -I INPUT 1 -i $IN_FACE -p tcp --dport 51821 -j ACCEPT |
||||
|
# $IPT -I INPUT 1 -i $WG_FACE -p tcp --dport 51821 -j ACCEPT |
||||
|
wg set wg0 fwmark 51820 |
||||
|
|
||||
|
## IPv6 (Uncomment) ## |
||||
|
# $IPT6 -t nat -I POSTROUTING 1 -s $SUB_NET_6 -o $IN_FACE -j MASQUERADE |
||||
|
# $IPT6 -I INPUT 1 -i $WG_FACE -j ACCEPT |
||||
|
# $IPT6 -I FORWARD 1 -i $IN_FACE -o $WG_FACE -j ACCEPT |
||||
|
# $IPT6 -I FORWARD 1 -i $WG_FACE -o $IN_FACE -j ACCEPT |
||||
|
|
||||
|
set -e |
||||
Loading…
Reference in new issue