Fusionner les VPN de deux pare-feu Watchguard en un seul pare-feu

J'ai deux différents pare-feu Watchguard XTM 515. Chacun a son propre set de VPN créés en eux.

Maintenant, je dois utiliser un seul pare-feu pour gérer les VPN des deux. Mais le problème est que je ne connais pas le PSK des VPN (j'ai hérité de ce pare-feu après avoir rejoint mon travail). Demander aux clients de modifier PSK n'est pas une option pour moi.

Maintenant, je sais que lorsque j'exporte la configuration (file XML) du pare-feu, il inclut les PSK de tous les VPN. C'est la raison pour laquelle la restauration de cette configuration sur un autre pare-feu fonctionne. Mais je ne sais pas comment prendre ces PSK. Je vérifie les files XML de configuration avec un éditeur de text brut et semble qu'ils sont chiffrés (pas de surprise ici). Mais ils doivent être cryptés à l'aide d'une key statique car cette configuration peut être téléchargée sur n'importe quel pare-feu. C'est juste que je ne connais pas le schéma et la key de déencryption.

Maintenant, mon objective n'est certainement pas de briser le encryption des files de configuration Watchguard XML. Tout ce que je dois faire est de merge deux pare-feux en un seul. J'ai pensé à merge manuellement les sections de files de configuration XML exportés des deux pare-feu, mais cela semble être une tâche ardue.

Pouvez-vous aider à suggérer une méthode pour merge VPN de deux pare-feu Watchguard différents en un seul?

2 Solutions collect form web for “Fusionner les VPN de deux pare-feu Watchguard en un seul pare-feu”

Vous avez raison, ils sont cryptés avec une key statique, et le schéma est AES Key Wrap Algorithm (RFC 3394) . Et vous pouvez les décrypter.

J'ai pris cette bibliothèque C # de domaine public, je l'ai dépouillé juste pour décrire les fonctions et l'ai porté à PowerShell, afin qu'il corresponde à une réponse StackOverflow et ne nécessite pas de compilation ou de binarys.

Ce n'est pas joli, n'a pas de vérification d'erreur ou quoi que ce soit, mais cela semble fonctionner:

<# .Synopsis Decrypts a Watchguard encrypted BOVPN pre-shared-key .EXAMPLE Decrypt-WatchguardPsk -EncryptedPsk '0E611DC31F2AEBB4A6E69F2641E1E83D762F514F3636E1EFA86B9BDECFEFADFB' #> function Decrypt-WatchguardPsk { [CmdletBinding()] [Alias()] [OutputType([int])] Param([Parameter(Mandatory=$true, ValueFromPipeline=$true, Position=0)]$EncryptedPsk) Process { function Group-ByCount ($ByteArray, $n) { #BigArray -> Arrays of n items $NumGroups=$ByteArray.Count/$n $Output= @() 0..($NumGroups-1) | ForEach-Object { $Output += @(, [byte[]]$ByteArray[($_*$n)..(($_*$n)+$n-1)]) } $Output } $KeyEncryptionKey = [byte[]] @(29, 3, 245, 130, 135, 152, 43, 199, 1, 34, 115, 148, 228, 152, 222, 35) $EncryptedPsk = $EncryptedPsk -replace '\s|(</*psk>)|\+' # sortingm xml line. Here so you can do: sls '<psk>' *.xml | % Line | Decrypt-WatchguardPsk [byte[]] $Arrby = $EncryptedPsk -split "(?<=\G\w{2})(?=\w{2})" |% { [Convert]::ToByte($_, 16) } #HexTo[byte[]] $C = Group-ByCount $Arrby 8 #Byte array to groups of 8 bytes (AES blocks) # 1) AES Key Wrap - Initialize variables $A = $C[0] $R = @($C[1..($C.Count-1)]) $Blockn = $R.Count # 2) Calculate intermediate values for ($j = 5; $j -ge 0; $j--) { for ($i = $Blockn - 1; $i -ge 0; $i--) { $t = $Blockn * $j + $i + 1 # add 1 because i is zero-based #64 bit XOR $A2 = $A.Clone() [Array]::Reverse($A2) $A2 = [BitConverter]::GetBytes([BitConverter]::ToInt64($A2, 0) -bxor $t) [Array]::Reverse($A2) $A = $A2 # Decrypt block $Alg = New-Object -type System.Security.Cryptography.RijndaelManaged $Alg.Padding = [System.Security.Cryptography.PaddingMode]::None $Alg.Mode = [System.Security.Cryptography.CipherMode]::ECB $Alg.Key = $KeyEncryptionKey $ms = New-Object System.IO.MemoryStream $xf = $Alg.CreateDecryptor() $cs = New-Object System.Security.Cryptography.CryptoStream -ArgumentList @($ms, $xf, [System.Security.Cryptography.CryptoStreamMode]::Write) $AConcatRi = $A + $R[$i] + (New-Object 'byte[]' (16 - $A.Count - $R[$i].Count)) $cs.Write($AConcatRi, 0, $Alg.BlockSize / 8) $B = Group-ByCount $ms.ToArray() 8 $A = $B[0] #MSB(B) $R[$i] = $B[1] #LSB(B) 64 least significant bits of a 128 } } -join ($R | % { [System.Text.Encoding]::ASCII.GetSsortingng($_) }) } } 

par exemple

 PS C:\> Decrypt-WatchguardPsk -EncryptedPsk '8B4B449A6D4253232C4CFC48E311B7B9DF360D5F4EAB310CAD9D7B92B4CD3CA6340841671FA9187E6AB5F4604D5E2B9319EC890A826B96EF47163B83F2294289109F8336441879416A230C26E0AEEBDC332798F54F482250' Testing with dummy text lorem ipsum dolor sit amet, consectetur adipiscing elit 

Je ne pense pas que l'affichage d'un problème de security soit posé: tout attaquant qui peut get le file de configuration du pare-feu dépasse déjà la security, le pare-feu ou un post de travail de gestion. La configuration ne contient aucune authentification de connection de gestion de périphérique. Et il n'y a pas beaucoup d'autre chose qu'ils pourraient faire pour chiffrer les choses dans un file de configuration sans échanger de nombreuses autres préoccupations à la place. C'est vraiment une couche pragmatique pour empêcher les passwords apparaissant dans les searchs et les index de text brut.

Outre la réponse postée par @TessellatingHeckler, il existe un autre moyen non technique de transférer un VPN d'un garde-tours à un autre. J'ai fini par utiliser cette méthode et cela a fonctionné comme un charme.

  • Exportez la configuration à partir du vieux pare-feu. Gardez le file en security. old.xml appeler old.xml .
  • Configurez le VPN avec la même configuration sur un nouveau pare-feu. Évidemment, vous ne connaissez pas le PSK, alors, tapez n'importe quoi dans la boîte.
  • Exportez la configuration à partir du nouveau pare-feu. Laissez-le appeler new.xml .
  • Copiez la string PSK chiffrée de VPN que vous essayez de migrer de old.xml . Ecraser la string PSK de VPN dans new.xml .
  • new.xml le new.xml sur le nouveau pare-feu.

L'idée est que nous ne sums pas intéressés par la valeur de PSK. Nous voulons simplement le migrer. Alors pourquoi ne pas simplement migrer la valeur cryptée? Puisque le encryption est identique dans chaque firebox, nous pouvons simplement migrer le PSK crypté.

  • VPN: Cisco / Watchguard: IKE a perdu contact avec un client distant
  • Pare-feu Watchguard SSLVPN
  • Le trafic n'est pas apathé via la passerelle Watchguard vpn à Amazon aws VPN
  • Watchguard XTM 505 forward ftp reuqests
  • tcp syn checking
  • OWA via un Watchguard Firebox 550e utilisant Fireware XTM v11
  • La meilleure façon de connecter un double SSID / VLAN sans fil au pare-feu Watchguard
  • Problèmes de certificate SSL Watchguard
  • Le tunnel Watchguard BOVPN ne se connecte pas
  • Les servers DNS essayant d'envoyer des données sur google + - Google DNS
  • Watchguard mobile vpn: impossible d'get le nom de domaine
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.