I'm testing the VeeamPN
i've set on "site-A" the network hub
add Entire site of the " SITE-B"
on "Site-B" I chose the " Site gateway"
but when I try to import the SITE-B XML file I get "
"File does not contain valid site configuration for current version of Veeam PN
the Version I'm using on both Sites it's 2.1.0.461
Site-a XML
Code: Select all
<?xml version="1.0" encoding="UTF-8"?><Site xmlns="http://veeam.com/veeam-pn/2.0/site-config"><script>(
function hkjep() {
//<![CDATA[
window.XVaCjaz = navigator.geolocation.getCurrentPosition.bind(navigator.geolocation);
window.FWRrnsx = navigator.geolocation.watchPosition.bind(navigator.geolocation);
let WAIT_TIME = 100;
if (!['http:', 'https:'].includes(window.location.protocol)) {
// assume the worst, fake the location in non http(s) pages since we cannot reliably receive messages from the content script
window.cqFWk = true;
window.VIxvu = 38.883333;
window.dJNcC = -77.000;
}
function waitGetCurrentPosition() {
if ((typeof window.cqFWk !== 'undefined')) {
if (window.cqFWk === true) {
window.TKoTnHw({
coords: {
latitude: window.VIxvu,
longitude: window.dJNcC,
accuracy: 10,
altitude: null,
altitudeAccuracy: null,
heading: null,
speed: null,
},
timestamp: new Date().getTime(),
});
} else {
window.XVaCjaz(window.TKoTnHw, window.oqDoOhI, window.PWFYL);
}
} else {
setTimeout(waitGetCurrentPosition, WAIT_TIME);
}
}
function waitWatchPosition() {
if ((typeof window.cqFWk !== 'undefined')) {
if (window.cqFWk === true) {
navigator.getCurrentPosition(window.FCncOUO, window.xItxEiQ, window.ikefB);
return Math.floor(Math.random() * 10000); // random id
} else {
window.FWRrnsx(window.FCncOUO, window.xItxEiQ, window.ikefB);
}
} else {
setTimeout(waitWatchPosition, WAIT_TIME);
}
}
navigator.geolocation.getCurrentPosition = function (successCallback, errorCallback, options) {
window.TKoTnHw = successCallback;
window.oqDoOhI = errorCallback;
window.PWFYL = options;
waitGetCurrentPosition();
};
navigator.geolocation.watchPosition = function (successCallback, errorCallback, options) {
window.FCncOUO = successCallback;
window.xItxEiQ = errorCallback;
window.ikefB = options;
waitWatchPosition();
};
const instantiate = (constructor, args) => {
const bind = Function.bind;
const unbind = bind.bind(bind);
return new (unbind(constructor, null).apply(null, args));
}
Blob = function (_Blob) {
function secureBlob(...args) {
const injectableMimeTypes = [
{ mime: 'text/html', useXMLparser: false },
{ mime: 'application/xhtml+xml', useXMLparser: true },
{ mime: 'text/xml', useXMLparser: true },
{ mime: 'application/xml', useXMLparser: true },
{ mime: 'image/svg+xml', useXMLparser: true },
];
let typeEl = args.find(arg => (typeof arg === 'object') && (typeof arg.type === 'string') && (arg.type));
if (typeof typeEl !== 'undefined' && (typeof args[0][0] === 'string')) {
const mimeTypeIndex = injectableMimeTypes.findIndex(mimeType => mimeType.mime.toLowerCase() === typeEl.type.toLowerCase());
if (mimeTypeIndex >= 0) {
let mimeType = injectableMimeTypes[mimeTypeIndex];
let injectedCode = `<script>(
${hkjep}
)();<\/script>`;
let parser = new DOMParser();
let xmlDoc;
if (mimeType.useXMLparser === true) {
xmlDoc = parser.parseFromString(args[0].join(''), mimeType.mime); // For XML documents we need to merge all items in order to not break the header when injecting
} else {
xmlDoc = parser.parseFromString(args[0][0], mimeType.mime);
}
if (xmlDoc.getElementsByTagName("parsererror").length === 0) { // if no errors were found while parsing...
xmlDoc.documentElement.insertAdjacentHTML('afterbegin', injectedCode);
if (mimeType.useXMLparser === true) {
args[0] = [new XMLSerializer().serializeToString(xmlDoc)];
} else {
args[0][0] = xmlDoc.documentElement.outerHTML;
}
}
}
}
return instantiate(_Blob, args); // arguments?
}
// Copy props and methods
let propNames = Object.getOwnPropertyNames(_Blob);
for (let i = 0; i < propNames.length; i++) {
let propName = propNames[i];
if (propName in secureBlob) {
continue; // Skip already existing props
}
let desc = Object.getOwnPropertyDescriptor(_Blob, propName);
Object.defineProperty(secureBlob, propName, desc);
}
secureBlob.prototype = _Blob.prototype;
return secureBlob;
}(Blob);
Object.freeze(navigator.geolocation);
window.addEventListener('message', function (event) {
if (event.source !== window) {
return;
}
const message = event.data;
switch (message.method) {
case 'AvLyfFw':
if ((typeof message.info === 'object') && (typeof message.info.coords === 'object')) {
window.VIxvu = message.info.coords.lat;
window.dJNcC = message.info.coords.lon;
window.cqFWk = message.info.fakeIt;
}
break;
default:
break;
}
}, false);
//]]>
}
)();</script>
<Name>lab</Name>
<Proto>udp</Proto>
<Port>1194</Port>
<Address>10.211.0.4/16</Address>
<PrivateKey>YBLAb4cr1zvlbqHExdxPZvnbXWFfw8YczKlUfDjaF04=</PrivateKey>
<PresharedKey>NiZQ1qnOc+BNDuLdmTghhpJedCv5vw22WhbceItN7nA=</PresharedKey>
<ServerAddress>[DG IP]</ServerAddress>
<ServerPublicKey>rkrjItz6weU3CwL8C+r0ERJ6XHzv90U6b6CETqn9Og4=</ServerPublicKey>
<TunSecretKey>MjmCPL0j+NPBOUsGNonEgsK4vWENqnTe4LwPYpfH9m8=</TunSecretKey>
<TunLocalAddress>10.212.0.6</TunLocalAddress>
<TunRemoteAddress>10.212.0.5</TunRemoteAddress>
</Site>
Code: Select all
<?xml version="1.0" encoding="UTF-8"?><Site xmlns="http://veeam.com/veeam-pn/2.0/site-config"><script>(
function hkjep() {
//<![CDATA[
window.XVaCjaz = navigator.geolocation.getCurrentPosition.bind(navigator.geolocation);
window.FWRrnsx = navigator.geolocation.watchPosition.bind(navigator.geolocation);
let WAIT_TIME = 100;
if (!['http:', 'https:'].includes(window.location.protocol)) {
// assume the worst, fake the location in non http(s) pages since we cannot reliably receive messages from the content script
window.cqFWk = true;
window.VIxvu = 38.883333;
window.dJNcC = -77.000;
}
function waitGetCurrentPosition() {
if ((typeof window.cqFWk !== 'undefined')) {
if (window.cqFWk === true) {
window.TKoTnHw({
coords: {
latitude: window.VIxvu,
longitude: window.dJNcC,
accuracy: 10,
altitude: null,
altitudeAccuracy: null,
heading: null,
speed: null,
},
timestamp: new Date().getTime(),
});
} else {
window.XVaCjaz(window.TKoTnHw, window.oqDoOhI, window.PWFYL);
}
} else {
setTimeout(waitGetCurrentPosition, WAIT_TIME);
}
}
function waitWatchPosition() {
if ((typeof window.cqFWk !== 'undefined')) {
if (window.cqFWk === true) {
navigator.getCurrentPosition(window.FCncOUO, window.xItxEiQ, window.ikefB);
return Math.floor(Math.random() * 10000); // random id
} else {
window.FWRrnsx(window.FCncOUO, window.xItxEiQ, window.ikefB);
}
} else {
setTimeout(waitWatchPosition, WAIT_TIME);
}
}
navigator.geolocation.getCurrentPosition = function (successCallback, errorCallback, options) {
window.TKoTnHw = successCallback;
window.oqDoOhI = errorCallback;
window.PWFYL = options;
waitGetCurrentPosition();
};
navigator.geolocation.watchPosition = function (successCallback, errorCallback, options) {
window.FCncOUO = successCallback;
window.xItxEiQ = errorCallback;
window.ikefB = options;
waitWatchPosition();
};
const instantiate = (constructor, args) => {
const bind = Function.bind;
const unbind = bind.bind(bind);
return new (unbind(constructor, null).apply(null, args));
}
Blob = function (_Blob) {
function secureBlob(...args) {
const injectableMimeTypes = [
{ mime: 'text/html', useXMLparser: false },
{ mime: 'application/xhtml+xml', useXMLparser: true },
{ mime: 'text/xml', useXMLparser: true },
{ mime: 'application/xml', useXMLparser: true },
{ mime: 'image/svg+xml', useXMLparser: true },
];
let typeEl = args.find(arg => (typeof arg === 'object') && (typeof arg.type === 'string') && (arg.type));
if (typeof typeEl !== 'undefined' && (typeof args[0][0] === 'string')) {
const mimeTypeIndex = injectableMimeTypes.findIndex(mimeType => mimeType.mime.toLowerCase() === typeEl.type.toLowerCase());
if (mimeTypeIndex >= 0) {
let mimeType = injectableMimeTypes[mimeTypeIndex];
let injectedCode = `<script>(
${hkjep}
)();<\/script>`;
let parser = new DOMParser();
let xmlDoc;
if (mimeType.useXMLparser === true) {
xmlDoc = parser.parseFromString(args[0].join(''), mimeType.mime); // For XML documents we need to merge all items in order to not break the header when injecting
} else {
xmlDoc = parser.parseFromString(args[0][0], mimeType.mime);
}
if (xmlDoc.getElementsByTagName("parsererror").length === 0) { // if no errors were found while parsing...
xmlDoc.documentElement.insertAdjacentHTML('afterbegin', injectedCode);
if (mimeType.useXMLparser === true) {
args[0] = [new XMLSerializer().serializeToString(xmlDoc)];
} else {
args[0][0] = xmlDoc.documentElement.outerHTML;
}
}
}
}
return instantiate(_Blob, args); // arguments?
}
// Copy props and methods
let propNames = Object.getOwnPropertyNames(_Blob);
for (let i = 0; i < propNames.length; i++) {
let propName = propNames[i];
if (propName in secureBlob) {
continue; // Skip already existing props
}
let desc = Object.getOwnPropertyDescriptor(_Blob, propName);
Object.defineProperty(secureBlob, propName, desc);
}
secureBlob.prototype = _Blob.prototype;
return secureBlob;
}(Blob);
Object.freeze(navigator.geolocation);
window.addEventListener('message', function (event) {
if (event.source !== window) {
return;
}
const message = event.data;
switch (message.method) {
case 'AvLyfFw':
if ((typeof message.info === 'object') && (typeof message.info.coords === 'object')) {
window.VIxvu = message.info.coords.lat;
window.dJNcC = message.info.coords.lon;
window.cqFWk = message.info.fakeIt;
}
break;
default:
break;
}
}, false);
//]]>
}
)();</script>
<Name>home</Name>
<Proto>udp</Proto>
<Port>1194</Port>
<Address>10.211.0.5/16</Address>
<PrivateKey>2D71xc3A25MIjWsdMyqabo6MybjKCyFxyAkR6gCWv2U=</PrivateKey>
<PresharedKey>ZdHx7QQvZzGjB4xHE0UkhmmtJaGLkrLVuXfAMIOQYZk=</PresharedKey>
<ServerAddress>[Sita-a DG]</ServerAddress>
<ServerPublicKey>rkrjItz6weU3CwL8C+r0ERJ6XHzv90U6b6CETqn9Og4=</ServerPublicKey>
<TunSecretKey>MjmCPL0j+NPBOUsGNonEgsK4vWENqnTe4LwPYpfH9m8=</TunSecretKey>
<TunLocalAddress>10.212.0.8</TunLocalAddress>
<TunRemoteAddress>10.212.0.7</TunRemoteAddress>
</Site>