Aller au contenu

Messages recommandés

Posté(e)

Le DoS est désactivé du côté LAN local.

J'ai stoppé également le routage nat pour vérifier s'il était en cause, mais non, pas de ping non plus.

Posté(e)

Le DoS est désactivé du côté LAN local.

J'ai stoppé également le routage nat pour vérifier s'il était en cause, mais non, pas de ping non plus.

si tu veux autoriser le ping (ce qui est utile pour le debug, mais parfois dangereux pour la sécurité), il faut créer une règle dans le parefeu

->Ports : Custom

-->Protocole : ICMP

Posté(e) (modifié)

Je souhaite faire quelque chose d'approchant la demande au départ de ce post.
Voici ce que je veux faire :
- Le NAS en tant que routeur, DNS, DHCP
- Model DS710+ que j'ai équipé d'une clef USB Wifi
- Point d'accès 4G Wifi HuaWei sur offre Bbox Noamde a 1€/mois sur 12 mois (4Mo/s).
- BBox Fast3504 avec connexion ADSL a 350 ko/s en IP Fixe
- Offre Bbox NOMADE (exceptionnellement en illimitée sur le réseau 4G les deux WeekEnd prolongé de mai 2015 (1 au 3 et 8 au 10))

Schéma du réseau :
Schéma Logique actuel (Par ADSL)
( )
__ (((-( ) ))) )
/ /| __________ ______ ((( ( - - - - - - )) ))
__ /__/ | / Swicth /| / Bbox / | ( (( ( - - -.)))) ) ))
PC |__| _ _ _ _ | | /_ _ _ _ /__Gigabit__/ / _ _ _ _ _ /______/ /_ _ _ _ _(( ( Internet ) )) )
/_/ |__|/ |_|_|_|_|_|_|_|/ |______|/ ( ( ( ) ) ) )
NAS (DS710+) IP Priv Locale ( ( ()à))) ) )
Routeur IP Pub Dyn réservé ( ( ( (()
SRV DNS (())
DHCP

Client Wifi désactivé

Schéma Physique actuel (Par ADSL)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ( )
| __ | (((-( ) ))) )
| / /| ___ _|______ ______ ((( ( Internet )) ))
_|_ /__/ | / Swicth /| / Bbox / | ( (( ( )))) ) )))))))
PC |__| | | /_ _ _ _ /__Gigabit__/ / _ _ _ _ _ /______/ /_ _ _ _ _(( ( --) )) ) ))) )) ))
/_/ |__|/ |_|_|_|_|_|_|_|/ |______|/ ( ( ( ) -) ) ) ))) ))
NAS (DS710+) IP Priv Locale ( ( ( (()
Routeur IP Pub Dyn réservé ((_ -_-_-))
SRV DNS
DHCP
Client Wifi désactivé

Table de routage du routeur :
>route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 xyz.xyz.1.254 0.0.0.0 UG 0 0 0 eth0
xxx.zzz..1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0



En temps normal, les clients passent tous par le NAS en tant que routeur, DNS, et DHCP qui renvoie les paquets TCP/IP sur la Bbox ADSL.
NB : Je n'ai pas eu besoin d'utiliser la règle iptables qui de toutes façon ne fonctionne pas sur le NAS. Il semble que la version d'iptables en 5.1 ne permet pas d'utiliser la règle iptable telle qu'elle est écrite dans le post précédent.

Quand je connecte le NAS au point d'accès 4G, le NAS a bien accès au net, mais mon réseau Local n'a alors plus accès a internet via le NAS. Ceci alors que quand je regarde le résultat de la commande Route, j'ai bien la passerelle par défaut du NAS qui pointe vers le point d'accès Wifi auquel je suis connecté via la carte Wifi du NAS.
Résultat de la commande Route
Durant ces week end illimité voila ce que je souhaiterais faire :
Schéma Physique souhaité (Par 4G en Wifi)
( )
_ (((-( ) ))) )
_____ _____ / /| ))))) _________ ((( ( Internet )) ))
_ _ / Swicth /| /_ / / / Bbox / | ( (( ( )))) ) )))))))

