[iptables] redirection de port vers une autre machine (Résolu)

Applications, problèmes de configuration réseau
Répondre
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

[iptables] redirection de port vers une autre machine (Résolu)

Message par Chr0nos »

Bonjour,
Depuis quelques jours je cherches passer mon trafic transmission-daemon au travers de mon VPN wireguard ( qui tourne sur un serveur dédie )
le problème c'est que je n'arrive absolument pas a seeder ( le down est ok )


Voici une illustration de comment est organise mon réseau
Image


j'ai regarde avec

Code : Tout sélectionner

sudo tshark -i thorin -Y "tcp.port == 51413 || udp.port == 51413"
lance sur 10.8.1.16 et je reçoit bien les paquets ( aussi bien en TCP qu'en UDP ) mais visiblement je ne peux pas me connecter aux machines distantes, je suppose que c'est parce que ma redirection de ports au niveau de 10.8.1.1 est incomplète mais je ne parviens pas a trouver en quoi...

depuis le vpn j'ai bien accès a internet

Vous auriez une idée ?
Dernière modification par Chr0nos le dim. 06 juin 2021, 00:36, modifié 2 fois.
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [iptables] redirection de port vers une autre machine

Message par benjarobin »

Bonjour,
J'avoue ne pas comprendre ton schéma.
Pourquoi avoir 2 sous réseaux différents (10.8.1.x et 192.168.1.x) ?
C'est bien ta Freebox qui fournit internet, non ?
Le serveur dédié est connecté directement à la freebox ? Le serveur n'est pas dans le "cloud" (par exemple chez OVH) ?
La connexion du VPN se fait à quel service / serveur ?
Ton PC est où dans tout cela ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

Re: [iptables] redirection de port vers une autre machine

Message par Chr0nos »

Bonjour,

mon réseau en 10.8.1.x est mon reseau wireguard ( donc qui fournis l'interface thorin sur mon nas, et l'interface wg0 cote serveur dédie)

la connection au vpn se fait donc dirrectement a ce serveur ( 163.172.xx.xx (donc dans le cloud))
on peut considerer mon PC comme etant le NAS ici (c'est techniquement un pc avec un archlinux qui lance le service transmission-daemon ), mon pc se connecte juste en remote rpc au nas pour manager les torrents

en gros pour le trafic internet "normal" ca donne:
NAS -> on chiffre le paquet dans wireguard -> ca transite de mon lan a mon serv dediee -> arrivée dans l'interface wg0 -> on forward vers enp0s20f0 -> on repars vers la vraie ip de destination
le chemin inverse se fait pour la reponse
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

Re: [iptables] redirection de port vers une autre machine

Message par Chr0nos »

J'ai fait quelques modifs du cote de 10.8.1.1:

Code : Tout sélectionner

iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -A FORWARD -o wg0 -j ACCEPT
iptables -A FORWARD -d 10.8.1.16/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 50000 -j ACCEPT
iptables -A FORWARD -d 10.8.1.16/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 51413 -j ACCEPT
iptables -A FORWARD -d 10.8.1.16/32 -p udp -m state --state NEW,RELATED,ESTABLISHED -m udp --dport 51413 -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o enp0s20f0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20f0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 50000 -j DNAT --to-destination 10.8.1.16:50000
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 51413 -j DNAT --to-destination 10.8.1.16:51413
iptables -t nat -A PREROUTING -p udp -m udp --dport 51413 -j DNAT --to-destination 10.8.1.16:51413

iptables -A POSTROUTING -p tcp -m tcp --dport 50000 -j SNAT --to-source 163.172.59.7
iptables -A POSTROUTING -p tcp -m tcp --dport 51413 -j SNAT --to-source 163.172.59.7
iptables -A POSTROUTING -p udp -m udp --dport 51413 -j SNAT --to-source 163.172.59.7
iptables -A POSTROUTING -s 10.8.1.0/24 -o enp0s20f0 -j SNAT --to-source 163.172.59.7
dans l'idee j'ai aussi lance un nginx sur le nas dans un conteneur docker sur le port 50000 qui me permet de tester que mon port forwarding tiens la route (ce qui est le cas pour la)
dans le NAS j'ai aussi ajoute:

Code : Tout sélectionner

iptables -A FORWARD -d 10.8.1.16/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 50000 -j ACCEPT
iptables -A FORWARD -d 10.8.1.16/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 51413 -j ACCEPT
résultat: le client transmission me trouve bien le port en "open" et j'arrive péniblement a uploader quelques ko/s pendent quelques secondes (alors que j'ai une bande passante montante de 80mo/s ), je me suis donc dis que quelque chose clochait, j'ai donc capture quelques trames sur le NAS avec tshark et j'ai regardé plus en détail avec wireshark

Image

192.168.1.12 == le NAS ( de meme que 10.8.1.16 )

donc visiblement mes paquets ne sont pas routés, malheureusement je ne sais pas trop comment fixer ca...
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
laurent85
Elfe
Messages : 951
Inscription : mar. 16 oct. 2018, 21:05

Re: [iptables] redirection de port vers une autre machine

Message par laurent85 »

Bonjour,
Fais plus simple avec moins de règles pour commencer sur le serveur :
  • autorise l'ip forward, vérifie avec:

    Code : Tout sélectionner

    cat /proc/sys/net/ipv4/ip_forward
    * la règle masquerade générale pour 10.8.0.0/16

    Code : Tout sélectionner

    sudo iptables -t nat -A POSTROUTING -o enp0s20f0 -s 10.8.0.0/16 -j MASQUERADE
  • les règles DNAT :

    Code : Tout sélectionner

    sudo iptables -t nat -A PREROUTING -i enp0s20f0 -d 163.172.59.7 -p tcp -m tcp --dport 51413 -j DNAT --to-destination 10.8.1.16
    sudo iptables -t nat -A PREROUTING -i enp0s20f0 -d 163.172.59.7 -p tcp -m udp --dport 51413 -j DNAT --to-destination 10.8.1.16
    
  • sur pepper une table de routage avec la route par défaut via wg0 et bien sûr la route 163.172.59.7/32 via 192.168.1.254
Le routage sur cette base se fera automatiquement, le trafic ip pepper passe par le serveur vpn, il faudra par la suite ajouter les règles pour blinder le pare-feu du serveur.
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

Re: [iptables] redirection de port vers une autre machine

Message par Chr0nos »

Bonjour et merci d'avoir pris le temps de me répondre,

l'ip_forward est bien actif

Code : Tout sélectionner

[root@Thorin ~]# cat   /proc/sys/net/ipv4/ip_forward
1
j'ai retiré les anciennes règles sur les ports 51413 et 50000 pour passer sur les tiennes qui sont effectivement bien plus conscises ( je me suis un peu emmêlé les pieds dans le tapis... )

du cote de pepper:

Code : Tout sélectionner

[root@pepper ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    100    0        0 enp33s0
10.8.1.0        0.0.0.0         255.255.255.0   U     0      0        0 thorin
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-c41a54563dec
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 enp33s0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
le seed semble effectivement bien meilleur toutefois je recoit encore pas mal de paquets en RST sur pepper:

Code : Tout sélectionner

[root@pepper ~]# tshark -i thorin -Y "tcp.flags.reset == 1"
Running as user "root" and group "root". This could be dangerous.
Capturing on 'thorin'
  177 0.419547061 37.120.143.52 → 10.8.1.16    TCP 40 29861 → 33809 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
  444 0.967244571 192.168.1.12 → 138.199.18.71 TCP 40 51413 → 57075 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
  743 1.440344836    10.8.1.16 → 5.51.137.9   TCP 40 51413 → 61198 [RST] Seq=528 Win=0 Len=0
  745 1.442336195    10.8.1.16 → 5.51.137.9   TCP 40 51413 → 61198 [RST] Seq=528 Win=0 Len=0
 1012 1.928161179    10.8.1.16 → 91.121.67.146 TCP 40 36907 → 51413 [RST] Seq=1 Win=0 Len=0
 1097 2.059510620 176.145.98.216 → 10.8.1.16    TCP 40 51413 → 41177 [RST] Seq=2 Win=0 Len=0
 1098 2.060685754 176.145.98.216 → 10.8.1.16    TCP 40 51413 → 41177 [RST] Seq=2 Win=0 Len=0
 1131 2.094030019 176.145.98.216 → 10.8.1.16    TCP 40 51413 → 38599 [RST] Seq=1 Win=0 Len=0
 1158 2.118416364 176.145.98.216 → 10.8.1.16    TCP 40 51413 → 38599 [RST] Seq=2 Win=0 Len=0
 1671 2.935662739 185.32.222.119 → 10.8.1.16    TCP 40 49788 → 59073 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
 1672 2.939052990 94.106.129.222 → 10.8.1.16    TCP 40 51033 → 50851 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
 1894 3.437072937  84.17.48.16 → 10.8.1.16    TCP 40 27708 → 35411 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
 1898 3.439155476 185.32.222.119 → 10.8.1.16    TCP 40 49788 → 56727 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
 1919 3.442274439 94.106.129.222 → 10.8.1.16    TCP 40 51033 → 34195 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
 1991 3.536195018 77.81.142.133 → 10.8.1.16    TCP 40 50500 → 51335 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
 2279 3.933868140 191.101.31.80 → 10.8.1.16    TCP 40 51413 → 53417 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
 2287 3.941544098  84.17.48.16 → 10.8.1.16    TCP 40 27708 → 33627 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
 2298 3.966529339 213.152.161.101 → 10.8.1.16    TCP 40 55879 → 49861 [RST] Seq=2 Win=0 Len=0
 2299 3.967512414 213.152.161.101 → 10.8.1.16    TCP 40 55879 → 49861 [RST] Seq=2 Win=0 Len=0
 2326 4.005330764 213.152.161.101 → 10.8.1.16    TCP 52 55879 → 48311 [RST, ACK] Seq=1 Ack=69 Win=65152 Len=0 TSval=3758744905 TSecr=1449333024
 2347 4.042597337 77.81.142.133 → 10.8.1.16    TCP 40 50500 → 53937 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
 ...
gros point positif : je vois bien les bonnes ip sur le client transmission alors qu'avant je voyais 163.172.59.7

et sur pepper la route utilise est bien celle du vpn:

Code : Tout sélectionner

[root@pepper ~]# curl -4 -s icanhazip.com
163.172.59.7
dois-je aussi faire un DNAT sur pepper pour changer l'ip de destination ?
cote transmission je bind sur 10.8.1.16

Code : Tout sélectionner

    ...
    "bind-address-ipv4": "10.8.1.16",
    ...
encore merci pour ton temps :)
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [iptables] redirection de port vers une autre machine

Message par benjarobin »

Tu ne dois surtout pas ajouter de NAT supplémentaires, tu ne dois en avoir un seul, il est sur le serveur dédié. La seule modification au niveau NAT c'est éventuellement ajouter d'autres redirections de port en fonction de tes besoins (c'est strictement la même chose que pour une Freebox, ou n'importe quel autre routeur)

Par contre en effet, il faudrait ajouter des règles iptables pour filtrer/bloquer tout trafic non désiré.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

Re: [iptables] redirection de port vers une autre machine

Message par Chr0nos »

Ok je comprends :)
effectivement au début de ce serveur je n'était pas super confiant avec iptables (mais vu que la j'en ai fait énormément depuis 3 jours... je le sent bien ) ma crainte étant de perdre mon accès SSH a mon dédié et de devoir le reboot,

