Projet

Général

Profil

Anomalie #2675

le firewall n'accepte pas de port au dessus de 49151

Ajouté par samuel morin il y a plus de 12 ans. Mis à jour il y a plus de 12 ans.

Statut:
Fermé
Priorité:
Normal
Catégorie:
-
Début:
05/01/2012
Echéance:
% réalisé:

100%

Temps estimé:
1.00 h
Temps passé:
Distribution:
EOLE 2.3

Description

Sur horus 2.3,
je créé un fichier de règles de firewall dans /usr/share/eole/firewall avec une règle permettant d'ouvrir les ports >1024 depuis une machine particulière (problème d'un démon qui se lance sur un port aléatoire).

allow_dest(interface='eth0', ip='172.30.96.33/255.255.255.255', port='1024:49000')

Le service me renvoi systématiquement une erreur si j'indique un port > à 49000

SyntaxError: invalid syntax
root@burdpn:/usr/share/eole/firewall# vi 00_root_tsm.fw
root@burdpn:/usr/share/eole/firewall# /etc/init.d/bastion restart * Stopping firewall: bastion [ OK ] * Starting firewall: bastionTraceback (most recent call last):
File "/usr/share/eole/bastion/bin/bastion", line 5, in <module>
write_rules()
File "/usr/share/eole/bastion/processor.py", line 6, in write_rules
rules, tcpwrappers = file_loader()
File "/usr/share/eole/bastion/loader.py", line 194, in file_loader
exec(file(fname).read())
File "<string>", line 5
allow_des$(interface='eth0', ip='172.30.96.33/255.255.255.255', protocol='udp', port='1024:55000')
^
SyntaxError: invalid syntax
root@burdpn:/usr/share/eole/firewall# vi 00_root_tsm.fw
root@burdpn:/usr/share/eole/firewall# /etc/init.d/bastion restart * Stopping firewall: bastion [ OK ] * Starting firewall: bastionError port not a valid port: 1024:55000 in /usr/share/eole/firewall/00_root_tsm.fw [ OK ]
root@burdpn:/usr/share/eole/firewall# vi 00_root_tsm.fw
root@burdpn:/usr/share/eole/firewall# /etc/init.d/bastion restart * Stopping firewall: bastion [ OK ] * Starting firewall: bastionError port not a valid port: 1024:50000 in /usr/share/eole/firewall/00_root_tsm.fw [ OK ]
root@burdpn:/usr/share/eole/firewall# vi 00_root_tsm.fw
root@burdpn:/usr/share/eole/firewall# /etc/init.d/bastion restart * Stopping firewall: bastion [ OK ] * Starting firewall: bastionError port not a valid port: 1:50000 in /usr/share/eole/firewall/00_root_tsm.fw [ OK ]
root@burdpn:/usr/share/eole/firewall# vi 00_root_tsm.fw
root@burdpn:/usr/share/eole/firewall# /etc/init.d/bastion restart * Stopping firewall: bastion [ OK ] * Starting firewall: bastion [ OK ]
root@burdpn:/usr/share/eole/firewall# vi 00_root_tsm.fw
root@burdpn:/usr/share/eole/firewall# /etc/init.d/bastion restart * Stopping firewall: bastion [ OK ] * Starting firewall: bastion [ OK ]
root@burdpn:/usr/share/eole/firewall# vi 00_root_tsm.fw
root@burdpn:/usr/share/eole/firewall# /etc/init.d/bastion restart * Stopping firewall: bastion [ OK ] * Starting firewall: bastionError port not a valid port: 1024:49999 in /usr/share/eole/firewall/00_root_tsm.fw

Il y a une limitation au niveau du code :
loader.py: if port not in range(0, 49151):

Je comprends pas trop pourquoi...
Pour info/rappel, la plage d'ip se termine à 65535... (et les ports dynamiques se situent dans la plage 49152 à 65535)...

Le problème doit se retrouver sur tous les modules.

Révisions associées

Révision 5e1422e8 (diff)
Ajouté par Joël Cuissinat il y a plus de 12 ans

Possibilité de gérer des ports dans la plage 49152-65535 (fixes #2675 @15m)
  • bastion/eole-firewall/loader.py : test des ports dans "range(0, 65536)"

Révision 1e00d5e8 (diff)
Ajouté par Joël Cuissinat il y a plus de 12 ans

Optimisation du test sur les numéros de port (ref #2675 @10m)
  • bastion/eole-firewall/loader.py : utilisation des comparateurs à la place de range

Historique

#1 Mis à jour par Joël Cuissinat il y a plus de 12 ans

  • Statut changé de Nouveau à Pas un bug

C'est peut-être juste parce que tu as tapé allow_des$ au lieu de allow_dest :o

Ah non, j'avais pas vu que tu avais laissé tes erreurs précédentes dans la demande !!!

#2 Mis à jour par Joël Cuissinat il y a plus de 12 ans

  • Statut changé de Pas un bug à En attente d'informations

#3 Mis à jour par Joël Cuissinat il y a plus de 12 ans

  • Projet changé de Horus à eole-common

#4 Mis à jour par Joël Cuissinat il y a plus de 12 ans

  • Assigné à mis à Fabrice Barconnière
  • Version cible mis à Mises à jour 2.3 - 03 Stable
  • Temps estimé mis à 1.00 h

/usr/share/eole/bastion/loader.py, ligne 52 :

            if port not in range(0, 49151):
                sys.stderr.write('Error port not a valid port: %s in %s' % (ports, fname))

Ca vient confirmer que la personne qui a codé ça a pensé qu'il n'était pas intéressant d'ouvrir la plage des ports dynamiques ou privés :)

#5 Mis à jour par samuel morin il y a plus de 12 ans

Joël Cuissinat a écrit :

C'est peut-être juste parce que tu as tapé allow_des$ au lieu de allow_dest :o

Ah non, j'avais pas vu que tu avais laissé tes erreurs précédentes dans la demande !!!

heu, je suis quand même pas complètement neuneu !

#6 Mis à jour par Joël Cuissinat il y a plus de 12 ans

  • Statut changé de En attente d'informations à Résolu
  • % réalisé changé de 0 à 100

#7 Mis à jour par Joël Cuissinat il y a plus de 12 ans

C'est mon dernier mot !

(de toute façon après : iptables v1.4.4: invalid port/service `65536' specified)

#8 Mis à jour par Daniel Dehennin il y a plus de 12 ans

Joël Cuissinat a écrit :

C'est mon dernier mot !

(de toute façon après : iptables v1.4.4: invalid port/service `65536' specified)

C’est pas plus léger de faire la comparaison numérique ternaire: 0 < port < 65536 ?

#9 Mis à jour par Fabrice Barconnière il y a plus de 12 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF