7 votes

Restreindre l'accès ssh à l'IP sélectionnée sur MacOS

Je souhaite restreindre l'accès à ssh sur MacOS 10.12 à des IP sélectionnées sur mon réseau local. J'ai essayé d'écrire les fichiers suivants :

# /etc/hosts.allow
sshd: 192.168.1.32
sshd: 192.168.1.33

# /etc/hosts.deny
sshd: ALL

Ensuite, il faut recommencer avec :

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /System/Library/LaunchDaemons/ssh.plist

Déchargement ssh.plist J'ai réussi à désactiver ssh, mais après avoir rechargé, je peux toujours me connecter à partir de n'importe quelle IP.

Comment configurer une liste blanche d'adresses IP ?

6voto

Jose Chavez Points 645

Hosts.allow et hosts.deny ne sont utilisés que lorsque vous exécutez le service (sshd) par l'intermédiaire de wrappers TCP. L'installation par défaut de MacOS ne le fait pas, ils n'auront donc aucun effet.

Comme le recommandent d'autres réponses, vous pouvez utiliser un pare-feu pour restreindre l'accès à SSH. Il peut s'agir d'un pare-feu matériel (c'est-à-dire "externe") ou d'un pare-feu logiciel tel que le pare-feu intégré de pf.

Toutefois, je ne recommanderais pas d'utiliser uniquement un pare-feu. Le mieux est de limiter le service sshd lui-même - et si vous le souhaitez, vous pouvez y ajouter la protection du pare-feu. Le raisonnement derrière cela est que si, pour une raison quelconque, votre pare-feu est désactivé, les utilisateurs extérieurs seront soudainement autorisés à communiquer avec sshd, ce que vous ne voulez vraiment pas.

Afin de configurer sshd pour limiter l'accès, vous devrez éditer le fichier /etc/ssh/sshd_config, et ajouter ce qui suit :

AllowUsers username@192.168.1.32 username@192.168.1.33

où vous remplacez "nom d'utilisateur" par votre nom d'utilisateur réel.

Si vous le souhaitez, vous pouvez remplacer pa username@192.168.1.* o *@192.168.1.32 .

2voto

Douglas Points 10417

hosts.allow y hosts.deny a été déprécié et vous devriez utiliser un pare-feu ( pf ).

La règle par défaut pour les pf peut être trouvée dans /etc/pf.conf . Vous pouvez modifier ce répertoire de fichiers ou créer votre propre ensemble de règles, mais veillez à copier le contenu du fichier par défaut dans ce répertoire. Ajoutez les deux lignes suivantes :

# The name of the network interface as shown in ifconfig
ext_if="en0"

tcp_services = "{ssh}"
icmp_types = "{echoreq, unreach}"
trusted = "{192.168.1.32, 192.168.1.33}"

# Exempt the loopback interface to prevent services that use if from being blocked
set skip on lo0

# This is a desktop so we have to be permissive in allowing outgoing  connections
pass out quick modulate state

# Block all incoming SSH Traffic by default 
  block in on $ext_if inet proto tcp from any to any port $tcp_services

# Allow SSH traffic from trusted IPs
pass in on $ext_if inet proto tcp from $trusted to any port $tcp_services

Ensuite, activez pf avec la commande

$ sudo pfctl -e                                 #if using the default /etc/pf.conf
$ sudo pfctl -e -f /path/to/custom_pf.conf      #if using a custom pf.conf

Ce jeu de règles bloque par défaut l'accès SSH à toutes les IP, à l'exception des IP de confiance définies. Tous les autres services ne seront pas affectés.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X