Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb Samba n'=c3=a9coute pas sur l'interface VPN

12 réponses
Avatar
Droopy191
Bonjour,

J'ai besoin de vos lumières sur un serveur samba hébergé sur une Debian
10. Le serveur a 2 interfaces :
inet 192.168.2.10/24 brd 192.168.2.255 scope global dynamic eth0
inet 192.168.15.2/24 brd 192.168.15.255 scope global wg0-vpn

une interface ethernet eth0
une interface wireguard wg0-vpn P2P qui pointe vers un serveur vpn ( et
qui route vers le lan derrière le serveur).


Le soucis est que le serveur samba n'écoute que sur l'interface eth0.
# netstat -tulpn | grep smbd
tcp 0 0 192.168.2.10:445 0.0.0.0:*
LISTEN 632/smbd
tcp 0 0 192.168.2.10:139 0.0.0.0:*
LISTEN 632/smbd


En principe, samba est sensé écouter sur les 2 interfaces:
partie de smb.conf qui me parait pertinente:

interfaces = 192.168.2.10 192.168.15.2
hosts allow = 127. 192.168.2. 192.168.10. 192.168.15.
hosts deny = 0.0.0.0/0 ::/0

iptables est desactivé.



merci pour votre aide

--
DR

10 réponses

1 2
Avatar
Pascal Hambourg
Le 12/07/2019 à 11:25, Droopy191 a écrit :
J'ai besoin de vos lumières sur un serveur samba hébergé sur une Debian
10. Le serveur a 2 interfaces :
    inet 192.168.2.10/24 brd 192.168.2.255 scope global dynamic eth0
    inet 192.168.15.2/24 brd 192.168.15.255 scope global wg0-vpn
une interface ethernet eth0
une interface wireguard wg0-vpn P2P qui pointe vers un serveur vpn ( et
qui route vers le lan derrière le serveur).
Le soucis est que le serveur samba n'écoute que sur l'interface eth0.
# netstat -tulpn | grep smbd
tcp        0      0 192.168.2.10:445        0.0.0.0:* LISTEN      632/smbd
tcp        0      0 192.168.2.10:139        0.0.0.0:* LISTEN      632/smbd
En principe, samba est sensé écouter sur les 2 interfaces:

Qu'est-ce qui te fait penser que ce n'est pas le cas ? Je ne connais pas
les spécificités de samba, mais par défaut une socket liée à une adresse
IP n'est pas limitée à l'interface sur laquelle cette interface est
configurée.
partie de smb.conf qui me parait pertinente:
interfaces = 192.168.2.10 192.168.15.2

Pourquoi ne pas dire à samba d'écouter sur n'importe quelle adresse ?
L'interface VPN est-elle présente et configurée lorsque samba démarre ?
Avatar
Droopy191
Le 13/07/2019 à 20:24, Pascal Hambourg a écrit :
Le 12/07/2019 à 11:25, Droopy191 a écrit :
J'ai besoin de vos lumières sur un serveur samba hébergé sur une
Debian 10. Le serveur a 2 interfaces :
     inet 192.168.2.10/24 brd 192.168.2.255 scope global dynamic eth0
     inet 192.168.15.2/24 brd 192.168.15.255 scope global wg0-vpn
une interface ethernet eth0
une interface wireguard wg0-vpn P2P qui pointe vers un serveur vpn (
et qui route vers le lan derrière le serveur).
Le soucis est que le serveur samba n'écoute que sur l'interface eth0.
# netstat -tulpn | grep smbd
tcp        0      0 192.168.2.10:445        0.0.0.0:* LISTEN
632/smbd
tcp        0      0 192.168.2.10:139        0.0.0.0:* LISTEN
632/smbd
En principe, samba est sensé écouter sur les 2 interfaces:

Qu'est-ce qui te fait penser que ce n'est pas le cas ?