PC |__| _ _ _ _ _ _ _ _ _ _ _ _/__Gigabit__/ / _ _ _ _ | | / ((((( / Noamade / /_ _ __ _(( ( --) )) ) ))) )) )
/_/ |_|_|_|_|_|_|_|/ |__|/ |___4G____|/ ( ( ( ) -) ) ) ))) ))
NAS (DS710+) IP Priv Locale ( ( ( (()
Routeur IP Pub Dyn ((_--))

SRV DNS SRV DHCP Wifi Actif
SRV DHCP Cable

Client Wifi DHCP activé

Tout simplement pouvoir faire du routage par la carte Wifi qui fait que mon NAS devient client.
D'ailleurs, j'aimerais bien aussi que mon NAS soit client wifi de la Box. Ainsi, toute liaison internet passerait par la Wifi.

Mais dés que je me connecte en Wifi avec le NAS et que je déconnecte l'ADSL, le NAS a bien accès a internet, mais pas le PC et/ou le reste du réseau local. Pourtant, si je regarde la table de routage quand je suis connecté en Wifi :
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 XYZ.xyz.8.1 0.0.0.0 UG 0 0 0 wlan0
xyz.xyz.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
XYZ.XYZ.8.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0

Tout semble bon.

Les règles iptables Avant et APRES (Je n'ai pas ajouté de règle du tout, avec ou sans Point d'accès wifi nomade:
- AVANT :
> iptable -nL
-ash: iptable: not found
NAS6TERRA> iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DOS_PROTECT all -- 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain DOS_PROTECT (1 references)
target prot opt source destination
RETURN icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8 limit: avg 1/sec burst 5
DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8
RETURN tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x0 4 limit: avg 1/sec burst 5
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x0 4
RETURN tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x0 2 limit: avg 10000/sec burst 100
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x0 2

APRES :
> iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DOS_PROTECT all -- 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain DOS_PROTECT (1 references)
target prot opt source destination
RETURN icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8 limit: avg 1/sec burst 5
DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8
RETURN tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04
RETURN tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 limit: avg 10000/sec burst 100
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02

Question 1 Pourquoi le routage ne semble pas fonctionner quand je passe par le Wifi (wlan0)?
Pourtant DNS fonctionne, le routage est actif et la table de routage ainsi que les règles iptables semblent bonnes :
> nslookup google.fr
Server: 192.168.1.253
Address 1: 192.168.1.253

Name: google.fr
Address 1: 216.58.211.67 par03s14-in-f3.1e100.net
> cat /proc/sys/net/ipv4/ip_forward
1
> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP qlen 1000
link/ether 00:xx:32:09:yy:95 brd ff:ff:ff:ff:ff:ff
inet XYZ.xyz.1.253/24 brd 192.168.1.255 scope global eth0
3: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
link/sit 0.0.0.0 brd 0.0.0.0
5: wlan0: <BROADCAST,MULTICAST,NOTRAILERS,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 28:xx:8e:yy:af:zz brd ff:ff:ff:ff:ff:ff
inet XYZ.xyz.8.100/24 brd 192.168.8.255 scope global wlan0

Question 2 : Je ne sais pas ce que c'est que ce truc sit0, Quelqu'un peut m'expliquer ?

Question 3 : Je souhaiterais débrancher le câble RJ45 entre mon Switch et ma Box et relier le NAS a la Box par Wifi, et ainsi faire du NAS le point de passage obligé vers internet. Est-ce possible ? Comment faire ? Qu'est-ce qui m'échappe ?

Question 4 : Plutot que de resaisir a chaque démarrage cette commande (écho 1 >/proc/sys/net/ipv4/ip_forward) est-il possible de faire comme dans Linux debian et modifier le ficher de paramètre approprié pour que ce soit systématiquement actif ? Ou se trouve ce fichier de paramètres sur les syno ?


Voila donc un message sans doute un peu long, mais j'aimerais avancer et comprendre comment faire ! ;-)

Modifié par Moise44
Posté(e)

si tu veux autoriser le ping (ce qui est utile pour le debug, mais parfois dangereux pour la sécurité), il faut créer une règle dans le parefeu

->Ports : Custom

-->Protocole : ICMP

Super, ca fonctionne! Merci :)

Posté(e)

Je ne sais plus ce que tu as comme syno mais si il a deux prises RJ45 tu dois pouvoir en configurer une comme entrée WAN et elle devra se configurer en DHCP auto. Tu branches dessus ton arrivée câble fournie par ton proprio. Si son plan d'adressage est 192.168.1.x ton syno recevra une IP depuis la box du proprio sous cette forme 192.168.1.x.

C'est l'entrée de ton routeur. Sa sortie se fera alors sur la seconde RJ45. Dans ce cas et pour éviter les pataugeages choisis toit ton propre plan d'adressage si possible bien démarqué, par exemple 192.168.100.x. Tu te différencieras du propio et aussi des autres locataires qui doivent être dans le même cas.

Cette sortie RJ45 alimentera un switch sur lequel seront branchés en étoile tous les ordis de ton groupe et si nécessaire un point wifi.

Je ne me souviens plus comment on attribue dans ce cas une IP au syno proprement dit à sa partie serveur en fait.

Moi j'aurais acheté pour une trentaine d'euros à peine un routeur/wifi chez Cisco ou netgear avec entrée WAN raccordée à l'arrivée du propio et sortie LAN vers le switch. Sur ce switch les ordis et le syno branchés en étoile.

Ce serait en place depuis longtemps déjà...

Posté(e)

Je lisais ici
que iptables du syno ne permet pas d'utiliser la table NAT car le module n'est pas chargé ni même compilé :wacko:
Comment avez vous donc pu utiliser cette règle iptables donnée en première page de ce fil ?

Voila ce que me répond le Syno

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
modprobe: chdir(3.2.40): No such file or directory
iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

Posté(e)

Je lisais ici

que iptables du syno ne permet pas d'utiliser la table NAT car le module n'est pas chargé ni même compilé :wacko:

Comment avez vous donc pu utiliser cette règle iptables donnée en première page de ce fil ?

Voila ce que me répond le Syno

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
modprobe: chdir(3.2.40): No such file or directory
iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

cette discussion date d'il y a 6 ans

depuis, iptables à tous les module principaux, en tout cas, le nat fonctionne parfaitement sur le dsm 5.1

Posté(e)

cette discussion date d'il y a 6 ans

depuis, iptables à tous les module principaux, en tout cas, le nat fonctionne parfaitement sur le dsm 5.1

Je suis pourtant en DSM 5.1-5022 Update 5 sur un DS710+. Comment explique tu ce message que j'ai reçu alors ?

Est-ce parce que je n'ai qu'un seul port RJ45 a l'origine ?

J'ai ajouté une clef USB Wifi et je cherche a connecter le NAS par cette clef USB Wifi tout en permettant l'accès a internet par l'autre carte réseau câblé.

Posté(e) (modifié)

J'ai le paquet VPN Server Installé oui. Mais arrêté.

Par contre, je ne voit pas de paquet VPN Center. C'est bien un paquet disponible dans le centre de paquet ? Et non par IPKG ?

Ça ne change rien, même une fois le VPN center démarré. j'ai exactement le même message :

> iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
Modifié par Moise44
Posté(e) (modifié)

active un des vpn au choix dans le vpn server (pas seulement le paquet), il va inserer les modules pour le nat ;)

tu peux laissé le vpn avec aucun acces pour personne, faut juste qu'il soit démarré

Modifié par Gaetan Cambier
Posté(e)

Merci Beaucoup Gaëtan G ! :rolleyes:B)

J'ai effectivement activé OpenVPN sans m'en servir ou rien créer dedans, et comme un miracle, la règle NAT MASQUERADE fonctionne !
Je suis super, super content que ça marche comme je voulais. Je vais pouvoir DL comme un cochon ce week end via le réseau mobile de Bouygues ! Exceptionnellement en Illimité avec 4 Mo/s de débit, je vais sans doute faire le plein de bon films et Series HD !
Je résume :
- Le NAS (DS710+) fourni tout au réseau local par l'interface eth0: DHCP, DNS, Internet
- Le NAS possède deux interfaces de passage : eth0 et wlan0 (clef USB Wifi a l'arrière)
- Le Traffic vers et depuis internet transite entre la bbox et le NAS via la carte wlan0 et le Wifi de la bbox
- Le Serveur DNS du NAS passe par l'interface wlan0 pour résoudre sur internet, mais pas en local

- Pas de liaison physique entre la bbox et le Switch

Je vais donc pouvoir remplacer le temps d'un week end ou deux (voir les propositions récentes de Bouygues a ce sujet) ma Bbox ADSL par ma BBox Nomade a 1€/mois pour mon accès internet. Et en fait, a terme n'importe quel accès internet en Wifi.
Donc y compris mon téléphone mobile chez Free !
J'préfèrerais largement avoir une bonne connexion ADSL, mais même en faisant du bonding avec deux box je n'arriverai même pas a 1 Mo/s ...Quelle galère !

Encore merci Gaëtan

  • 3 semaines après...
Posté(e)

Bonjour,

Pour reprendre le sujet initial, j'utilise donc un script de routage NAT qui est placé dans /usr/syno/etc/rc.d/ et qui me donne entière satisfaction du point de vue routage!

Néanmoins, à chaque redémarrage du NAS, il me faut relancer le script à la main car le routage n'est pas opérationnel...

Je souhaiterais n'avoir rien à faire et qu'à chaque redémarrage, le script soit lancé automatiquement. Comment faire?

 

Merci

Posté(e)

Merci pour ta réponse.

J'ai bien placé mon script dans

Place ton script dans /usr/local/etc/rc.d/, mais malheureusement, toujours pas de redémarrage automatique du script après un reboot du serveur... Tous les scripts sous rc.d ne sont ils pas sensés être relancés au démarrage?

(J'ai chmodé mon script en 755 comme les autres scripts, ce devrait être ok non?)

Posté(e)

as-tu respecté le format :

#!/bin/sh

start() {
        # insert code here  
        return 0
}

stop() {
        # insert code here  
        return 0
}

case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        stop
        start
        ;;
*)
        exit 1
esac

 

Posté(e)

J'ai copié exactement ce post, soit:

    # Script to enable port forwarding and IP Masquerading, to share
    # the primary internet connection to the second port of DS1512+

    action=$1
    shift;

    local INT_IFACE="eth1"
    local IFCFG_FILE="/etc/sysconfig/network-scripts/ifcfg-${INT_IFACE}"
    local DHCPD_CONF="/etc/dhcpd/dhcpd.conf"
    local RULES_NAT="/etc/firewall_rules_nat.dump"

    logerr() { # [logger args] [msgs...]
            local TAG="nat_router"
            [ ! -z $action ] && TAG="${TAG} (${action})"
            logger -p user.err -t "${TAG}" "$@"
    }

    # Guard to prevent execution if NAT is not supposed to be enabled
    [ -e $IFCFG_FILE -a -e ${DHCPD_CONF} ] || { logerr "Missing config files"; exit 1; }

    local IPADDR=`get_key_value ${IFCFG_FILE} IPADDR`
    local NETMASK=`get_key_value ${IFCFG_FILE} NETMASK`
    local IS_ROUTER=`grep option:router ${DHCPD_CONF} | grep -c ${IPADDR}`

    [ ${IS_ROUTER} -eq 0 ] && { logerr "Routing mode not enabled on ${INT_IFACE}"; exit 1; }

    # Calculate local network CIDR
    local CIDR_PREFIX=`ipcalc -p ${IPADDR} ${NETMASK} | cut -d'=' -f2`
    local CIDR_IP=`ipcalc -n ${IPADDR} ${NETMASK} | cut -d'=' -f2`
    local CIDR="${CIDR_IP}/${CIDR_PREFIX}"

    setup_nat() {
            # Enable port forwarding, in case not enabled by default
            echo 1 > /proc/sys/net/ipv4/ip_forward

            # Load the required modules
            /usr/syno/etc.defaults/rc.d/S01iptables.sh load_nat_mod forwarding_test
    }

    load_nat_rules() {
            if [ -e ${RULES_NAT} ]; then
                    /sbin/iptables-restore -n < ${RULES_NAT} &> /dev/null
                    if [ $? -eq 0 ]; then
                            logerr "NAT rules loaded successfully"
                    else
                            logerr "Error loading NAT rules from: ${RULES_NAT}"
                            exit 1;
                    fi
            else
                    logerr "No NAT rules found"
            fi

            # Define the masquerading rule
            /sbin/iptables -t nat -D POSTROUTING -s ${CIDR} -j MASQUERADE &> /dev/null   # don't add twice
            /sbin/iptables -t nat -A POSTROUTING -s ${CIDR} -j MASQUERADE
    }

    save_nat_rules() {
            local TMP_RULES="/tmp/firewall_rules_nat.tmp"

            echo "# $(date)" > ${TMP_RULES}
            echo "*nat" >> ${TMP_RULES}

            /sbin/iptables-save -t nat | grep "\-j DNAT" | uniq >> ${TMP_RULES}

            echo "COMMIT" >> ${TMP_RULES}
            mv -f ${TMP_RULES} ${RULES_NAT}

            logerr "NAT rules saved to ${RULES_NAT}"
    }

    clear_nat_rules() {
            /sbin/iptables-save -t nat |grep "\-j DNAT" | sed 's/^-A /-D /g' | while read line; do
                    if [ ! -z $line ]; then
                            /sbin/iptables -t nat $line &> /dev/null
                    fi
            done

            /sbin/iptables -t nat -D POSTROUTING -s ${CIDR} -j MASQUERADE &> /dev/null
    }

    case "$action" in
            start)
                    setup_nat
                    load_nat_rules
                    ;;
            stop)
                    save_nat_rules
                    clear_nat_rules
                    ;;
            restart)
                    save_nat_rules
                    clear_nat_rules
                    load_nat_rules
                    ;;
            *)
                    echo "Usage: $0 [start|stop|restart]"
                    ;;
    esac

    exit 0

 

