Projet

Général

Profil

Anomalie #7102

ICMPProtocol object has no attribute dport

Ajouté par Philippe Carre il y a plus de 10 ans. Mis à jour il y a presque 10 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Gwenael Remond
Catégorie:
-
Début:
13/05/2014
Echéance:
16/05/2014
% réalisé:

100%

Temps passé:
Distribution:
EOLE 2.3

Description

Bonjour,
sur un amon 2.3.11 , on ne peut plus autoriser le ping avec du DNAT
( source: 0.0.0.0 , dest: dmz_alias to: dmz_ip - nouveau port: 0, groupe gr_ping )
[ OK ] * Starting firewall: bastion (modèle "5zones-essl")
#--------------------------------------------------
Attention, erreur de coherence des directives Era
'ICMPProtocol' object has no attribute 'dport'
#--------------------------------------------------
/usr/lib/pymodules/python2.6/Cheetah/Compiler.py:1577: UserWarning: You supplied an empty string for the source!
warnings.warn("You supplied an empty string for the source!", )

Ce serait lié à l'Anomalie #5491 ?

Révisions associées

Révision 11a647fc (diff)
Ajouté par Gwenael Remond il y a presque 10 ans

icmp dans le cadre du DNAT, fixes #7102

Historique

#1 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

Que voulez faire exactement ?

Si on ping le serveur A, les pings sont redirigés vers le serveur B ?

Quel est l'intérêt ?

#2 Mis à jour par Philippe Carre il y a plus de 10 ans

Test de base, rien de plus. Effectivement pour pinger un serveur de la DMZ, depuis n'importe quel poste.
Je reconnais que ça a pas un grand intéret...

N'empeche, on pouvait le faire avec les anciennes versions. Maintenant, cette directive empeche la création du fichier des règles iptables.

#3 Mis à jour par Thierry Bertrand il y a plus de 10 ans

L'intérêt dépend du contexte :
soit un lan séparé du wan par un amon
Le tout dans un adressage privé.

Sur l'amon, on rajoute une zone dédiée à une box Internet dans un adressage non routé intranet

Si on veut faire du traffic vers Internet via la box => nécessite du nat sinon pas de retour.
ICMP est juste là pour les diagnotics.

#4 Mis à jour par Fabrice Barconnière il y a environ 10 ans

  • Statut changé de Nouveau à A étudier
  • Version cible mis à Mises à jour 2.3.13

#5 Mis à jour par Daniel Dehennin il y a presque 10 ans

  • Echéance mis à 16/05/2014

#6 Mis à jour par Daniel Dehennin il y a presque 10 ans

Je présume qu’il n’y a pas besoin de gérer --icmp-type ?

root@amon:~# iptables -p icmp -h
iptables v1.4.4
[...]
icmp match options:
[!] --icmp-type typename        match icmp type
[!] --icmp-type type[/code]     (or numeric type or type/code)
Valid ICMP Types:
any
echo-reply (pong)
destination-unreachable
   network-unreachable
   host-unreachable
   protocol-unreachable
   port-unreachable
   fragmentation-needed
   source-route-failed
   network-unknown
   host-unknown
   network-prohibited
   host-prohibited
   TOS-network-unreachable
   TOS-host-unreachable
   communication-prohibited
   host-precedence-violation
   precedence-cutoff
source-quench
redirect
   network-redirect
   host-redirect
   TOS-network-redirect
   TOS-host-redirect
echo-request (ping)
router-advertisement
router-solicitation
time-exceeded (ttl-exceeded)
   ttl-zero-during-transit
   ttl-zero-during-reassembly
parameter-problem
   ip-header-bad
   required-option-missing
timestamp-request
timestamp-reply
address-mask-request
address-mask-reply

#7 Mis à jour par Daniel Dehennin il y a presque 10 ans

  • Statut changé de A étudier à Accepté
  • Assigné à mis à Gwenael Remond
  • Début mis à 13/05/2014

#8 Mis à jour par Jean-Marc MELET il y a presque 10 ans

Autre cas de figure:

Sur un amonhorus, si on ajoute une zone pour le réseau pédagogique et que l'on veuille autoriser le ping du conteneur fichier depuis le péda. Je ne suis jamais parvenu à communiquer vers l'ip link d'un conteneur à partir d'une zone qui n'est pas sur le même réseau local que cette ip link de ce conteneur. Du coup pour y parvenir j'ai du creer les regles suivantes (10.4.201.6 est l'ip link du conteneur fichier):

iptables -t nat -I PREROUTING -i eth2 -d 10.4.201.6 -p icmp -m state --state NEW -m icmp --icmp-type 8 -j DNAT --to-destination 192.0.2.52
iptables -A FORWARD -i eth2 -o br0 -d 192.0.2.52 -p icmp -m state --state NEW -m icmp --icmp-type 8 -j ACCEPT

Si on essaie de le faire par une directive dans era on tombe sur le message d'erreur

Cependant j'ai l'impression que cela n'est pas uniquement lié à du DNAT. Je prend un autre exemple:

Toujours sur amonecole, je veux créer une regle qui autorise juste le ping depuis le réseau admin vers l'ip eth1 (je sais à priori c'est inutile car cela fonctionne déja, mais c'est pour le principe). Si je crée une extrémité sur la zone bastion ayant comme valeur %%adresse_ip_eth1 (je sais il faut choisir l'extrémité "bastion" qui est prévu à cet effet mais là encore c'est pour le principe) et que je crée une directive qui autorise echo-request depuis la zone admin entière vers cette adresse j'ai également ce message d'erreur (alors que je n'en ai pas si je fais la même chose avec un autre service, par exemple autoriser le port 53 depuis la zone admin entière vers cette extrémité)

En espérant que cela puisse aider

#9 Mis à jour par Gwenael Remond il y a presque 10 ans

  • Statut changé de Accepté à Résolu
  • % réalisé changé de 0 à 100

#10 Mis à jour par Benjamin Bohard il y a presque 10 ans

  • Statut changé de Résolu à Fermé

Deux directives testées : icmp-request et icmp-reply en dnat

                <directive service="echo-request" priority="1" action="8" attrs="0" nat_extr="admin" nat_port="0" src_inv="0" dest_inv="0" serv_inv="0" libelle="titi" ipsec="0" accept="0">
                    <source name="exterieur"/>
                    <destination name="admin"/>
                </directive>
                <directive service="echo-reply" priority="2" action="8" attrs="0" mark_operator="None" mark_value="" nat_extr="admin" nat_port="0" src_inv="0" dest_inv="0" serv_inv="0" libelle="titi-reply" ipsec="0" accept="0">
                    <source name="exterieur"/>
                    <destination name="admin"/>
                </directive>

les règles sont bien créées par le compilateur :

### titi 
/sbin/iptables -t nat -A PREROUTING -p icmp  --icmp-type echo-request -i eth0 -s 0/0 -d 0/0 -j DNAT --to-destination 10.98.0.1
### titi-reply 
/sbin/iptables -t nat -A PREROUTING -p icmp  --icmp-type echo-reply -i eth0 -s 0/0 -d 0/0 -j DNAT --to-destination 10.98.0.1
/sbin/iptables -t filter -A ext-adm -p icmp  --icmp-type echo-request -i eth0 -o eth1 -s 0/0 -d 10.98.0.1 -j ACCEPT
/sbin/iptables -t filter -A ext-adm -p icmp  --icmp-type echo-reply -i eth0 -o eth1 -s 0/0 -d 10.98.0.1 -j ACCEPT

Formats disponibles : Atom PDF