chore(test): проверить экспорт WireGuard без приватных ключей
This commit is contained in:
1 parent
a1183f2ec9
commit
206255b856
7 files changed
+456
-6
No files matched your search
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"date": "2026-10-08",
|
||||
"before": {
|
||||
"servers": 2,
|
||||
"speedHistory": 9,
|
||||
"retentionDays": 14,
|
||||
"migrations": 9
|
||||
},
|
||||
"after": {
|
||||
"servers": 2,
|
||||
"speedHistory": 9,
|
||||
"retentionDays": 14,
|
||||
"migrations": 9
|
||||
},
|
||||
"unchanged": true
|
||||
}
|
||||
@@ -0,0 +1,386 @@
|
||||
{
|
||||
"date": "2026-10-08",
|
||||
"backendSource": "3722fad",
|
||||
"frontendSource": "bf43263",
|
||||
"name": "mm-acceptance-wg-1791475605238",
|
||||
"subnet": "198.18.255.240/30",
|
||||
"listenPort": 51879,
|
||||
"realRouterOs": true,
|
||||
"changes": [
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/interfaces",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/interfaces",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/peers",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/peers",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/api/wireguard/interfaces/1/*D",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/api/wireguard/interfaces/1/*D",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/api/wireguard",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/export",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/export",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/export",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/export",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/export",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/export",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/peers/1/*9",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/interfaces/1/*D",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/peers/2/*6",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/interfaces/2/*9",
|
||||
"status": 200
|
||||
}
|
||||
],
|
||||
"pings": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"target": "198.18.255.242",
|
||||
"interface": "mm-acceptance-wg-1791475605238",
|
||||
"received": 3,
|
||||
"rows": [
|
||||
{
|
||||
"sent": "1",
|
||||
"received": "1",
|
||||
"packet-loss": "0",
|
||||
"time": "54ms786us",
|
||||
"avg-rtt": "54ms786us"
|
||||
},
|
||||
{
|
||||
"sent": "2",
|
||||
"received": "2",
|
||||
"packet-loss": "0",
|
||||
"time": "54ms652us",
|
||||
"avg-rtt": "54ms719us"
|
||||
},
|
||||
{
|
||||
"sent": "3",
|
||||
"received": "3",
|
||||
"packet-loss": "0",
|
||||
"time": "62ms502us",
|
||||
"avg-rtt": "57ms313us"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"target": "198.18.255.241",
|
||||
"interface": "mm-acceptance-wg-1791475605238",
|
||||
"received": 3,
|
||||
"rows": [
|
||||
{
|
||||
"sent": "1",
|
||||
"received": "1",
|
||||
"packet-loss": "0",
|
||||
"time": "58ms714us",
|
||||
"avg-rtt": "58ms714us"
|
||||
},
|
||||
{
|
||||
"sent": "2",
|
||||
"received": "2",
|
||||
"packet-loss": "0",
|
||||
"time": "56ms781us",
|
||||
"avg-rtt": "57ms747us"
|
||||
},
|
||||
{
|
||||
"sent": "3",
|
||||
"received": "3",
|
||||
"packet-loss": "0",
|
||||
"time": "56ms597us",
|
||||
"avg-rtt": "57ms364us"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"cleanup": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"/interface/wireguard": true,
|
||||
"/interface/wireguard/peers": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true,
|
||||
"/ip/firewall/filter": true,
|
||||
"/ip/firewall/nat": true,
|
||||
"/ip/firewall/mangle": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"/interface/wireguard": true,
|
||||
"/interface/wireguard/peers": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true,
|
||||
"/ip/firewall/filter": true,
|
||||
"/ip/firewall/nat": true,
|
||||
"/ip/firewall/mangle": true
|
||||
}
|
||||
],
|
||||
"nativeKeyGenerationConfirmed": true,
|
||||
"connectedState": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"interface": {
|
||||
"rosId": "*D",
|
||||
"appId": "1:*D",
|
||||
"name": "mm-acceptance-wg-1791475605238",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"running": "true",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.241/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*9",
|
||||
"name": "mm-acceptance-wg-1791475605238-peer",
|
||||
"allowedAddresses": "198.18.255.242/32",
|
||||
"endpoint": "104.165.244.7:51879",
|
||||
"handshake": "1s",
|
||||
"rx": "180",
|
||||
"tx": "272",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"interface": {
|
||||
"rosId": "*9",
|
||||
"appId": "2:*9",
|
||||
"name": "mm-acceptance-wg-1791475605238",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"running": "true",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.242/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*6",
|
||||
"name": "mm-acceptance-wg-1791475605238-peer",
|
||||
"allowedAddresses": "198.18.255.241/32",
|
||||
"endpoint": "194.226.121.150:51879",
|
||||
"handshake": "1s",
|
||||
"rx": "124",
|
||||
"tx": "180",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"handshakeConfirmed": true,
|
||||
"bidirectionalPingPassed": true,
|
||||
"catalogMatchesNative": true,
|
||||
"exports": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"format": "rsc",
|
||||
"status": 200,
|
||||
"privateKeyAbsent": true,
|
||||
"selectedParametersMatch": true,
|
||||
"configurationNotPersisted": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"format": "conf",
|
||||
"status": 200,
|
||||
"privateKeyAbsent": true,
|
||||
"selectedParametersMatch": true,
|
||||
"configurationNotPersisted": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"format": "peer-conf",
|
||||
"status": 200,
|
||||
"privateKeyAbsent": true,
|
||||
"configurationNotPersisted": true,
|
||||
"selectedPeerAndServerKeyMatch": true,
|
||||
"clientEndpointCorrect": false,
|
||||
"clientTemplateReady": false
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"format": "rsc",
|
||||
"status": 200,
|
||||
"privateKeyAbsent": true,
|
||||
"selectedParametersMatch": true,
|
||||
"configurationNotPersisted": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"format": "conf",
|
||||
"status": 200,
|
||||
"privateKeyAbsent": true,
|
||||
"selectedParametersMatch": true,
|
||||
"configurationNotPersisted": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"format": "peer-conf",
|
||||
"status": 200,
|
||||
"privateKeyAbsent": true,
|
||||
"configurationNotPersisted": true,
|
||||
"selectedPeerAndServerKeyMatch": true,
|
||||
"clientEndpointCorrect": false,
|
||||
"clientTemplateReady": false
|
||||
}
|
||||
],
|
||||
"peerClientDefaults": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"endpointIsRemotePeer": true,
|
||||
"endpointIsExportingServer": false,
|
||||
"clientAddressPresent": false,
|
||||
"allowedAddressIsRemotePeer": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"endpointIsRemotePeer": true,
|
||||
"endpointIsExportingServer": false,
|
||||
"clientAddressPresent": false,
|
||||
"allowedAddressIsRemotePeer": true
|
||||
}
|
||||
],
|
||||
"afterBrowserDelete": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"interface": {
|
||||
"rosId": "*D",
|
||||
"appId": "1:*D",
|
||||
"name": "mm-acceptance-wg-1791475605238",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"running": "true",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.241/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*9",
|
||||
"name": "mm-acceptance-wg-1791475605238-peer",
|
||||
"allowedAddresses": "198.18.255.242/32",
|
||||
"endpoint": "104.165.244.7:51879",
|
||||
"handshake": "1m48s",
|
||||
"rx": "1396",
|
||||
"tx": "912",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"interface": {
|
||||
"rosId": "*9",
|
||||
"appId": "2:*9",
|
||||
"name": "mm-acceptance-wg-1791475605238",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"running": "true",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.242/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*6",
|
||||
"name": "mm-acceptance-wg-1791475605238-peer",
|
||||
"allowedAddresses": "198.18.255.241/32",
|
||||
"endpoint": "194.226.121.150:51879",
|
||||
"handshake": "1m48s",
|
||||
"rx": "764",
|
||||
"tx": "1396",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"limits": [
|
||||
"Only own WireGuard interface/peer/IP and connected route changed; no default routes/firewall changes",
|
||||
"Export verification is read-only; fixture interfaces and linked objects removed by harness",
|
||||
"Private/public/preshared keys omitted from report; native generation and peer association checked in memory",
|
||||
"Handshake and short ICMP connectivity, not throughput, RBAC or interrupted mutation",
|
||||
"WireGuard audit revisions intentionally retained",
|
||||
"Only API export includePrivateKey=false tested; UI live export currently requests private keys for RSC/CONF and was not invoked"
|
||||
],
|
||||
"finding": {
|
||||
"kind": "peer-conf defaults",
|
||||
"endpointPointsToRemotePeerInsteadOfExportingServer": true,
|
||||
"clientAddressMissingWithoutClientMetadata": true,
|
||||
"clientReadyAcceptanceOpen": true
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user