[OpenSSH]Access control

Pagina: 1
Acties:

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Topicstarter
Ik heb hier een machine staan met OpenSSH (voluit: OpenSSH_3.8.1p1 Debian-8.sarge.4, OpenSSL 0.9.7e 25 Oct 2004), en daarop wil ik het inloggen van users controleren. Ik wil alle users overal vandaan toelaten, behalve root, die mag maar vanaf 1 IP.

De man page van sshd_config geeft aan dat je daarvoor AllowUsers kan gebruiken.

Om te testen heb ik PermitRootLogin op yes gezet en het volgende regeltje aangemaakt:
code:
1
AllowUsers root@intranet.....

Na het restarten van SSH (zonder foutmeldingen) probeer ik in te loggen, dat gaat niet want ik krijg "access denied" meldingen. In de log komt het volgende voorbij:
code:
1
2
3
Apr  8 11:33:50 hades sshd[23600]: User root not allowed because not listed in AllowUsers
Apr  8 11:33:50 hades sshd[23600]: Failed none for illegal user root from 213.10.**.*** port 4240 ssh2
Apr  8 11:33:52 hades PAM_unix[23603]: authentication failure; (uid=0) -> root for ssh service


Na het IP ipv de hostname neergezet te hebben in het AllowUsers regeltje kan ik wel als root inloggen vanaf dat IP, een testje vanaf een andere machine geeft aan dat het inderdaad goed werkt want dan kom ik er niet in.

Nu wil ik dus de andere users ook in dat regeltje gaan toevoegen dmv een wildcard, aangezien ik geen zin heb alle usernames op die regel te zetten. De man page zegt daarover het volgende:
`*' and `?' can be used as wildcards
en
This keyword can be followed by a list of group name patterns, separated by spaces
Dus ik maak van die AllowUsers regel het volgende:
code:
1
AllowUsers * root@213.10.**.***

en restart SSH.

Maar nu kan mijn root weer overal vandaan inloggen :(. Ik heb de volgorde ook nog omgedraaid (wildcard als laatste), maar ook dat mocht niet baten. Ik heb gezocht bij Google ([google=sshd_config AllowUsers]) en veel configs van anderen geprobeerd, maar elke keer draait het op hetzelfde uit. Het wil tot nu toe gewoon niet werken.

Heeft iemand anders nog een idee?

[ Voor 4% gewijzigd door AtleX op 08-04-2005 11:55 ]

Sole survivor of the Chicxulub asteroid impact.


Verwijderd

Ja.
Gewoon man sshd_config goed lezen.
Dan had je gezien dat het zo moest:
code:
1
AllowUsers root@1.2.3.4 username@* username2@* username3@192.168.1. username4@1.2.3.4 *@123.4.5.6


Zodra je een *@* of en * erin zet wordt alles overruled. Het idee van AllowUsers is dat daar alle toegestane users instaan.

Als je iets verder gelezen had, was je langs AllowGroups gekomen.
Normaal gesproken voeg je al je users toe aan bijv. de groep users.
Dus je zou het als volgt kunnen proberen:
code:
1
2
AllowUsers root@123.123.123.123
AllowGroups users@*

En als dat niet werkt, haal je AllowUsers weg en gebruik je:
code:
1
AllowGroups root@123.123.123.123 users@*


Overigens ben je knap stom als je root logins toestaat, die horen altijd uit te staan.
Gewoon inloggen met een normale user en su'en naar root.
Of commando's draaien met sudo.

Dat je root@ niet werkt met een hostname kan door 2 dingen komen.
1. Je sshd doet geen dns lookups.
2. De dns in /etc/resolv.conf geeft geen reverse host voor dat adres.

[ Voor 96% gewijzigd door Verwijderd op 08-04-2005 12:20 ]


Verwijderd

Je hebt er zelf een enkel * staan. Dus alles mag...
* is van niks tot alles. ? is 1 character.

Waarschijnlijk gewoon doen zoals fabio-c zegt...
edit:
Wat had ik ook alweer voor nederlands op school?

[ Voor 18% gewijzigd door Verwijderd op 08-04-2005 12:06 ]


  • Seth4Chaos
  • Registratie: Maart 2001
  • Niet online

Seth4Chaos

that's me...

Zoals fabio-c al zegt is het niet slim om als root direct in te loggen, daar heb je su/sudo voor.

maargoed ik heb zelf het volgende staan
code:
1
PermitRootLogin without-password

wat er voor zorgt dat je alleen met de public-key van root kan inloggen (zelfs overal vandaan). Dit zorgt er dus voor dat je niet met het password van root kan inloggen.

De rede dat ik dit gedaan heb is dat is 2 servers heb die een rsync met elkaar doen en om bij alle bestanden te mogen (en de rechten en users over te nemen bij de backup) moet dit dus als root gebeuren.

Nadeel aan deze methode is dat als je ene machine ge-root wordt het ze niet al te veel moeite kost om die andere machine ook binnen te komen.

Mistakes are proof that you are trying...


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Topicstarter
Ik moet dus een rscync backupscript laten draaien, en ivm rechten moet de root user dus toegang hebben. Ik begrijp terdege dat een open root login niet netjes is, maar een anderre oplossing wist ik op dat moment eigenlijk niet.

Ik denk dat of een aparte backupuser aanmaken "PermitRootLogin without-password" even de beste opties zijn.

* AtleX gaat kijken naar een aparte backupuser :)

[ Voor 6% gewijzigd door AtleX op 08-04-2005 12:39 ]

Sole survivor of the Chicxulub asteroid impact.


  • Seth4Chaos
  • Registratie: Maart 2001
  • Niet online

Seth4Chaos

that's me...

AtleX schreef op vrijdag 08 april 2005 @ 12:38:
Ik moet dus een rscync backupscript laten draaien, en ivm rechten moet de root user dus toegang hebben. Ik begrijp terdege dat een open root login niet netjes is, maar een anderre oplossing wist ik op dat moment eigenlijk niet.

Ik denk dat of een aparte backupuser aanmaken "PermitRootLogin without-password" even de beste opties zijn.

* AtleX gaat kijken naar een aparte backupuser :)
het nadeel van een aparte user is dat die op het source-systeem niet alle bestanden mag lezen (hier is overigens wel omheen te komen) maar op het destination systeem mag/kan die niet de rechten gelijk maken aan de source (alle bestanden worden dus van de backupuser). Als dit is wat je wilt is het geen probleem maar ik wilde dat ook de rechten e.d. gelijk bleven en dan zal je root moeten zijn.

Mistakes are proof that you are trying...


  • Sendy
  • Registratie: September 2001
  • Niet online
Als de root maar 1 specifiek commando moet uitvoeren, dan kan je in de authorized_keys file nog aangeven welk commando. Dit beveiligt de boel aanzienlijk verder.

  • Seth4Chaos
  • Registratie: Maart 2001
  • Niet online

Seth4Chaos

that's me...

Sendy schreef op vrijdag 08 april 2005 @ 13:33:
Als de root maar 1 specifiek commando moet uitvoeren, dan kan je in de authorized_keys file nog aangeven welk commando. Dit beveiligt de boel aanzienlijk verder.
hey cewl dit wist ik nog niet, dank _/-\o_ al denk ik dat het bij mij niet helemaal zal werken aangezien rsync vast en zekers steeds op een andere manier wordt aangeroepen.
Maar je kan in autorized_keys ook aangeven vanaf welke hosts deze key gebruikt kan worden, dat ga ik wel eens uitzoeken.

Mistakes are proof that you are trying...

Pagina: 1