Oplossingen voor verbindingsproblemen van Windows 10 clients met een linux samba fileserver


Een tijd geleden schreef ik een stukje over de verbindingsproblemen die ervaren kunnen worden wanneer een windows 10 cliënt PC probeert een koppeling te maken met een gedeelde map op een linux samba server. Aangezien ik in de linux forums en community websites over talloze van zulke gevallen heb gelezen waar men veelal niet uit komt en recentelijk mezelf hier nog meer in had verdiept vond ik het tijd om mijn bevindingen samen te vatten in dit artikel. Hopelijk kan deze belangrijke informatie uit mijn research en eigen bevindingen anderen op de juiste weg helpen die nog te maken hebben met dergelijke lastige problemen.

Wat is er aan de hand?

Er worden vooral na de laatste volledige updates van Windows 10 (zoals de Fall Creators Update Versie 1709, Spring Creators Update versie 1803) problemen ervaren bij het mounten van een samba share in windows 10.

Wat er gebeurt is dat Windows 10 met een generieke foutmelding komt zoals in de screenshot hierboven. De foutcode is 0x80070035 en windows meldt slechts “kan het netwerkpad niet vinden” of “netwerkpad niet gevonden” of iets van die strekking. Een melding waar je helaas geen enkele conclusies uit kunt herleiden over wat er aan de hand is of in welke richting je het moet zoeken.

#Oude workaround

De oudere “workaround” voor deze problemen heb ik eerder in een artikel uitgelegd en omvat het terugvallen op het SMB1 niveau van het windows samba client protocol. Op zich lost dit het probleem van samba toegang op, echter dan wel met enkele kanttekeningen:

  • de SMB1 variant van het samba protocol is ouder, bevat beperkingen en mist bepaalde verbeteringen
  • bepaalde Windows 10 beveiligingsupdates blijken zonder de gebruiker te vragen of te informeren de samba 1 ondersteuning uit te schakelen waardoor het steeds weer nodig is geweest om dit ongedaan te maken. Het veroorzaakt enige hinder in het gebruik.

De juiste oplossing

Gelukkig is er nu een oplossing voor bovenstaand probleem. Er zijn een aantal zaken waar op gelet moet worden bij het verbinden van een Windows 10 client PC met een linux samba server, zoals bijvoorbeeld de CentOS 7 server in mijn testomgeving. Leest u mijn informatie zorgvuldig door om geen van de belangrijke en meestal onmisbare punten te missen. (!)

Aan de Windows zijde kunnen de volgende zaken mogelijk een oplossing of verbetering bieden bij het samba toegangsprobleem:

  • omschakelen naar het privé profiel van de windows firewall. Dit kan aangepast worden door op het netwerkicoon bij de klok in de taakbalk te klikken. Vervolgens kiest u “Netwerk- en internetinstellingen”.

    Klikt u aan de linkerzijde op “Ethernet”, klikt u vervolgens aan de rechterzijde op netwerk.

    Op de volgende pagina kunt u het privé profiel van de windows firewall selecteren.

    Doet u dit uiteraard uitsluitend indien u zich ook daadwerkelijk op een privé netwerk bevindt waarvan u zeker weet dat het er ook passend veilig is om een dergelijk profiel te kiezen.

  • geavanceerde instellingen voor delen:
    In configuratiescherm -> netwerkcentrum vindt u deze optie aan de linkerzijde:

    In dit scherm kunt u vinkjes zetten bij “Netwerkdetectie inschakelen”, “Schakel het automatisch instellen in van apparaten…”:

    Onder “Verbindingen met een thuisgroep” (indien aanwezig) kunt u beide keuzes proberen, afhankelijk of de windows gebruikersnaam en wachtwoord ook door linux/samba gebruikt worden. Zo ja, kiest u dan de aanbevolen optie “Verbindingen met de thuisgroep door Windows laten beheren (aanbevolen)” Zo nee, kiest u dan de andere optie.

  • In configuratiescherm -> “Programma’s en onderdelen” kunt u diverse windows onderdelen in of uitschakelen. Het kan mogelijk helpen om de windows software optie “SNMP” te installeren. Verwijdert u de minder veilige SMB1 software indien deze geïnstalleerd staat in het overzicht:

  • In configuratiescherm -> netwerkcentrum kunt u de “Adapterinstellingen wijzigen”:

    Klikt u in het overzicht met rechts op de betreffende adapter waarmee u verbindt met de samba server en kiest u “eigenschappen”.

    Vervolgens kiest u in het overzicht “toevoegen” van een protocol. Doorloopt u de stappen om het “Reliable Multicast” protocol toe te voegen aan de adapter.

  • zorgt u ervoor dat de workgroup naam van uw Windows 10 PC(s) overeenkomt met de samba workgroup naam.

