Deaktivieren Sie das PAM-Modul für die Gruppe

10

Ich habe kürzlich die Zwei-Faktor-Authentifizierung mit Google-Authenticator auf meinem SSH-Server aktiviert. Jetzt stehe ich jedoch vor einem Problem:

Ich habe eine andere Benutzergruppe auf meinem Server, die ich für SFTP verwende, aber diese Gruppe kann sich nicht mehr anmelden, da 2FA nicht für die Benutzer in der Gruppe eingerichtet ist. Ist es möglich, das Google-Authentifizierungsmodul für diese Gruppe zu deaktivieren? Das Aktivieren für die Benutzer in der Gruppe ist keine Option, da dieses Konto von mehreren Benutzern verwendet wird.

PS: Ich benutze openssh-server

Z3r0byte
quelle
Beantwortet in diesem Kommentar
Abhimanyu Garg

Antworten:

12

Sie können das pam_succeed_ifModul (siehe Handbuchseite) vor dem verwenden pam_google_authenticator, um diesen Teil für Ihre Gruppe zu überspringen:

# the other authentication methods, such as @include common-auth
auth [success=1 default=ignore] pam_succeed_if.so user ingroup group
auth required pam_google_authenticator ...
Jakuje
quelle
2
Es sollte wahrscheinlich [success=1 default=ignore]statt sein required. Im Moment wird ein Benutzer, der nicht in einer Gruppe ist, dazu führen, dass die Authentifizierung fehlschlägt, denke ich. success=1Wenn Sie die nächste Methode überspringen, default=ignorewerden Benutzer, die nicht zur Gruppe gehören, einfach zur nächsten Methode weitergeleitet.
Muru
@muru ja, du hast offensichtlich recht.
Ich
Ist dies davon abhängig, ob Sie in / etc / ssh / sshd_config mehrere "AuthenticationMethods" haben? Mit der obigen Zeile erhalte ich immer noch 'Berechtigung verweigert (tastaturinteraktiv)'
Arj
@Arj Dies bedeutet, dass Sie eine andere Konfiguration haben, sodass diese spezifische Antwort für Sie nicht gilt.
Jakuje
1

Einige SFTP-Clients können 2FA verarbeiten. Zum Beispiel verwende ich 2FA mit FileZilla und WinSCP und sie funktionieren. Außerdem habe ich die SSH-Schlüsselauthentifizierung eingerichtet und sie funktioniert neben 2FA.

Ihre Frage ist jedoch interessant und ich habe eine kurze Umfrage gemacht. Ich habe diese Antwort gefunden .

Es ist also möglich (und einfach), separate SSH-Instanzen auszuführen. Ich habe es schon getestet.

  1. Erstellen Sie separate Kopien der sshd_configDatei.

    $ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_pwd
    $ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_2fa
    
  2. Bearbeiten Sie diese neuen configDateien. Eines der Dinge, die Sie ändern müssen, ist der shh-Port. Nach dem Beispiel:

    2.a) sshd_config_pwdSpezifische Zeilen sind:

    Port 1022
    ...
    PasswordAuthentication yes
    ChallengeResponseAuthentication no
    UsePAM no
    

    2.b) sshd_config_2faSpezifische Zeilen sind:

    Port 2022
    ...
    PasswordAuthentication no
    ChallengeResponseAuthentication yes
    UsePAM yes
    
  3. Öffnen Sie die erforderlichen Ports in der Firewall. Nach dem Beispiel:

    $ sudo ufw limit 1022
    $ sudo ufw limit 2022
    
  4. Führen Sie die neuen ssh-Instanzen aus:

    $ sudo /usr/sbin/sshd -f /etc/ssh/sshd_config_pwd
    $ sudo /usr/sbin/sshd -f /etc/ssh/sshd_config_2fa
    

Das ist es.

pa4080
quelle
Wie beantwortet dies die Frage? Was ändern Sie im sshd_config, um einen anderen PAM-Stapel zu verwenden und nicht 2FA zu verwenden?
Jakuje
@ Jakuje Ich habe meine Antwort aktualisiert.
pa4080
Ok, der Punkt ist also "kein PAM verwenden". In einigen Fällen funktioniert es möglicherweise, aber bei PAM geht es nicht nur um die Authentifizierung, sondern auch um das Einrichten einer Sitzung und vieles mehr. Daher funktioniert es möglicherweise nicht mehr von Tag zu Tag. Auch das Ändern des Ports ist sehr verwirrend, insbesondere wenn Sie möchten, dass Dritte eine Verbindung zu Ihrem Server herstellen. Obwohl ja, mögliche Lösung.
Jakuje
Ja, es ist nur eine mögliche Lösung, die noch unvollständig ist, da ich keine elegante Möglichkeit kenne, diese separaten SSH-Instanzen beim Systemstart zu starten.
pa4080