# NonRootLogin SSH - [DONE by josef.95]

## trickykannix

Hallo zusammen,

folgendes:

Dies war mein kläglicher Versuch einen non-root login für die Shell zu erstellen und mich mit dem user einzuloggen.

--------------------------------------------------

useradd user -p pw -ms bin/bash (habs auch ohne -ms bin/bash probiert)

vi .../sshd.config -> PermitRootLogin no, AllowUsers user

/etc/init.d/sshd restart

Versuchte mich einzuloggen mit:

-ssh user@server(Mit IP und Servername versucht. Muss ich vielleicht einen Port angeben oder ähnliches? Vielleicht hab ich auch die Syntax missverstanden)

-user@server

-user

------------------------------------------------

aber nöscht funzte. Hab noch ein paar andere Dinge probiert, diese nach Misserfolg jedoch wieder rückgängig gemacht - da weiter ausführungen für den Sachverhalt unbedeutend sind beschränke ich mich auf die Angabe des wasentlichen(s.o.). 

Kann mir jemand mitteilen was ich hier falsch mache? Im übrigen soll ausschliesslich dieser Benutzer Zugriff zur Shell erhalten.

Für brauchbare Antworten wäre ich echt dankbar, bin aus sämtlichen Posts die ich dazu gefunden habe nicht schlauer geworden...Last edited by trickykannix on Sat Nov 20, 2010 9:57 pm; edited 2 times in total

----------

## musv

Also einen user user zu nennen, ist vermutlich eher weniger intelligent.

1. Poste mal, was zu Deinem User in der /etc/passwd steht.

2. Geht normales Einloggen? Also nicht über ssh sondern lokal.

3. Begrenzung auf die Shell. Nun ja, was soll der User im Vergleich zu anderen Usern denn dann nicht dürfen?

----------

## trickykannix

Ersteinmal, vielen Dank für die schnelle Rückschrift.

Natürlich heißt der user nicht user, wäre wohl tatsächlich unangebracht.

1. im /etc/passwd steht:

user:x:1047:1047:/user:/!(kein Verzeichnis)!/bin/bash 

oder (useradd ohne -ms bin/bash):

user:x:1047:1047:/user:/!(kein Verzeichnis)!/bin/false

2. Geht normales Einloggen? Also nicht über ssh sondern lokal.

Entschuldige ich versteh die frage nicht, wie loggt man sich local ein? Bin noch am Anfang was Sicherheit anbetrifft...

3. Nun ja, was soll der User im Vergleich zu anderen Usern denn dann nicht dürfen?

Der Nutzer soll sich einloggen dürfen. Er soll auf ein Verzeichnis zugreifen dürfen. Welches Verzeichnis macht sicherheitstechnisch am meisten sinn? Letztenendes geht es um die su zuweisung.

Was unschön zusätzliches javascript:emoticon(':cry:')- ich hab gerade den Inhalt der /etc/passwd leider googlen müssen, daher kann es sein das die angaben des "user" betreffend nicht 100% korrekt sind. Der Grund dafür, die Maschine wurde vermutlich gehackt, ich habe momentan keinen Zugriff auf die Shell(es liegt nicht am PermitRootLogin).

-Aber das ist hier auch nicht das Thema-Last edited by trickykannix on Mon Nov 22, 2010 4:00 pm; edited 2 times in total

----------

## Finswimmer

Normalerweise reicht es einen User normal anzulegen.

Wenn der sshd gestartet ist, kann sich dann jeder User, der auf dem PC ist mit seinem Passwort anlegen.

useradd -m -G users,audio,wheel Benutzername

/etc/init.d/sshd start

und mit ssh $username@$maschine verbinden

Tobi

----------

## Max Steel

ssh weigert sich einen User ohne eigenes home-Verzeichnis anzumelden. Also er braucht ein home-Verzeichnis, mit zumindest mal einem leeren .ssh Ordner darin.

(IMHO)

----------

## musv

 *Max Steel wrote:*   

> ssh weigert sich einen User ohne eigenes home-Verzeichnis anzumelden. Also er braucht ein home-Verzeichnis, mit zumindest mal einem leeren .ssh Ordner darin.

 

Genau das. Ich war mir nur nicht sicher, was "-ms" macht, da "-m" ja automatisch das Homeverzeichnis des Users anlegt. Deswegen hab ich auch nach der passwd gefragt.

----------

## Max Steel

-m legt ein home an. mit -k kann man ein skel-Verzeichnis auswählen (Standard ist /etc/skel) und mit -d kann man ein Home-Dir auswählen. -s ist für eine besondere Shell (eigentlich müsste /bin/bash standard sein).

siehe auch man useradd, bzw. useradd -h

----------

## trickykannix

[quote="Max Steel"]ssh weigert sich einen User ohne eigenes home-Verzeichnis anzumelden. Also er braucht ein home-Verzeichnis, mit zumindest mal einem leeren .ssh Ordner darin.

(IMHO)[/quote]

Danke, Danke.

Ein dickes Dankeschön auch an den Rest für die Ausführlichkeit und dem Engagement.

/bin/bash muss auf der Mashine festgelegt werden, default ist ein anderes Verzeichnis.

Nebenbei: War leider bis gerade damit beschäftigt wieder Zugang zur Shell zu kriegen. Die Maschine läuft wieder wie gewohnt, heute war ein leer/lehr-reicher Tag für mich. (Das rootverzeichnis ist durch eine meiner Aktionen überschrieben worden...javascript:emoticon(':?'). Dies geschah scheinbar beim Editieren der .../passwd - ich doof)

Daher komme ich erst jetzt dazu weiter an den Benutzerkonten rumzuhunzen.

Werde den Topic hoffentlich gleich abhaken können.

gruß

dennis

----------

## trickykannix

[quote="Finswimmer"]Normalerweise reicht es einen User normal anzulegen.

Wenn der sshd gestartet ist, kann sich dann jeder User, der auf dem PC ist mit seinem Passwort anlegen.

useradd -m -G users,audio,wheel Benutzername

/etc/init.d/sshd start

und mit ssh $username@$maschine verbinden

Tobi[/quote]

Muss der User zwingend einer Gruppe zugewiesen werden?

----------

## Max Steel

Einer auf jeden Fall, der initial Group (-g <gid>) Aber du kannst auch mit -U eine "user-group" anlegen lassen, also eine Gruppe die genau den gleichen Namen hat wie der User, und im optimalfall auch nur den zugehörigen User als mitglied hat (als initial-Group), -U und -g beißen sich meines Wissens nach. Also entscheide dich. -G ist dafür da extra Gruppen anzugeben, wie z.B. video, games und so weiter.

----------

## trickykannix

Die letzte Frage war etwas unvollständig...Wenn ja, welche Gruppe würde denn dann sicherheitstechnisch am meisten Sinn ergeben? Ich gehe nicht davon aus das es root ist javascript:emoticon(':lol:')

Nach wie vor geht es letzenendes um die su Zuweisung, um als root, bzw. mit root-Rechten Operationen durchführen zu können.

Gruß,

unendlich Danke

----------

## Max Steel

um su nutzen zu können muss man in der Gruppe wheel sein.

Ob für sudo das gleiche gilt weiß ich jetzt gerade nicht.

Wenn du Sicherheitstechnisch am sichersten dran sein willst lässt du dir per -U eine neue Gruppe erstellen und gibst sonst keine weiteren Gruppen-Rechte.

Und dieser gruppe gibst du dann natürlich auch weiterhin keinem einzigen außer dieser einen Person, die treffenderweiße nur REchte unter ~ hat.

----------

## trickykannix

Hallo nochmal,

es will einfach nicht klappen...Kann mich noch immer nicht einloggen.

Habe jetzt folgendes durchgeführt:

usseradd user -p pw -s /bin/bash (-s weil /bin/bash kein Standard)

mkdir /home/userdir

mkdir /home/userdir/.ssh

chown -R user /home/userdir

groupadd usergroup

usermod -G user usergroup

Non Root SSH Access:

vi .../sshd.config

i

PermitRootLogin no

AllowUsers user

esc

:wq

/etc/init.d/sshd restart

!!!!!!

in der /etc/passwd steht:

user:x:1047:1047::/home/user:/bin/bash

Das "userdir"-Verzeichnis unter dem home verzeichnis habe ich anders benannt als den User(also nicht "user" sondern "userdir"). Würde ich in der passwd einfach das Verzeichnis ändern, würde es unter /home überschrieben werden(hatten wir schonmal...). So schlimm wäre es nicht, müsste man halt ein neues .ssh Verzeichnis anlegen, jedoch wäre es schöner wenn es ohne Überschreiben ginge.

!!!!!!

Darf ich nochmal um Rat bitten?Last edited by trickykannix on Sat Nov 20, 2010 7:25 pm; edited 1 time in total