Les tests que j'ai pu faire. Je peux me tromper dans l'analyse.
La config complète donne ceci:
LAN Serveur VPN 192.168.10.0/24 <-> VPN wireguard 192.168.15.0/24 <->
LAN client VPN samba 192.168.2.0/24
Je ne connais pas
les spécificités de samba, mais par défaut une socket liée à une adresse
IP n'est pas limitée à l'interface sur laquelle cette interface est
configurée.

Depuis une autre machine Debian du lan derrière le serveur VPN en
192.168.10.0/24
#telnet 192.168.15.2 139 ( ip du samba dans le vpn )
Trying 192.168.15.2...
telnet: Unable to connect to remote host: Connection refused
# telnet 192.168.2.10 139 ( ip du samba dans son lan )
Trying 192.168.2.10...
Connected to 192.168.2.10.
Depuis cette meme machine Debian, j'ai un accès ssh depuis les 2 cotés
du serveur samba. Je ping aussi les interfaces. Donc le coté réseau me
parait correcte.
Un windows sur ce meme réseau 192.168.10.0/24, peut se connecter au
serveur sur 192.168.2.10 ( ip coté lan du samba incriminé ), mais pas du
coté VPN 192.168.15.2.
partie de smb.conf qui me parait pertinente:
interfaces = 192.168.2.10 192.168.15.2

Pourquoi ne pas dire à samba d'écouter sur n'importe quelle adresse ?

La prudence, car je n'ai pas la main sur la passerelle du réseau coté samba.
Mais interfaces = all
ne résoud pas le pb
L'interface VPN est-elle présente et configurée lorsque samba démarre ?

Bonne question, je ne sais pas le vérifier. Configuré oui, le VPN client
démarre en auto via une unité systemd.
--
DR
Avatar
Pascal Hambourg
Le 14/07/2019 à 09:41, Droopy191 a écrit :
Le 13/07/2019 à 20:24, Pascal Hambourg a écrit :
Le 12/07/2019 à 11:25, Droopy191 a écrit :
J'ai besoin de vos lumières sur un serveur samba hébergé sur une
Debian 10. Le serveur a 2 interfaces :
     inet 192.168.2.10/24 brd 192.168.2.255 scope global dynamic eth0
     inet 192.168.15.2/24 brd 192.168.15.255 scope global wg0-vpn
une interface ethernet eth0
une interface wireguard wg0-vpn P2P qui pointe vers un serveur vpn (
et qui route vers le lan derrière le serveur).
Le soucis est que le serveur samba n'écoute que sur l'interface eth0.
# netstat -tulpn | grep smbd
tcp        0      0 192.168.2.10:445        0.0.0.0:* LISTEN 632/smbd
tcp        0      0 192.168.2.10:139        0.0.0.0:* LISTEN 632/smbd
En principe, samba est sensé écouter sur les 2 interfaces:

Qu'est-ce qui te fait penser que ce n'est pas le cas ?

Les tests que j'ai pu faire. Je peux me tromper dans l'analyse.

Quels tests, avec quels résultats ?
La sortie de netstat ci-dessous ne dit rien sur les interfaces, et les
résultats de telnet ci-dessous montrent bien que samba répond sur
l'interface VPN.
La config complète donne ceci:
LAN Serveur VPN 192.168.10.0/24 <-> VPN wireguard 192.168.15.0/24 <->
LAN client VPN samba 192.168.2.0/24

(...)
Depuis une autre machine Debian du lan derrière le serveur VPN en
192.168.10.0/24
#telnet 192.168.15.2 139 ( ip du samba dans le vpn )
Trying 192.168.15.2...
telnet: Unable to connect to remote host: Connection refused

Normal, netstat indique que samba écoute seulement sur 192.168.2.10.
# telnet 192.168.2.10 139 ( ip du samba dans son lan )
Trying 192.168.2.10...
Connected to 192.168.2.10.

