Creation de nvram.updates
darcs-hash:20050903225946-d1718-93a480b75570a42349ec4ac3a91def3ab77effd8.gz
This commit is contained in:
parent
5f505e62c1
commit
fa4c2b68a8
1 changed files with 102 additions and 71 deletions
|
@ -27,71 +27,6 @@ class conf_wifi(gen_config) :
|
||||||
# Correspondance MAC/IP
|
# Correspondance MAC/IP
|
||||||
MACIP='/etc/wifi/wifi-update-ng/common/etc/macip'
|
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 )'
|
restart_cmd = 'kill -HUP $(cat /var/run/isakmpd.pid 2>/dev/null )'
|
||||||
|
|
||||||
######################################FIN PARTIE DE CONFIGURATION
|
######################################FIN PARTIE DE CONFIGURATION
|
||||||
|
@ -150,6 +85,31 @@ Netmask= 0.0.0.0
|
||||||
shutil.copy(os.path.join(root, name),
|
shutil.copy(os.path.join(root, name),
|
||||||
os.path.join("%s%s" % (WORK, root[len(top):]),
|
os.path.join("%s%s" % (WORK, root[len(top):]),
|
||||||
name))
|
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 <nvram> dans
|
||||||
|
# la description.
|
||||||
|
for info in borne.info():
|
||||||
|
if info.startswith("<nvram>"):
|
||||||
|
fd.write("variables=${variables} %s\n" % info[7:].split("=")[0])
|
||||||
|
fd.write("NVRAM_%s\n" % info[7:])
|
||||||
|
fd.close()
|
||||||
|
|
||||||
# Ensuite, on créé le tar
|
# Ensuite, on créé le tar
|
||||||
os.system("tar zcf %s/%s.tmp.tar.gz -C %s ." % (TARGET, borne.nom(), WORK))
|
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)
|
# 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):
|
def gen_isakmpd(self, clients):
|
||||||
"""Génération du fichier pour isakmpd"""
|
"""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')
|
anim('\tFichier isakmpd.conf')
|
||||||
for machine in clients :
|
for machine in clients :
|
||||||
self.anim.cycle()
|
self.anim.cycle()
|
||||||
|
@ -178,25 +209,25 @@ Netmask= 0.0.0.0
|
||||||
'KEY' : machine.ipsec()}
|
'KEY' : machine.ipsec()}
|
||||||
|
|
||||||
# Phase 1
|
# Phase 1
|
||||||
phase1 += self.phase1_template % data
|
phase1 += phase1_template % data
|
||||||
|
|
||||||
# Phase 2
|
# Phase 2
|
||||||
if blocs != '' :
|
if blocs != '' :
|
||||||
# Ce n'est pas la première machine, il faut insérer un séparateur
|
# Ce n'est pas la première machine, il faut insérer un séparateur
|
||||||
phase2 += self.phase2_sep
|
phase2 += phase2_sep
|
||||||
phase2 += self.phase2_template % data
|
phase2 += phase2_template % data
|
||||||
|
|
||||||
# Blocs machine
|
# Blocs machine
|
||||||
blocs += self.host_template % data
|
blocs += host_template % data
|
||||||
|
|
||||||
# Ecriture du fichier isakmpd.conf
|
# Ecriture du fichier isakmpd.conf
|
||||||
fd = self._open_conf(self.ISAKMPD_CONF,'#')
|
fd = self._open_conf(self.ISAKMPD_CONF,'#')
|
||||||
fd.write(self.general)
|
fd.write(general)
|
||||||
fd.write(phase1)
|
fd.write(phase1)
|
||||||
fd.write('\n')
|
fd.write('\n')
|
||||||
fd.write(phase2)
|
fd.write(phase2)
|
||||||
fd.write('\n')
|
fd.write('\n')
|
||||||
fd.write(blocs)
|
fd.write(blocs)
|
||||||
fd.write(self.net_crans)
|
fd.write(net_crans)
|
||||||
fd.close()
|
fd.close()
|
||||||
print OK
|
print OK
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue