Maison >Opération et maintenance >exploitation et maintenance Linux >Partage d'exemples de renforcement de la sécurité du service Linux NFS
NFS (Network File System) est un système de fichiers pris en charge par FreeBSD, qui permet aux ordinateurs du réseau de partager des ressources via le réseau TCP/IP. Une configuration et une utilisation incorrectes de NFS peuvent entraîner des problèmes de sécurité.
L'insécurité de NFS se reflète principalement dans les quatre aspects suivants :
Absence de mécanisme de contrôle d'accès
Aucun véritable mécanisme d'authentification des utilisateurs, traite uniquement l'authentification pour les requêtes RPC/Mount
Les anciennes versions de NFS peuvent permettre aux utilisateurs non autorisés d'obtenir des descripteurs de fichiers valides
Dans les appels à distance RPC, le programme SUID dispose de privilèges de super utilisateur
Afin de faire face efficacement aux risques de sécurité ci-dessus, il est recommandé Vous utilisez le schéma de durcissement suivant.
Utilisez anonuid, anongid pour configurer le répertoire partagé, afin que le client monté sur le serveur NFS ne dispose que d'autorisations minimales. N'utilisez pas no_root_squash.
Utilisez la stratégie de groupe de sécurité ou le pare-feu iptable pour limiter la gamme de machines pouvant se connecter au serveur NFS.
iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
Vérification du compte
Utilisez Kerberos V5 comme système de vérification de connexion, exigeant que tous les visiteurs se connectent avec un compte pour améliorer la sécurité .
Définir le nombre de COPIES pour NFSD
Sous Linux, le nombre de COPIES pour NFSD est défini dans le fichier de démarrage /etc/rc.d/init.d/nfs
, et la valeur par défaut est 8 .
Le nombre optimal de COPIES dépend généralement du nombre de clients possibles. Vous pouvez trouver une valeur optimale approximative pour le nombre de COPIES en testant et en définissant ce paramètre manuellement.
Choisissez le protocole de transmission
Pour différentes situations de réseau, sélectionnez le protocole de transmission UDP ou TCP de manière ciblée. Le protocole de transport peut être sélectionné automatiquement ou défini manuellement.
mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
La vitesse de transmission du protocole UDP est rapide, La non-connexion et la transmission sont pratiques, mais sa stabilité de transmission n'est pas aussi bonne que celle de TCP. Lorsque le réseau est instable ou que des pirates informatiques envahissent, il est facile de réduire considérablement les performances de NFS et même de provoquer une paralysie du réseau. En général, NFS utilisant TCP est plus stable et NFS utilisant UDP est plus rapide.
Lorsqu'il y a moins de machines et de bonnes conditions de réseau, l'utilisation du protocole UDP peut apporter de meilleures performances.
Lorsqu'il y a de nombreuses machines et que la situation du réseau est complexe, il est recommandé d'utiliser le protocole TCP (la V2 ne prend en charge que le protocole UDP).
Il est préférable d'utiliser le protocole UDP dans le LAN, car le LAN a une garantie de réseau relativement stable et l'utilisation d'UDP peut apporter de meilleures performances.
Il est recommandé d'utiliser le protocole TCP dans le WAN. Le protocole TCP permet à NFS de maintenir la meilleure stabilité de transmission dans des environnements réseau complexes.
Limiter le nombre de clients
Modifier /etc/hosts.allow
et /etc /hosts.deny
pour limiter le nombre de clients.
/etc/hosts.allow
portmap : 192.168.0.0/255.255.255.0 : autoriser
portmap : 140.116.44.125 : autoriser
/etc/hosts.deny
portmap : ALL : deny
Modifier le port NFS par défaut
NFS utilise le port 111 par défaut. Utilisez le paramètre port pour modifier cette valeur de port. La modification de la valeur du port par défaut peut améliorer la sécurité dans une certaine mesure.
La configuration des programmes nosuid et noexec
SUID (Set User ID) ou SGID (Set Group ID) peut permettre aux utilisateurs ordinaires de s'exécuter avec des autorisations dépassant les leurs. De nombreux programmes exécutables SUID/SGID sont nécessaires, mais ils peuvent également être exploités par certains utilisateurs locaux malveillants pour obtenir des autorisations qu'ils ne devraient pas avoir.
Réduisez le nombre de fichiers dont le propriétaire est root ou de fichiers avec des attributs SUID/SGID dans le groupe racine. Vous pouvez supprimer un tel fichier ou modifier ses attributs, tels que :
Utilisez l'option nosuid pour désactiver l'exécution du programme set-UID sur le serveur NFS. Vous pouvez ajouter une ligne à /etc/exports
:
/www www.abc.com(rw, root_squash, nosuid)Utilisez noexec pour interdire l'exécution directe des fichiers binaires qu'il contient. Recommandations associées :
Qu'est-ce que NFS ? Partagez comment implémenter le partage NFS sur CentOS7
Création de serveurs ftp, nfs et ssh sous Linux
Introduction et utilisation du service NFS
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!