j'imagine que quelque chose du genre

Code : Tout sélectionner

iptables -A INPUT -s 10.8.1.0/24 -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
sera un bon début, pour l'heure je m'était contenté de forcer l'authentification par clef ssh plutot que mot de passe

encore merci a vous,
je passe en résolut
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
laurent85
Elfe
Messages : 951
Inscription : mar. 16 oct. 2018, 21:05

Re: [iptables] redirection de port vers une autre machine

Message par laurent85 »

Le routage n'est pas bon sur pepper, donne le retour de ip route.
Ajoute ces règles pour faire passer le routage par défaut par l'interface thorin.

Code : Tout sélectionner

sudo ip route add default dev thorin metric 50
sudo ip route add 163.172.59.7 via 192.168.1.254 dev enp33s0
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

Re: [iptables] redirection de port vers une autre machine (Résolu)

Message par Chr0nos »

le routage actuel de pepper:

Code : Tout sélectionner

[root@pepper ~]# ip route
default via 192.168.1.254 dev enp33s0 proto dhcp metric 100
10.8.1.0/24 dev thorin proto kernel scope link src 10.8.1.16
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev br-c41a54563dec proto kernel scope link src 172.18.0.1
192.168.1.0/24 dev enp33s0 proto kernel scope link src 192.168.1.12 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
c'est wg-quick qui a setup tout ca,
dans mon /etc/wireguard/thorin.conf j'ai:

