[firewall4] Séparation en plusieurs fichiers
En gros, un par pare feu
This commit is contained in:
parent
964abdd565
commit
2d2cbf2d9f
8 changed files with 1335 additions and 1268 deletions
75
gestion/gen_confs/firewall4/firewall4.py
Executable file
75
gestion/gen_confs/firewall4/firewall4.py
Executable file
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
import socket
|
||||
|
||||
import utils
|
||||
import base
|
||||
import komaz
|
||||
import zamok
|
||||
import routeur
|
||||
|
||||
#: Nom de la machine exécutant le script
|
||||
hostname = socket.gethostname()
|
||||
|
||||
|
||||
|
||||
#: Associe à un ``hostname`` la classe du pare-feu correspondant
|
||||
firewall = {
|
||||
'komaz' : komaz.firewall,
|
||||
'zamok' : zamok.firewall,
|
||||
'routeur' : routeur.firewall,
|
||||
'gordon' : base.firewall_routeur,
|
||||
'eap' : base.firewall_wifionly,
|
||||
}
|
||||
|
||||
if hostname in firewall.keys():
|
||||
#: Classe du pare-feu pour la machine ``hostname`` ou :py:class:`firewall_base` si non trouvé
|
||||
firewall = firewall[hostname]
|
||||
else:
|
||||
#: Classe du pare-feu pour la machine ``hostname`` ou :py:class:`firewall_base` si non trouvé
|
||||
firewall = base.firewall
|
||||
|
||||
if __name__ == '__main__' :
|
||||
|
||||
fw = firewall()
|
||||
|
||||
# Chaînes pouvant être recontruites
|
||||
chaines = fw.reloadable.keys()
|
||||
|
||||
def __usage(txt=None) :
|
||||
if txt!=None : cprint(txt,'gras')
|
||||
|
||||
chaines.sort()
|
||||
|
||||
print """Usage:
|
||||
%(p)s start : Construction du firewall.
|
||||
%(p)s restart : Reconstruction du firewall.
|
||||
%(p)s stop : Arrêt du firewall.
|
||||
%(p)s <noms de chaînes> : reconstruit les chaînes
|
||||
Les chaînes pouvant être reconstruites sont :
|
||||
%(chaines)s
|
||||
Pour reconfiguration d'IPs particulières, utiliser generate. """ % \
|
||||
{ 'p' : sys.argv[0].split('/')[-1] , 'chaines' : '\n '.join(chaines) }
|
||||
sys.exit(-1)
|
||||
|
||||
# Bons arguments ?
|
||||
if len(sys.argv) == 1 :
|
||||
__usage()
|
||||
for arg in sys.argv[1:] :
|
||||
if arg in [ 'stop', 'restart', 'start' ] and len(sys.argv) != 2 :
|
||||
__usage("L'argument %s ne peut être employé que seul." % arg)
|
||||
|
||||
if arg not in [ 'stop', 'restart', 'start' ] + chaines :
|
||||
__usage("L'argument %s est inconnu." % arg)
|
||||
|
||||
for arg in sys.argv[1:] :
|
||||
if arg == 'stop':
|
||||
fw.stop()
|
||||
elif arg == 'start':
|
||||
fw.start()
|
||||
elif arg == 'restart':
|
||||
fw.restart()
|
||||
else:
|
||||
fw.reload(arg)
|
Loading…
Add table
Add a link
Reference in a new issue