Puncte:0

OpenSSH - sshd_config - Permite sftp-chroot ȘI autentificarea ssh normală cu același utilizator

drapel cn

Sper că nu este un dup, dar nu pot găsi un răspuns la acesta... Am găsit acesta, care la suprafață pare să fie același, dar este foarte vechi și singurul răspuns din el nu răspunde la întrebarea reală: Setați utilizatorii ca fiind crootate pentru sftp, dar permiteți utilizatorului să se autentifice în SSH

Am configurat cu succes un mediu ChrootDirectory de lucru prin sftp pentru utilizatorii din grupul „sftp_users”. Funcționează bine, toate permanentele adecvate și altele, restricționând accesul doar la sftp și pot rw în subdirectoarele lor din interiorul ChrootDirectory. Acest lucru este grozav pentru utilizatorii care nu sunt privilegiați, interzicând accesul ssh și permițând doar rw în interiorul subfolderelor lor din ChrootDirectory.

Aș dori să am puțin mai mulți utilizatori privilegiați, care încă pot folosi ssh în mod normal, totuși, atunci când se conectează prin sftp, vor avea atunci mediul ChrootDirectory. Aceasta este mai puțin o problemă de securitate, deoarece sunt considerați privilegiați și obvi pot naviga prin sistemul de fișiere în ssh în limitele permisiunilor lor normale de utilizator. Problema este că nu văd o modalitate de a le croota atunci când se conectează sub sftp fără a împiedica autentificarea ssh. Acest lucru este mai mult pentru standardizare și comoditate decât orice altceva, așa că atunci când fac sftp, ajung doar la locația lor Chrooted ca utilizatorii doar sftp.

Am crezut că acest lucru ar funcționa dacă le-aș lăsa shell-ul ca implicit (nu /bin/false sau nologin). Din păcate, atunci când sunt în grupul sftp_only, nu le va permite deloc să introducă ssh, doar sftp. Există o soluție pentru aceasta, în afară de a avea două conturi separate, unul adăugat la „sftp_users” și unul care nu este în acel grup? Până acum, tot ce pot găsi este documentație privind restricționarea sftp Chroot și, simultan, interzicerea ssh dacă sunt în acel grup.

Exemplu de utilizator este „test”. „test” se află în grupul sftp_users și, prin urmare, se poate autentifica prin sftp și poate fi conectat la folderul specificat („/sftp/test”) și poate citi sau scrie în folderul său principal montat în legătură la „/sftp/test/home”. . Toate acestea funcționează. Dar chiar dacă shell-ul său este încă setat în /etc/passwd la /bin/bash, „test” nu se poate autentifica prin ssh dacă este adăugat la grupul sftp_users. Eliminați calitatea de membru în acel grup și el poate face ambele, dar apoi nu Chrootat sub sftp.

Utilizatorii care nu fac parte din grupul „sftp_users” se pot autentifica în continuare prin ssh sau sftp, dar nu au Chrootate sub sftp.

Există o modalitate de a potrivi protocolul utilizat și/sau poate seta o potrivire suplimentară pentru un alt grup? Caut doar chroot-ul când se autentifică prin sftp. Non-chroot prin ssh este bine pentru acești utilizatori.

Următorul este sshd_config-ul meu:

Portul XXXX
#ListenAddress ::
#ListenAddress 0.0.0.0

Protocolul 2

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

SyslogFacility AUTH
LogLevel INFO

LoginGraceTime 120
PermitRootLogin nr
StrictModes da

PubkeyAuthentication da

IgnoreRhosts da
Autentificare bazată pe gazdă nr

PermitEmptyPasswords nr

ChallengeResponseAuthentication nr

X11 Redirecționare da
X11DisplayOffset 10
PrintMotd da
PrintLastLog da

ClientAliveCountMax 10
ClientAliveInterval 3600
TCPKeepAlive nr

#Banner /etc/issue.net

AcceptEnv LANG LC_*

Subsistem sftp /usr/lib/openssh/sftp-server -u 0027

Folosește PAM da
Autentificare prin parolă da



Grupul de potriviri sftp_users
  ChrootDirectory /sftp/%u
  ForceCommand internal-sftp -u 0027
  X11Redirecționare nr
  AllowTcpForwarding nr
  Autentificare prin parolă da
Puncte:1
drapel fr
anx

