Browse Source

Wireguard create base.

Félix Baylac-Jacqué 6 years ago
commit
7a5ae9deda
1 changed files with 55 additions and 0 deletions
  1. 55 0
      wireguardCreate.py

+ 55 - 0
wireguardCreate.py

@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+
+import os
+
+# TODO: récupérer email et id depuis STDIN.
+keyDir = "/etc/wireguard/keys"
+configDir = "/etc/wireguard"
+
+# IO: 
+#   (mail)
+#   (dossier clés)
+#   (dossier config)
+# 1- Créer clé pv pb
+pvKeyDest = "/etc/wireguard/keys/ohian.key"
+pubKeyDest = "/etc/wireguard/keys/ohian.public"
+
+
+genKeyCommand = "wg genkey | tee {0} | wg pubkey > {1}".format(pvKeyDest, pubKeyDest) 
+genKeyCommand = "wg genkey | tee /etc/wireguard/keys/ohian.key | wg pubkey > /etc/wireguard/keys/ohian.public"
+os.system(genKeyCommand)
+
+# 2- Créer fichier interface 
+ifaceName = "wg10"
+ifaceAddrv4 = "10.0.0.10"
+ifaceFileName = configDir + "/" + ifaceName + ".conf"
+ifaceConfig = '''
+auto {0} 
+iface {1} inet static
+        address {2}
+        netmask 255.255.255.0
+        pre-up ip link add $IFACE type wireguard
+        pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf
+        post-down ip link del $IFACE
+'''.format(ifaceName, ifaceName, ifaceAddrv4)
+ifaceFile = os.open(ifaceFileName, "w")
+ifaceFile.write(ifaceStr)
+ifaceFile.close()
+# 3- Créer config wg
+# 
+wgFileName = ""
+wgPeerPubKey = ""
+wgPrivKey = ""
+wgConfig = '''
+[Interface]
+PrivateKey = {0} 
+ListenPort = 51820
+
+[Peer]
+PublicKey = {1}
+AllowedIPs = 0.0.0.0/24
+'''.format(wgPrivPubKey, wgPeerPubKey)
+wgFile = os.open(wgFileName, "w")
+wgFile.write(wgConfig)
+wgFile.close()
+# 4- Envoyer mail/afficher instructions