Code : Tout sélectionner

...
Address = 10.8.1.16/24, fd42:42:42::1/64
...
[Peer]
PublicKey = .........
# passage de tout le trafic dans le VPN
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 163.172.59.7:51904
PersistentKeepalive = 21
je tente l'ajout des routes j'ai:

Code : Tout sélectionner

[root@pepper ~]# ip route
default dev thorin scope link metric 50
default via 192.168.1.254 dev enp33s0 proto dhcp metric 100
10.8.1.0/24 dev thorin proto kernel scope link src 10.8.1.16
163.172.59.7 via 192.168.1.254 dev enp33s0
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev br-c41a54563dec proto kernel scope link src 172.18.0.1
192.168.1.0/24 dev enp33s0 proto kernel scope link src 192.168.1.12 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
( es-ce persistant ? ou il y a un fichier comme /etc/iptables/iptables.save a editer ? )

aussi meme apres ajout de la route, il semble que j'ai pas mal de RST encore

Code : Tout sélectionner

[root@pepper ~]# tshark -i thorin -Y "tcp.flags.reset == 1"
Running as user "root" and group "root". This could be dangerous.
Capturing on 'thorin'
 6745 5.242201654    10.8.1.16 → 144.217.139.99 TCP 40 51413 → 63496 [RST] Seq=122 Win=0 Len=0
 6748 5.242529272    10.8.1.16 → 144.217.139.99 TCP 40 51413 → 63496 [RST] Seq=123 Win=0 Len=0
 6749 5.242537342    10.8.1.16 → 144.217.139.99 TCP 40 51413 → 63496 [RST] Seq=123 Win=0 Len=0