Donc samba répond bien par l'interface VPN puisque la communication
passe forcément par l'interface VPN. Sinon la connexion échouerait. Ne
pas confondre l'interface et son adresse.
Depuis cette meme machine Debian, j'ai un accès ssh depuis les 2 cotés
du serveur samba. Je ping aussi les interfaces.

Non, tu ping les adresses des interfaces. Ne pas confondre l'interface
et son adresse. Du point de vue opérationnel, une adresse locale est
liée à l'hôte et non à l'interface particulière sur laquelle elle est
configurée (weak host model).
Un windows sur ce meme réseau 192.168.10.0/24, peut se connecter au
serveur sur 192.168.2.10 ( ip coté lan du samba incriminé ), mais pas du
coté VPN 192.168.15.2.

Cela ne fait que confirmer le résultat de telnet.
partie de smb.conf qui me parait pertinente:
interfaces = 192.168.2.10 192.168.15.2

Pourquoi ne pas dire à samba d'écouter sur n'importe quelle adresse ?

La prudence, car je n'ai pas la main sur la passerelle du réseau coté
samba.

Quel est le rapport avec la prudence et avec la passerelle du réseau
côté samba ? Quel risque crains-tu ?
Mais interfaces = all
ne résoud pas le pb
L'interface VPN est-elle présente et configurée lorsque samba démarre ?

Bonne question, je ne sais pas le vérifier. Configuré oui, le VPN client
démarre en auto via une unité systemd.

Il faut regarder dans les logs pour comparer les dates de fin de
démarrage du VPN et de début de démarrage de samba.
Tu peux aussi redémarrer samba manuellement quand le VPN est actif et
voir si ça change quelque chose.
Avatar
Droopy191
Le 14/07/2019 à 13:39, Pascal Hambourg a écrit :
Le 14/07/2019 à 09:41, Droopy191 a écrit :
Le 13/07/2019 à 20:24, Pascal Hambourg a écrit :
Le 12/07/2019 à 11:25, Droopy191 a écrit :
J'ai besoin de vos lumières sur un serveur samba hébergé sur une
Debian 10. Le serveur a 2 interfaces :
     inet 192.168.2.10/24 brd 192.168.2.255 scope global dynamic eth0
     inet 192.168.15.2/24 brd 192.168.15.255 scope global wg0-vpn
une interface ethernet eth0
une interface wireguard wg0-vpn P2P qui pointe vers un serveur vpn (
et qui route vers le lan derrière le serveur).
Le soucis est que le serveur samba n'écoute que sur l'interface eth0.
# netstat -tulpn | grep smbd
tcp        0      0 192.168.2.10:445        0.0.0.0:* LISTEN 632/smbd
tcp        0      0 192.168.2.10:139        0.0.0.0:* LISTEN 632/smbd
En principe, samba est sensé écouter sur les 2 interfaces:

Qu'est-ce qui te fait penser que ce n'est pas le cas ?

Les tests que j'ai pu faire. Je peux me tromper dans l'analyse.

Quels tests, avec quels résultats ?

les test suivants, qui ne sont pas forcement les plus adaptés
depuis une machine debian 192.168.10.0/24 ou le serveur VPN:
ping des 2 adresses du client VPN 192.168.15.2 192.168.2.10 OK
ssh sur ces 2 memes adresses OK
telnet port 139 sur ces 2 adresses 192.168.2.10 Ok 192.168.15.2 NOK
# telnet 192.168.2.10 139 ( ip du samba dans son lan )
Trying 192.168.2.10...
Connected to 192.168.2.10.

Donc samba répond bien par l'interface VPN puisque la communication
passe forcément par l'interface VPN. Sinon la connexion échouerait. Ne
pas confondre l'interface et son adresse.

Ok
partie de smb.conf qui me parait pertinente:
interfaces = 192.168.2.10 192.168.15.2

Pourquoi ne pas dire à samba d'écouter sur n'importe quelle adresse ?

La prudence, car je n'ai pas la main sur la passerelle du réseau coté
samba.

Quel est le rapport avec la prudence et avec la passerelle du réseau
côté samba ? Quel risque crains-tu ?

