J'ai un serveur apache qui fonctionne parfaitement jusqu'à ce que je me connecte au VPN et que toutes les connexions au serveur soient interrompues.
Si je comprends bien, le problème est le suivant tun0
devient l'interface de sortie par défaut, donc apache ne sait plus comment envoyer les paquets, j'ai donc essayé de résoudre ce problème en utilisant les groupes de contrôle en marquant les paquets sortant d'apache et en les redirigeant vers eth0
comme décrit dans ce Réponse de SU mais il ne fonctionne plus depuis que j'ai mis à jour mon système d'exploitation Ubuntu à la version 16.04. Voici le schéma de mon réseau :
Et voici les détails de mon réseau :
me@mypc:~$ ip route list
0.0.0.0/1 via 10.132.1.5 dev tun0
default via 192.168.0.1 dev eth0 proto static metric 100
10.132.1.1 via 10.132.1.5 dev tun0
10.132.1.5 dev tun0 proto kernel scope link src 10.132.1.6
123.4.5.6 via 192.168.0.1 dev eth0
234.5.6.7 via 192.168.0.1 dev eth0
128.0.0.0/1 via 10.132.1.5 dev tun0
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.6 metric 100
me@mypc:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:cc:a9:b3:c9:41
inet addr:192.168.0.6 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:864897 errors:0 dropped:0 overruns:0 frame:0
TX packets:467142 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1088053099 (1.0 GB) TX bytes:220201868 (220.2 MB)
Interrupt:17
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
...
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.132.1.6 P-t-P:10.132.1.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:46622 errors:0 dropped:0 overruns:0 frame:0
TX packets:14950 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:60587170 (60.5 MB) TX bytes:1396546 (1.3 MB)
J'ai fait d'autres tests et j'ai découvert que si j'ajoute cette règle de routage :
sudo route add -host 123.4.5.6 gw 192.168.0.1
Je peux désormais me connecter au serveur à partir de périphériques connectés à mon routeur en utilisant l'adresse IP du routeur. 123.4.5.6
mais pas depuis une autre adresse IP.
Et après avoir configuré les groupes de contrôle sur apache et essayé la commande suivante :
sudo cgexec -g net_cls:novpn wget http://www.whatsmyip.org/
et en vérifiant l'adresse IP dans la page web téléchargée, il s'agirait de l'adresse IP de mon routeur. 123.4.5.6
et pas mon ip vpn 10.132.1.6
.
Je suppose donc que la solution des groupes de contrôle fonctionne d'une manière ou d'une autre mais pas avec apache et les paquets entrants sont reçus avec succès par apache mais rien ne sort.
Comment puis-je configurer apache pour utiliser eth0
pour sortir des paquets au lieu de tun0
?