29444 18.752755597    10.8.1.16 → 109.11.21.124 TCP 40 51413 → 52794 [RST, ACK] Seq=1 Ack=69 Win=64896 Len=0
48290 29.954577155 192.168.1.12 → 90.110.178.195 TCP 40 51413 → 38401 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
49358 30.946062822 192.168.1.12 → 90.110.178.195 TCP 40 51413 → 38401 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
51211 32.945526314 192.168.1.12 → 90.110.178.195 TCP 40 51413 → 38401 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
55443 36.152647893 37.187.118.100 → 10.8.1.16    TCP 40 50839 → 51413 [RST] Seq=1 Win=0 Len=0
56598 36.955583094 192.168.1.12 → 90.110.178.195 TCP 40 51413 → 38401 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
70077 44.985540067 192.168.1.12 → 90.110.178.195 TCP 40 51413 → 38401 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
78166 50.632592032    10.8.1.16 → 144.217.139.99 TCP 40 51413 → 63959 [RST] Seq=464 Win=0 Len=0
78168 50.633316228    10.8.1.16 → 144.217.139.99 TCP 40 51413 → 63959 [RST] Seq=465 Win=0 Len=0
78170 50.633508326    10.8.1.16 → 144.217.139.99 TCP 40 51413 → 63959 [RST] Seq=465 Win=0 Len=0
95712 63.445100212    10.8.1.16 → 89.158.71.131 TCP 40 51413 → 57238 [RST] Seq=505 Win=0 Len=0
pourtant le paquet est bien routé depuis thorin vers pepper non?
cote seed c'est "etrange", je vois que ca upload autours de 2mo/s pendent 2 secondes max, pour retomber a 0, puis repartir, comme si le flux était instable
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [iptables] redirection de port vers une autre machine (Résolu)