Le routeur/box FAI a tendance à passer en mode bridge ipv4
accidentellement et ne filtre pas ipv6.
Vous me direz, ce n'est peut etre pas la bonne approche, mais en
attendant d'avoir régler le firewall, je fais comme ca
Mais interfaces = all
ne résoud pas le pb
L'interface VPN est-elle présente et configurée lorsque samba démarre ?

Bonne question, je ne sais pas le vérifier. Configuré oui, le VPN
client démarre en auto via une unité systemd.

Il faut regarder dans les logs pour comparer les dates de fin de
démarrage du VPN et de début de démarrage de samba.

Si je lis les bonnes infos: réseau d'abord, samba ensuite:
# service networking status
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled;
vendor preset: enabled)
Active: active (exited) since Sun 2019-07-14 ***14:27:56*** CEST; 4h
52min ago
# service smbd status
● smbd.service - Samba SMB Daemon
Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor
preset: enabled)
Active: active (running) since Sun 2019-07-14 **14:28:14** CEST; 4h
57min ago
Tu peux aussi redémarrer samba manuellement quand le VPN est actif et
voir si ça change quelque chose.

non, idem après un
/etc/init.d/samba-ac-dc restart
--
DR
Avatar
Droopy191
Bon, solution trouvée.
C'est vicieux à mon gout, je croix que c'est ca:
smb.conf OK
interfaces = 127.0.0.1 192.168.2.10/24 192.168.15.2/24
smb.conf NOK
interfaces = 127.0.0.1 192.168.2.10 192.168.15.2
il faut le masque sur l'adresse !!
Désolé pour le dérangement.
@Pascal Hambourg
merci de votre aide
Cdlt
--
DR
Avatar
Pascal Hambourg
Le 14/07/2019 à 20:04, Droopy191 a écrit :
En principe, samba est sensé écouter sur les 2 interfaces:

Qu'est-ce qui te fait penser que ce n'est pas le cas ?

Les tests que j'ai pu faire. Je peux me tromper dans l'analyse.

Quels tests, avec quels résultats ?

les test suivants, qui ne sont pas forcement les plus adaptés
depuis une machine debian 192.168.10.0/24 ou le serveur VPN:
ping des 2 adresses du client VPN 192.168.15.2 192.168.2.10 OK
ssh sur ces 2 memes adresses OK
telnet port 139 sur ces 2 adresses  192.168.2.10 Ok 192.168.15.2 NOK

Comme je l'ai déjà écrit, ces tests prouvent au contraire que samba
écoute sur l'interface VPN, mais pas avec l'adresse de l'interface VPN
(ce qui est différent).
Pourquoi ne pas dire à samba d'écouter sur n'importe quelle adresse ?

La prudence, car je n'ai pas la main sur la passerelle du réseau coté
samba.

Quel est le rapport avec la prudence et avec la passerelle du réseau
côté samba ? Quel risque crains-tu ?

Le routeur/box FAI a tendance à passer en mode bridge ipv4
accidentellement et ne filtre pas ipv6.
Vous me direz, ce n'est peut etre pas la bonne approche

En effet si le but est de restreindre les accès alors ce n'est pas la
bonne approche. Tu utilises déjà les options hosts allow et host deny
pour cela.
L'interface VPN est-elle présente et configurée lorsque samba démarre ?

Bonne question, je ne sais pas le vérifier. Configuré oui, le VPN
client démarre en auto via une unité systemd.


Il faut regarder dans les logs pour comparer les dates de fin de
démarrage du VPN et de début de démarrage de samba.

Si je lis les bonnes infos: réseau d'abord, samba ensuite:
# service networking status
● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled;
vendor preset: enabled)
   Active: active (exited) since Sun 2019-07-14 ***14:27:56*** CEST; 4h
52min ago
# service smbd status
● smbd.service - Samba SMB Daemon
   Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor
