Aller au contenu

[Résolu]OpenVPN sur BSD et passthrough du serveur


tyrann27

Messages recommandés

Hello,

Tout d'abord l'infrastructure :

Une OpenBSD avec openvpn installé dessus.

Le réseau chez moi est en 192.168.10.0

Mon pc c'est 192.168.10.24 et mon serveur 192.168.10.100

Le VPN est en 10.8.0.0 avec le serveur en 1 et mon laptop en 2

La connexion s'établit sans problème.

J'ai fait un push route entre les 2 réseaux.

A partir de mon laptop je ping le serveur sur les 2 interfaces (VPN et local)

A partir de mon pc chez moi c'est le meme

Mais pinger mon desktop à partir de mon laptop ça ne passe pas ! EDIT : l'inverse non plus d'ailleurs...

Donc je suppose que c'est le serveur qui bloque le passage des paquets mais je trouve pas pourquoi :transpi:

Quelqu'un a une idée ?

Lien vers le commentaire
Partager sur d’autres sites

Je te dirais bien que vu que tout est commenté, oui j'ai surement pas fait ce qu'il fallait :transpi:

# cat /etc/pf.conf															 
#	   $OpenBSD: pf.conf,v 1.31 2006/01/30 12:20:31 camield Exp $
#
# See pf.conf(5) and /usr/share/pf for syntax and examples.
# Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1
# in /etc/sysctl.conf if packets are to be forwarded between interfaces.

#ext_if="ext0"
#int_if="int0"

#table <spamd> persist
#table <spamd-white> persist

#set skip on lo

#scrub in

#nat-anchor "ftp-proxy/*"
#rdr-anchor "ftp-proxy/*"
#nat on $ext_if from !($ext_if) -> ($ext_if:0)
#rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021
#rdr pass on $ext_if proto tcp from <spamd> to port smtp \
#	   -> 127.0.0.1 port spamd
#rdr pass on $ext_if proto tcp from !<spamd-white> to port smtp \
#	   -> 127.0.0.1 port spamd

#anchor "ftp-proxy/*"
#block in
#pass out keep state

#pass quick on $int_if
#antispoof quick for { lo $int_if }

#pass in on $ext_if proto tcp to ($ext_if) port ssh keep state
#pass in log on $ext_if proto tcp to ($ext_if) port smtp keep state
#pass out log on $ext_if proto tcp from ($ext_if) to port smtp keep state
#

et

# cat /etc/sysctl.conf  
#	   $OpenBSD: sysctl.conf,v 1.40 2006/01/28 18:22:43 brad Exp $
#
# This file contains a list of sysctl options the user wants set at
# boot time.  See sysctl(3) and sysctl(8) for more information on
# the many available variables.
#
#net.inet.ip.forwarding=1	   # 1=Permit forwarding (routing) of IPv4 packets			<-- ca je dois surement décommenter 
#net.inet.ip.mforwarding=1	  # 1=Permit forwarding (routing) of IPv4 multicast packets
#net.inet6.ip6.forwarding=1	 # 1=Permit forwarding (routing) of IPv6 packets
#net.inet6.ip6.accept_rtadv=1   # 1=Permit IPv6 autoconf (forwarding must be 0)
#net.inet.tcp.rfc1323=0		 # 0=Disable TCP RFC1323 extensions (for if tcp is slow)
#net.inet.tcp.rfc3390=0		 # 0=Disable RFC3390 for TCP window increasing
#net.inet.esp.enable=0		  # 0=Disable the ESP IPsec protocol
#net.inet.ah.enable=0		   # 0=Disable the AH IPsec protocol
#net.inet.esp.udpencap=0		# 0=Disable ESP-in-UDP encapsulation
#net.inet.ipcomp.enable=1	   # 1=Enable the IPCOMP protocol
#net.inet.etherip.allow=1	   # 1=Enable the Ethernet-over-IP protocol
#net.inet.tcp.ecn=1			 # 1=Enable the TCP ECN extension
#ddb.panic=0					# 0=Do not drop into ddb on a kernel panic
#ddb.console=1				  # 1=Permit entry of ddb from the console
#fs.posix.setuid=0			  # 0=Traditional BSD chown() semantics
#vm.swapencrypt.enable=0		# 0=Do not encrypt pages that go to swap
#vfs.nfs.iothreads=4			# number of nfsio kernel threads
#net.inet.ip.mtudisc=0		  # 0=disable tcp mtu discovery
#kern.usercrypto=0			  # 0=disable userland use of /dev/crypto
#kern.splassert=2			   # 2=enable with verbose error messages
#machdep.allowaperture=2		# See xf86(4)
#machdep.apmwarn=10			 # battery % when apm status messages enabled
#machdep.apmhalt=1			  # 1=powerdown hack, try if halt -p doesn't work
#machdep.kbdreset=1			 # permit console CTRL-ALT-DEL to do a nice halt
#machdep.userldt=1			  # allow userland programs to play with ldt,
							# required by some ports