Message par benjarobin »

En effet, je n'avais pas fait attention à ceci (les routes ne sont pas bonnes, j'ai vu "_gateway" donc je m'étais dis que c'était un alias vers le serveur dedié, mais je n'avais pas fait attention au nom de l'interface...)
Pour information Network Manager supporte nativement wireguard, et donc devrait faire la bonne configuration réseau. Après je peux comprendre que tu ne veuilles pas forcément utiliser ce service réseau.
Sinon le lien https://www.wireguard.com/netns/ est assez intéressant.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

Re: [iptables] redirection de port vers une autre machine (Résolu)

Message par Chr0nos »

en fait j'utilise déjà Network manager (il me simplifie quand même pas mal la vie)

Code : Tout sélectionner

[root@pepper ~]# nmcli c]
NAME             UUID                                  TYPE       DEVICE
Mellanox 10G     61bcb66e-2379-31f3-9a8e-abdd40f9fbb0  ethernet   enp33s0
br-c41a54563dec  e38b4fe7-5958-4268-a8f4-1b2d071c6527  bridge     br-c41a54563dec
docker0          ec6e9cfb-1ba2-4502-978f-96901b61b229  bridge     docker0
thorin           e21697bd-2188-403a-b9ed-8acceef79071  wireguard  thorin
virbr0           73403819-2be1-49cb-ac42-45dd317a4f59  bridge     virbr0
Ethernet 2.5G    169f6b35-1c0e-3a77-a663-5c95d2ecedff  ethernet   --
j'ai été un peu surpris de voir mon interface thorin dans cette liste (puisque je n'ai pas crée ca avec network-manager mais via wg-quick, après je suppose que nmcli liste toutes les interfaces réseau connues donc pas si étonnant non plus)

par curiosité j'ai été voir ce que faisait wg-quick lorsqu'il se connecte au vpn

Code : Tout sélectionner

[root@pepper ~]# journalctl  -u wg-quick@thorin.service
Jun 04 13:39:05 pepper systemd[1]: Starting WireGuard via wg-quick(8) for thorin...
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] ip link add thorin type wireguard
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] wg setconf thorin /dev/fd/63
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] ip -4 address add 10.8.1.16/24 dev thorin
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] ip -6 address add fd42:42:42::1/64 dev thorin
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] ip link set mtu 1420 up dev thorin
Jun 04 13:39:05 pepper wg-quick[2493163]: [#] resolvconf -a thorin -m 0 -x
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] wg set thorin fwmark 51820
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] ip -6 route add ::/0 dev thorin table 51820
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] ip -6 rule add not fwmark 51820 table 51820
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] ip -6 rule add table main suppress_prefixlength 0
Jun 04 13:39:05 pepper wg-quick[2493136]: [#] nft -f /dev/fd/63
j'ai lu l'article sur les netns, je vais surement faire quelques tests dans un vm histoire de ne pas tout casser sur pepper :) le routage reste encore un poil obscur pour moi mais c'est assez sympa de comprendre un peu comment ca fonctionne
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
laurent85
Elfe
Messages : 951
Inscription : mar. 16 oct. 2018, 21:05

Re: [iptables] redirection de port vers une autre machine (Résolu)

Message par laurent85 »

Dans les logs on voit que wg-quick fait de la configuration de routage avancée avec du marquage de paquets et une table de routage spécifique. Il y a même du nftables le remplaçant de iptables pour des règles de pare-feu. Ça fait beaucoup pour une configuration par défaut, alors j'ai regardé la page de man de wg-quick et il est précisé :
"It is designed for users with simple needs, and users with more advanced needs are highly encouraged to use a more specific tool, a more complete network manager, or otherwise just use wg(8) and ip(8), as usual."
C'est-à-dire que tu es hors recommandations pour ton usage.
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

Re: [iptables] redirection de port vers une autre machine (Résolu)

Message par Chr0nos »

