diff -Nur --no-dereference smeserver-wireguard-1.0.old/root/etc/e-smith/db/configuration/migrate/wireguard smeserver-wireguard-1.0/root/etc/e-smith/db/configuration/migrate/wireguard
--- smeserver-wireguard-1.0.old/root/etc/e-smith/db/configuration/migrate/wireguard 2021-10-26 23:15:10.000000000 -0400
+++ smeserver-wireguard-1.0/root/etc/e-smith/db/configuration/migrate/wireguard 2021-10-27 17:28:48.614000000 -0400
@@ -18,7 +18,7 @@
my $minimum=16;
my $maximum=32;
my $x = $minimum + int(rand($maximum - $minimum));
-$DB->set_prop('wg-quick@wg0', 'ip', "172.$x.0.0") ;
+$DB->set_prop('wg-quick@wg0', 'ip', "172.$x.0.1") ;
}
}
diff -Nur --no-dereference smeserver-wireguard-1.0.old/createlink smeserver-wireguard-1.0/createlink
--- smeserver-wireguard-1.0.old/createlink 2021-10-25 23:38:29.000000000 -0400
+++ smeserver-wireguard-1.0/createlink 2021-10-27 21:20:46.985000000 -0400
@@ -69,5 +69,5 @@
));
-
+panel_link("wireguard", "manager");
diff -Nur --no-dereference smeserver-wireguard-1.0.old/root/etc/e-smith/db/configuration/migrate/wireguard smeserver-wireguard-1.0/root/etc/e-smith/db/configuration/migrate/wireguard
--- smeserver-wireguard-1.0.old/root/etc/e-smith/db/configuration/migrate/wireguard 2021-10-27 21:17:33.367000000 -0400
+++ smeserver-wireguard-1.0/root/etc/e-smith/db/configuration/migrate/wireguard 2021-10-27 21:18:24.898000000 -0400
@@ -6,7 +6,7 @@
$DB->set_prop('wg-quick@wg0', 'private', $value ) ;
}
# recreate public if empty or not the same
-$private=${'wg-quick@wg0'}{'private'};
+$private=$DB->get_prop('wg-quick@wg0', 'private') ;
$public=`/usr/bin/echo $private | /usr/bin/wg pubkey`;
chomp $public;
if ( ! defined ${'wg-quick@wg0'}{'public'} || ${'wg-quick@wg0'}{'public'} ne $public) {
diff -Nur --no-dereference smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/systemd/system-preset/49-koozali.preset/70wireguard smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/systemd/system-preset/49-koozali.preset/70wireguard
--- smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/systemd/system-preset/49-koozali.preset/70wireguard 1969-12-31 19:00:00.000000000 -0500
+++ smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/systemd/system-preset/49-koozali.preset/70wireguard 2021-06-28 03:17:15.000000000 -0400
@@ -0,0 +1,12 @@
+# wireguard specific configuration
+{
+$wg = $wireguard{status} || 'disabled';
+$wg0 = ${'wg-quick@wg0'}{status} || 'disabled';
+if ($wg0 eq 'enabled') {
+ $OUT .= "enable wg-quick\@wg0.service\n";
+} else {
+ $OUT .= "disable wg-quick\@wg0.service\n";
+}
+
+}
+
diff -Nur --no-dereference smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/systemd/system-preset/70wireguard smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/systemd/system-preset/70wireguard
--- smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/systemd/system-preset/70wireguard 2021-06-28 03:17:15.000000000 -0400
+++ smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/systemd/system-preset/70wireguard 1969-12-31 19:00:00.000000000 -0500
@@ -1,12 +0,0 @@
-# wireguard specific configuration
-{
-$wg = $wireguard{status} || 'disabled';
-$wg0 = ${'wg-quick@wg0'}{status} || 'disabled';
-if ($wg0 eq 'enabled') {
- $OUT .= "enable wg-quick\@wg0.service\n";
-} else {
- $OUT .= "disable wg-quick\@wg0.service\n";
-}
-
-}
-
diff -Nur --no-dereference smeserver-wireguard-1.0.old/createlink smeserver-wireguard-1.0/createlink
--- smeserver-wireguard-1.0.old/createlink 2021-10-27 21:37:41.284000000 -0400
+++ smeserver-wireguard-1.0/createlink 2021-10-27 21:38:21.164000000 -0400
@@ -33,7 +33,7 @@
));
event_services($event, qw(
masq restart
- 'wg-quick@wg0' restart
+ wg-quick@wg0 restart
));
event_link("wireguard-network", $event, "30");
@@ -44,7 +44,7 @@
/etc/wireguard/server_public.key
));
event_services($event, qw(
- 'wg-quick@wg0' restart
+ wg-quick@wg0 restart
));
#wireguard-user-create
@@ -65,7 +65,7 @@
/etc/wireguard/server_public.key
));
event_services($event, qw(
- 'wg-quick@wg0' restart
+ wg-quick@wg0 restart
));
diff -Nur --no-dereference smeserver-wireguard-1.0.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/wireguard smeserver-wireguard-1.0/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/wireguard
--- smeserver-wireguard-1.0.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/wireguard 2021-10-26 23:15:11.000000000 -0400
+++ smeserver-wireguard-1.0/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/wireguard 2021-10-27 21:41:45.296000000 -0400
@@ -239,6 +239,10 @@
You can not alter the server ip, mask, private and public key as there are already some clients configured.
+
+ NO_CONF
+ No configured client
+
diff -Nur --no-dereference smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/wireguard/wg0.conf/10interface smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/wireguard/wg0.conf/10interface
--- smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/wireguard/wg0.conf/10interface 2021-06-28 04:41:57.000000000 -0400
+++ smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/wireguard/wg0.conf/10interface 2021-10-27 17:41:12.223000000 -0400
@@ -4,7 +4,6 @@
PrivateKey = {${'wg-quick@wg0'}{private}}
# this should be added to masq with correct interfaces
-#eth0 should be rempalced by external interface if available or internal
-#PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
-#PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
+PostUp = iptables -I FORWARD -i %i -j ACCEPT; iptables -I FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o {$outernet = ($SystemMode eq "serveronly") ? $InternalInterface{Name} : $ExternalInterface{Name}; return $InternalInterface{Name} } -j MASQUERADE
+PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o {$outernet = ($SystemMode eq "serveronly") ? $InternalInterface{Name} : $ExternalInterface{Name}; return $InternalInterface{Name} } -j MASQUERADE
diff -Nur --no-dereference smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/wireguard/wg0.conf/50usersPeers smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/wireguard/wg0.conf/50usersPeers
--- smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/wireguard/wg0.conf/50usersPeers 2021-06-28 04:46:01.000000000 -0400
+++ smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/wireguard/wg0.conf/50usersPeers 2021-10-27 17:41:12.429000000 -0400
@@ -1,33 +1,36 @@
{
-$OUT = "";
+use esmith::AccountsDB;
-return;
-my $wg = esmith::ConfigDB->open_ro('/etc/e-smith/db/wireguard') or return "#no peers";
-# for each user
+my $wg = esmith::ConfigDB->open_ro('/home/e-smith/db/wireguard');
my $accounts = esmith::AccountsDB->open_ro;
-for my $user ( $accounts->get_all_by_prop(type => 'wg0') ) {
+
+# for each user
+my @users = ( $accounts->users );
+push(@users, $accounts->get('admin'));
+for my $user ( @users ) {
my $username = $user->key;
+ my $count = 0;
for my $cnx ( $wg->get_all_by_prop(user => $username) ) {
+ $count++;
my $public = $cnx->prop('public');
- my $ip = $cnx->prop('ip');
+ my $ip = $cnx->key;
my $info = $cnx->prop('info');
+ my $status = $cnx->prop('status') || "enabled";
+ if ( $status eq "disabled" ) {
+ $OUT .= "\n# $username : $info DISABLED (PublicKey = $public ; AllowedIPs = $ip)\n";
+ next;
+ }
-# wireguard
-#private;public;ips;info#private;public;ips;info
-#private and public is base64 : +/= could be in it
-#ips can be v4 or v6 with subnet ./:,
-#info could have letters, digit and space
-# to separate multiple #
-
- $OUT .= "
+ $OUT .= "
[Peer]
# $username : $info
PublicKey = $public
AllowedIPs = $ip\n";
- }
+
+ }
+ $OUT .= "# no entry for user $username\n" if $count <1;
}
}
-
diff -Nur --no-dereference smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/wireguard/wg0.conf/60serversPeers smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/wireguard/wg0.conf/60serversPeers
--- smeserver-wireguard-1.0.old/root/etc/e-smith/templates/etc/wireguard/wg0.conf/60serversPeers 2021-06-08 03:56:43.000000000 -0400
+++ smeserver-wireguard-1.0/root/etc/e-smith/templates/etc/wireguard/wg0.conf/60serversPeers 1969-12-31 19:00:00.000000000 -0500
@@ -1,3 +0,0 @@
-
-#TODO
-