Puncte:1

Opriți condiționat autentificarea ssh interactivă și non-interactivă și trimiteți un mesaj de eroare

drapel cn

vreau sa previn interactiv și non-interactiv autentificare ssh bazată pe o logică condiționată. Trebuie să testez numele de utilizator și să dau un mesaj de eroare.

Persoanele care folosesc sftp (ssh non-interactiv) ar trebui să fie, de asemenea, supuse testului de noroc.

Cum as implementa asta? Am controlul total asupra sistemului.

Am încercat să folosesc sshd ForceCommand, dar conform https://stackoverflow.com/a/33714333/746461 nu merge pentru notty.

Nu sunt familiarizat cu PAM și mă îndoiesc dacă PAM poate afișa un mesaj de eroare personalizat în cazul în care autentificarea este interactivă.

https://linuxhint.com/understanding_bash_shell_configuration_startup/ spune shell de conectare non-interactiv cu --noprofile opțiunea poate ocoli toate fișierele de configurare bash. De aceea nu pot să-mi scriu logica acolo.

Jeff Schaller avatar
drapel ru
Aș recomanda o abordare ușor diferită și aș pune utilizatorii într-un grup, apoi aș folosi directiva Match Group a sshd_config pentru a forța o comandă de tip /bin/false.
drapel cn
@JeffSchaller Poți comenta pe https://stackoverflow.com/a/33714333/746461? Am crezut că spune că ForceCommand nu funcționează pentru Notty
Puncte:2
drapel cn

Mi-am dat seama. Pot implementa un modul PAM pentru a face asta.

Salvați următoarele într-un fișier, să zicem /root/checkConnections.

#! /bin/bash

limită = $1
c=$(pgrep -xcu $PAM_USER sshd)
dacă [[ $c -ge "$limită" ]]; atunci 
    echo "Limite maxim de $$ conexiuni ssh permise, dar aveți $c."
    iesirea 1
fi

Apoi, în /etc/pam.d/sshd, adăugați

sesiune necesară pam_exec.so stdout /root/checkConnections 5

pam_exec.so execută scriptul shell, stdout trimite mesaje către terminalul utilizatorului.

Când condiția eșuează, efectul este așa.

$ ssh localhost
Bun venit la Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-74-generic x86_64)

94 de actualizări pot fi instalate imediat.
0 dintre aceste actualizări sunt actualizări de securitate.
Pentru a vedea aceste actualizări suplimentare, rulați: apt list --upgradable

Maxim 5 conexiuni ssh permise, dar aveți 5.
/root/checkConnections a eșuat: codul de ieșire 1
Ultima conectare: joi 24 iunie 12:19:27 2021 de la 172.18.33.67
Conexiunea la localhost s-a închis.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.