oui je vois ca, du coup je vais surement regarder pour refiler la config de wireguard a NetworkManager et et laisser wg-quick de coté, ne serait-ce que pour être plus consistant

edit:
je viens de regarder et j'ai fait

Code : Tout sélectionner

[root@pepper]# systemctl disable wg-quick@thorin.service
Removed /etc/systemd/system/multi-user.target.wants/wg-quick@thorin.service.
[root@pepper]# systemctl stop wg-quick@thorin.service
[root@pepper]# nmcli c import type wireguard file /etc/wireguard/thorin.conf
Connection 'thorin' (aefbb9cc-cbbc-4548-a1dd-3d767237485e) successfully added.
[root@pepper]# nmcli c
NAME             UUID                                  TYPE       DEVICE
Mellanox 10G     61bcb66e-2379-31f3-9a8e-abdd40f9fbb0  ethernet   enp33s0
thorin           aefbb9cc-cbbc-4548-a1dd-3d767237485e  wireguard  thorin
br-c41a54563dec  94d70a10-f799-4b87-ad95-2849759fe430  bridge     br-c41a54563dec
docker0          9c515053-418e-4293-8839-71a24bb848ef  bridge     docker0
virbr0           422fb802-057b-4c13-be41-9174238f6501  bridge     virbr0
Ethernet 2.5G    169f6b35-1c0e-3a77-a663-5c95d2ecedff  ethernet   --
Pepper           fe6e5e36-997f-4e2f-b0d7-ddcbd7410b18  wifi       --

Code : Tout sélectionner

[root@pepper]# nmcli c up thorin
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)

[root@pepper ~]# ip route
default via 192.168.1.254 dev enp33s0 proto dhcp metric 100
10.8.1.0/24 dev thorin proto kernel scope link src 10.8.1.16 metric 50
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-c41a54563dec proto kernel scope link src 172.18.0.1
192.168.1.0/24 dev enp33s0 proto kernel scope link src 192.168.1.12 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
ca m'a l'air bien :)
j'ai toujours quelques trames qui se perdent avec un flag reset mais a ce stade je me demande si ce n'est pas des clients "louches" car j'arrive a plutôt bien seed la
je dois encore fixer mes dernières règles iptables pour pouvoir passer en politique par défaut de DROP sur la table INPUT mais c'est un tout autre sujet et ce n'est pas les tutos qui manquent la dessus :)
encore merci pour votre aide a tous
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [iptables] redirection de port vers une autre machine (Résolu)

Message par benjarobin »

Non ce n'est toujours pas bon... Les routes ne sont pas bonne du tout. Rien ne passe par le VPN (sauf le réseau du VPN en 10.8.1.0/24)
Je n'ai pas vraiment d'expérience avec wireguard, mais je pense que la configuration coté serveur n'est pas la bonne. Il devrait indiquer de changer la route par défaut (en tout cas c'est comme cela que cela fonctionne avec OpenVPN)

Edit 2: Peux tu donner le contenu de /etc/wireguard/thorin.conf en enlevant /censurant les clés (Hum, déjà donné ici : viewtopic.php?p=176684#p176684)
Edit 3: Je suppose qu'il suffit de modifier la configuration de Network Manager (désolé je ne sait fait qu'en graphique) pour configurer proprement les routes
Il te faut ces 2 routes :

Code : Tout sélectionner

ip route add default dev thorin metric 50
ip route add 163.172.59.7 via 192.168.1.254 dev enp33s0
Edit 4: Mais essaye tout d'abord ce qui est décrit dans le Wiki : https://wiki.archlinux.org/title/WireGu ... orkManager
Car normalement c'est supporté : https://wiki.archlinux.org/index.php?ti ... did=607259
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

Re: [iptables] redirection de port vers une autre machine (Résolu)

Message par Chr0nos »

alors, pour le coup je pense que si tout passe par le vpn:

Code : Tout sélectionner