OpenSSH nu acceptă suprascrierea cuvintelor cheie globale pe baza comenzii trimise. Trebuie să diferențiezi unele (combinații de) criterii oferite de OpenSSH pentru Meci afirmație.

Criteriile disponibile sunt Utilizator, Grup, Gazdă, LocalAddress, LocalPort, RDomain și Address (cu RDomain reprezentând rdomain(4) pe care a fost primită conexiunea)

-- man 5 sshd_config

O alegere comună este oferirea de servicii restricționate intenționat pe IP-uri alternative la care se ajunge prin domenii alternative, cum ar fi instantaneu.backup.exemplu și sftp.backup.exemplu.


Comentariile despre întrebare legată explică problema clar, totuși.

Dacă crezi că vrei Accesul sftp a fost folosit pentru utilizatorii privilegiați, probabil că sunteți diferit roluri în identic utilizatorii, iar asta atrage riscuri de securitate. Cel mai adesea problemele de auditare și separarea privilegiilor sunt mai bine deservite de folosind un alt utilizator pentru orice te-a făcut să te gândești la configurarea setărilor chroot chiar și pentru utilizatorii care nu sunt limitați de asta. Dacă există două sarcini diferite, chiar dacă sunt executate de același persoană, iar unul este mai sigur dacă este restricționat intenționat, apoi, prin toate mijloacele, configurați un nou utilizator de sistem (de exemplu, aveți utilizator persoană și persoană-sarcină partajați majoritatea restricțiilor și metodelor de autentificare și restricționați doar una dintre ele în ssh).

jdmayfield avatar
drapel cn
Pentru a clarifica, dacă aș seta sshd să asculte pe două porturi, să zicem 22 și 2222, aș putea avea o secțiune de potrivire setată pentru portul 2222 care ar putea fi specifică pentru sftp-ul Chrooted? Am un singur IP, așa că în prezent pare să fie singura mea opțiune cu același nume de utilizator.
anx avatar
drapel fr
anx
Ar trebui să aveți ample IP-uri disponibile, chiar dacă în prezent utilizați doar unul. Dacă scrie /56 în lista dvs. de adrese IP atribuite, cred că ar fi scris *quadrillion* în engleză.
anx avatar
drapel fr
anx
Indiferent dacă ați ales IP-uri sau porturi, aveți grijă să nu ridicați accidental restricțiile, aplicând apoi restricțiile doar unui singur port și/sau adresă. S-ar putea să găsiți că configurația dvs. devine mai refuzată dacă creați grupuri separate pentru „este permis aici” și „este permis acolo”.
jdmayfield avatar
drapel cn
Am un IP public local alocat serverului meu cloud. Este posibil să achiziționați un Pub.IP suplimentar, dar probabil ar fi costisitor, dacă este permis. Acest caz de utilizare nu ia în considerare (în general) IP-urile la distanță; trebuie să nu se bazeze pe adresa clientului.
jdmayfield avatar
drapel cn
Am făcut câteva experimente cu diferite combinații de porturi de potrivire și grupuri de utilizatori. Acest lucru pare să funcționeze convenabil și sigur. Testat temeinic. Grupul „sftp_users” se poate autentifica doar pe un singur port, numai prin sftp, și sunt crootate. Utilizatorii care nu fac parte din acel grup pot ssh sau sftp către un port (să zicem portul A), fără chroot sau pot să facă sftp către celălalt pentru a obține chroot (să zicem portul B). Grupul „sftp_users” are o singură alegere și se face chroot (doar portul B). Toate acestea par să funcționeze conform planului, cu excepția faptului că speram să pot potrivi nume de domenii cu același IP. Multumesc pentru clarificare.
jdmayfield avatar
drapel cn
Comentariile la întrebarea legată nu au abordat cazul meu de utilizare și nici nu au oferit un răspuns cu privire la modul de îndeplinire a acestei sarcini. În mod clar, utilizatorii din grupul „sftp_users” trebuie să fie blocați doar la sftp chroot, fără ssh. Se presupune că utilizatorii care nu fac parte din acel grup sunt privilegiați și au permisiunea ssh, sftp normal (fără chroot) și chroot pentru comoditate, nu pentru securitate suplimentară. În caz contrar, nu aș pune întrebarea, deoarece există o multitudine de exemple foarte simple despre crootarea unui singur grup. Există o serie de cazuri de utilizare pentru aceasta.

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.