preset: enabled)
   Active: active (running) since Sun 2019-07-14 **14:28:14** CEST; 4h
57min ago

L'unité systemd qui lance le VPN, c'est le service networking ?
Autrement dit, c'est configuré dans /etc/network/interfaces{,.d/*} ?
Note que si le lancement du VPN est asynchrone (processus démonisé),
alors le VPN peut n'être établi que bien après la terminaison du service
networking, comme c'est le cas pour une liaison PPP avec pppd.
Avatar
Pascal Hambourg
Le 14/07/2019 à 20:15, Droopy191 a écrit :
Bon, solution trouvée.
C'est vicieux à mon gout, je croix que c'est ca:
smb.conf OK
interfaces = 127.0.0.1 192.168.2.10/24 192.168.15.2/24
smb.conf NOK
interfaces = 127.0.0.1 192.168.2.10 192.168.15.2
il faut le masque sur l'adresse !!

Alors comment se fait-il que cela fonctionnait sans masque pour
192.168.2.10 ?
D'après la description de l'option interfaces dans la page de manuel de
smb.conf, on peut spécifier les interfaces sous différentes formes :
- nom d'interface (eth0 wg0-vpn)
- adresse IP ou nom d'hôte (le masque est déterminé via la liste des
interfaces du noyau)
- adresse IP/masque
- adresse de broadcast/masque
et par défaut samba utilise toutes les interfaces actives capables de
broadcast. La nécessité de spécifier le masque pourrait venir d'un
problème dans la détermination du masque ou la capacité de broadcast de
l'interface VPN (pourtant présents dans la sortie d'ip addr de ton
message initial) par samba.
Mais tu n'as pas répondu à ma question : pourquoi veux-tu absolument que
samba écoute sur 192.168.15.2 alors qu'il est parfaitement accessible
sur 192.168.2.10 via le VPN ?
Avatar
Droopy191
Le 14/07/2019 à 21:23, Pascal Hambourg a écrit :
Le 14/07/2019 à 20:15, Droopy191 a écrit :
Bon, solution trouvée.
C'est vicieux à mon gout, je croix que c'est ca:
smb.conf OK
interfaces = 127.0.0.1 192.168.2.10/24 192.168.15.2/24
smb.conf NOK
interfaces = 127.0.0.1 192.168.2.10 192.168.15.2
il faut le masque sur l'adresse !!

Alors comment se fait-il que cela fonctionnait sans masque pour
192.168.2.10 ?

je me pose la meme question
D'après la description de l'option interfaces dans la page de manuel de
smb.conf, on peut spécifier les interfaces sous différentes formes :
- nom d'interface (eth0 wg0-vpn)
- adresse IP ou nom d'hôte (le masque est déterminé via la liste des
interfaces du noyau)
- adresse IP/masque
- adresse de broadcast/masque
et par défaut samba utilise toutes les interfaces actives capables de
broadcast. La nécessité de spécifier le masque pourrait venir d'un
problème dans la détermination du masque ou la capacité de broadcast de
l'interface VPN (pourtant présents dans la sortie d'ip addr de ton
message initial) par samba.

Possible que ce soit cela. Je n'avais pas constaté le soucis avec
openvpn sur un setup equivalent.
Mais tu n'as pas répondu à ma question : pourquoi veux-tu absolument que
samba écoute sur 192.168.15.2 alors qu'il est parfaitement accessible
sur 192.168.2.10 via le VPN ?

En pratique, en effet, ca ne change rien. Disons que je n'aime pas - pas
comprendre.
--
DR
Avatar
Droopy191
Le 14/07/2019 à 21:14, Pascal Hambourg a écrit :
Le 14/07/2019 à 20:04, Droopy191 a écrit :
En principe, samba est sensé écouter sur les 2 interfaces:

Qu'est-ce qui te fait penser que ce n'est pas le cas ?

Les tests que j'ai pu faire. Je peux me tromper dans l'analyse.

Quels tests, avec quels résultats ?

