Mephisto Posté(e) le 21 septembre 2010 Partager Posté(e) le 21 septembre 2010 Bonjour, Pour ceux qui ne suivent pas la section Linux/Unix, je suis actuellement en train de me monter une gate, sous mfsBSD. Maintenant que tout commence à tourner, se pose la question du routage/firewall.<br><br>Avant de me lancer dans la doc de pf, j'aurais voulu commencer avec ipfw. Dans la situation actuelle : la gate et les clients peut ping des deux cotes la gate et les clients resolvent des deux cotes la gate peut se ssh des deux cotes mais un client qui se ssh au-dela de la gate ne pourra pas se connecter : en zieuttant logs, on voit qu'ipfw ne bloque rien de particulier (de la merde, udp, d'un NAS NetGear, au sujet duquel j'ai déjà passé un coup de gueule dans cette section...) du cote du debug ssh, ca s'arrete apres avoir regarde dans ~/.ssh/ les id_dsa/rsa donc, quatre lignes plus haut, on a bien le 'connection established' mais la ligne qui devrait venir en dessous, celle ou l'on recoit 'SSH-x.x-OpenSSH_x.x', n'arrive jamais.... la conf : rc.conf defaultrouter="82.123.213.321" dnsmasq_enable="YES" firewall_enable="YES" firewall_logging="YES" firewall_script="/usr/local/etc/ipfw.rc" gateway_enable="YES" hostname="phi.faust-network" ifconfig_bge0="DHCP" ifconfig_bge1="inet 10.242.42.254 netmask 255.0.0.0" natd_enable="YES" natd_interface="bge0" natd_flags="-f /etc/natd.conf" natd.conf unregistered_only interface bge0 use_sockets dynamic punch_fw 2000:5 ipfw.rc CMD="/sbin/ipfw -q" PUBIF="bge0" PRIVIF="bge1" LOOP="lo0" PUBNET=`/sbin/ifconfig $PUBIF | awk '/^[ ]*inet[ ]*/{print $2}' | sed 's,\.[0-9]*$,.0/24,'` # (le net de mon itf publique, arrondie au /24) PRIVNET=`/sbin/ifconfig $PRIVIF | awk '/^[ ]*inet[ ]*/{print $2}' | awk -F '.' '{print $1 ".0.0.0/8" }'` # (le net de mon itf privé, arrondie au /8) LONET="127.0.0.0/8" RESTR0="10.0.0.0/8" RESTR1="172.16.0.0/12" RESTR2="192.168.0.0/16" $CMD -f flush $CMD add 1 allow ip from any to any via $LOOP $CMD add 2 deny log ip from any to $LONET $CMD add 3 deny log ip from any to any not verrevpath in via $PUBIF $CMD add 4 deny log ip from $PRIVNET to any in via $PUBIF $CMD add 5 deny log ip from $RESTR1 to any in via $PUBIF $CMD add 6 deny log ip from $RESTR2 to any in via $PUBIF $CMD add 50 divert natd ip from any to me in via $PUBIF $CMD add 51 check-state $CMD add 60 allow icmp from me to any setup keep-state $CMD add 61 allow icmp from any to any keep-state $CMD add 62 allow ip from any to me src-port 53 $CMD add 63 allow udp from any to any dst-port 67 in via $PRIVIF $CMD add 64 allow icmp from $PRIVNET to any setup keep-state $CMD add 100 allow tcp from any to me dst-port 22 in via $PUBIF setup keep-state $CMD add 101 allow tcp from any to me dst-port 53 in via $PUBIF setup keep-state $CMD add 102 allow udp from any to me dst-port 53 in via $PUBIF $CMD add 103 allow tcp from any to me in via $PRIVIF setup keep-state $CMD add 104 allow udp from any to me in via $PRIVIF $CMD add 200 skipto 600 ip from $PRIVNET to any in via $PRIVIF setup keep-state $CMD add 201 skipto 601 ip from $PRIVNET to any out via $PUBIF setup keep-state $CMD add 202 skipto 602 ip from any to $PRIVNET in via $PUBIF setup keep-state $CMD add 203 skipto 603 ip from any to $PRIVNET out via $PRIVIF setup keep-state $CMD add 300 allow ip from me to any $CMD add 400 deny log icmp from any to me $CMD add 401 deny log ip from any to me dst-port 135 $CMD add 402 deny log ip from any to me dst-port 137-139 $CMD add 403 deny log ip from any to me dst-port 445 $CMD add 404 deny log ip from any to me dst-port 4665 $CMD add 405 allow tcp from any to any established $CMD add 406 deny log ip from any to any $CMD add 600 divert natd ip from $PRIVNET to any out via $PUBIF $CMD add 601 divert natd ip from $PRIVNET to any in via $PRIVIF $CMD add 602 divert natd ip from any to $PRIVNET in via $PUBIF $CMD add 603 divert natd ip from any to $PRIVNET out via $PRIVIF $CMD add 604 allow ip from any to any $CMD add 999 deny log ip from any to any (très largement repris d'un tutoriel pas très à jour) est-ce que ca ne rappellerait pas quelque chose a quelqu'un ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mephisto Posté(e) le 22 septembre 2010 Auteur Partager Posté(e) le 22 septembre 2010 (édition) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mephisto Posté(e) le 27 septembre 2010 Auteur Partager Posté(e) le 27 septembre 2010 Bonjour, Je n'ai toujours pas trouvé de solution à ce sujet. J'ai donc tenté ma chance sous pf. Après avoir eu le même problème, j'ai trouvé ce qu'il manquait : le 'scrubs'. Au final, je n'ai pas cherché quel est l'équivalent de scrubs sous ipfw. J'ai besoin de deux fois moins de modules (ipfw, ipfw_nat, ipadvert, libalias remplacés par pf et pflog), un daemon en moins (natd), ... Je vais rester là dessus. La conf est la suivante : ext_if="bge0" int_if="bge1" localnet = $int_if:network emma="10.242.42.200" alpha="10.42.42.42" delta="10.42.42.44" set skip on lo0 scrub in on $ext_if all fragment reassemble nat on $ext_if from $localnet to any -> ($ext_if) rdr on $ext_if inet proto tcp from any to ($ext_if) port 1101 -> $emma port 22 rdr on $ext_if inet proto tcp from any to ($ext_if) port 307 -> $emma port 80 rdr on $ext_if inet proto tcp from any to ($ext_if) port 1666 -> $alpha port 1666 rdr on $ext_if inet proto tcp from any to ($ext_if) port 1667 -> $delta port 22 rdr on $ext_if inet proto tcp from any to ($ext_if) port 1668 -> $alpha port 22 pass in log on $ext_if inet proto tcp from any to $ext_if port 22 pass in log on $ext_if inet proto tcp from any to $ext_if port 53 pass in log on $ext_if inet proto udp from any to $ext_if port 53 pass in log on $ext_if inet proto tcp from any to $ext_if port 1664 pass in log on $int_if inet proto tcp from any to any pass in log on $int_if inet proto udp from any to any block in log on $ext_if inet proto icmp from any to $ext_if c'est ultra-minimaliste j'étofferai en fonction des emmerdes... ça tourne nikel. prochaine étape, IPV6... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.