[root@pepper ~]# wget -qO - icanhazip.com
163.172.59.7
[root@pepper ~]# traceroute free.fr
traceroute to free.fr (212.27.48.10), 30 hops max, 60 byte packets
 1  10.8.1.1 (10.8.1.1)  3.449 ms  3.511 ms  3.509 ms
 2  163-172-59-1.rev.poneytelecom.eu (163.172.59.1)  4.027 ms  4.024 ms  4.240 ms
 3  195.154.2.194 (195.154.2.194)  4.234 ms  4.476 ms 195.154.1.24 (195.154.1.24)  4.192 ms
 4  a9k1-pni-th2.dc3.poneytelecom.eu (195.154.1.36)  4.199 ms  4.188 ms  4.177 ms
 5  62.210.0.167 (62.210.0.167)  4.644 ms  4.644 ms 62.210.0.157 (62.210.0.157)  4.907 ms^C
en fait avec wireguard le

Code : Tout sélectionner

AllowedIPs = 0.0.0.0/0, ::/0
est en fait un masque, de toutes les ips qui doivent partir sur le vpn, ici toutes les ips (tant en ipv4 que ipv6)

cote network manager jai bien:

Code : Tout sélectionner

[root@pepper ~]# nmcli c s thorin
...
IP4.ADDRESS[1]:                         10.8.1.16/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 10.8.1.0/24, nh = 0.0.0.0, mt = 50
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 0.0.0.0, mt = 20050, table=52302
IP4.DNS[1]:                             10.8.1.1
...
(j'ai bien un serveur de cache de dns sur thorin pour éviter les leaks de dns (netflix par ex n'aimais pas ca et détectais que j'utilisais un vpn))
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [iptables] redirection de port vers une autre machine (Résolu)

Message par benjarobin »

Euh, je n'y comprends rien... Pourquoi la sortie de ip route ne contient pas la route par défaut ? Comment par magie c'est routé vers 10.8.1.1 ?

Edit : Peux tu donner depuis le même terminal la sortie de

Code : Tout sélectionner

traceroute free.fr
ip route
ip route show table all
ip rule show
Edit: Je commence à y voir plus clair :
- https://linux-attitude.fr/post/routage-ameliore
- https://man7.org/linux/man-pages/man8/ip-rule.8.html
- https://serverfault.com/questions/61885 ... ute-tables
- https://programmer.help/blogs/linux-ser ... route.html
- https://ro-che.info/articles/2021-02-27-linux-routing

Donc ce que tu avais fait durant ce message était très certainement bon : viewtopic.php?p=176680#p176680. Mais si tu utilises déjà Network Manager autant l'utiliser.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Chr0nos
Hankyu
Messages : 16
Inscription : mer. 22 nov. 2017, 18:31

Re: [iptables] redirection de port vers une autre machine (Résolu)

Message par Chr0nos »

bien sur :)

Code : Tout sélectionner

[root@pepper ~]# traceroute free.fr
traceroute to free.fr (212.27.48.10), 30 hops max, 60 byte packets
 1  10.8.1.1 (10.8.1.1)  3.490 ms  3.703 ms  3.694 ms
 2  163-172-59-1.rev.poneytelecom.eu (163.172.59.1)  4.026 ms  4.202 ms  4.201 ms
 3  195.154.2.194 (195.154.2.194)  4.146 ms 195.154.1.24 (195.154.1.24)  4.182 ms  4.307 ms
 4  51.158.8.184 (51.158.8.184)  4.636 ms  4.391 ms a9k1-49e-s202b-1-dc2.dc3.poneytelecom.eu (195.154.1.28)  4.265 ms
 5  62.210.0.163 (62.210.0.163)  4.271 ms 62.210.0.171 (62.210.0.171)  4.491 ms 62.210.0.169 (62.210.0.169)  4.346 ms
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

Code : Tout sélectionner

[root@pepper ~]# ip route
default via 192.168.1.254 dev enp33s0 proto dhcp metric 100
10.8.1.0/24 dev thorin proto kernel scope link src 10.8.1.16 metric 50
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-c41a54563dec proto kernel scope link src 172.18.0.1
192.168.1.0/24 dev enp33s0 proto kernel scope link src 192.168.1.12 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown

Code : Tout sélectionner