les test suivants, qui ne sont pas forcement les plus adaptés
depuis une machine debian 192.168.10.0/24 ou le serveur VPN:
ping des 2 adresses du client VPN 192.168.15.2 192.168.2.10 OK
ssh sur ces 2 memes adresses OK
telnet port 139 sur ces 2 adresses  192.168.2.10 Ok 192.168.15.2 NOK

Comme je l'ai déjà écrit, ces tests prouvent au contraire que samba
écoute sur l'interface VPN, mais pas avec l'adresse de l'interface VPN
(ce qui est différent).

J'ai désormais compris la différence mais je ne sais comment
différencier d'un point de vue diagnostique.
Pourquoi ne pas dire à samba d'écouter sur n'importe quelle adresse ?

La prudence, car je n'ai pas la main sur la passerelle du réseau
coté samba.

Quel est le rapport avec la prudence et avec la passerelle du réseau
côté samba ? Quel risque crains-tu ?

Le routeur/box FAI a tendance à passer en mode bridge ipv4
accidentellement et ne filtre pas ipv6.
Vous me direz, ce n'est peut etre pas la bonne approche

En effet si le but est de restreindre les accès alors ce n'est pas la
bonne approche. Tu utilises déjà les options hosts allow et host deny
pour cela.
L'interface VPN est-elle présente et configurée lorsque samba
démarre ?

Bonne question, je ne sais pas le vérifier. Configuré oui, le VPN
client démarre en auto via une unité systemd.


 > Il faut regarder dans les logs pour comparer les dates de fin de
 > démarrage du VPN et de début de démarrage de samba.
Si je lis les bonnes infos: réseau d'abord, samba ensuite:
# service networking status
● networking.service - Raise network interfaces
    Loaded: loaded (/lib/systemd/system/networking.service; enabled;
vendor preset: enabled)
    Active: active (exited) since Sun 2019-07-14 ***14:27:56*** CEST;
4h 52min ago
# service smbd status
● smbd.service - Samba SMB Daemon
    Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor
preset: enabled)
    Active: active (running) since Sun 2019-07-14 **14:28:14** CEST;
4h 57min ago

L'unité systemd qui lance le VPN, c'est le service networking ?

J'ai une unité pour le VPN dans
/etc/systemd/network/
Autrement dit, c'est configuré dans /etc/network/interfaces{,.d/*} ?

le réseau pour eth0 est configuré ici, mais pas le vpn
Note que si le lancement du VPN est asynchrone (processus démonisé),
alors le VPN peut n'être établi que bien après la terminaison du service
networking, comme c'est le cas pour une liaison PPP avec pppd.

Merci en tout cas pour vos explications.
Cette machine qui vient de migrer de Debian 9 vers 10 + bascule vers
systemd et passage de openvpn vers wireguard, ne devrait pas bouger en
dehors des majs avant Debian 11.
--
DR
Avatar
Pascal Hambourg
Le 14/07/2019 à 22:54, Droopy191 a écrit :
Le 14/07/2019 à 21:14, Pascal Hambourg a écrit :
Comme je l'ai déjà écrit, ces tests prouvent au contraire que samba
écoute sur l'interface VPN, mais pas avec l'adresse de l'interface VPN
(ce qui est différent).

J'ai désormais compris la différence mais je ne sais comment
différencier d'un point de vue diagnostique.

Si le service n'écoutait pas sur l'interface VPN, tu recevrais un
"connection refused" aussi avec l'adresse 192.168.2.10.
L'unité systemd qui lance le VPN, c'est le service networking ?

J'ai une unité pour le VPN dans
/etc/systemd/network/
Autrement dit, c'est configuré dans /etc/network/interfaces{,.d/*} ?

le réseau pour eth0 est configuré ici, mais pas le vpn

Alors ce n'est pas le service networking. Ne pas confondre le service
"networking" de Debian (qui existait déjà avant systemd) avec les
machins "network" de systemd.
1 2