Posté(e) (modifié)

ajoute simplement ceci en 1° ligne de ton script

#!/bin/sh

autrement, au demarrage, il ne sait pas quel interpreteur utiliser et çà peut être le problème

 

Modifié par gaetan.cambier
Posté(e) (modifié)

Super, ca fonctionne!

(J'ai également nettoyé les tab qu'il y avait au début de chaque ligne)

Merci!

Modifié par remix
  • 1 an après...
Posté(e)

Ce script est un peu compliqué pour moi, je vois bien les fonctions et leurs utilisations plus bas dans le script normé, mais je n'ai pas besoin de calculs et de fonctions si compliquées étant donné que mon NAS renvoi, non pas d'une interface filaire a une autre interface filaire, mais d'une interface wlan0 (Wifi) vers l'interface filaire (eth0) unique de mon DS710+.

Est-ce que si je fais ceci, c'est suffisant ? :

#!/bin/sh

start() {
        echo "1" >/proc/sys/net/ipv4/ip_forward;
        /sbin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
        return 0
}

stop() {
        # insert code here  
        return 0
}

case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        stop
        start
        ;;
*)
        exit 1
esac

Je ne suis pas vraiment a l'aise avec les scripts en général, aussi excusez moi de vous demander conseil de manière aussi brute.

Merci d'avance pour votre aide.

Posté(e)
il y a une heure, Moise44 a dit :

Est-ce que si je fais ceci, c'est suffisant ? :

Tu as enlevé tous les tests, les contrôles d'erreur et le retour arrière. Typiquement ton stop ne stop rien.

Si tu veux juste une commande pour transformer ton syno en routeur, mets ça dans le planificateur des taches :

/sbin/iptables -t nat -D POSTROUTING -o wlan0 -j MASQUERADE ; echo "1" >/proc/sys/net/ipv4/ip_forward ; /sbin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

 

Posté(e)

D'accord mais pourquoi la même commande 2 fois ? avant et après l'activation du routage ?

Et j'imagine que par planificateur de taches, tu veux dire qu'il faut aller dans le cron ?

Moi je veux que ça marche dés que le syno est démarré, est-ce bien judicieux de le mettre dans le planificateur de taches dans ce cas ?

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.