[root@pepper ~]# ip route show table all
default dev thorin table 52302 proto static scope link metric 20050
default via 192.168.1.254 dev enp33s0 proto dhcp metric 100
10.8.1.0/24 dev thorin proto kernel scope link src 10.8.1.16 metric 50
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-c41a54563dec proto kernel scope link src 172.18.0.1
192.168.1.0/24 dev enp33s0 proto kernel scope link src 192.168.1.12 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
broadcast 10.8.1.0 dev thorin table local proto kernel scope link src 10.8.1.16
local 10.8.1.16 dev thorin table local proto kernel scope host src 10.8.1.16
broadcast 10.8.1.255 dev thorin table local proto kernel scope link src 10.8.1.16
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 172.17.0.0 dev docker0 table local proto kernel scope link src 172.17.0.1 linkdown
local 172.17.0.1 dev docker0 table local proto kernel scope host src 172.17.0.1
broadcast 172.17.255.255 dev docker0 table local proto kernel scope link src 172.17.0.1 linkdown
broadcast 172.18.0.0 dev br-c41a54563dec table local proto kernel scope link src 172.18.0.1
local 172.18.0.1 dev br-c41a54563dec table local proto kernel scope host src 172.18.0.1
broadcast 172.18.255.255 dev br-c41a54563dec table local proto kernel scope link src 172.18.0.1
broadcast 192.168.1.0 dev enp33s0 table local proto kernel scope link src 192.168.1.12
local 192.168.1.12 dev enp33s0 table local proto kernel scope host src 192.168.1.12
broadcast 192.168.1.255 dev enp33s0 table local proto kernel scope link src 192.168.1.12
broadcast 192.168.122.0 dev virbr0 table local proto kernel scope link src 192.168.122.1 linkdown
local 192.168.122.1 dev virbr0 table local proto kernel scope host src 192.168.122.1
broadcast 192.168.122.255 dev virbr0 table local proto kernel scope link src 192.168.122.1 linkdown
default dev thorin table 52302 proto static metric 20050 pref medium
::1 dev lo proto kernel metric 256 pref medium
2a01:e0a:48a:1b10::/64 dev enp33s0 proto ra metric 100 pref medium
fd42:42:42::/64 dev thorin proto kernel metric 50 pref medium
fe80::/64 dev thorin proto kernel metric 50 pref medium
fe80::/64 dev enp33s0 proto kernel metric 100 pref medium
fe80::/64 dev br-c41a54563dec proto kernel metric 256 pref medium
fe80::/64 dev veth42ee519 proto kernel metric 256 pref medium
default via fe80::3627:92ff:fe65:aaee dev enp33s0 proto ra metric 100 pref medium
local ::1 dev lo table local proto kernel metric 0 pref medium
local 2a01:e0a:48a:1b10:b21d:7488:1dae:2fff dev enp33s0 table local proto kernel metric 0 pref medium
local fd42:42:42::1 dev thorin table local proto kernel metric 0 pref medium
local fe80::42:6bff:fe7d:7f12 dev br-c41a54563dec table local proto kernel metric 0 pref medium
local fe80::1cce:d42:331e:1d79 dev enp33s0 table local proto kernel metric 0 pref medium
local fe80::2035:33ff:fe9e:8c64 dev veth42ee519 table local proto kernel metric 0 pref medium
local fe80::cd38:8b1b:181c:358f dev thorin table local proto kernel metric 0 pref medium
multicast ff00::/8 dev enp42s0 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev br-c41a54563dec table local proto kernel metric 256 pref medium
multicast ff00::/8 dev veth42ee519 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev enp33s0 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev thorin table local proto kernel metric 256 pref medium
effectivement y'a bien plus de choses avec la dernière commande ^^

Code : Tout sélectionner

[root@pepper ~]# ip rule show
0:      from all lookup local
31676:  from all lookup main suppress_prefixlength 0
31677:  not from all fwmark 0xcc4e lookup 52302
32766:  from all lookup main
32767:  from all lookup default
Ryzen 3700X - 16gb ram - Nvidia rtx-3080 - dm: Mate - Aur: trizen
Répondre