----------

## trickykannix

Da ich schlecht abwarten kann habe ich es doch mit dem Holzhammer gemacht und die passwd angepasst(der Ornder wurde scheinbar nicht überschrieben -> die .ssh war noch drin).

Wie dem auch sei,

ich kann mich noch immer nicht einloggen...javascript:emoticon(':x')

Habe des weiteren erneut eingegeben:

usermod -G wheel user

chown -R user /home/userdir

in der /etc/passwd steht jetzt:

user:x:1047:1047::/home/userdir:/bin/bash

Muss man hier vielleicht was mit chmod machen oder ähnliches? Resignation setzt langsam ein... Das kann doch nicht so schwer sein, grml

[quote="Max Steel"]

Und dieser gruppe gibst du dann natürlich auch weiterhin keinem einzigen außer dieser einen Person, die treffenderweiße nur REchte unter ~ hat.[/quote]

Ist damit die Erstellung eines Verzeichnisses unter dem root-Verzeichnis gemeint? Habe es moentan unter home liegen.Last edited by trickykannix on Sat Nov 20, 2010 8:10 pm; edited 1 time in total

----------

## Max Steel

Nene damit ist das home-Verzeichnis des jeweiligen Users gemeint. Also /home/user.

----------

## trickykannix

Habe den Nutzer zu wheel hunzugefügt. Funktioniert leider noch immer nicht.

[quote="Max Steel"]

Wenn du Sicherheitstechnisch am sichersten dran sein willst lässt du dir per -U eine neue Gruppe erstellen und gibst sonst keine weiteren Gruppen-Rechte.[/quote]

Entschuldigung, nochmal -> chmod -U besser als chmod -G?(Sicherheit)

----------

## Josef.95

Hmm, etwas in der Art? 

```
kraftwerk1 ~ # useradd -m -G wheel -s /bin/bash testuser

kraftwerk1 ~ # passwd testuser

New password:

Retype new password: 

passwd: password updated successfully

kraftwerk1 ~ #

................................................

$ su testuser

Passwort:

$ ssh josef@MD95500

Password: 

Last login: Sat Nov 20 22:23:23 CET 2010 from kraftwerk1 on pts/0

josef@MD95500 ~ $
```

........................

/edit:

PS: Ist das mit deinem quote und code tags so beabsichtigt?

Hast du BBCode in deinen Beiträgen bewusst deaktiviert?

----------

## trickykannix

[quote="Josef.95"]Hmm, etwas in der Art? 

[/quote]

Ja in der Art. DONE. Bestens, bestens...Viielen Dank. Dem Rest ebenfalls, waren mal wieder ein paar neue Grundlagen.

[quote="Josef.95"]

PS: Ist das mit deinem quote und code tags so beabsichtigt?

Hast du BBCode in deinen Beiträgen bewusst deaktiviert?

[/quote]

Ich aktiviere immer nur soviel wie irgendst notwendig, bin da ein wenig merkwürdig.

Werden die Icons nicht anständig wiedergegeben? Dachte wäre nur in der eigenen Ansicht.

----------

## Josef.95

Na prima

Ne, dachte nur es wäre eventuell ein versehen das BBCode deaktiviert wurde..

schaut halt eben dann so aus: [quote="trickykannix"]Werden die Icons nicht anständig wiedergegeben? Dachte wäre nur in der eigenen Ansicht.[/quote]   :Wink: 

----------

## trickykannix

KK

ich muss auch lachen :)

----------

## trickykannix

Manuelle Lösung (wenn mit diesem user ausschließlich ssh Zugang möglich sein soll):

usseradd -s /bin/bash([-s] wenn /bin/bash nicht Standart) user

usermod -(G) user sshzugangsgruppe ( -U oder -G) 

passwd user

mkdir /home/userdir

mkdir /home/userdir/.ssh

chown -R user /home/userdir

vi .../sshd_config

i

PermitRootLogin no

AllowUsers user,(ggf. user2, user...)

esc

:wq

sshd restart

Wie gewohnt, bloß mit neuem Nutzernamen und dem zugehörigen Pw einloggen.

in der passwd steht allerdings:

user:x:1047:1047::/home/user:/bin/bash

Nicht wie erwartet:

user:x:1047:1047::/home/userdir:/bin/bash

-->Warum? Und was hat das für Auswirkungen? Es läuft alles wie es soll.

----------

