]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
wireguard.cgi: Implement a way to import a connection
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 29 Sep 2024 12:17:10 +0000 (14:17 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 22 Apr 2025 14:48:53 +0000 (16:48 +0200)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 files changed:
config/cfgroot/wireguard-functions.pl
doc/language_issues.en
doc/language_issues.es
doc/language_issues.fr
doc/language_issues.it
doc/language_issues.nl
doc/language_issues.pl
doc/language_issues.ru
doc/language_issues.tr
doc/language_missings
html/cgi-bin/wireguard.cgi
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl

index 8cc0861ed5837e5f68637ee263a2ca65ac3bf9f4..fe3abb7197382ebea6d1bd499c7d2b02727db457 100644 (file)
@@ -359,4 +359,128 @@ sub generate_peer_configuration($) {
        return join("\n", @conf);
 }
 
+sub parse_configuration($) {
+       my $fh = shift;
+
+       my %peer = ();
+
+       # Collect any errors
+       my @errormessages = ();
+
+       my $section = undef;
+       my $key = undef;
+       my $val = undef;
+
+       while (<$fh>) {
+               # Remove line breaks
+               chomp;
+
+               # Search for section headers
+               if ($_ =~ m/^\[(\w+)\]$/) {
+                       $section = $1;
+                       next;
+
+               # Search for key = value lines
+               } elsif ($_ =~ m/^(\w+)\s+=\s+(.*)$/) {
+                       # Skip anything before the first section header
+                       next unless (defined $section);
+
+                       # Store keys and values
+                       $key = $1;
+                       $val = $2;
+
+               # Skip any unhandled lines
+               } else {
+                       next;
+               }
+
+               # Interface section
+               if ($section eq "Interface") {
+                       # Address
+                       if ($key eq "Address") {
+                               if (&Network::check_ip_address($val)) {
+                                       $peer{'CLIENT_ADDRESS'} = $val;
+                               } else {
+                                       push(@errormessages, $Lang::tr{'invalid ip address'});
+                               }
+
+                       # PrivateKey
+                       } elsif ($key eq "PrivateKey") {
+                               if (&key_is_valid($val)) {
+                                       $peer{'PRIVATE_KEY'} = $val;
+                               } else {
+                                       push(@errormessages, $Lang::tr{'malformed private key'});
+                               }
+                       }
+
+               # Peer section
+               } elsif ($section eq "Peer") {
+                       # PublicKey
+                       if ($key eq "PublicKey") {
+                               if (&key_is_valid($val)) {
+                                       $peer{'PUBLIC_KEY'} = $val;
+                               } else {
+                                       push(@errormessages, $Lang::tr{'malformed public key'});
+                               }
+
+                       # PresharedKey
+                       } elsif ($key eq "PresharedKey") {
+                               if (&key_is_valid($val)) {
+                                       $peer{'PSK'} = $val;
+                               } else {
+                                       push(@errormessages, $Lang::tr{'malformed preshared key'});
+                               }
+
+                       # AllowedIPs
+                       } elsif ($key eq "AllowedIPs") {
+                               my @networks = split(/,/, $val);
+
+                               # Check if all networks are valid
+                               foreach my $network (@networks) {
+                                       unless (&Network::check_subnet($network)) {
+                                               push(@errormessages, $Lang::tr{'invalid network'} . " $network");
+                                       }
+                               }
+
+                               $peer{'REMOTE_SUBNETS'} = join(/, /, @networks);
+                       # Endpoint
+                       } elsif ($key eq "Endpoint") {
+                               my $address = $val;
+                               my $port = $DEFAULT_PORT;
+
+                               # Try to separate the port (if any)
+                               if ($val =~ m/^(.*):(\d+)$/) {
+                                       $address = $1;
+                                       $port    = $2;
+                               }
+
+                               # Check if we have a valid IP address
+                               if (&Network::check_ip_address($address)) {
+                                       # nothing
+
+                               # Otherwise this fails
+                               } else {
+                                       push(@errormessages, $Lang::tr{'invalid endpoint address'});
+                                       next;
+                               }
+
+                               # Store the values
+                               $peer{'ENDPOINT_ADDRESS'} = $address;
+                               $peer{'ENDPOINT_PORT'}    = $port;
+
+                       # PersistentKeepalive
+                       } elsif ($key eq "PersistentKeepalive") {
+                               # Must be an integer
+                               if ($val =~ m/^(\d+)$/) {
+                                       $peer{'KEEPALIVE'} = $1;
+                               } else {
+                                       push(@errormessages, $Lang::tr{'invalid keepalive interval'});
+                               }
+                       }
+               }
+       }
+
+       return %peer, @errormessages;
+}
+
 1;
index 8268b9e8aaa1a67540b49f9933c33bcae75e68a6..efad13f1009476abe0ce54eea56a53972f0a0ae9 100644 (file)
@@ -1076,6 +1076,7 @@ WARNING: untranslated string: iface = Iface
 WARNING: untranslated string: ignore filter = Ignore filter
 WARNING: untranslated string: ike lifetime should be between 1 and 24 hours = IKE lifetime should be between 1 and 24 hours.
 WARNING: untranslated string: imei = IMEI
+WARNING: untranslated string: import connection = Import a Connection
 WARNING: untranslated string: imsi = IMSI
 WARNING: untranslated string: include logfiles = Include logfiles
 WARNING: untranslated string: incoming compression in bytes per second = Incoming Compression
@@ -1100,6 +1101,7 @@ WARNING: untranslated string: invalid default lease time = Invalid default lease
 WARNING: untranslated string: invalid domain name = Invalid domain name.
 WARNING: untranslated string: invalid end address = Invalid end address.
 WARNING: untranslated string: invalid endpoint = Invalid Endpoint
+WARNING: untranslated string: invalid endpoint address = Invalid Endpoint Address
 WARNING: untranslated string: invalid fixed ip address = Invalid fixed IP address
 WARNING: untranslated string: invalid fixed mac address = Invalid fixed MAC address
 WARNING: untranslated string: invalid hostname = Invalid hostname.
@@ -1134,8 +1136,10 @@ WARNING: untranslated string: invalid input for state or province = Invalid inpu
 WARNING: untranslated string: invalid input for subscription code = Invalid input for subscription code
 WARNING: untranslated string: invalid input for valid till days = Invalid input for Valid till (days).
 WARNING: untranslated string: invalid ip = Invalid IP Address
+WARNING: untranslated string: invalid ip address = Invalid IP Address
 WARNING: untranslated string: invalid ip or hostname = Invalid IP Address or Hostname
 WARNING: untranslated string: invalid keep time = Keep time must be a valid number
+WARNING: untranslated string: invalid keepalive interval = Invalid Keepalive Interval
 WARNING: untranslated string: invalid key = Invalid key.
 WARNING: untranslated string: invalid local-remote id = local & remote id must not be equal and begin with a "@" sign. These are leftid and rightid in strongswan terminology.
 WARNING: untranslated string: invalid logserver address = Invalid syslogd server address
@@ -1148,6 +1152,7 @@ WARNING: untranslated string: invalid maximum outgoing size = Invalid maximum ou
 WARNING: untranslated string: invalid minimum object size = Invalid minimum object size.
 WARNING: untranslated string: invalid mtu input = Invalid MTU
 WARNING: untranslated string: invalid netmask = Invalid netmask
+WARNING: untranslated string: invalid network = Invalid Network
 WARNING: untranslated string: invalid port = Invalid port. Must be a valid port number.
 WARNING: untranslated string: invalid primary dns = Invalid primary DNS.
 WARNING: untranslated string: invalid primary ntp = Invalid Primary NTP server address
@@ -1268,6 +1273,9 @@ WARNING: untranslated string: mac1 new = new MAC address 1 (vdsl-inet):
 WARNING: untranslated string: mac2 new = new MAC address 2 (vdsl-iptv):
 WARNING: untranslated string: magic packet send to: = Magic packet send to:
 WARNING: untranslated string: main page = Main page
+WARNING: untranslated string: malformed preshared key = Malformed Pre-Shared Key
+WARNING: untranslated string: malformed private key = Malformed Private Key
+WARNING: untranslated string: malformed public key = Malformed Public Key
 WARNING: untranslated string: manage shares = Manage Shares
 WARNING: untranslated string: manually = Manually
 WARNING: untranslated string: map to guest = Map to Guest
index 23da45c89320d068e2c1b007eb2df614f87a311a..de41b16ac3effda30712b65f786e4e9ba18164b8 100644 (file)
@@ -1066,15 +1066,23 @@ WARNING: untranslated string: hostile networks out = To Hostile Networks
 WARNING: untranslated string: hostile networks total = Total Hostile Networks
 WARNING: untranslated string: ids provider eol = (EOL)
 WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: import connection = Import a Connection
 WARNING: untranslated string: info messages = unknown string
 WARNING: untranslated string: invalid endpoint = Invalid Endpoint
+WARNING: untranslated string: invalid endpoint address = Invalid Endpoint Address
+WARNING: untranslated string: invalid ip address = Invalid IP Address
 WARNING: untranslated string: invalid ip or hostname = Invalid IP Address or Hostname
+WARNING: untranslated string: invalid keepalive interval = Invalid Keepalive Interval
+WARNING: untranslated string: invalid network = Invalid Network
 WARNING: untranslated string: ips throughput = Throughput
 WARNING: untranslated string: last updated = Last Updated
 WARNING: untranslated string: load average = Load Average
 WARNING: untranslated string: local subnets = Local Subnets
 WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hostile networks
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
+WARNING: untranslated string: malformed preshared key = Malformed Pre-Shared Key
+WARNING: untranslated string: malformed private key = Malformed Private Key
+WARNING: untranslated string: malformed public key = Malformed Public Key
 WARNING: untranslated string: no data = unknown string
 WARNING: untranslated string: oops something went wrong = Oops, something went wrong...
 WARNING: untranslated string: openvpn cert expires soon = Expires Soon
index c1baa4abc098159f0cbed08bd4780c9559a3a636..96c7f9f55428140ca4b6c46ea3e0134e95ce4ed9 100644 (file)
@@ -1021,11 +1021,19 @@ WARNING: untranslated string: guardian service = unknown string
 WARNING: untranslated string: hostile networks total = Total Hostile Networks
 WARNING: untranslated string: ids provider eol = (EOL)
 WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: import connection = Import a Connection
 WARNING: untranslated string: invalid endpoint = Invalid Endpoint
+WARNING: untranslated string: invalid endpoint address = Invalid Endpoint Address
+WARNING: untranslated string: invalid ip address = Invalid IP Address
+WARNING: untranslated string: invalid keepalive interval = Invalid Keepalive Interval
+WARNING: untranslated string: invalid network = Invalid Network
 WARNING: untranslated string: ips throughput = Throughput
 WARNING: untranslated string: last updated = Last Updated
 WARNING: untranslated string: load average = Load Average
 WARNING: untranslated string: local subnets = Local Subnets
+WARNING: untranslated string: malformed preshared key = Malformed Pre-Shared Key
+WARNING: untranslated string: malformed private key = Malformed Private Key
+WARNING: untranslated string: malformed public key = Malformed Public Key
 WARNING: untranslated string: oops something went wrong = Oops, something went wrong...
 WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: pakfire ago = ago.
index c6a5b17fc955117c1ebf1ecc7e52d7d1a3b5caab..e2568c34789326ce1cb9c8f2777a0d97eee30cd6 100644 (file)
@@ -1175,6 +1175,7 @@ WARNING: untranslated string: ids the choosen provider is already in use = The c
 WARNING: untranslated string: ids unable to download the ruleset = Unable to download the ruleset
 WARNING: untranslated string: ids visit provider website = Visit provider website
 WARNING: untranslated string: ids working = Changes are being applied. Please wait until all operations have completed successfully...
+WARNING: untranslated string: import connection = Import a Connection
 WARNING: untranslated string: incoming compression in bytes per second = Incoming Compression
 WARNING: untranslated string: incoming overhead in bytes per second = Incoming Overhead
 WARNING: untranslated string: info messages = unknown string
@@ -1182,6 +1183,7 @@ WARNING: untranslated string: inodes = Index-Nodes
 WARNING: untranslated string: interface mode = Interface
 WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid endpoint = Invalid Endpoint
+WARNING: untranslated string: invalid endpoint address = Invalid Endpoint Address
 WARNING: untranslated string: invalid input for inactivity timeout = Invalid input for Inactivity Timeout
 WARNING: untranslated string: invalid input for interface address = Invalid input for interface address
 WARNING: untranslated string: invalid input for interface mode = Invalid input for interface mode
@@ -1190,8 +1192,11 @@ WARNING: untranslated string: invalid input for local ip address = Invalid input
 WARNING: untranslated string: invalid input for mode = Invalid input for mode
 WARNING: untranslated string: invalid input for subscription code = Invalid input for subscription code
 WARNING: untranslated string: invalid input for valid till days = Invalid input for Valid till (days).
+WARNING: untranslated string: invalid ip address = Invalid IP Address
 WARNING: untranslated string: invalid ip or hostname = Invalid IP Address or Hostname
+WARNING: untranslated string: invalid keepalive interval = Invalid Keepalive Interval
 WARNING: untranslated string: invalid logserver protocol = Invalid syslogd server protocol
+WARNING: untranslated string: invalid network = Invalid Network
 WARNING: untranslated string: ip basic info = Basic IP information
 WARNING: untranslated string: ip info for = IP information for
 WARNING: untranslated string: ipblocklist = IP Address Blocklists
@@ -1239,6 +1244,9 @@ WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hos
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
 WARNING: untranslated string: log dropped conntrack invalids = Log dropped packets classified as INVALID by connection tracking
 WARNING: untranslated string: log server protocol = protocol:
+WARNING: untranslated string: malformed preshared key = Malformed Pre-Shared Key
+WARNING: untranslated string: malformed private key = Malformed Private Key
+WARNING: untranslated string: malformed public key = Malformed Public Key
 WARNING: untranslated string: masquerade blue = Masquerade BLUE
 WARNING: untranslated string: masquerade green = Masquerade GREEN
 WARNING: untranslated string: masquerade orange = Masquerade ORANGE
index f040045b3f0f2a11507c6f68988e4148aa2473ed..49be295223fb924007f1ca4316d8bc8a9ba86398 100644 (file)
@@ -1181,6 +1181,7 @@ WARNING: untranslated string: ids unable to download the ruleset = Unable to dow
 WARNING: untranslated string: ids visit provider website = Visit provider website
 WARNING: untranslated string: ids working = Changes are being applied. Please wait until all operations have completed successfully...
 WARNING: untranslated string: imei = IMEI
+WARNING: untranslated string: import connection = Import a Connection
 WARNING: untranslated string: imsi = IMSI
 WARNING: untranslated string: incoming compression in bytes per second = Incoming Compression
 WARNING: untranslated string: incoming overhead in bytes per second = Incoming Overhead
@@ -1189,6 +1190,7 @@ WARNING: untranslated string: inodes = Index-Nodes
 WARNING: untranslated string: interface mode = Interface
 WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid endpoint = Invalid Endpoint
+WARNING: untranslated string: invalid endpoint address = Invalid Endpoint Address
 WARNING: untranslated string: invalid input for inactivity timeout = Invalid input for Inactivity Timeout
 WARNING: untranslated string: invalid input for interface address = Invalid input for interface address
 WARNING: untranslated string: invalid input for interface mode = Invalid input for interface mode
@@ -1197,8 +1199,11 @@ WARNING: untranslated string: invalid input for local ip address = Invalid input
 WARNING: untranslated string: invalid input for mode = Invalid input for mode
 WARNING: untranslated string: invalid input for subscription code = Invalid input for subscription code
 WARNING: untranslated string: invalid input for valid till days = Invalid input for Valid till (days).
+WARNING: untranslated string: invalid ip address = Invalid IP Address
 WARNING: untranslated string: invalid ip or hostname = Invalid IP Address or Hostname
+WARNING: untranslated string: invalid keepalive interval = Invalid Keepalive Interval
 WARNING: untranslated string: invalid logserver protocol = Invalid syslogd server protocol
+WARNING: untranslated string: invalid network = Invalid Network
 WARNING: untranslated string: ip basic info = Basic IP information
 WARNING: untranslated string: ip info for = IP information for
 WARNING: untranslated string: ipblocklist = IP Address Blocklists
@@ -1246,6 +1251,9 @@ WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hos
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
 WARNING: untranslated string: log dropped conntrack invalids = Log dropped packets classified as INVALID by connection tracking
 WARNING: untranslated string: log server protocol = protocol:
+WARNING: untranslated string: malformed preshared key = Malformed Pre-Shared Key
+WARNING: untranslated string: malformed private key = Malformed Private Key
+WARNING: untranslated string: malformed public key = Malformed Public Key
 WARNING: untranslated string: masquerade blue = Masquerade BLUE
 WARNING: untranslated string: masquerade green = Masquerade GREEN
 WARNING: untranslated string: masquerade orange = Masquerade ORANGE
index 8663a1d6f6d837ba998a3416fae958321c87a969..832fb403f9772b1f98e7717d2e7227d1e211de12 100644 (file)
@@ -1319,6 +1319,7 @@ WARNING: untranslated string: ids unable to download the ruleset = Unable to dow
 WARNING: untranslated string: ids visit provider website = Visit provider website
 WARNING: untranslated string: ids working = Changes are being applied. Please wait until all operations have completed successfully...
 WARNING: untranslated string: imei = IMEI
+WARNING: untranslated string: import connection = Import a Connection
 WARNING: untranslated string: imsi = IMSI
 WARNING: untranslated string: incoming compression in bytes per second = Incoming Compression
 WARNING: untranslated string: incoming firewall access = Incoming Firewall Access
@@ -1329,6 +1330,7 @@ WARNING: untranslated string: integrity = Integrity:
 WARNING: untranslated string: interface mode = Interface
 WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid endpoint = Invalid Endpoint
+WARNING: untranslated string: invalid endpoint address = Invalid Endpoint Address
 WARNING: untranslated string: invalid input for dpd delay = Invalid input for DPD delay
 WARNING: untranslated string: invalid input for dpd timeout = Invalid input for DPD timeout
 WARNING: untranslated string: invalid input for inactivity timeout = Invalid input for Inactivity Timeout
@@ -1339,8 +1341,11 @@ WARNING: untranslated string: invalid input for local ip address = Invalid input
 WARNING: untranslated string: invalid input for mode = Invalid input for mode
 WARNING: untranslated string: invalid input for subscription code = Invalid input for subscription code
 WARNING: untranslated string: invalid input for valid till days = Invalid input for Valid till (days).
+WARNING: untranslated string: invalid ip address = Invalid IP Address
 WARNING: untranslated string: invalid ip or hostname = Invalid IP Address or Hostname
+WARNING: untranslated string: invalid keepalive interval = Invalid Keepalive Interval
 WARNING: untranslated string: invalid logserver protocol = Invalid syslogd server protocol
+WARNING: untranslated string: invalid network = Invalid Network
 WARNING: untranslated string: ip basic info = Basic IP information
 WARNING: untranslated string: ip info for = IP information for
 WARNING: untranslated string: ipblocklist = IP Address Blocklists
@@ -1393,6 +1398,9 @@ WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hos
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
 WARNING: untranslated string: log dropped conntrack invalids = Log dropped packets classified as INVALID by connection tracking
 WARNING: untranslated string: log server protocol = protocol:
+WARNING: untranslated string: malformed preshared key = Malformed Pre-Shared Key
+WARNING: untranslated string: malformed private key = Malformed Private Key
+WARNING: untranslated string: malformed public key = Malformed Public Key
 WARNING: untranslated string: masquerade blue = Masquerade BLUE
 WARNING: untranslated string: masquerade green = Masquerade GREEN
 WARNING: untranslated string: masquerade orange = Masquerade ORANGE
index 133b71e4c8303216d65491254f1728c5422a6bb8..96832e9ff4dfe9bf98ac0e84ad0453797ab93ba6 100644 (file)
@@ -1314,6 +1314,7 @@ WARNING: untranslated string: ids unable to download the ruleset = Unable to dow
 WARNING: untranslated string: ids visit provider website = Visit provider website
 WARNING: untranslated string: ids working = Changes are being applied. Please wait until all operations have completed successfully...
 WARNING: untranslated string: imei = IMEI
+WARNING: untranslated string: import connection = Import a Connection
 WARNING: untranslated string: imsi = IMSI
 WARNING: untranslated string: incoming compression in bytes per second = Incoming Compression
 WARNING: untranslated string: incoming firewall access = Incoming Firewall Access
@@ -1325,6 +1326,7 @@ WARNING: untranslated string: integrity = Integrity:
 WARNING: untranslated string: interface mode = Interface
 WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid endpoint = Invalid Endpoint
+WARNING: untranslated string: invalid endpoint address = Invalid Endpoint Address
 WARNING: untranslated string: invalid input for dpd delay = Invalid input for DPD delay
 WARNING: untranslated string: invalid input for dpd timeout = Invalid input for DPD timeout
 WARNING: untranslated string: invalid input for inactivity timeout = Invalid input for Inactivity Timeout
@@ -1335,8 +1337,11 @@ WARNING: untranslated string: invalid input for local ip address = Invalid input
 WARNING: untranslated string: invalid input for mode = Invalid input for mode
 WARNING: untranslated string: invalid input for subscription code = Invalid input for subscription code
 WARNING: untranslated string: invalid input for valid till days = Invalid input for Valid till (days).
+WARNING: untranslated string: invalid ip address = Invalid IP Address
 WARNING: untranslated string: invalid ip or hostname = Invalid IP Address or Hostname
+WARNING: untranslated string: invalid keepalive interval = Invalid Keepalive Interval
 WARNING: untranslated string: invalid logserver protocol = Invalid syslogd server protocol
+WARNING: untranslated string: invalid network = Invalid Network
 WARNING: untranslated string: ip basic info = Basic IP information
 WARNING: untranslated string: ip info for = IP information for
 WARNING: untranslated string: ipblocklist = IP Address Blocklists
@@ -1389,6 +1394,9 @@ WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hos
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
 WARNING: untranslated string: log dropped conntrack invalids = Log dropped packets classified as INVALID by connection tracking
 WARNING: untranslated string: log server protocol = protocol:
+WARNING: untranslated string: malformed preshared key = Malformed Pre-Shared Key
+WARNING: untranslated string: malformed private key = Malformed Private Key
+WARNING: untranslated string: malformed public key = Malformed Public Key
 WARNING: untranslated string: masquerade blue = Masquerade BLUE
 WARNING: untranslated string: masquerade green = Masquerade GREEN
 WARNING: untranslated string: masquerade orange = Masquerade ORANGE
index 844f4835f69180c9ccea129f62eee51622f9d3f3..8605801238326464d94e6efd8b8d0f4d4d487301 100644 (file)
@@ -1116,18 +1116,23 @@ WARNING: untranslated string: ids the choosen provider is already in use = The c
 WARNING: untranslated string: ids unable to download the ruleset = Unable to download the ruleset
 WARNING: untranslated string: ids visit provider website = Visit provider website
 WARNING: untranslated string: ids working = Changes are being applied. Please wait until all operations have completed successfully...
+WARNING: untranslated string: import connection = Import a Connection
 WARNING: untranslated string: info messages = unknown string
 WARNING: untranslated string: inodes = Index-Nodes
 WARNING: untranslated string: interface mode = Interface
 WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid endpoint = Invalid Endpoint
+WARNING: untranslated string: invalid endpoint address = Invalid Endpoint Address
 WARNING: untranslated string: invalid input for interface address = Invalid input for interface address
 WARNING: untranslated string: invalid input for interface mode = Invalid input for interface mode
 WARNING: untranslated string: invalid input for interface mtu = Invalid input to interface MTU
 WARNING: untranslated string: invalid input for local ip address = Invalid input for local IP address
 WARNING: untranslated string: invalid input for mode = Invalid input for mode
 WARNING: untranslated string: invalid input for subscription code = Invalid input for subscription code
+WARNING: untranslated string: invalid ip address = Invalid IP Address
 WARNING: untranslated string: invalid ip or hostname = Invalid IP Address or Hostname
+WARNING: untranslated string: invalid keepalive interval = Invalid Keepalive Interval
+WARNING: untranslated string: invalid network = Invalid Network
 WARNING: untranslated string: ip basic info = Basic IP information
 WARNING: untranslated string: ip info for = IP information for
 WARNING: untranslated string: ipblocklist = IP Address Blocklists
@@ -1167,6 +1172,9 @@ WARNING: untranslated string: local subnets = Local Subnets
 WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hostile networks
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
 WARNING: untranslated string: log dropped conntrack invalids = Log dropped packets classified as INVALID by connection tracking
+WARNING: untranslated string: malformed preshared key = Malformed Pre-Shared Key
+WARNING: untranslated string: malformed private key = Malformed Private Key
+WARNING: untranslated string: malformed public key = Malformed Public Key
 WARNING: untranslated string: meltdown = Meltdown
 WARNING: untranslated string: mitigated = Mitigated
 WARNING: untranslated string: mmio stale data = MMIO Stale Data
index 459be4689bcde8e9eda840c3d4d4ba8e81f49043..b97d8ca9caa146de3355e4e0a5c86ba42035aa6d 100644 (file)
 < ids provider eol
 < ids rulesets
 < ids unsupported provider
+< import connection
 < invalid endpoint
+< invalid endpoint address
+< invalid ip address
 < invalid ip or hostname
+< invalid keepalive interval
+< invalid network
 < ips throughput
 < last updated
 < load average
 < local subnets
 < log drop hostile in
 < log drop hostile out
+< malformed preshared key
+< malformed private key
+< malformed public key
 < oops something went wrong
 < openvpn cert expires soon
 < openvpn cert has expired
 < ids provider eol
 < ids rulesets
 < ids unsupported provider
+< import connection
 < invalid endpoint
+< invalid endpoint address
+< invalid ip address
+< invalid keepalive interval
+< invalid network
 < ips throughput
 < last updated
 < load average
 < local subnets
+< malformed preshared key
+< malformed private key
+< malformed public key
 < oops something went wrong
 < ovpn roadwarrior server
 < password has quotation mark
 < ids unsupported provider
 < ids visit provider website
 < ids working
+< import connection
 < incoming compression in bytes per second
 < incoming overhead in bytes per second
 < inodes
 < interface mode
 < intrusion prevention system
 < invalid endpoint
+< invalid endpoint address
 < invalid input for inactivity timeout
 < invalid input for interface address
 < invalid input for interface mode
 < invalid input for mode
 < invalid input for subscription code
 < invalid input for valid till days
+< invalid ip address
 < invalid ip or hostname
+< invalid keepalive interval
 < invalid logserver protocol
+< invalid network
 < ip basic info
 < ipblocklist
 < ipblocklist blocklist settings
 < log drop hostile out
 < log dropped conntrack invalids
 < log server protocol
+< malformed preshared key
+< malformed private key
+< malformed public key
 < masquerade blue
 < masquerade green
 < masquerade orange
 < ids visit provider website
 < ids working
 < imei
+< import connection
 < imsi
 < incoming compression in bytes per second
 < incoming overhead in bytes per second
 < interface mode
 < intrusion prevention system
 < invalid endpoint
+< invalid endpoint address
 < invalid input for inactivity timeout
 < invalid input for interface address
 < invalid input for interface mode
 < invalid input for mode
 < invalid input for subscription code
 < invalid input for valid till days
+< invalid ip address
 < invalid ip or hostname
+< invalid keepalive interval
 < invalid logserver protocol
+< invalid network
 < ip basic info
 < ipblocklist
 < ipblocklist blocklist settings
 < log drop hostile out
 < log dropped conntrack invalids
 < log server protocol
+< malformed preshared key
+< malformed private key
+< malformed public key
 < masquerade blue
 < masquerade green
 < masquerade orange
 < ids visit provider website
 < ids working
 < imei
+< import connection
 < imsi
 < incoming compression in bytes per second
 < incoming firewall access
 < interface mode
 < intrusion prevention system
 < invalid endpoint
+< invalid endpoint address
 < invalid input for dpd delay
 < invalid input for dpd timeout
 < invalid input for inactivity timeout
 < invalid input for mode
 < invalid input for subscription code
 < invalid input for valid till days
+< invalid ip address
 < invalid ip or hostname
+< invalid keepalive interval
 < invalid logserver protocol
+< invalid network
 < ip basic info
 < ipblocklist
 < ipblocklist blocklist settings
 < log dropped conntrack invalids
 < log server protocol
 < mac filter
+< malformed preshared key
+< malformed private key
+< malformed public key
 < masquerade blue
 < masquerade green
 < masquerade orange
 < ids visit provider website
 < ids working
 < imei
+< import connection
 < imsi
 < incoming compression in bytes per second
 < incoming firewall access
 < interface mode
 < intrusion prevention system
 < invalid endpoint
+< invalid endpoint address
 < invalid input for dpd delay
 < invalid input for dpd timeout
 < invalid input for inactivity timeout
 < invalid input for mode
 < invalid input for subscription code
 < invalid input for valid till days
+< invalid ip address
 < invalid ip or hostname
+< invalid keepalive interval
 < invalid logserver protocol
+< invalid network
 < ip basic info
 < ipblocklist
 < ipblocklist blocklist settings
 < log dropped conntrack invalids
 < log server protocol
 < mac filter
+< malformed preshared key
+< malformed private key
+< malformed public key
 < masquerade blue
 < masquerade green
 < masquerade orange
 < ids unsupported provider
 < ids visit provider website
 < ids working
+< import connection
 < inodes
 < interface mode
 < intrusion prevention system
 < invalid endpoint
+< invalid endpoint address
 < invalid input for interface address
 < invalid input for interface mode
 < invalid input for interface mtu
 < invalid input for local ip address
 < invalid input for mode
 < invalid input for subscription code
+< invalid ip address
 < invalid ip or hostname
+< invalid keepalive interval
+< invalid network
 < ip basic info
 < ipblocklist
 < ipblocklist blocklist settings
 < log drop hostile in
 < log drop hostile out
 < log dropped conntrack invalids
+< malformed preshared key
+< malformed private key
+< malformed public key
 < meltdown
 < mitigated
 < mmio stale data
index 6a2cc48c77d1c505378614edca2d65b7a566b5ca..e4614724039dba159033a7dfb3ea3bc9ce21e166 100644 (file)
@@ -32,14 +32,14 @@ require "${General::swroot}/header.pl";
 require "${General::swroot}/location-functions.pl";
 require "${General::swroot}/wireguard-functions.pl";
 
+my %cgiparams = ();
 my @errormessages = ();
 
 # Generate keys
 &Wireguard::generate_keys();
 
 # Fetch CGI parameters
-my %cgiparams = ();
-&Header::getcgihash(\%cgiparams);
+&Header::getcgihash(\%cgiparams, {'wantfile' => 1, 'filevar' => 'FH'});
 
 # Save on main page
 if ($cgiparams{"ACTION"} eq $Lang::tr{'save'}) {
@@ -396,6 +396,14 @@ if ($cgiparams{"ACTION"} eq $Lang::tr{'save'}) {
        } elsif ($cgiparams{"TYPE"} eq "host") {
                goto EDITHOST;
 
+       } elsif ($cgiparams{"TYPE"} eq "import") {
+               # Parse the configuration file
+               (%cgiparams, @errormessages) = &Wireguard::parse_configuration($cgiparams{'FH'});
+
+               # We basically don't support importing RW connections, so we always
+               # need to go and show the N2N editor.
+               goto EDITNET;
+
        # Ask the user what type they want
        } else {
                goto ADD;
@@ -723,6 +731,15 @@ ADD:
                                                $Lang::tr{'net to net vpn'}
                                        </label>
                                </li>
+
+                               <li>
+                                       <label>
+                                               <input type='radio' name='TYPE' value='import' />
+                                               $Lang::tr{'import connection'}
+                                       </label>
+
+                                       <input type='file' name='FH' />
+                               </li>
                        </ul>
 
                        <table class="form">
index b175f4f6c0c8da8bc5f75e8850a5bc001c2652e5..cc5fcf3a934a427f9443809a36dae683e0d59562 100644 (file)
 'ike lifetime should be between 1 and 24 hours' => 'IKE Lebensdauer sollte zwischen 1 und 24 Stunden betragen.',
 'imei' => 'IMEI',
 'import' => 'Import',
+'import connection' => 'Eine Verbindung importieren',
 'importkey' => 'PSK importieren',
 'imsi' => 'IMSI',
 'in' => 'Ein',
 'invalid downlink speed' => 'Ungültige Downlink-Gerschwindigkeit.',
 'invalid end address' => 'Ungültige Endadresse.',
 'invalid endpoint' => 'Ungültige Gegenstelle',
+'invalid endpoint address' => 'Ungültige Endpoint-Adresse',
 'invalid fixed ip address' => 'Ungültige feste IP-Adresse',
 'invalid fixed mac address' => 'Ungültige feste MAC-Adresse',
 'invalid hostname' => 'Ungültiger Hostname.',
 'invalid input for state or province' => 'Ungültige Eingabe für Bundesstaat oder Provinz.',
 'invalid input for valid till days' => 'Ungültige Eingabe für Gültig bis (Tage).',
 'invalid ip' => 'Ungültige IP-Adresse',
+'invalid ip address' => 'Ungültige IP-Adresse',
 'invalid ip or hostname' => 'Ungültige IP-Addresse oder Hostname',
 'invalid keep time' => 'Die Aufbewahrungszeit muss eine gültige Zahl sein',
+'invalid keepalive interval' => 'Ungültiges Keepalive-Interval',
 'invalid key' => 'Ungültiger Schlüssel.',
 'invalid loaded file' => 'Ungültige geladene Datei',
 'invalid local-remote id' => 'Local-Id und Remote-Id dürfen nicht gleich sein, und müssen einem "@"-Zeichen beginnen (in der strongSwan-Terminologie handelt es sich dabei um leftid und rightid).',
 'invalid minimum object size' => 'Ungültige min. Objektgröße.',
 'invalid mtu input' => 'Ungültige MTU',
 'invalid netmask' => 'Ungültige Netzwerkmaske',
+'invalid network' => 'Ungültiges Netzwerk',
 'invalid port' => 'Ungültiger Port. Bitte gültige Portnummer eingeben.',
 'invalid port list' => 'Portlisten-Syntax lautet: port[,port]... wobei port in /etc/services enthalten ist, alternativ Portnummer',
 'invalid primary dns' => 'Ungültiger primärer DNS.',
 'mailmethod' => 'Mail Methode',
 'mailprogramm' => 'Mail Programm',
 'main page' => 'Startseite',
+'malformed preshared key' => 'Ungültiger Pre-Shared Key',
+'malformed private key' => 'Ungültiger privater Schlüssel',
+'malformed public key' => 'Ungültiger öffentlicher Schlüssel',
 'manage ovpn' => '5. Tunnel Management',
 'manage printers' => 'Drucker verwalten',
 'manage shares' => 'Freigaben verwalten',
index 93479b82064a1e16d168a2ea71cdce29d54a9c05..79634e90b431a6252040afb7f5459385f947848d 100644 (file)
 'ike lifetime should be between 1 and 24 hours' => 'IKE lifetime should be between 1 and 24 hours.',
 'imei' => 'IMEI',
 'import' => 'Import',
+'import connection' => 'Import a Connection',
 'importkey' => 'Import PSK',
 'imsi' => 'IMSI',
 'in' => 'In',
 'invalid downlink speed' => 'Invalid downlink speed.',
 'invalid end address' => 'Invalid end address.',
 'invalid endpoint' => 'Invalid Endpoint',
+'invalid endpoint address' => 'Invalid Endpoint Address',
 'invalid fixed ip address' => 'Invalid fixed IP address',
 'invalid fixed mac address' => 'Invalid fixed MAC address',
 'invalid hostname' => 'Invalid hostname.',
 'invalid input for subscription code' => 'Invalid input for subscription code',
 'invalid input for valid till days' => 'Invalid input for Valid till (days).',
 'invalid ip' => 'Invalid IP Address',
+'invalid ip address' => 'Invalid IP Address',
 'invalid ip or hostname' => 'Invalid IP Address or Hostname',
 'invalid keep time' => 'Keep time must be a valid number',
+'invalid keepalive interval' => 'Invalid Keepalive Interval',
 'invalid key' => 'Invalid key.',
 'invalid loaded file' => 'Invalid loaded file',
 'invalid local-remote id' => 'local & remote id must not be equal and begin with a "@" sign. These are leftid and rightid in strongswan terminology.',
 'invalid minimum object size' => 'Invalid minimum object size.',
 'invalid mtu input' => 'Invalid MTU',
 'invalid netmask' => 'Invalid netmask',
+'invalid network' => 'Invalid Network',
 'invalid port' => 'Invalid port. Must be a valid port number.',
 'invalid port list' => 'Port list syntax is: port[,port]... where port is in /etc/services or number',
 'invalid primary dns' => 'Invalid primary DNS.',
 'mailmethod' => 'Mailmethod',
 'mailprogramm' => 'Mailprogramm',
 'main page' => 'Main page',
+'malformed preshared key' => 'Malformed Pre-Shared Key',
+'malformed private key' => 'Malformed Private Key',
+'malformed public key' => 'Malformed Public Key',
 'manage ovpn' => '5. Tunnel Management:',
 'manage printers' => 'manage printers',
 'manage shares' => 'Manage Shares',