From fa4c2b68a8caab8c9653a8a307288e2f1160b6cf Mon Sep 17 00:00:00 2001 From: bernat Date: Sun, 4 Sep 2005 00:59:46 +0200 Subject: [PATCH] Creation de nvram.updates darcs-hash:20050903225946-d1718-93a480b75570a42349ec4ac3a91def3ab77effd8.gz --- gestion/gen_confs/wifi_ng.py | 173 +++++++++++++++++++++-------------- 1 file changed, 102 insertions(+), 71 deletions(-) diff --git a/gestion/gen_confs/wifi_ng.py b/gestion/gen_confs/wifi_ng.py index b9af10d3..43464969 100755 --- a/gestion/gen_confs/wifi_ng.py +++ b/gestion/gen_confs/wifi_ng.py @@ -27,71 +27,6 @@ class conf_wifi(gen_config) : # Correspondance MAC/IP MACIP='/etc/wifi/wifi-update-ng/common/etc/macip' - # Config générale de ISAKMPd - general=""" -[General] -Listen-on= 138.231.148.1 -Retransmits= 5 -Exchange-max-time= 40 -Logverbose= 1 -Loglevel= A=90 -Check-interval= 60 -Default-phase-1-lifetime= 1200,90:86400 -Default-phase-2-lifetime= 1800,120:86400 - -[Default-main-mode] -DOI= IPSEC -EXCHANGE_TYPE= ID_PROT -Transforms= 3DES-SHA,3DES-MD5 - -[Default-quick-mode] -DOI= IPSEC -EXCHANGE_TYPE= QUICK_MODE -Suites= QM-ESP-AES-SHA-SUITE, QM-ESP-AES-MD5-SUITE, \\ - QM-ESP-BLF-SHA-SUITE, QM-ESP-BLF-MD5-SUITE, \\ - QM-ESP-3DES-SHA-SUITE, QM-ESP-3DES-MD5-SUITE, \\ - QM-ESP-AES-SHA-PFS-SUITE, QM-ESP-AES-MD5-PFS-SUITE, \\ - QM-ESP-BLF-SHA-PFS-SUITE, QM-ESP-BLF-MD5-PFS-SUITE, \\ - QM-ESP-3DES-SHA-PFS-SUITE, QM-ESP-3DES-MD5-PFS-SUITE - -""" - - # Phase 1 - phase1_debut="[Phase 1]\n" - phase1_template="%(IP)s= ISAKMP-peer-%(HOST)s\n" - - # Phase 2 - phase2_debut="[Phase 2]\nPassive-connections= " - phase2_template="IPsec-%(HOST)s" - phase2_sep=', \\\n ' - - #Lignes necessaires pour chaque machine - host_template=""" -[ISAKMP-peer-%(HOST)s] -Phase= 1 -Transport= udp -Address= %(IP)s -Configuration= Default-main-mode -Authentication=%(KEY)s - -[IPsec-%(HOST)s] -Phase= 2 -ISAKMP-peer= ISAKMP-peer-%(HOST)s -Configuration= Default-quick-mode -Local-ID= Net-crans -Remote-ID= Net-%(HOST)s - -[Net-%(HOST)s] -ID-type= IPV4_ADDR -Address= %(IP)s -""" - # Dernière partie du fichier - net_crans=""" -[Net-crans] -ID-type= IPV4_ADDR_SUBNET -Network= 0.0.0.0 -Netmask= 0.0.0.0 -""" restart_cmd = 'kill -HUP $(cat /var/run/isakmpd.pid 2>/dev/null )' ######################################FIN PARTIE DE CONFIGURATION @@ -150,6 +85,31 @@ Netmask= 0.0.0.0 shutil.copy(os.path.join(root, name), os.path.join("%s%s" % (WORK, root[len(top):]), name)) + # On créé/complète le fichier /etc/nvram.updates + fd = file(os.path.join(WORK, "etc", "nvram.updates"), "w+") + data = { 'HOST': borne.nom().split('.')[0], + 'IP': borne.ip(), + 'CANAL': borne.canal(raw=True), + 'PUISSANCE': abs(int(borne.puissance() or 0)), + 'ON': ((int(borne.puissance() or 0) > 0) and 1 or 0), + } + fd.write(""" +variables=${variables} lan_ipaddr wan_hostname crans_channels txpower +NVRAM_lan_ipaddr=%(IP)s +NVRAM_wan_hostname=%(HOST)s +NVRAM_crans_channels=%(CANAL)s +NVRAM_txpower=%(PUISSANCE)d +NVRAM_wl0_radio=%(ON)d +""" % data) + # Dans le description, on peut avoir d'autres variables + # pour cette borne. Elles sont préfixées par dans + # la description. + for info in borne.info(): + if info.startswith(""): + fd.write("variables=${variables} %s\n" % info[7:].split("=")[0]) + fd.write("NVRAM_%s\n" % info[7:]) + fd.close() + # Ensuite, on créé le tar os.system("tar zcf %s/%s.tmp.tar.gz -C %s ." % (TARGET, borne.nom(), WORK)) # Et on le renomme (on espère que c'est atomique) @@ -169,6 +129,77 @@ Netmask= 0.0.0.0 def gen_isakmpd(self, clients): """Génération du fichier pour isakmpd""" + + # Config générale de ISAKMPd + general=""" +[General] +Listen-on= 138.231.148.1 +Retransmits= 5 +Exchange-max-time= 40 +Logverbose= 1 +Loglevel= A=90 +Check-interval= 60 +Default-phase-1-lifetime= 1200,90:86400 +Default-phase-2-lifetime= 1800,120:86400 + +[Default-main-mode] +DOI= IPSEC +EXCHANGE_TYPE= ID_PROT +Transforms= 3DES-SHA,3DES-MD5 + +[Default-quick-mode] + +DOI= IPSEC +EXCHANGE_TYPE= QUICK_MODE +Suites= QM-ESP-AES-SHA-SUITE, QM-ESP-AES-MD5-SUITE, \\ + QM-ESP-BLF-SHA-SUITE, QM-ESP-BLF-MD5-SUITE, \\ + QM-ESP-3DES-SHA-SUITE, QM-ESP-3DES-MD5-SUITE, \\ + QM-ESP-AES-SHA-PFS-SUITE, QM-ESP-AES-MD5-PFS-SUITE, \\ + QM-ESP-BLF-SHA-PFS-SUITE, QM-ESP-BLF-MD5-PFS-SUITE, \\ + QM-ESP-3DES-SHA-PFS-SUITE, QM-ESP-3DES-MD5-PFS-SUITE + +""" + + # Phase 1 + phase1_debut="[Phase 1]\n" + phase1_template="%(IP)s= ISAKMP-peer-%(HOST)s\n" + + # Phase 2 + phase2_debut="[Phase 2]\nPassive-connections= " + phase2_template="IPsec-%(HOST)s" + phase2_sep=', \\\n ' + + #Lignes necessaires pour chaque machine + host_template=""" +[ISAKMP-peer-%(HOST)s] +Phase= 1 +Transport= udp +Address= %(IP)s +Configuration= Default-main-mode +Authentication=%(KEY)s + +[IPsec-%(HOST)s] +Phase= 2 +ISAKMP-peer= ISAKMP-peer-%(HOST)s +Configuration= Default-quick-mode +Local-ID= Net-crans +Remote-ID= Net-%(HOST)s + +[Net-%(HOST)s] +ID-type= IPV4_ADDR +Address= %(IP)s +""" + # Dernière partie du fichier + net_crans=""" +[Net-crans] +ID-type= IPV4_ADDR_SUBNET +Network= 0.0.0.0 +Netmask= 0.0.0.0 +""" + + phase1 = phase1_debut + phase2 = phase2_debut + blocs='' anim('\tFichier isakmpd.conf') for machine in clients : self.anim.cycle() @@ -178,25 +209,25 @@ Netmask= 0.0.0.0 'KEY' : machine.ipsec()} # Phase 1 - phase1 += self.phase1_template % data + phase1 += phase1_template % data # Phase 2 if blocs != '' : # Ce n'est pas la première machine, il faut insérer un séparateur - phase2 += self.phase2_sep - phase2 += self.phase2_template % data + phase2 += phase2_sep + phase2 += phase2_template % data # Blocs machine - blocs += self.host_template % data + blocs += host_template % data # Ecriture du fichier isakmpd.conf fd = self._open_conf(self.ISAKMPD_CONF,'#') - fd.write(self.general) + fd.write(general) fd.write(phase1) fd.write('\n') fd.write(phase2) fd.write('\n') fd.write(blocs) - fd.write(self.net_crans) + fd.write(net_crans) fd.close() print OK