751 lines
18 KiB
Python
751 lines
18 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
""" Définition de variables de configuration et de comportement des scripts Cr@ns """
|
|
|
|
import time
|
|
import datetime
|
|
|
|
# Fichier généré à partir de bcfg2
|
|
from config_srv import adm_only, role
|
|
|
|
# Valeur par défaut pour les champs d'études
|
|
etudes_defaults = [
|
|
u"Établissement inconnu",
|
|
u"Année inconnue",
|
|
u"Domaine d'études inconnu"
|
|
]
|
|
|
|
gtfepoch = "19700101000000Z"
|
|
##### Gestion des câblages
|
|
# Selon la date, on met :
|
|
# -periode_transitoire : on accepte ceux qui ont payé l'année dernière
|
|
|
|
# On récupère l'année scolaire à tout besoin
|
|
__annee = time.localtime()[0]
|
|
|
|
# Prochaine période transitoire de l'année version generalizedTimeFormat
|
|
gtf_debut_periode_transitoire = "%s0816000000+0200" % (__annee,)
|
|
gtf_fin_periode_transitoire = "%s0930235959+0200" % (__annee,)
|
|
|
|
# Version timestampées timezone-naïves
|
|
debut_periode_transitoire = time.mktime(time.strptime("%s/08/16 00:00:00" % (__annee,), "%Y/%m/%d %H:%M:%S"))
|
|
fin_periode_transitoire = time.mktime(time.strptime("%s/09/30 23:59:59" % (__annee,), "%Y/%m/%d %H:%M:%S"))
|
|
|
|
# On est en période transitoire si on est dans le bon intervale
|
|
periode_transitoire = (debut_periode_transitoire <= time.time() <= fin_periode_transitoire)
|
|
|
|
ann_scol = __annee
|
|
if time.time() <= debut_periode_transitoire:
|
|
ann_scol -= 1
|
|
|
|
# Gel des cableurs pas a jour de cotisation
|
|
# Les droits ne sont pas retires mais il n'y a plus de sudo
|
|
bl_vieux_cableurs = False
|
|
|
|
##Création de comptes
|
|
# Gid des comptes créés
|
|
gid = 100
|
|
club_gid = 120
|
|
mailgroup = 8
|
|
default_rights = 0755
|
|
default_mail_rights = 0700
|
|
quota_soft = 8000000
|
|
quota_hard = 10000000
|
|
fquota_soft = 0
|
|
fquota_hard = 0
|
|
# Shell
|
|
login_shell = '/bin/zsh'
|
|
club_login_shell = '/usr/bin/rssh'
|
|
# Longueur maximale d'un login
|
|
maxlen_login = 25
|
|
|
|
shells_possibles = [
|
|
u'/bin/csh',
|
|
u'/bin/sh', # tout caca
|
|
u'/bin/dash', # un bash light
|
|
u'/usr/bin/rc',
|
|
u'/usr/bin/ksh', # symlink vers zsh
|
|
u'/bin/ksh', # symlink vers zsh
|
|
u'/usr/bin/tcsh', # TENEX C Shell (csh++)
|
|
u'/bin/tcsh', # TENEX C Shell (csh++)
|
|
u'/bin/bash', # the Bourne-Again SHell
|
|
u'/bin/zsh', # the Z shell
|
|
u'/usr/bin/zsh', # the Z shell
|
|
u'/usr/bin/screen',
|
|
u'/bin/rbash', # Bash restreint
|
|
u'/usr/bin/rssh', # restricted secure shell allowing only scp and/or sftp
|
|
u'/usr/local/bin/badPassSh', # demande de changer de mot de passe
|
|
u'/usr/bin/passwd', # idem
|
|
u'/usr/local/bin/disconnect_shell', # déconnexion crans
|
|
u'/usr/scripts/surveillance/disconnect_shell', # idem
|
|
u'/usr/sbin/nologin', # This account is currently not available.
|
|
u'/bin/false', # vraiement méchant
|
|
u'/usr/bin/es', # n'exsite plus
|
|
u'/usr/bin/esh', # n'existe plus
|
|
u'', # le shell vide pour pouvoir les punis
|
|
]
|
|
|
|
shells_gest_crans_order = [
|
|
"zsh",
|
|
"bash",
|
|
"tcsh",
|
|
"screen",
|
|
"rbash",
|
|
"rssh",
|
|
"badPassSh",
|
|
"disconnect_shell"
|
|
]
|
|
|
|
shells_gest_crans = {
|
|
"zsh" : {
|
|
"path" : "/bin/zsh",
|
|
"desc" : "Le Z SHell, shell par defaut sur zamok"
|
|
},
|
|
"bash" : {
|
|
"path" : "/bin/bash",
|
|
"desc" : "Le Boune-Again SHell, shell par defaut de la plupart des linux"
|
|
},
|
|
"tcsh" : {
|
|
"path" : "/bin/tcsh",
|
|
"desc" : "C SHell ++"
|
|
},
|
|
"screen" : {
|
|
"path" : '/usr/bin/screen',
|
|
"desc" : "Un gestionnaire de fenêtre dans un terminal"
|
|
},
|
|
"rbash" : {
|
|
"path" : "/bin/rbash",
|
|
"desc" : "Un bash très restreint, voir man rbash"
|
|
},
|
|
"rssh" : {
|
|
"path" : "/usr/bin/rssh",
|
|
"desc" : "Shell ne permetant que les transferts de fichiers via scp ou sftp"
|
|
},
|
|
"badPassSh" : {
|
|
"path" : "/usr/local/bin/badPassSh",
|
|
"desc" : "Demande de changer de mot de passe à la connexion"
|
|
},
|
|
"disconnect_shell" : {
|
|
"path" : "/usr/local/bin/disconnect_shell",
|
|
"desc" : "Shell pour les suspensions de compte avec message explicatif"
|
|
},
|
|
}
|
|
# Quels droits donnent l'appartenance à quel groupe Unix ?
|
|
droits_groupes = {
|
|
'adm' : [
|
|
u'Nounou',
|
|
],
|
|
'respbats' : [
|
|
u'Imprimeur',
|
|
u'Cableur',
|
|
u'Nounou',
|
|
],
|
|
'apprentis' : [
|
|
u'Apprenti',
|
|
],
|
|
'moderateurs' : [
|
|
u'Moderateur',
|
|
],
|
|
'disconnect' : [
|
|
u'Bureau',
|
|
],
|
|
'imprimeurs' : [
|
|
u'Imprimeur',
|
|
u'Nounou',
|
|
u'Tresorier',
|
|
],
|
|
'bureau' : [
|
|
u'Bureau',
|
|
],
|
|
'webadm' : [
|
|
u'Webmaster',
|
|
],
|
|
'webradio' : [
|
|
u'Webradio',
|
|
],
|
|
}
|
|
|
|
####### Les modes de paiement accepté par le crans
|
|
|
|
modePaiement = [
|
|
'liquide',
|
|
'paypal',
|
|
'solde',
|
|
'cheque',
|
|
'carte',
|
|
'comnpay',
|
|
'arbitraire',
|
|
'note',
|
|
]
|
|
|
|
####### Les ML
|
|
# Le + devant un nom de ML indique une synchronisation
|
|
# ML <-> fonction partielle : il n'y a pas d'effacement automatique
|
|
# des abonnés si le droit est retiré
|
|
droits_mailing_listes = {
|
|
'roots' : [
|
|
u'Nounou',
|
|
u'Apprenti',
|
|
],
|
|
'mailman' : [
|
|
u'Nounou',
|
|
],
|
|
'+nounou' : [
|
|
u'Nounou',
|
|
u'Apprenti',
|
|
],
|
|
'respbats' : [
|
|
u'Cableur',
|
|
u'Nounou',
|
|
u'Bureau',
|
|
],
|
|
'moderateurs' : [
|
|
u'Moderateur',
|
|
u'Bureau',
|
|
],
|
|
'disconnect' : [
|
|
u'Nounou',
|
|
u'Bureau',
|
|
],
|
|
'impression' : [
|
|
u'Imprimeur',
|
|
],
|
|
'bureau' : [
|
|
u'Bureau',
|
|
],
|
|
'tresorier' : [
|
|
u'Tresorier',
|
|
],
|
|
'apprentis' : [
|
|
u'Apprenti',
|
|
],
|
|
'+ca' : [
|
|
u'Bureau',
|
|
u'Apprenti',
|
|
u'Nounou',
|
|
u'Cableur',
|
|
],
|
|
'+federez' : [
|
|
u'Bureau',
|
|
u'Apprenti',
|
|
u'Nounou',
|
|
],
|
|
'+install-party' : [
|
|
u'Bureau',
|
|
u'Apprenti',
|
|
u'Nounou',
|
|
],
|
|
|
|
# Correspondance partielle nécessaire... Des adresses non-crans sont inscrites à ces ML.
|
|
'+dsi-crans' : [
|
|
u'Nounou',
|
|
u'Bureau',
|
|
],
|
|
'+crous-crans' : [
|
|
u'Nounou',
|
|
u'Bureau',
|
|
],
|
|
'+wrc' : [
|
|
u'Webradio',
|
|
],
|
|
}
|
|
|
|
#: Répertoire de stockage des objets détruits
|
|
cimetiere = '/home/cimetiere'
|
|
|
|
#: Adresses mac utiles
|
|
# Mac du routeur est la mac du routeur du crans (actuellement odlyd)
|
|
# Utilisé par ra2.py, à changer si le routeur est remplacé
|
|
mac_komaz = '00:19:bb:31:3b:80'
|
|
mac_du_routeur = 'a0:d3:c1:00:f4:04'
|
|
mac_titanic = 'aa:73:65:63:6f:76'
|
|
|
|
#: Serveur principal de bcfg2
|
|
bcfg2_main = "bcfg2.adm.crans.org"
|
|
|
|
#: Fichier de mapping lun/nom de volume iscsi
|
|
ISCSI_MAP_FILE = "/usr/scripts/var/iscsi_names_%s.py"
|
|
|
|
#: Algorithmes de hashage pour le champ SSHFP
|
|
# format : { algorithm : (IANA_id, ssh_algo) }
|
|
# où algorithm est tel qu'il apparait dans les fichiers /etc/ssh/ssh_host_%s_key.pub % algorithm
|
|
# IANA_id correspond à l'entier attribué par l'IANA pour l'algorithm dans les champs DNS SSHFP
|
|
# ssh_algo correspond a la première chaine de caractères donnant le nom de l'algorithme de chiffrement lorsque la clef ssh est dans le format openssh (algo key comment)
|
|
sshfp_algo = {
|
|
"rsa" : (1, "ssh-rsa"),
|
|
"dsa" : (2, "ssh-dss"),
|
|
"ecdsa-256" : (3, "ecdsa-sha2-nistp256"),
|
|
"ecdsa-384" : (3, "ecdsa-sha2-nistp384"),
|
|
"ecdsa-521" : (3, "ecdsa-sha2-nistp521"),
|
|
"ecdsa" : (3, "ecdsa-sha2-nistp521"),
|
|
}
|
|
|
|
sshfs_ralgo = {}
|
|
for key, value in sshfp_algo.items():
|
|
sshfs_ralgo[value[1]] = (value[0], key)
|
|
|
|
sshfp_hash = {
|
|
"sha1" : 1,
|
|
"sha256" : 2,
|
|
}
|
|
|
|
sshkey_max_age = int(9.869604401089358 * (365.25 * 24 * 3600))
|
|
|
|
sshkey_size = {
|
|
'rsa':4096,
|
|
'dsa':1024,
|
|
'ecdsa':521,
|
|
}
|
|
|
|
#: Nombre de jours après le passage en chambre ???? où on supprime les machines
|
|
demenagement_delai = 8
|
|
|
|
|
|
|
|
#############################
|
|
## Paramètres des machines ##
|
|
#############################
|
|
|
|
## >>>>>>>>>>>>>>> La modification des paramètres suivants doit se
|
|
## >> ATTENTION >> faire avec précaution, il faut mettre la base à
|
|
## >>>>>>>>>>>>>>> jour en parralèle de ces modifs.
|
|
|
|
# Sous réseaux alloués à chaque type de machine ou bâtiment
|
|
# Pour la zone wifi, il faut penser à modifier le /etc/network/interfaces
|
|
# de sable, zamok et komaz pour ajouter les zones en plus (et de
|
|
# faire en sorte qu'ils prennent effet immédiatement ; c'est important pour
|
|
# komaz car c'est la route par défaut mais aussi pour zamok et sable
|
|
# à cause de leur firewall et de leur patte wifi.
|
|
|
|
plage_ens = '138.231.0.0/16'
|
|
|
|
# NETs_primaires contient une bijection entre des types de machines
|
|
# et les plages d'ip qui vont bien. NETs_secondaires contient des
|
|
# clefs qui cassent la bijectivité, mais qui peuvent servir.
|
|
# NETs est l'union des deux
|
|
NETs_primaires = {
|
|
'serveurs' : [
|
|
'138.231.136.0/24',
|
|
],
|
|
'adherents' : [
|
|
'138.231.137.0/24',
|
|
'138.231.138.0/23',
|
|
'138.231.140.0/22',
|
|
],
|
|
'wifi-adh' : [
|
|
'138.231.144.0/22',
|
|
'138.231.148.32/27',
|
|
'138.231.148.64/26',
|
|
'138.231.148.128/25',
|
|
'138.231.149.0/24',
|
|
'138.231.150.0/23',
|
|
],
|
|
'bornes' : [
|
|
'138.231.148.0/27',
|
|
],
|
|
'adm' : [
|
|
'10.231.136.0/24'
|
|
],
|
|
'personnel-ens' : [
|
|
'10.2.9.0/24'
|
|
],
|
|
'gratuit' : [
|
|
'10.42.0.0/16'
|
|
],
|
|
'accueil' : [
|
|
'10.51.0.0/16'
|
|
],
|
|
'federez' : [
|
|
'10.53.0.0/16'
|
|
],
|
|
'isolement' : [
|
|
'10.52.0.0/16'
|
|
],
|
|
'evenementiel' : [
|
|
'10.231.137.0/24'
|
|
],
|
|
'multicast' : [
|
|
'239.0.0.0/8'
|
|
],
|
|
'ens' : [
|
|
'138.231.135.0/24'
|
|
],
|
|
}
|
|
|
|
NETs_secondaires = {
|
|
'all' : [
|
|
'138.231.136.0/21',
|
|
'138.231.144.0/21',
|
|
],
|
|
'wifi': [
|
|
'138.231.144.0/21',
|
|
],
|
|
'fil' : [
|
|
'138.231.136.0/21',
|
|
],
|
|
}
|
|
|
|
NETs = {}
|
|
NETs.update(NETs_primaires)
|
|
NETs.update(NETs_secondaires)
|
|
|
|
NETs_regexp = {
|
|
'all' : r'^138\.231\.1(3[6789]|4[0123456789]|5[01])\.\d+$'
|
|
}
|
|
|
|
# Classes de rid
|
|
# Merci d'essayer de les faire correspondre avec les réseaux
|
|
# ci-dessus...
|
|
# De même que pout NETs, primaires c'est pour la bijectivité, et secondaires
|
|
# pour les trucs pratiques
|
|
# https://wiki.crans.org/CransTechnique/PlanAdressage#Machines
|
|
rid_primaires = {
|
|
# Rid pour les serveurs
|
|
'serveurs' : [(0, 255),],
|
|
# Rid pour les machines fixes
|
|
'adherents' : [(256, 2047),],
|
|
# Rid pour les machines wifi
|
|
'wifi-adh' : [(2048, 3071), (3104, 4095),],
|
|
# Rid pour les bornes
|
|
'bornes' : [(3072, 3103), (34816, 35071),],
|
|
# Rid pour machines spéciales
|
|
'special' : [(4096, 6143),],
|
|
# Rid pour les serveurs v6-only
|
|
'serveurs-v6' : [(8192, 10240),],
|
|
# Rid pour les filaires v6-only
|
|
'adherents-v6' : [(16384, 24575),],
|
|
# Rid pour les wifi v6-only
|
|
'wifi-adh-v6' : [(24576, 32767),],
|
|
# Bornes-v6
|
|
'bornes-v6' : [(34816, 35071),],
|
|
# Rid pour les machines du vlan adm
|
|
'adm-v6' : [(49152, 51199),],
|
|
# Rid pour les machines du vlan adm
|
|
'adm' : [(51200, 53247),],
|
|
# Mid pour les machines du vlan gratuit
|
|
'gratuit' : [(53248, 55295),],
|
|
# Rid pour les machines des personnels ens
|
|
'personnel-ens' : [(55296, 55551),],
|
|
# Un unique rid pour les machines multicast
|
|
'multicast' : [(65535, 65535),],
|
|
}
|
|
|
|
rid_secondaires = {
|
|
# Rid pour les machines filaire ipv4
|
|
'fil' : [(0, 2047),],
|
|
'wifi' : [(2048, 4095), (34816, 35071),],
|
|
}
|
|
|
|
rid = {}
|
|
rid.update(rid_primaires)
|
|
rid.update(rid_secondaires)
|
|
|
|
# rid pour les machines spéciales (classe 'special' ci-dessus)
|
|
rid_machines_speciales = {
|
|
# freebox.crans.org
|
|
4096: '82.225.39.54',
|
|
# ovh.crans.org
|
|
4097: '91.121.84.138',
|
|
# soyouz.crans.org
|
|
4098: '91.121.179.40',
|
|
}
|
|
|
|
ipv6_machines_speciales = {
|
|
# freebox
|
|
4096: '2a01:e35:2e12:7360:a873:65ff:fe63:6f77',
|
|
# ovh
|
|
4097: '2001:41d0:1:898a::1',
|
|
# soyouz
|
|
4098: '2001:41d0:1:f428::1',
|
|
}
|
|
|
|
# Les préfixes ipv6 publics
|
|
prefix = {
|
|
'subnet' : [
|
|
'2a01:240:fe3d::/48',
|
|
],
|
|
'serveurs' : [
|
|
'2a01:240:fe3d:4::/64',
|
|
],
|
|
'adherents' : [
|
|
'2a01:240:fe3d:4::/64',
|
|
],
|
|
'fil' : [
|
|
'2a01:240:fe3d:4::/64',
|
|
],
|
|
'adm' : [
|
|
'2a01:240:fe3d:c804::/64',
|
|
],
|
|
'adm-v6' : [
|
|
'2a01:240:fe3d:c804::/64',
|
|
],
|
|
'wifi' : [
|
|
'2a01:240:fe3d:c04::/64',
|
|
],
|
|
'serveurs-v6' : [
|
|
'2a01:240:fe3d:c04::/64',
|
|
],
|
|
'adherents-v6' : [
|
|
'2a01:240:fe3d:4::/64',
|
|
],
|
|
'wifi-adh-v6' : [
|
|
'2a01:240:fe3d:c04::/64',
|
|
],
|
|
'personnel-ens' : [
|
|
'2a01:240:fe3d:4::/64',
|
|
],
|
|
'sixxs2' : [
|
|
'2a01:240:fe00:68::/64',
|
|
],
|
|
'evenementiel' : [
|
|
'2a01:240:fe3d:d2::/64',
|
|
],
|
|
'bornes' : [
|
|
'2a01:240:fe3d:c04::/64',
|
|
],
|
|
'bornes-v6' : [
|
|
'2a01:240:fe3d:c04::/64',
|
|
],
|
|
'wifi-adh' : [
|
|
'2a01:240:fe3d:c04::/64',
|
|
],
|
|
'v6only' : [
|
|
'2001:470:c8b9:a4::/64',
|
|
],
|
|
}
|
|
|
|
# Préfixes ipv6 internes (ula)
|
|
int_prefix = {
|
|
#: pour les services accessibles aux bornes wifi
|
|
'manage_ap': 'fda8:5d34:a228:c04::/64',
|
|
}
|
|
|
|
# Domaines dans lesquels les machines sont placées suivant leur type
|
|
domains = {
|
|
'machineFixe': 'crans.org',
|
|
'machineCrans': 'crans.org',
|
|
'machineWifi': 'wifi.crans.org',
|
|
'borneWifi': 'wifi.crans.org',
|
|
}
|
|
|
|
# VLans
|
|
vlans = {
|
|
# VLan d'administration
|
|
'adm' : 2,
|
|
# VLan pour le wifi
|
|
'wifi' : 3,
|
|
# VLan pour le wifi de l'ens
|
|
'hotspot' : 4,
|
|
# VLan des gens qui paient
|
|
'adherent' : 1,
|
|
# VLan des inconnus
|
|
'accueil' : 7,
|
|
# VLan de la connexion gratuite
|
|
'gratuit' : 6,
|
|
'radin' : 6,
|
|
'v6only': 6,
|
|
# Vlan isolement
|
|
'isolement' : 9,
|
|
# VLan des appartements de l'ENS
|
|
'appts': 21,
|
|
# Vlan federez-wifi
|
|
'federez': 22,
|
|
# Vlan evenementiel (install-party, etc)
|
|
'event': 10,
|
|
# Vlan zone routeur ens (zrt)
|
|
'zrt': 1132,
|
|
# iSCSI (pour exporter la baie de disque sur vo)
|
|
'iscsi': 42,
|
|
# freebox (pour faire descendre la connexion au 0B)
|
|
'freebox': 8,
|
|
}
|
|
|
|
filter_policy = {
|
|
'komaz' : {
|
|
'policy_input' : 'ACCEPT',
|
|
'policy_forward' : 'ACCEPT',
|
|
'policy_output' : 'ACCEPT',
|
|
},
|
|
'zamok' : {
|
|
'policy_input' : 'ACCEPT',
|
|
'policy_forward' : 'DROP',
|
|
'policy_output' : 'ACCEPT',
|
|
},
|
|
'default' : {
|
|
'policy_input' : 'ACCEPT',
|
|
'policy_forward' : 'ACCEPT',
|
|
'policy_output' : 'ACCEPT',
|
|
}
|
|
}
|
|
|
|
# Cf RFC 4890
|
|
authorized_icmpv6 = [
|
|
'echo-request',
|
|
'echo-reply',
|
|
'destination-unreachable',
|
|
'packet-too-big',
|
|
'ttl-zero-during-transit',
|
|
'parameter-problem',
|
|
]
|
|
|
|
output_file = {
|
|
4 : '/tmp/ipt_rules',
|
|
6 : '/tmp/ip6t_rules',
|
|
}
|
|
|
|
file_pickle = {
|
|
4 : '/tmp/ipt_pickle',
|
|
6 : '/tmp/ip6t_pickle',
|
|
}
|
|
|
|
##################################################################################
|
|
#: Items de la blackliste
|
|
blacklist_items = {
|
|
u'bloq': u'Blocage total de tous les services',
|
|
u'paiement': u'Paiement manquant cette année',
|
|
u'virus': u'Passage en VLAN isolement',
|
|
u'upload': u"Bridage du débit montant vers l'extérieur",
|
|
u'autodisc_upload': u'Autodisconnect pour upload',
|
|
u'ipv6_ra': u'Isolement pour RA',
|
|
u'mail_invalide': u'Blocage pour mail invalide',
|
|
u'warez' : u"Présence de contenu violant de droit d'auteur sur zamok",
|
|
}
|
|
|
|
#: Blacklistes entrainant une déconnexion complète
|
|
blacklist_sanctions = [
|
|
'warez',
|
|
'virus',
|
|
'bloq',
|
|
'paiement',
|
|
]
|
|
|
|
#: Blacklistes redirigeant le port 80 en http vers le portail captif (avec des explications)
|
|
blacklist_sanctions_soft = [
|
|
'ipv6_ra',
|
|
'mail_invalide',
|
|
'virus',
|
|
'warez',
|
|
'bloq',
|
|
'chambre_invalide',
|
|
]
|
|
|
|
#: Blacklistes entrainant un bridage de la connexion pour upload
|
|
blacklist_bridage_upload = ['autodisc_upload', 'upload']
|
|
|
|
##################################################################################
|
|
|
|
adm_users = [
|
|
'root',
|
|
'identd',
|
|
'daemon',
|
|
'postfix',
|
|
'freerad',
|
|
'amavis',
|
|
'nut',
|
|
'respbats',
|
|
'list',
|
|
'sqlgrey',
|
|
'ntpd',
|
|
'lp',
|
|
]
|
|
|
|
open_ports = {
|
|
'tcp' : '22',
|
|
}
|
|
|
|
# Debit max sur le vlan de la connexion gratuite
|
|
debit_max_radin = 1000000
|
|
debit_max_gratuit = 1000000
|
|
|
|
###############################
|
|
## Vlan accueil et isolement ##
|
|
###############################
|
|
accueil_route = {
|
|
'138.231.136.1' : {
|
|
'tcp' : [
|
|
'80',
|
|
'443',
|
|
'22'
|
|
],
|
|
'hosts' : [
|
|
'ssh.crans.org',
|
|
'zamok.crans.org',
|
|
],
|
|
},
|
|
'138.231.136.67' : {
|
|
'tcp' : [
|
|
'80',
|
|
'443',
|
|
],
|
|
'hosts' : [
|
|
'www.crans.org',
|
|
'wiki.crans.org',
|
|
'wifi.crans.org',
|
|
],
|
|
},
|
|
'138.231.136.98' : {
|
|
'tcp' : [
|
|
'20',
|
|
'21',
|
|
'80',
|
|
'111',
|
|
'1024:65535',
|
|
],
|
|
'udp' : [
|
|
'69',
|
|
'1024:65535',
|
|
],
|
|
'hosts' : [
|
|
'ftp.crans.org',
|
|
],
|
|
},
|
|
'138.231.136.130' : {
|
|
'tcp' : [
|
|
'80',
|
|
'443',
|
|
],
|
|
'hosts' : [
|
|
'intranet2.crans.org',
|
|
'intranet.crans.org',
|
|
],
|
|
},
|
|
'138.231.136.18' : {
|
|
'tcp' : [
|
|
'80',
|
|
'443',
|
|
],
|
|
'hosts' : [
|
|
'cas.crans.org',
|
|
'login.crans.org',
|
|
'auth.crans.org',
|
|
],
|
|
},
|
|
'213.154.225.236' : {
|
|
'tcp' : [
|
|
'80',
|
|
'443',
|
|
],
|
|
'hosts' : [
|
|
'crl.cacert.org',
|
|
],
|
|
},
|
|
'213.154.225.237' : {
|
|
'tcp' : [
|
|
'80',
|
|
'443',
|
|
],
|
|
'hosts' : [
|
|
'ocsp.cacert.org',
|
|
],
|
|
},
|
|
}
|
|
|
|
dhcp_servers = ['dhcp.adm.crans.org', 'isc.adm.crans.org']
|
|
|
|
# Le bâtiment virtuel dans lequel on place des chambres qui n'existent pas, pour faire
|
|
# des tests.
|
|
bats_virtuels = ['v']
|
|
|
|
# Liste des batiments
|
|
liste_bats = ['a', 'b', 'c', 'h', 'i', 'j', 'm', 'g', 'p', 'k']
|