Shorewall probleme de routage (je penses)

Forum sur la sécurité des réseaux, la configuration des firewalls, la mise en place de protections contre les attaques, de DMZ, de systèmes anti-intrusion ...

Modérateur: modos Ixus

Shorewall probleme de routage (je penses)

Messagepar clickclac » 18 Juil 2011 16:18

Bonjour à tous,
je vais essayer d’être le plus précis possible et vous fournir toute ma conf.

merci d'avance aux lecteurs de ce poste :)

donc j ai mis en place un serveur sous debian squeeze sur un hôte vmware esxi

configuration de shorewall avec 2 interfaces loc + net, jusqu'ici tous vas très bien (routage ok, blocage des ports ok, redirection et dnat ok, masquerade ok)

je rajoute 2 interfaces une pour un sous réseau avec des clients (pc, imp), et une autre pour openvpn (tunnel jusqu'au datacentre)
les problèmes commencent:
ca fait une semaine que je suis dessus et je m'arrache les cheveux (je ne trouve pas et je me doute que c'est une erreur à la c..)
de la zone loc et fw je peux tout pinger

loc > tun = ok (depuis tous les postes dans loc, vers tous les postes derrière le vpn)
tun > loc = ko (le ping s'arrête à la patte du vpn sur le firewall 10.9.0.6 et ensuite ca marche pas)

plus > loc = ok (depuis/vers tous les postes dans les 2 zones)
loc > plus = ok (depuis/vers tous les postes dans les 2 zones)
plus > net =ko (ca s’arrête à 192.168.12.253)

je penses que ca doit être le même genre de problème pour les 2 cas.
vous trouverez un schéma ici: http://hpics.li/3f8c62c
voici les différents fichiers de conf de shorewall:
j'ai fait un peu de test dessus, ajout ou retrait d'option

interface
Code: Tout sélectionner
#ZONE   INTERFACE   BROADCAST   OPTIONS
net     eth0            detect      tcpflags,nosmurfs,routefilter,logmartians
loc     eth1            detect      routeback
#dhcp,tcpflags,nosmurfs,routefilter,logmartians
plus    eth2            detect      routeback
#,dhcp,tcpflags,nosmurfs,routefilter,logmartians
svext   eth3      detect
wifi   eth4      detect
tun   tun0      detect      routeback


masq
Code: Tout sélectionner
#INTERFACE      SOURCE      ADDRESS      PROTO   PORT(S)   IPSEC   MARK
eth0         192.168.100.0/24   79.174.XXX.XXX
tun0         192.168.100.0/24   10.9.0.6   
eth2         192.168.12.0/24      79.174.XXX.XXX
eth1:192.168.100.0/24   192.168.222.0/24   192.168.100.253


policy
Code: Tout sélectionner
#SOURCE      DEST      POLICY      LOG LEVEL   LIMIT:BURST


loc      net      DROP      info
plus          net           DROP            info
#net      plus      ACCEPT      info
net      all      DROP      info

tun      all      ACCEPT      info
all      tun      ACCEPT      info

#fw      tun      ACCEPT      info
#loc      tun      ACCEPT      info
#tun      loc      ACCEPT      info
#tun      fw      ACCEPT      info

plus      loc      ACCEPT      info
loc      plus      ACCEPT      info
plus      fw      ACCEPT      info
fw      plus      ACCEPT      info


# THE FOLLOWING POLICY MUST BE LAST
all      all      REJECT      info


tunnels
Code: Tout sélectionner
#TYPE         ZONE   GATEWAY      GATEWAY
#                  ZONE
openvpnclient:1194   net      XXX.XXX.XXX.XXX


zones
Code: Tout sélectionner
#ZONE   TYPE   OPTIONS         IN         OUT
#               OPTIONS         OPTIONS
fw      firewall
net      ipv4
loc      ipv4
svext      ipv4
wifi      ipv4
plus      ipv4
tun      ipv4


shorewall.conf
Code: Tout sélectionner
###############################################################################
#
#  Shorewall Version 4 -- /etc/shorewall/shorewall.conf
#
#  For information about the settings in this file, type "man shorewall.conf"
#
#  Manpage also online at http://www.shorewall.net/manpages/shorewall.conf.html
###############################################################################
#             S T A R T U P   E N A B L E D
###############################################################################

STARTUP_ENABLED=Yes

###############################################################################
#                    V E R B O S I T Y
###############################################################################

VERBOSITY=2

###############################################################################
#                L O G G I N G
###############################################################################

LOGFILE=/var/log/messages

STARTUP_LOG=/var/log/shorewall-init.log

LOG_VERBOSITY=2

LOGFORMAT="Shorewall:%s:%s:"

LOGTAGONLY=No

LOGRATE=

LOGBURST=

LOGALLNEW=

BLACKLIST_LOGLEVEL=

MACLIST_LOG_LEVEL=info

TCP_FLAGS_LOG_LEVEL=info

SMURF_LOG_LEVEL=info

LOG_MARTIANS=Yes

###############################################################################
#   L O C A T I O N     O F   F I L E S   A N D   D I R E C T O R I E S
###############################################################################

IPTABLES=

IP=

TC=

IPSET=

PERL=/usr/bin/perl

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin

SHOREWALL_SHELL=/bin/sh

SUBSYSLOCK="/var/lock/shorewall"

MODULESDIR=

CONFIG_PATH=/etc/shorewall:/usr/share/shorewall

RESTOREFILE=

IPSECFILE=zones

LOCKFILE=

###############################################################################
#      D E F A U L T   A C T I O N S / M A C R O S
###############################################################################

DROP_DEFAULT="Drop"
REJECT_DEFAULT="Reject"
ACCEPT_DEFAULT="none"
QUEUE_DEFAULT="none"
NFQUEUE_DEFAULT="none"

###############################################################################
#                        R S H / R C P  C O M M A N D S
###############################################################################

RSH_COMMAND='ssh ${root}@${system} ${command}'
RCP_COMMAND='scp ${files} ${root}@${system}:${destination}'

###############################################################################
#         F I R E W A L L     O P T I O N S
###############################################################################

IP_FORWARDING=On

ADD_IP_ALIASES=Yes

ADD_SNAT_ALIASES=No

RETAIN_ALIASES=No

TC_ENABLED=Internal

TC_EXPERT=No

TC_PRIOMAP="2 3 3 3 2 3 1 1 2 2 2 2 2 2 2 2"

CLEAR_TC=Yes

MARK_IN_FORWARD_CHAIN=Yes

CLAMPMSS=No

ROUTE_FILTER=Yes

DETECT_DNAT_IPADDRS=No

MUTEX_TIMEOUT=60

ADMINISABSENTMINDED=Yes

BLACKLISTNEWONLY=Yes

DELAYBLACKLISTLOAD=No

MODULE_SUFFIX=

DISABLE_IPV6=Yes

BRIDGING=No

DYNAMIC_ZONES=No

PKTTYPE=Yes

NULL_ROUTE_RFC1918=Yes

MACLIST_TABLE=filter

MACLIST_TTL=

SAVE_IPSETS=No

MAPOLDACTIONS=No

FASTACCEPT=Yes

IMPLICIT_CONTINUE=Yes

HIGH_ROUTE_MARKS=No

USE_ACTIONS=Yes

OPTIMIZE=0

EXPORTPARAMS=Yes

EXPAND_POLICIES=Yes

KEEP_RT_TABLES=No

DELETE_THEN_ADD=Yes

MULTICAST=No

DONT_LOAD=

AUTO_COMMENT=Yes

MANGLE_ENABLED=Yes

USE_DEFAULT_RT=No

RESTORE_DEFAULT_ROUTE=Yes

AUTOMAKE=No

WIDE_TC_MARKS=No

TRACK_PROVIDERS=No

ZONE2ZONE=2

ACCOUNTING=Yes

DYNAMIC_BLACKLIST=Yes

OPTIMIZE_ACCOUNTING=No

LOAD_HELPERS_ONLY=No

REQUIRE_INTERFACE=No

FORWARD_CLEAR_MARK=Yes

###############################################################################
#         P A C K E T   D I S P O S I T I O N
###############################################################################

BLACKLIST_DISPOSITION=DROP

MACLIST_DISPOSITION=REJECT

TCP_FLAGS_DISPOSITION=DROP

#LAST LINE -- DO NOT REMOVE


et les routes sur le serveur
Code: Tout sélectionner
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
10.9.0.5        *               255.255.255.255 UH    0      0        0 tun0
localnet        *               255.255.255.248 U     0      0        0 eth0
192.168.100.0   *               255.255.255.0   U     0      0        0 eth1
192.168.12.0    *               255.255.255.0   U     0      0        0 eth2
10.9.0.0        10.9.0.5        255.255.255.0   UG    0      0        0 tun0
192.168.222.0   10.9.0.5        255.255.255.0   UG    0      0        0 tun0
192.168.0.0     -               255.255.0.0     !     0      -        0 -
172.16.0.0      -               255.240.0.0     !     0      -        0 -
10.0.0.0        -               255.0.0.0       !     0      -        0 -
default         XXX-XXX-174-79. 0.0.0.0         UG    0      0        0 eth0


Les 2 zones wifi et srvext ne sont pas encore utilisées

si vous aviez besoin d'autres précisions n’hésitez pas
j'espere qu'avec votre aide je pourrais arrêter d'avoir mal à la tête :D :D
merci à tous
clickclac
Matelot
Matelot
 
Messages: 10
Inscrit le: 06 Mai 2004 23:51

Re: Shorewall probleme de routage (je penses)

Messagepar jdh » 18 Juil 2011 17:07

(Il y a bien longtemps que je n'ai plus fait de Shorewall !)


Etes vous sûr de /etc/shorewall/masq ? (la syntaxe est peu instinctive).
Etes vous sûr de la nécessité de routeback sur les interfaces locales ?
Les policy gagnent à être écrites plus logiquement : pour une zone, la liste des accès à chaque zone, puis zone suivante.
Il n'y a aucune rules ? (que des policy) = pas terrible comme firewall !
Je ne vois pas pourquoi il y a les 3 classes "private" indiquées dans les routes. (Notamment 192.168.0.0/16 englobe plusieurs interfaces !)
En dehors de la route par défaut (gateway dans /etc/network/interfaces), il ne doit y avoir aucune route particulière dans ce genre de schéma.


Perso, je suis contre un firewall sur un host de virtualisation.
Et je suis contre un host de virtualisation sur plusieurs zones.
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Re: Shorewall probleme de routage (je penses)

Messagepar clickclac » 18 Juil 2011 18:40

J ai oublié de préciser sur mon schéma que le réseau derrière le tunnel openvpn est en 192.168.222.0/24.

en effet j'ai oublié les rules, sans, ca na plus beaucoup d’intérêt
Code: Tout sélectionner
#############################################################################################################
#ACTION      SOURCE      DEST      PROTO   DEST   SOURCE      ORIGINAL   RATE      USER/   MARK
#                     PORT   PORT(S)      DEST      LIMIT      GROUP
#
########################
#REGLES FW VERS NET
########################
#
DNS(ACCEPT):info      $FW            net
HTTP(ACCEPT):info      $FW            net
HTTPS(ACCEPT):info      $FW            net
FTP(ACCEPT):info      $FW            net
NTP(ACCEPT):info      $FW            net
SSH(ACCEPT):info      $FW            net



########################
#REGLE FW VERS LOC
########################
#
SSH(ACCEPT):info      $FW            loc
ACCEPT:info                     $FW            loc:192.168.100.203            tcp   5667
SMTP(ACCEPT):info      $FW            loc:192.168.100.20
HTTP(ACCEPT):info      $FW            loc
DNS(ACCEPT):info      $FW            loc
########################
#REGLES NET VERS FW
########################
#
HTTP(ACCEPT):info      net            $FW
#######################
#REGLES NET VERS LOC
#######################
#

#regle pour vnc
DNAT:info             net                        loc:192.168.100.37:5500      tcp   5500
DNAT:info                     net                          loc:192.168.100.157:5500       tcp   5501
DNAT:info                       net                             loc:192.168.100.58:5500      tcp     5502

########################
#REGLES LOC VERS NET
########################
#regle pour srv de test
ACCEPT:info                     loc:192.168.100.102             net

#regle pour rediriger le hhtp vers squid en localq

REDIRECT          loc                     3128     tcp      www              -
#

DNS(ACCEPT):info                loc                             net
SSH(ACCEPT):info      loc            net
HTTP(ACCEPT):info      loc            net
HTTPS(ACCEPT):info      loc            net
FTP(ACCEPT):info           loc                     net
POP3(ACCEPT):info      loc            net
IMAP(ACCEPT):info      loc            net
IMAPS(ACCEPT):info      loc            net
Rsync(ACCEPT):info      loc            net
SNMP(ACCEPT):info      loc            net
Submission(ACCEPT):info      loc            net
SMTP(ACCEPT):info      loc            net
SMTPS(ACCEPT):info      loc            net
POP3S(ACCEPT):info            loc                   net
NTP(ACCEPT):info           loc                   net
RDP(ACCEPT):info      loc            net
BitTorrent(ACCEPT):info      loc            net
VNCL(ACCEPT):info      loc            net
SVN(ACCEPT):info                  loc                             net
ACCEPT:info         loc            net               tcp   5501
ACCEPT:info                     loc                             net                                     tcp     5502

#port pour MSN
ACCEPT:info         loc            net               tcp   1863
#port pour GTALK
ACCEPT:info         loc            net               tcp   5222
#port pour YAHOO
ACCEPT:info         loc            net               tcp   5050

########################
#REGLES LOC VERS FW
########################
#
SSH/ACCEPT:info         loc            $FW
ACCEPT:info         loc            $FW               tcp   5667


########################
#REGLES PLUS VERS NET
########################
#
#regle pour rediriger le hhtp vers squid en localq

#REDIRECT:info                   plus                                                     3128     tcp      www              -


DNS(ACCEPT):info                plus            net
SSH(ACCEPT):info                plus            net
HTTP(ACCEPT):info               plus            net
HTTPS(ACCEPT):info              plus            net
FTP(ACCEPT):info                plus            net
POP3(ACCEPT):info               plus            net
IMAP(ACCEPT):info               plus            net
IMAPS(ACCEPT):info              plus            net
Rsync(ACCEPT):info              plus            net
SNMP(ACCEPT):info               plus            net
SMTP(ACCEPT):info               plus            net
SMTPS(ACCEPT):info              plus            net
POP3S(ACCEPT):info              plus            net
NTP(ACCEPT):info                plus            net
RDP(ACCEPT):info                plus            net
VNCL(ACCEPT):info               plus            net

#port pour MSN
ACCEPT:info                     plus            net                                     tcp     1863
#port pour GTALK
ACCEPT:info                     plus            net                                     tcp     5222
#port pour YAHOO
ACCEPT:info                     plus            net                                     tcp     5050


########################
#REGLES LOC VERS SVEXT
########################
#
#
#
########################
#REGLES PING ICMP
########################
#
#   Allow Ping from the local network
#
Ping(ACCEPT):info      loc            $FW
Ping(ACCEPT):info      loc            net
Ping(ACCEPT):info      $FW            net
Ping(ACCEPT):info      $FW            loc
Ping(ACCEPT):info               $FW            plus
Ping(ACCEPT):info               loc                             plus
Ping(ACCEPT):info               plus            loc
Ping(ACCEPT):info               plus            $FW
Ping(ACCEPT):info               plus            net
Ping(DROP):info                 net                             $FW
#ACCEPT            $FW            loc               icmp
#ACCEPT            $FW            net               icmp
#
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE


Les policy gagnent à être écrites plus logiquement : pour une zone, la liste des accès à chaque zone, puis zone suivante.

en effet c'est devenu un peu le bordel, je vais remettre ca proprement.

pour le masq je pense que oui car avec la 1ere ligne seulement, ca fonctionne nikel j ai pris à partir de ce model la, et je l'ai adapté aux autres zones.(les 2 dernières lignes sont vraiment un test, elles ne change rien, je vais les virer).

j ai mis le routeback pour faire des essais (mais ca change rien), comme on peut le voir en dessous il y a en commentaire les options qui me semblait utiles.

Je ne vois pas pourquoi il y a les 3 classes "private" indiquées dans les routes. (Notamment 192.168.0.0/16 englobe plusieurs interfaces !)

je n'avais pas fait attention à ca, je vais regarder ca! c'est bizarre.

voici mon ifconfig
Code: Tout sélectionner
eth0      Link encap:Ethernet  HWaddr 00:0c:29:ca:18:e8
          inet adr:79.174.XXX.XXX  Bcast:79.174.XXX.XXX  Masque:255.255.255.248
          adr inet6: fe80::20c:29ff:feca:18e8/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2908546600 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2738084874 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:2769795902495 (2.5 TiB)  TX bytes:1600006792987 (1.4 TiB)

eth1      Link encap:Ethernet  HWaddr 00:0c:29:ca:18:f2
          inet adr:192.168.100.253  Bcast:192.168.100.255  Masque:255.255.255.0
          adr inet6: fe80::20c:29ff:feca:18f2/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2778295498 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2961190920 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:1602160779424 (1.4 TiB)  TX bytes:2832092445524 (2.5 TiB)

eth2      Link encap:Ethernet  HWaddr 00:0c:29:ca:18:fc
          inet adr:192.168.12.253  Bcast:192.168.12.255  Masque:255.255.255.0
          adr inet6: fe80::20c:29ff:feca:18fc/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:103244 errors:0 dropped:0 overruns:0 frame:0
          TX packets:66136 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:85337553 (81.3 MiB)  TX bytes:8026211 (7.6 MiB)

ifb0      Link encap:Ethernet  HWaddr 06:93:60:cd:db:b1
          adr inet6: fe80::493:60ff:fecd:dbb1/64 Scope:Lien
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:2040643 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2040643 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:32
          RX bytes:2893905255 (2.6 GiB)  TX bytes:2893905255 (2.6 GiB)

lo        Link encap:Boucle locale
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:553598 errors:0 dropped:0 overruns:0 frame:0
          TX packets:553598 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:49368082 (47.0 MiB)  TX bytes:49368082 (47.0 MiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00                                                                                        -00
          inet adr:10.9.0.6  P-t-P:10.9.0.5  Masque:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:44437427 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22020258 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:100
          RX bytes:60113980092 (55.9 GiB)  TX bytes:1926550667 (1.7 GiB)

et mon /etc/network/interface
Code: Tout sélectionner
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address 79.174.XXX.XXX
        netmask 255.255.255.248
        network 79.174.XXX.XXX
        broadcast 79.174.XXX.XXX
        gateway 79.174.XXX.XXX
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 195.7.111.30
        dns-search XXXXX

allow-hotplug eth1
auto eth1
iface eth1 inet static
        address 192.168.100.253
        netmask 255.255.255.0
        network 192.168.100.0


allow-hotplug eth2
auto eth2
iface eth2 inet static
        address 192.168.12.253
        netmask 255.255.255.0
        network 192.168.12.0


En dehors de la route par défaut (gateway dans /etc/network/interfaces), il ne doit y avoir aucune route particulière dans ce genre de schéma.

je ne suis pas sur de comprendre ce que tu dis car il me semble qu'il faut que le routeur ait les routes vers les différents réseaux dans lesquels il a une patte.

Perso, je suis contre un firewall sur un host de virtualisation.
Et je suis contre un host de virtualisation sur plusieurs zones.

si tu veux on en discute dans un autre post :)


en tout ca merci pour ton aides

:)
clickclac
Matelot
Matelot
 
Messages: 10
Inscrit le: 06 Mai 2004 23:51

Re: Shorewall probleme de routage (je penses)

Messagepar clickclac » 20 Juil 2011 10:42

Bonjour,

pour ce qui est des routes null j ai trouver d’où cela provenaient.
c'est shorewall qui met ca
voici l'option en question dans le fichier shorewall.conf
NULL_ROUTE_RFC1918=No

192.168.0.0 - 255.255.0.0 ! 0 - 0 -
172.16.0.0 - 255.240.0.0 ! 0 - 0 -
10.0.0.0 - 255.0.0.0 ! 0 - 0 -


par contre cela ne change rien à mon problème



bonne journée
clickclac
Matelot
Matelot
 
Messages: 10
Inscrit le: 06 Mai 2004 23:51

Re: Shorewall probleme de routage (je penses)

Messagepar clickclac » 20 Juil 2011 11:43

re:
ca avance,
depuis le reseau plus je peux desormer aller vers net

le probleme se situait bien dans le fichier masq
#INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARK
eth0 192.168.100.0/24 79.174.XXX.XXX
tun0 192.168.100.0/24 10.9.0.6
eth0 192.168.12.0/24 79.174.XXX.XXX

sur la dernière ligne j ai remplacer eth2 par eth0 comme pour la première ligne. (logic) :? :? :? :x :x :x

par contre depuis la zone derrière mon vpn ca ne fonctionne toujours pas:

ping tun > loc = ko
ping 192.168.100.253 depuis 192.168.222.34 = ko
ping 10.9.0.6 depuis 192.168.222.34 = ok

je rappel le plan:
loc:192.168.100.0/24 >>> tun:10.9.0.0/24 >>> réseau_derrière_tun:192.168.222.0/24


j ai ajouter dans masq
les lignes suivantes pour faire des tests mais je suis pas sur de la logique, et puis ca marche pas:
Code: Tout sélectionner
eth1                    10.9.0.0/24             192.168.100.253

ou
Code: Tout sélectionner
eth1                   192.168.222.0/24      192.168.100.253


mais je sais pas si je dois mettre l'adresse ip du tunnel ou celui du réseau qui est derrière (logiquement c'est celle du tunnel) vous confirmez?

PS: j ai pas parlé des log, donc dans le log je n'ai pas de trace de ma requête vers 192.168.100.253/24 depuis 192.168.222.34/24
tail -f /var/log/messages |grep ICMP

de plus je sais pas si ca a de l'importance mais le serveur openvpn et configurer en PKI et non en shared key, qu'en pensez vous?
merci
clickclac
Matelot
Matelot
 
Messages: 10
Inscrit le: 06 Mai 2004 23:51


Retour vers Sécurité et réseaux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité