1 votes

AllowGroups et adresse de correspondance pour SSH

J'ai un serveur domestique avec quelques comptes SSH qui ont des mots de passe faibles. Comme nous ne l'utilisons que localement, ce n'est pas un gros problème.

Maintenant, je veux autoriser l'accès externe à partir d'un seul compte, mais toujours l'accès local à partir des autres. Mais cela ne fonctionne pas (car seul un sous-ensemble d'options est autorisé dans les correspondances) :

AllowUsers externaluser
Match Address 192.168.0.0/24
AllowGroups localusers

Quelle est la meilleure façon d'émuler cela ? (ou devrais-je simplement autoriser les utilisateurs locaux à accéder à l'extérieur également, mais sans authentification par mot de passe, en espérant qu'ils gardent leurs clés privées privées ?)

3voto

Matias Pereira Points 11

Peut-être que pam_access serait un meilleur moyen de le faire ?

ex : dans /etc/security/access.conf, faites des lignes comme :

    + : root : 192.168.0.
    + : localonlygroup : 192.168.0.
    + : remoteuser: ALL
    - : ALL : ALL

Ensuite, assurez-vous que /etc/pam.d/sshd, autour duquel il y a probablement une ligne comme :

    account    required     pam_nologin.so

ajouter une autre ligne comme :

    account    required     pam_access.so

0 votes

Désolé d'avoir mis si longtemps à accepter, ça marche bien et je n'ai pas à toucher à IPtables. J'ai ajouté + : ALL : tty1 tty2 tty3 tty4 tty5 tty6 au début cependant, pour avoir une solution de rechange, puisqu'il y a des exemples pour X et TTY, donc je suppose qu'il est toujours consulté

0 votes

Comme je l'ai remarqué, lorsqu'un utilisateur "désactivé" essaie de se connecter, son mot de passe est d'abord accepté, puis la connexion est refusée. Ainsi, l'accès est bloqué mais les méchants ont toujours la possibilité de rechercher une combinaison utilisateur/mot de passe valide, ce qui n'est pas bon. Existe-t-il un moyen de déplacer l'autorisation (contrôle d'accès pam) avant l'authentification ?

2voto

Eric Noob Points 531

Il est possible de réaliser exactement ce que vous essayez !

Une solution consiste à exécuter deux instances sshd différentes, une pour les utilisateurs externes et une pour les utilisateurs internes. Grâce à une utilisation astucieuse de l'option iptables REDIRECT target, vous pouvez continuer à autoriser les gens à se connecter à sshd sur le port 22, mais selon l'endroit d'où ils viennent, ils obtiendront l'instance appropriée. Quelque chose comme :

# Connect inside users to "inside" sshd.
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 22 -j REDIRECT --to-ports 2200

# Connect out*emphasized text*side users to "outside" sshd.
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 22 -j REDIRECT --to-ports 2201

Cela suppose que le sshd interne écoute sur le port 2200 et que le sshd externe écoute sur le port 2201, et que chacun d'entre eux utilise une configuration appropriée. sshd_config fichier. Notez également que pour que cela fonctionne, vous aurez besoin de :

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 2200 -j ACCEPT
iptables -A INPUT -p tcp --dport 2201 -j ACCEPT

C'est exactement ce que nous faisons pour certains de nos hôtes de connexion interactifs et cela fonctionne très bien.

0 votes

Si le serveur a deux interfaces - externe et interne, iptables n'est pas du tout nécessaire ! Un serveur sshd écoute simplement sur une interface avec Adresse d'écoute externe_ip un autre sshd Adresse d'écoute internal_ip

0 votes

Ces règles iptables ne fonctionnent tout simplement pas comme prévu : la première règle nat redirige simplement TOUTES les connexions vers un seul sshd, et la deuxième règle nat n'aboutit jamais puisque les deux correspondent au même.

0 votes

La deuxième règle NAT doit être iptables -t nat -A PREROUTING ! -s 192.168.1.0/24 -p tcp --dport 22 -j REDIRECT --to-ports 2201

0voto

gapsf Points 81

Si l'utilisation du groupe d'utilisateurs n'est pas acceptable

AllowUsers externaluser@* *@192.168.0.*

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X