Aan de linux (samba server) zijde zijn de volgende zaken zeer belangrijk bij de toegang middels een windows 10 client PC:

  • zorgt u ervoor dat uw linux server volledig geupdate is en regelmatig bijgewerkt wordt, inclusief de laatste updates van samba server, controleert u deze laatste met yum info samba. De versie ten tijde van dit artikel is: 4.7.1
  • controleert u of de nmb service geïnstalleerd, enabled en gestart is op uw linux server. systemctl status nmb moet resulteren in status “active(running)” (groene kleur).
  • uw linux server hostname moet forward en reverse correct resolven naar het formaat servernaam.domeinnaam.local zoals in uw samba configuratie staat en verwijzen naar het juiste IP adres van uw linux server waarop samba draait.
  • controleert u de workgroup naam of deze juist overeenkomt met de workgroup van uw windows 10 client PCs
  • het is belangrijk dat u de samba server zodanig configureert dat deze niet probeert via TCP/IP poort 139 (NetBIOS over TCP/IP) de samba diensten te laten verlopen maar (ook) via poort 445(rechtstreekse SMB communicatie via TCP/IP).
  • zorgt u ervoor dat de samba server de “master browser” is van uw netwerk
  • het SMB protocolniveau moet hoog genoeg kunnen zijn tijdens de onderhandeling tussen de windows 10 client en uw samba server. Op deze manier kan Windows op een hoger SMB niveau toegang verkrijgen tot de samba server en heeft u minder problemen na belangrijke beveiligingsupdates van windows.

Enkele van bovenstaande samba server punten vallen samen te vatten in configuratie regels in /etc/samba/smb.conf. De relevante regels zijn als volgt en dienen in het [global] gedeelte te worden opgenomen. Maakt u wel eerst een backup van uw smb.conf bestand voor het geval u tegen problemen aanloopt.

[global]
workgroup = uwworkgroupnaam
netbios name = uwservernaam.uwdomein.local
server string = uwservernaam
local master = yes
preferred master = yes
os level = 66
server max protocol = SMB3
client max protocol = SMB3
# smb ports = 139
security = user
encrypt passwords = yes

NB.: Let u op dat de optie smb ports = 139 met het hekje ervoor uit gecomment is zoals hierboven in het voorbeeld,(!) of verwijdert u deze regel geheel uit uw smb.conf bestand.

U kunt de beveiliging van samba verder aanscherpen (aanbevolen!) door in het [global] gedeelte van uw smb.conf in te stellen dat het SMB niveau minimaal 2 moet zijn:
server min protocol = SMB2_10
client min protocol = SMB2_10

Ik wil het nogmaals benadrukken, het is belangrijk en veiliger om hogere SMB niveau’s te vereisen van uw samba clients en zeer regelmatig uw samba versie te updaten wanneer er updates beschikbaar zijn.

In windows 10 kunt u als volgt het gebruikte SMB niveau opvragen nadat u de samba share gemount heeft:

  • opent u een administrator-elevated powershell venster
  • typt u het commandoGet-SmbConnection gevolgd door ENTER.
  • Onder kopje Dialect ziet u het SMB niveau. Als alles juist werkt is dit bijvoorbeeld 3.1.1.

Mocht het ondanks deze informatie niet lukken en heeft u hulp nodig bij samba toegangsproblemen van uw windows 10 client PCs kunt u altijd contact opnemen met Knaap IC. Stuurt u dan gerust een email, zie de contact pagina.


Referenties:
https://social.technet.microsoft.com/Forums/en-US/eba9a147-c1de-41b1-99aa-9c65efd45d8f/cant-access-smb- share-after-update-to-1709?forum=win10itpronetworking
https://www.tenforums.com/network-sharing/21700-cannot-connect-samba-shares-centos7.html
https://www.tenforums.com/network-sharing/31136-samba-shares-dont-show-up-windows-10-network.html
https://community.spiceworks.com/topic/1162811-windows-10-can-t-access-network-shares?page=2
NB.: Sommige referentie pagina’s bieden oplossingen middels smb1, dit is dus niet meer nodig!

De informatie zoals beschikbaar gesteld op deze website is puur informatief bedoeld en met de uiterste zorgvuldigheid samengesteld. Voordat u eventuele tips en advies op deze website uitvoert moet u zich wel bewust zijn dat dit ten alle tijde geheel voor uw eigen risico is, Knaap IC kan hiervoor geen aansprakelijkheid accepteren. Het is niet toegestaan zonder uitdrukkelijke toestemming van Knaap IC kopieën te maken en/of te publiceren van de tekst en informatie op deze website. Vindt u de informatie nuttig en wilt u deze onder de aandacht brengen bij bezoekers van uw eigen website of blog, verzorgt u dan uitsluitend een link naar de betreffende pagina.