[firewall] On permet aux serveurs d'être joignables sur le port 22

* Et on corrige deux typos dans utils.py
This commit is contained in:
Pierre-Elliott Bécue 2014-05-15 14:09:12 +02:00
parent eadc449a8e
commit 17e4baac12
3 changed files with 23 additions and 5 deletions

View file

@ -69,3 +69,15 @@ ports_default = {
'output' : [ ':136','140:'] 'output' : [ ':136','140:']
} }
} }
srv_ports_default = {
'tcp' : {
'input' : [ '22' ],
'output' : []
},
'udp' : {
'input' : [],
'output' : []
}
}

View file

@ -96,7 +96,7 @@ class firewall(base.firewall_routeur):
chain = 'FORWARD' chain = 'FORWARD'
self.flush(table, chain) self.flush(table, chain)
# Valentin veux écouter la radio, en vrai, il faudrait utiliserl'URL authentication de icecast # Valentin veux écouter la radio, en vrai, il faudrait utiliserl'URL authentication de icecast
# (http://www.icecast.org/docs/icecast-2.3.1/icecast2_listenerauth.html) # (http://www.icecast.org/docs/icecast-2.3.1/icecast2_listenerauth.html)
# pour authoriser les gens logué sur l'intranet2 à écouter la radio de n'importe où # pour authoriser les gens logué sur l'intranet2 à écouter la radio de n'importe où
# avec un filtrage par ip (si quelqu'un passe au travers, whos cares # avec un filtrage par ip (si quelqu'un passe au travers, whos cares
@ -428,6 +428,12 @@ class firewall(base.firewall_routeur):
if table == 'filter': if table == 'filter':
pretty_print(table, chain) pretty_print(table, chain)
for net in base.config.NETs['serveurs']:
for proto in base.config.firewall.srv_ports_default.keys():
if base.config.firewall.srv_ports_default[proto]['output']:
self.add(table, chain, '-p %s -s %s -m multiport --dports %s -j RETURN' % (proto, net, ','.join( format_port(port) for port in base.config.firewall.ports_default[proto]['output'])))
if base.config.firewall.srv_ports_default[proto]['input']:
self.add(table, chain, '-p %s -d %s -m multiport --dports %s -j RETURN' % (proto, net, ','.join( format_port(port) for port in base.config.firewall.ports_default[proto]['input'])))
for net in base.config.NETs['adherents'] + base.config.NETs['wifi-adh'] + base.config.NETs['personnel-ens']: for net in base.config.NETs['adherents'] + base.config.NETs['wifi-adh'] + base.config.NETs['personnel-ens']:
for proto in base.config.firewall.ports_default.keys(): for proto in base.config.firewall.ports_default.keys():
if base.config.firewall.ports_default[proto]['output']: if base.config.firewall.ports_default[proto]['output']:

View file

@ -61,7 +61,7 @@ class firewall_tools(object) :
return self._machines return self._machines
# On utilise allMachinesAdherents car on a besoin que # On utilise allMachinesAdherents car on a besoin que
# les machine.proprio() soit déjà peuplés. En effet, on regarde # les machine.proprio() soit déjà peuplés. En effet, on regarde
# les blacklistes d'un proprio lorsque l'on regarde les blacklistes # les blacklistes d'un proprio lorsque l'on regarde les blacklistes
# d'une machine # d'une machine
anim('\tChargement des machines') anim('\tChargement des machines')
self._machines, self._adherents = self.conn.allMachinesAdherents() self._machines, self._adherents = self.conn.allMachinesAdherents()
@ -200,7 +200,7 @@ class firewall_tools(object) :
if self.reloadable[func_name] in self.use_tc: if self.reloadable[func_name] in self.use_tc:
self.reloadable[func_name](run_tc=True) self.reloadable[func_name](run_tc=True)
anim('\tRestoration d\'iptables') anim('\tRestauration d\'iptables')
self.restore(noflush=True) self.restore(noflush=True)
print OK print OK
@ -244,7 +244,7 @@ class firewall_tools(object) :
def start(self): def start(self):
"""Démarre le pare-feu : génère les règles, puis les restore""" """Démarre le pare-feu : génère les règles, puis les restore"""
self.machines() self.machines()
if squeeze: if squeeze:
anim('\tVidage du pare-feu') anim('\tVidage du pare-feu')
self.restore() self.restore()
@ -255,7 +255,7 @@ class firewall_tools(object) :
self.filter_table() self.filter_table()
self.nat_table() self.nat_table()
anim('\tRestoration d\'iptables') anim('\tRestauration d\'iptables')
self.restore() self.restore()
print OK print OK
return return