forked from mirrors/amnezia-wg-easy
introduce WG_DEFAULT_ADDRESS_RANGE (CIDR notation)
This PR allows the use of Address Ranges using the CIDR notation. To make it backward compatible, i introduced a new env variable WG_DEFAULT_ADDRESS_RANGE (defaults to the previous default of 24). This allows the usage of smaller subnets (or possibly larger; but i didn't test that due to restrictions on my network). Client IPs will be calculated with correct IP addresses instead of making assumptions of the address space.
This commit is contained in:
parent
3a4564a508
commit
577af9947d
7 changed files with 33 additions and 8 deletions
|
@ -1,5 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
const ip = require('ip');
|
||||
|
||||
const { release } = require('./package.json');
|
||||
|
||||
module.exports.RELEASE = release;
|
||||
|
@ -13,14 +15,20 @@ module.exports.WG_PORT = process.env.WG_PORT || 51820;
|
|||
module.exports.WG_MTU = process.env.WG_MTU || null;
|
||||
module.exports.WG_PERSISTENT_KEEPALIVE = process.env.WG_PERSISTENT_KEEPALIVE || 0;
|
||||
module.exports.WG_DEFAULT_ADDRESS = process.env.WG_DEFAULT_ADDRESS || '10.8.0.x';
|
||||
module.exports.WG_DEFAULT_ADDRESS_RANGE = process.env.WG_DEFAULT_ADDRESS_RANGE || 24;
|
||||
module.exports.WG_DEFAULT_DNS = typeof process.env.WG_DEFAULT_DNS === 'string'
|
||||
? process.env.WG_DEFAULT_DNS
|
||||
: '1.1.1.1';
|
||||
module.exports.WG_ALLOWED_IPS = process.env.WG_ALLOWED_IPS || '0.0.0.0/0, ::/0';
|
||||
|
||||
module.exports.WG_SUBNET = ip.subnet(module.exports.WG_DEFAULT_ADDRESS.replace('x', '1'), `255.255.255.${256 - 2 ** (32 - module.exports.WG_DEFAULT_ADDRESS_RANGE)}`);
|
||||
module.exports.WG_SERVER_ADDRESS = module.exports.WG_SUBNET.firstAddress;
|
||||
module.exports.WG_CLIENT_FIRST_ADDRESS = ip.toLong(module.exports.WG_SERVER_ADDRESS) + 1;
|
||||
module.exports.WG_CLIENT_LAST_ADDRESS = ip.toLong(module.exports.WG_SUBNET.lastAddress) - 1; // Exclude the broadcast address
|
||||
|
||||
module.exports.WG_PRE_UP = process.env.WG_PRE_UP || '';
|
||||
module.exports.WG_POST_UP = process.env.WG_POST_UP || `
|
||||
iptables -t nat -A POSTROUTING -s ${module.exports.WG_DEFAULT_ADDRESS.replace('x', '0')}/24 -o ${module.exports.WG_DEVICE} -j MASQUERADE;
|
||||
iptables -t nat -A POSTROUTING -s ${module.exports.WG_SERVER_ADDRESS}/${module.exports.WG_DEFAULT_ADDRESS_RANGE} -o ${module.exports.WG_DEVICE} -j MASQUERADE;
|
||||
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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue