GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ssh – Nur Google-Authentifikator von außerhalb des lokalen Netzwerks erforderlich?

Ausführen einer Debian-Variante (osmc)

Was ich versuche zu tun:

  • SSH über Passwort deaktivieren, Schlüssel und Google-Authentifikator erforderlich; Das funktioniert alles
  • Aber jetzt versuche ich, die 2-Faktor-Authentifizierung nur von außerhalb des lokalen Netzwerks zu verlangen (es ist einfacher für
    Backup-Skripte, aber wenn es einen anderen, besseren Weg gibt, sagen Sie es bitte
    )

Derzeit wird Putty &Pageant aus einer Windows-Box zum Testen verwendet, nur für den Fall, dass es relevant ist

Also verwende ich die Lösung hier – https://serverfault.com/questions/799657/ssh-google-authenticator-ignore-whitelist-ips

Was passiert jetzt –
Wenn ich mich von außerhalb des Netzwerks verbinde, ist immer noch die erforderliche 2-Faktor-Authentifizierung erforderlich
Innerhalb des Netzwerks sieht es so aus, als würde es den Schlüssel erkennen, aber dann Fehler mit „Weitere Authentifizierung erforderlich“.

Vielen Dank im Voraus für jede Hilfe

sudo systemctl status ssh

Aug 25 19:51:36 mosmc sshd[10528]: error: PAM: Permission denied for osmc from beast
Aug 25 19:51:36 mosmc sshd[10528]: Failed keyboard-interactive/pam for osmc from 192.168.21.3 port 54330 ssh2
Aug 25 19:51:36 mosmc sshd[10528]: error: Received disconnect from 192.168.21.3: 14: No supported authentication methods available [preauth]

Cat of files unten (wo es ein Skript erwähnt, das ich gerade für die Installation dieser Medienbox geschrieben habe, da mein Durcheinander es immer wieder kaputt macht)

    [email protected]:~$ cat /etc/ssh/sshd_config
# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port XXXXXXX #changed by sshinstall
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2

# Inserted hostkeys by ssh-install script
HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
KexAlgorithms [email protected],ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
MACs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]
#End of inserted code
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel VERBOSE #edited by script

# Inserted ftp by ssh-install script
# Log sftp level file access (read/write/etc.) that would not be easily logged otherwise.
Subsystem internal-sftp  /usr/lib/ssh/sftp-server -f AUTHPRIV -l INFO
#End of inserted code

# Authentication:
LoginGraceTime 120
PermitRootLogin no #edited by script
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication yes #edited by script

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no #edited by script

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*


# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of PermitRootLogin without-password
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.

# Inserted google-auth settings by ssh-install script
AuthenticationMethods publickey,keyboard-interactive:pam
KbdInteractiveAuthentication yes
# Ensure /bin/login is not used so that it cannot bypass PAM settings for sshd.
UseLogin no
#End of inserted code
UsePAM yes

access-local.conf

[email protected]:~$ cat /etc/security/access-local.conf
# only allow from local IP range
+ : ALL : 192.168.21.0/24
+ : ALL : LOCAL
- : ALL : ALL

pam.d

[email protected]:~$ cat /etc/pam.d/sshd
# PAM configuration for the Secure Shell service

# Inserted PAM settings by ssh-install script
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth required pam_google_authenticator.so
#End of inserted code

# Standard Un*x authentication.
#@include common-auth #commented out  by sshinstall

# Disallow non-root logins when /etc/nologin exists.
account    required     pam_nologin.so

# Uncomment and edit /etc/security/access.conf if you need to set complex
# access limits that are hard to express in sshd_config.
# account  required     pam_access.so

# Standard Un*x authorization.
@include common-account

# SELinux needs to be the first session rule.  This ensures that any
# lingering context has been cleared.  Without this it is possible that a
# module could execute code in the wrong domain.
session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so close

# Set the loginuid process attribute.
session    required     pam_loginuid.so

# Create a new session keyring.
session    optional     pam_keyinit.so force revoke

# Standard Un*x session setup and teardown.
@include common-session

# Print the message of the day upon successful login.
# This includes a dynamically generated part from /run/motd.dynamic
# and a static (admin-editable) part from /etc/motd.
session    optional     pam_motd.so  motd=/run/motd.dynamic
session    optional     pam_motd.so noupdate

# Print the status of the user's mailbox upon successful login.
session    optional     pam_mail.so standard noenv # [1]

# Set up user limits from /etc/security/limits.conf.
session    required     pam_limits.so

# Read environment variables from /etc/environment and
# /etc/security/pam_env.conf.
session    required     pam_env.so # [1]
# In Debian 4.0 (etch), locale-related environment variables were moved to
# /etc/default/locale, so read that as well.
session    required     pam_env.so user_readenv=1 envfile=/etc/default/locale

# SELinux needs to intervene at login time to ensure that the process starts
# in the proper default security context.  Only sessions which are intended
# to run in the user's context should be run after this.
session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so open

# Standard Un*x password updating.
@include common-password

Akzeptierte Antwort:

auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf

Scheint die Antwort zu sein. Bearbeite dies, sobald ich mehr lerne.

Verwandte:Ubuntu – Wie kann man aus ssh ausbrechen, wenn es sperrt?

Von http://linux-pam.org/Linux-PAM-html/sag-configuration-file.html

Erfolg=Fertig

done
äquivalent zu ok mit dem Nebeneffekt, dass der Modulstack
beendet wird und PAM sofort zur Anwendung zurückkehrt.

default=ignorieren

Ignorieren
Bei Verwendung mit einem Stapel von Modulen trägt der Rückgabestatus des Moduls nicht zum Rückgabecode bei, den die Anwendung erhält.

von – https://serverfault.com/questions/134471/success-n-control-syntax-in-pam-conf-pam-d-files#134488

success=1 überspringt eine Zeile.

Wenn jemand anderes eine bessere Antwort schreiben möchte, die erklärt, was passiert, akzeptiere ich das gerne.

Danke an Hostfission für den Hinweis auf den richtigen Teil.


Linux
  1. Verhindern, dass Tmux auf Ssh startet?

  2. So senden Sie Daten von einer Remote-SSH-Sitzung an die lokale Zwischenablage

  3. Beschränken Sie rsync über ssh read only / nur kopieren vom entfernten Host

  4. Ja vom Skript akzeptieren Möchten Sie die Verbindung wirklich fortsetzen (ja/nein)?

  5. Starten der Netzwerkverbindung von der Ubuntu-Wiederherstellung?

Wie greife ich von außen auf den in Virtualbox ausgeführten Ubuntu-Server zu?

Lokale Netzwerkschnittstellenadressen nur mit proc abrufen?

So erstellen Sie ein webbasiertes Terminal mit xterm.js, um per SSH in ein System im lokalen Netzwerk zu gelangen

Wie kann ich die Ausgabe eines Remote-Befehls in die lokale Zwischenablage kopieren?

Wie verbinde ich mich über SSH mit einer lokalen virtuellen Hyper-V-Maschine?

Zugriff auf einen virtuellen Apache-Host nur aus dem lokalen Netzwerk zulassen