#kern.emul.aout=1			   # enable running dynamic OpenBSD a.out bins
#kern.emul.bsdos=1			  # enable running BSD/OS binaries
#kern.emul.freebsd=1			# enable running FreeBSD binaries
#kern.emul.ibcs2=1			  # enable running iBCS2 binaries
#kern.emul.linux=1			  # enable running Linux binaries
#kern.emul.svr4=1			   # enable running SVR4 binaries
#

Mais par contre, je ne sais pas ce que je dois activer. (EDIT: j'ai rajouté un commentairedans le code)

Lien vers le commentaire
Partager sur d’autres sites

Heu...

# cat /etc/pf.conf

# $OpenBSD: pf.conf,v 1.31 2006/01/30 12:20:31 camield Exp $

#

# See pf.conf(5) and /usr/share/pf for syntax and examples.

# Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1

# in /etc/sysctl.conf if packets are to be forwarded between interfaces.

:mad2: ... ton laptop et ton serveur VPN sont dans le VPN 10.8.0.0(/32?)... mais ton réseau local est dans le sous-réseau 192.168.10.0(/32?)... pour qu'ils puissent dialoguer, il faut router le traffic entre les deux... donc, activer le routage sur le serveur OpenVPN

... il faudrait alors également rajouter un truc du genre :

push "route 192.168.10.0 255.255.255.0"
sur ton serveur openvpn (apparemment, tu l'as déjà fait)... et ça devrait passer (ça fait longtemps que j'ai fait de l'OpenVPN, ceci dit)...

Par contre, le NAT, ça devrait aller... si la connection s'établit (d'après ce que dit tyrann27), c'est soit qu'il n'est pas gêné par un NAT sur son client, soit que le NAT-transversal fonctionne correctement sur ce dernier... et que le serveur OpenVPN est probablement correctement NATé... le problème a juste l'air d'être qu'en l'absence de routage, le client VPN reste coincé dans l'interface virtuelle du serveur...

Lien vers le commentaire
Partager sur d’autres sites

Oui oui mais hier j'ai eu bcp de taf et j'ai pas eu le temps...

Donc voilà le résultat :

Marche pas :humour:

Et toujours les memes cas...

Mais j'ai lu dans la doc qu'il fallait que je donne aux pcs de mon réseau le GW pour passer sur le vpn sinon ils savent pas répondre...

Donc si mon boss arrete de venir dans mon dos sans arret, je devrais pouvoir trouver le temps de me connecter en ssh sur mon pc pour ajouter une route vers 10.8.0.0 :roll:

EDIT: marche toujours pas...

Voici mes routes :

laptop distant

Table de routage IP du noyau
Destination	 Passerelle	  Genmask		 Indic Metric Ref	Use Iface
10.8.0.5		*			   255.255.255.255 UH	0	  0		0 tun0
10.8.0.1		10.8.0.5		255.255.255.255 UGH   0	  0		0 tun0
172.16.33.0	 *			   255.255.255.0   U	 0	  0		0 eth0
192.168.10.0	10.8.0.5		255.255.255.0   UG	0	  0		0 tun0
link-local	  *			   255.255.0.0	 U	 1000   0		0 eth0
default		 172.16.33.2	 0.0.0.0		 UG	100	0		0 eth0

pc maison

Table de routage IP du noyau
Destination	 Passerelle	  Genmask		 Indic Metric Ref	Use Iface
10.8.0.0		192.168.10.100  255.255.255.0   UG	0	  0		0 eth0
192.168.10.0	*			   255.255.255.0   U	 0	  0		0 eth0
link-local	  *			   255.255.0.0	 U	 1000   0		0 eth0
default		 192.168.10.1	0.0.0.0		 UG	100	0		0 eth0

Lien vers le commentaire
Partager sur d’autres sites

Je pense que tu devrais natter le sous-réseau de ton VPN. Le pépin, c'est que ton bsd route, mais pas le routeur qui donne accès à Internet. Du coup, lorsqu'un paquet part du VPN, il arrive sur le routeur avec l'adresse IP vpn et non l'adresse du BSD. Mais le routeur lui ne sait pas comment joindre cette adresse, il ne l'a pas dans sa table de routage. Du coup les paquets qui reviennent finissent dans le vide intersidéral :chinois:

Natte partout, ça ira mieux. Monter un VPN sur un BSD, c'est 50% d'openvpn.conf (enfin, tout dépend du nom du fichier de configuration du VPN), et 50% de pf.conf

Lien vers le commentaire
Partager sur d’autres sites

Hum je me suis mal exprimé mais c'est exactement ce que je voulais dire :ouioui:

J'avais bien compris que c'était en arrivant sur le routeur que ça foirait...

Bon j'ai ajouté la route suivante sur mon routeur :

network address : 10.8.0.0
netmask : 255.255.255.0
gateway : 192.168.10.100

Ce qui m'intrigue c'est que mon parrain me dit que quand il fait un ipconfig (il est sous windows) il voit que le netmask est à 255.255.255.252

Je trouve ça plutot bizarre... Ai-je tort ?

Lien vers le commentaire
Partager sur d’autres sites

C'est normal : OpenVPN crée un tunnel entre 2 machines, donc pas besoin de faire un réseau de plus de 2 machines. Cependant, si tu souhaites avoir plus d'1 client VPN, ce n'est pas problématique, OpenVPN se récupèrera 1 adresse IP à chaque fois, et tu peux faire communiquer les clients entre eux avec la directive "client-to-client".

C'est un peu mieux expliqué ici, en fin de section 10.

Lien vers le commentaire
Partager sur d’autres sites

Wep ça j'avais déjà regardé, merci pour le lien car c'est plus complet et mieux expliqué :p

Bon revenons sur mon problème...

J'ai refait des tests et ça ne fonctionne toujours pas :francais:

Cette fois-ci c'est bizarre parce que j'ai carrément mis la route vers le réseau VPN en dur sur mon pc et ça ne passe pas...

Je n'ai meme pas encore configuré iptable donc ce n'est surement pas un problème de firewall... (Enfin je pense...)

On dirait vraiment que c'est mon BSD qui ne route pas les paquets!

pfffff :p

Lien vers le commentaire
Partager sur d’autres sites

On dirait vraiment que c'est mon BSD qui ne route pas les paquets!

Tu le fais exprès?

# Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1

C'est écrit dans le fichier /etc/pf.conf, il faut que tu actives l'ip forward !

C'est pour ça que je t'ai demandé de me montrer /etc/sysctl.conf :google2:

Faut penser à rebooter une fois la modif faite ^^

Lien vers le commentaire
Partager sur d’autres sites

Bah, c'est un paramètre du kernel, quand même... ça ne se prend pas à la légère :keskidit:

Le sysctl.conf, c'est pour rendre permanents certains réglages qui seront passés au kernel lors des boots...

Pour modifier à la volée, sous linux, tu aurais pu aller écrire dans un des fichiers de /proc pour que ça fonctionne tout de suite...

Sous OpenBSD, tu n'as a priori pas de /proc... mais comme sous linux, tu as "sysctl"... et en faisant :

sysctl net.inet.ip.forwarding=1

le forwarding sera appliqué dans le noyau sans rebooter :D

Lien vers le commentaire
Partager sur d’autres sites

Okay merci de la précision !

Ben trop tard, j'ai niqué mon uptime :D

Tant pis :keskidit:

J'avais remarqué qu'il manquait le /proc et j'ai bien du chercher avant de trouver les équivalents de ce que je cherchais !

Je vais p'tet pouvoir tester ce matin si mon parrain ne fait pas la paillasse dans son lit ^^

Lien vers le commentaire
Partager sur d’autres sites

Maintenant ya plus qu'à apprendre iptable

NAN !

hum, sous OpenBSD ce n'est pas iptables mais pf. Et c'est 'achement plus facile à utiliser, du moins je trouve. Si jamais t'as quelques euros à perdre en documentation sur les BSD, il y a 2 hors-série de Linux Mag qui sont sortis sur les BSD. Le premier contient un article complet sur pf, le deuxième contient une organisation de réseau avec passerelle/routeur/firewall sous NetBSD (qui utilise aussi pf, donc c'est réutilisable).

Lien vers le commentaire
Partager sur d’autres sites

Autant je suis (et ne vois pas comment on ne peut pas l'être) d'accord quand au fait que pf est très élégant (pas qu'iptables soit mauvais, mais qu'est-ce que la syntaxe est lourde :non: )...

... autant si le serveur VPN est NATé par une passerelle linux, c'est la passerelle linux qui est en frontal... et là, faut quand même tâter du iptables...

Bon, après, la question serait de savoir pourquoi ne pas mettre une OpenBSD en frontal avec le VPN dessus (je pense notamment au besoin d'avoir du point d'accès wifi pour les périphs qui n'ont pas d'autre manière de se protéger que d'embarquer des trucs comme WPA et cie... qui n'étaient pas gérés la dernière fois que j'ai essayé OpenBSD, ce qui ne laissait comme possibilité que du VPN, bien mieux, mais pas géré par tout... ou juste vouloir jeter un coup d'oeil à OpenBSD sans encore vouloir le mettre à une place aussi critique qu'un routeur de tête)...

Lien vers le commentaire
Partager sur d’autres sites

Attention qu'ici c'est quand meme de l'usage privé, donc c'est pour mon apprentissage et mon utilisation personnelle !

Faudrait vraiment que j'ai quelque chose de précieux chez moi pour que quelqu'un suffisamment calé veuille s'introduire sur mon système...

Bref je jouerai avec pf alors :transpi:

Je vaisme renseigner sur les hors séries dont tu parles, merci :transpi:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...