Le partage de fichiers Samba et le port 445 sont la cible de scans automatiques depuis internet.
Si vous avez configuré Samba sur un serveur accessible par internet, il convient de sécuriser Samba.
Les instructions suivantes vous aideront à protéger votre serveur Samba contre les failles de sécurité si vous ne pouvez pas (ou jusqu’à ce que vous puissiez) effectuer une mise à niveau vers la version corrigée. Même si vous effectuez la mise à niveau, vous pouvez réfléchir aux suggestions suivantes afin de bénéficier de niveaux de protection supplémentaires.
Voici un guide complet pour sécuriser Samba pour protéger des attaques, piratages.
Comment sécuriser ses partages Samba
Configurer l’interface réseau d’écoute
Par défaut, Samba acceptera les connexions sur toute interface réseau qu’il trouvera sur votre système.
Ce qui signifie que si vous exécutez une version non sécurisée de Samba sur un hôte directement connecté à Internet, vous pouvez être particulièrement vulnérable.
Il convient de réduire les interfaces d’écoutes des services Samba.
Pour cela, utilisez les directives interfaces et bind interfaces dans la section [global] de smb.conf pour configurer les interfaces réseau sur lesquelles Samba soit écouter :
interfaces = eno* lo bind interfaces only = yes
Par exemple, ici, on autorisé à écouter sur toutes les interfaces en, soit eno1, eno2, etc et l’interface localhost.
L’option interfaces accepte aussi des adresses IP, classes d’IP ou nom d’hôte.
Plusieurs types d’écritures sont possibles
Par exemple, 192.168.10. équivaut à 192.168.10.* :
interfaces = 192.168.10. 152.12.12.12
Mais on peut spécifier le masque de sous réseau sous la forme /24 ou 255 :
interfaces = 192.168.10.0/24 152.12.12.12
interfaces = 192.168.10.0/255.255.0 152.12.12.12
Enfin redémarrez smbd avec systemctl :
systemctl restart fail2ban
Puis vérifiez les interfaces ou IP d’écoutes des services samba à l’aide de netstat :
netstat -lpn|egrep "smbd|nmbd"
ou avec la commande ss :
ss -l|egrep "microsoft|netbios"
hosts.allow et hosts.deny : Filtrer les IP et hôtes autorisés
Une autre configuration importante à effectuer pour sécuriser vos partages réseaux Samba et de filtrer les adresses IP et hôtes autoriser à se connecter.
Cette configuration peut se faire globalement dans la section [global] ou dans chaque partage réseau.
Grâce aux directives hosts.allow et hosts.deny, vous pouvez filtrer les appareils qui se connectent sur Samba ou sur chaque partage réseau.
hosts allow = 127.0.0.1 192.168.10.0/24 152.12.12.12
hosts deny = 0.0.0.0/0
Vous pouvez aussi configurer des exceptions avec except :
hosts allow = 10. except 10.0.0.12
Lorsqu’un hôte non autorisé tente de se connecter, cela est enregistré dans le journal /var/log/samba/log.smbd de la forme :
tail /var/log/samba/log.smbd
[2023/01/19 08:57:58.735217, 1] ../../source3/smbd/process.c:3880(smbd_add_connection)
Connection denied from ipv4:109.201.109.249:58467 to ipv4:XXX:445
[2023/01/19 08:57:58.783870, 0] ../../lib/util/access.c:369(allow_access)
Denied connection from 109.201.109.249 (109.201.109.249)
[2023/01/19 08:57:58.783923, 1] ../../source3/smbd/process.c:3880(smbd_add_connection)
Connection denied from ipv4:109.201.109.249:58472 to ipv4:XXX:445
[2023/01/19 08:58:01.890752, 0] ../../lib/util/access.c:369(allow_access)
Denied connection from 109.201.109.249 (109.201.109.249)
Utiliser un firewall (iptables, ufw) pour protéger Samba
Voici la partie la plus importante pour sécuriser Samba : Configurer votre pare-feu.
Si vous avez installé Samba sur un serveur accessible directement sur internet, c’est la partie la plus utile.
A titre d’exemple sur un de mes serveurs, plus de 10 000 IP différents ont tenté de se connecter au port 445 en une seule journée :
cat /var/log/messages.1|egrep "DPT=445"|egrep -Eo "SRC=([0-9]{1,3}.){3}[0-9]{1,3}"|sort -n|uniq|wc -l
10631
Aidez-vous des tutoriels du site pour mettre en place le filtrage du firewall et protéger Samba :
Pour aller plus loin, vous pouvez aussi bloquer certains pays en vous aidant de ce tutoriel :
Configurer Fail2ban pour protéger des BruteForce et attaques DoS
Pour protéger votre serveur Samba des attaques Bruteforce ou attaques DoS, vous pouvez utiliser Fail2ban.
Cela peut aller en complément des règles de pare-feu mise en place, dans le cas par exemple, où des machines de votre réseau sont compromises et sont utilisées pour des attaques.
Dans cette configuration, Fail2ban analyse les fichiers journaux suivants :
- /var/log/samba/log.smbd – pour détecter les IP non autorisées
- /var/log/samba/auth_audit.log – pour détecter les bruteforce d’authentification
Voici un exemple de mise en place :
- Tout d’abord, éditez /etc/samba/smb.conf et ajoutez dans la section [global], une directive log level pour journaliser l’authentification :
log level = 1 auth_json_audit:3@/var/log/samba/auth_audit.log
# RedHat / RHL / Fedora
yum install fail2ban
# Debian / Ubuntu / Mint
apt-get install fail2ban
- Ensuite créez le fichier de filtres /etc/fail2ban/filter.d/samba.conf :
[Definition] failregex = NT_STATUS_WRONG_PASSWORD.*remoteAddress": "ipv4:<HOST>: Connection denied from ipv4:<HOST>
- Puis le fichier de configuration de la prison /etc/fail2ban/jail.d/samba.conf – dans ignotreip, indiquez les hôtes à ignorer, par exemple, vos contrôleurs de domaine, serveurs WINS, DNS pour éviter tout problème
[samba-connexion] filter = samba enabled = true action = iptables-multiport[name=samba, port="22,88,135,139,389,445,464,636,3328,3329", protocol=tcp] logpath = /var/log/samba/log.smbd maxretry = 3 findtime = 600 ignoreip = 192.168.10.0/24 [samba-auth] filter = samba enabled = true action = iptables-multiport[name=samba, port="22,88,135,139,389,445,464,636,3328,3329", protocol=tcp] logpath = /var/log/samba/auth_audit.log maxretry = 5 findtime = 600 bantime = 600 ignoreip = 192.168.10.0/24
- Enfin redémarrez fail2ban :
systemctl restart fail2ban
Pour vérifier les détections et ban fail2ban :
tail -1200 /var/log/fail2ban.log
Configurer refus de partage IPC
Si les méthodes ci-dessus ne conviennent pas, vous pouvez également placer un refus plus spécifique sur le partage IPC$ qui est utilisé dans la faille de sécurité récemment découverte. Cela vous permet d’offrir l’accès à d’autres partages tout en refusant l’accès à IPC$ à partir d’hôtes potentiellement non fiables.
Pour ce faire, vous pouvez utiliser :
[ipc$]
hosts allow = 192.168.115.0/24 127.0.0.1
hosts deny = 0.0.0.0/0
Ceci indiquerait à Samba que les connexions IPC$ ne sont pas autorisées à partir d’autres endroits que ceux listés (localhost et un sous-réseau local). Les connexions à d’autres partages seraient toujours autorisées. Comme le partage IPC$ est le seul partage qui est toujours accessible anonymement, cela fournit un certain niveau de protection contre les attaquants qui ne connaissent pas le nom d’utilisateur/mot de passe de votre hôte.
Si vous utilisez cette méthode, les clients recevront une réponse “accès refusé” lorsqu’ils essaieront d’accéder au partage IPC$. Cela signifie que ces clients ne seront pas en mesure de parcourir les partages et qu’ils ne pourront peut-être pas accéder à d’autres ressources.
Je ne recommande pas cette méthode, sauf si vous ne pouvez pas utiliser l’une des autres méthodes énumérées ci-dessus pour une raison quelconque.
Récapitulatif des options de filtrage réseau de Samba
Ce tableau récapitule les différents options de filtrage réseau de Samba.
Options | Paramètre | Fonction | Par défaut | Portée |
---|---|---|---|---|
hosts allow (allow hosts) |
string (liste d’hôte) | Spécifie les machines qui peuvent se connecter à Samba | Aucun | Share |
hosts deny (deny hosts) |
string (liste d’hôte) | Spécifie les machines qui ne peuvent pas se connecter à Samba | Aucun | Share |
interfaces |
string (liste d’IP/netmask) | Définit les interfaces réseau auxquelles Samba répondra. Permet de corriger les valeurs par défaut | Dépend du système | Global |
bind interfaces only |
boolean | Si elle est définie sur yes, Samba se liera uniquement aux interfaces spécifiées par l’option interfaces | Aucun | Global |
socket address |
string (adresse IP) | Définit l’adresse IP sur laquelle écouter, pour une utilisation avec plusieurs interfaces virtuelles sur un serveur | Aucun | Global |
Liens
L’article Comment sécuriser Samba est apparu en premier sur malekal.com.
0 Commentaires