Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/11/2020, à 12:44

louarn

Openvpn et mysql

Bonjour à tous,

Je me connecte à un serveur fw/openvpn via internet et j'obtiens mon ip en 10.8.10.10, jusque là aucun souci. J'ai monté un serveur mysql et installé aussi un openvpn.

Mon firewall est donc un serveur pour moi et un client pour le mysql. Les deux se voient sans aucun problème, (le fw peut se connecter sur le mysql) mais de mon côté je ne peux pas joindre le mysql via le vpn.

les pattes du fw :

4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none
    inet 10.8.0.1/16 brd 10.8.255.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::bb44:6de1:5b55:ef1/64 scope link stable-privacy
       valid_lft forever preferred_lft forever
5: tun1: 10.6.0.6 peer 10.6.0.5/32 
6: tun2: 10.13.0.6 peer 10.13.0.5/32 
7: tun3: 10.11.0.6 peer 10.11.0.5/32 

le fw me pousse les routes suivantes :

server 10.8.0.0 255.255.0.0
### DNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 208.67.222.22"
push "dhcp-option DNS 208.67.220.220"

### Test server route
push "route 10.9.0.1 255.255.255.255"
### Jenkins server route
push "route 10.7.0.1 255.255.255.255"
### dev server route
push "route 10.6.0.1 255.255.255.255"
### Mysql
push "route 10.11.0.1 255.255.255.255"
### Apache
push "route 10.13.0.1 255.255.255.255"
### Private network
#push "route 192.168.0.1 255.255.255.255"

###########

routes que je retrouve bien sur mon poste. Le fw a les règles suivantes pour le vpn

#openVpn
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.6.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.11.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.13.0.0/24 -o eth0 -j MASQUERADE
iptables -t filter -A OUTPUT -p udp --dport 1197 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 1198 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 1199 -j ACCEPT
iptables -A OUTPUT -o tun+ -j ACCEPT
echo "OpenVpn ok"

Ce qui me surprend c'est que je peux joindre un autre serveur apache (le fw en est aussi le client), celui en 10.6.0.1 mais pas le mysql en 10.11.0.1, ni un autre apache en 10.13.
Coté serveur, les ports sont bien ouverts pour la base et pour l'apache

La conf vpn du mysql:

#local IPPUBLIQUE
local 192.168.0.100  => un test mais pas certain que ce soit vraiment fonctionnel ..
#topology subnet
server 10.11.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/ccd
route 10.11.0.0 255.255.0.0
push "route 10.8.0.0 255.255.0.0"
push "route 10.11.0.0 255.255.0.0"

J'aurais aussi aimé depuis le fw passer directement via le réseau privé, mais je me suis emmêlé dans les routes et tout bloqué ... Je pense que cela aurait été le plus simple. pc>FW IP PUBLIQUE / FW IP PRIVEE >serveurs IP PRIVEE et surtout un iptables aurait filtré plus facilement les IPs publiques (je suis chez OVH)

Quelqu'un aurait une petite idée dans mon fouillis ?

Merci

Hors ligne

#2 Le 20/11/2020, à 00:04

jepassaitparla

Re : Openvpn et mysql

salut,

déjà est-ce que ton serveur mysql écoute bien sur l'ip du vpn ? (la valeur bind-adress dans /etc/mysql/my.cnf)
à vérifier avec (en root)

netstat -taupne

 


ensuite, de ce que je comprends tu a 4 réseau vpn (quatre cartes virtuelles sur ton serveur openvpn):
10.8.0.0
10.6.0.0
10.13.0.0
10.11.0.0
donc, à priori,  ta route vers jenkins ne sert à rien, elle concerne le réseau 10.7.0.0
### Jenkins server route
push "route 10.7.0.1 255.255.255.255"

si tu as quatre réseau et que d'un poste tu veux joindre 4 machines, chacune sur un vpn différent, il te faut 4 conf vpn (une pour chaque réseau) sur ce poste.
par défaut ces réseaux sont étanches et ne communiqueront pas entre eux, tu as besoin d'isoler à ce point ?
4 vpn avec chacun trois machines (le serveur vpn, le serveur applicatif et le client) ça me parait "démesuré"


sinon (si j'ai bien compris ton besoin) pour une conf openvpn pas trop galère à mettre en place ET si tu veux autoriser tous tes clients vpn à communiquer entre eux tu peux utiliser l'option 'client-to-client'.
l'avantage: le routage entre les client est géré par la carte virtuelle (ton réseau vpn est un réseau local sans restrictions particulières)
l'inconvénient: le routage entre les client est géré par la carte virtuelle (sur le serveur vpn: les règles iptables concernant le réseau vpn seront sans effet)
voir https://serverfault.com/questions/73627 … -to-client

bon courage wink

Hors ligne