Project

General

Profile

Anomalie #7102

ICMPProtocol object has no attribute dport

Added by Philippe Carre about 7 years ago. Updated almost 7 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Category:
-
Start date:
05/13/2014
Due date:
05/16/2014
% Done:

100%

Spent time:
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 ?

Associated revisions

Revision 11a647fc (diff)
Added by Gwenael Remond almost 7 years ago

icmp dans le cadre du DNAT, fixes #7102

History

#1 Updated by Emmanuel GARETTE about 7 years ago

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 Updated by Philippe Carre about 7 years ago

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 Updated by Thierry Bertrand about 7 years ago

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 Updated by Fabrice Barconnière about 7 years ago

  • Status changed from Nouveau to A étudier
  • Target version set to Mises à jour 2.3.13

#5 Updated by Daniel Dehennin almost 7 years ago

  • Due date set to 05/16/2014

#6 Updated by Daniel Dehennin almost 7 years ago

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 Updated by Daniel Dehennin almost 7 years ago

  • Status changed from A étudier to Accepté
  • Assigned To set to Gwenael Remond
  • Start date set to 05/13/2014

#8 Updated by Jean-Marc MELET almost 7 years ago

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 Updated by Gwenael Remond almost 7 years ago

  • Status changed from Accepté to Résolu
  • % Done changed from 0 to 100

#10 Updated by Benjamin Bohard almost 7 years ago

  • Status changed from Résolu to 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

Also available in: Atom PDF