[samba] ssh met root account niet meer mogelijk

Pagina: 1
Acties:

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 29-09 07:19
Enkele weken geleden heb ik een raspberry pi model b+ aangeschaft.
Hier heb ik momenteel volgende op draaien:
  • Ldap
  • Samba
  • Openvpn
  • Cups print server
  • Sane scan server
Authenticatie verloopt via pam waarbij ik gebruik maak van ldap om in te loggen.
Dit ging allemaal prima met alle accounts voordat ik samba installeerde.
Na de installatie van samba is er een root account toegevoegd in ldap (door samba) en plots kan ik niet meer inloggen met dit account.

Als eerste bleek dat de login shell was uitgeschakeld voor dit account.
Ik heb dit tijdelijk even aangepast naar /bin/bash.
Verder heb ik geprobeerd om het wachtwoord van root te wijzigen en te synchroniseren voor unix / ldap / samba.

Hier onder mijn configuratie:

/etc/samba/smb.conf

[global]
        workgroup = VLACHAKIS
        netbios name = RPI

        deadtime = 10

        log level = 1
        log file = /var/log/samba/log.%m
        max log size = 5000
        debug pid = yes
        debug uid = yes
        syslog = 0
        utmp = yes

        security = user
        domain logons = yes
        os level = 64
#       logon path =
        logon home = /home/users/%U
        logon drive = H:
#       logon script =

        passdb backend = ldapsam:"ldap://localhost"
        ldap ssl = off
        ldap admin dn = cn=admin,dc=vlachakis,dc=local
        ldap suffix = dc=vlachakis,dc=local
#       ldap delete dn = no

        ## Sync UNIX password with Samba password
        ## Method 1:
        ldap password sync = yes
        ## Method 2:
        ;ldap password sync = no
        ;unix password sync = yes
        ;passwd program = /usr/sbin/smbldap-passwd -u '%u'
        ;passwd chat = "Changing *\nNew password*" %n\n "*Retype new password*" %n\n"


        ldap suffix = dc=vlachakis,dc=local
        ldap user suffix = ou=Users
        ldap group suffix = ou=Groups
        ldap machine suffix = ou=Computers
        ldap idmap suffix = ou=Idmap

        add user script = /usr/sbin/smbldap-useradd -m '%u' -t 1
        rename user script = /usr/sbin/smbldap-usermod -r '%unew' '%uold'
        delete user script = /usr/sbin/smbldap-userdel '%u'
        set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
        add group script = /usr/sbin/smbldap-groupadd -p '%g'
        delete group script = /usr/sbin/smbldap-groupdel '%g'
        add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g'
        delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g'
        add machine script = /usr/sbin/smbldap-useradd -w '%u' -t 1

[NETLOGON]
        path = /var/lib/samba/netlogon
        browseable = no
        share modes = no

[PROFILES]
        path = /var/lib/samba/profiles
        browseable = no
        writeable = yes
        create mask = 0611
        directory mask = 0700
        profile acls = yes
        csc policy = disable
        map system = yes
        map hidden = yes


[HOME]
        path = /home/users/%U
        browseable = yes



/etc/pam.d/common-session

session [default=1]                     pam_permit.so
# here's the fallback if no module succeeds
session requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
session required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
session required        pam_unix.so
session [success=ok default=ignore]     pam_ldap.so minimum_uid=1000
session required    pam_mkhomedir.so skel=/etc/skel umask=0022
[/common-session]

[b]/etc/pam.d/sshd[/b]

auth       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.
auth       required     pam_env.so envfile=/etc/default/locale

# Standard Un*x authentication.
@include common-auth

# 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

# 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 noupdate
session    optional     pam_motd.so # [1]

# 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

# Set up SELinux capabilities (need modified pam)
# session  required     pam_selinux.so multiple

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


/etc/pam.d/common-password

password        [success=2 default=ignore]      pam_unix.so obscure sha512
password        [success=1 default=ignore]      pam_ldap.so minimum_uid=1000 try_first_pass
# here's the fallback if no module succeeds
password        requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password        required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
password        optional                        pam_smbpass.so nullok use_authtok use_first_pass
# end of pam-auth-update config


/var/log/auth.log

Aug 21 07:36:49 rpi sudo: pam_unix(sudo:session): session opened for user root by nvlachakis(uid=0)
Aug 21 07:36:49 rpi sudo: pam_unix(sudo:session): session closed for user root
Aug 21 07:37:25 rpi sudo: nvlachakis : TTY=pts/0 ; PWD=/etc/pam.d ; USER=root ; COMMAND=/bin/cat sshd
Aug 21 07:37:25 rpi sudo: pam_unix(sudo:session): session opened for user root by nvlachakis(uid=0)
Aug 21 07:37:25 rpi sudo: pam_unix(sudo:session): session closed for user root
Aug 21 07:37:48 rpi sudo: nvlachakis : TTY=pts/0 ; PWD=/etc/pam.d ; USER=root ; COMMAND=/bin/cat common-password
Aug 21 07:37:48 rpi sudo: pam_unix(sudo:session): session opened for user root by nvlachakis(uid=0)
Aug 21 07:37:48 rpi sudo: pam_unix(sudo:session): session closed for user root
Aug 21 07:38:20 rpi sshd[4383]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost  user=root
Aug 21 07:38:21 rpi sshd[4377]: error: PAM: Authentication failure for root from localhost
Aug 21 07:38:23 rpi sshd[4384]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost  user=root
Aug 21 07:38:26 rpi sshd[4377]: error: PAM: Authentication failure for root from localhost
Aug 21 07:38:27 rpi sshd[4385]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost  user=root
Aug 21 07:38:30 rpi sshd[4377]: error: PAM: Authentication failure for root from localhost
Aug 21 07:38:33 rpi sshd[4377]: Connection closed by 127.0.0.1 [preauth]
Aug 21 07:38:40 rpi sudo: nvlachakis : TTY=pts/0 ; PWD=/etc/pam.d ; USER=root ; COMMAND=/bin/cat /var/log/auth.log
Aug 21 07:38:40 rpi sudo: pam_unix(sudo:session): session opened for user root by nvlachakis(uid=0)


Iemand een idee hoe ik dit oplos?
Zodra ik het root account in ldap van naam verander kan ik weer inloggen.
Even ter info, dit gaat over het inloggen in linux, niet in samba zelf.

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Waarom heb je Samba geïnstalleerd? Voor welk doel is het? Als je 't nodig hebt, waarom laat je Samba dan je authenticatie afhandelen, ipv de PAM configuratie die je had om met LDAP te communiceren?

Heb je ook het wachtwoord correct laten synchroniseren? Heb je bevestiging dat het is gelukt? Kan je op de LDAP server het wachtwoord wijzigen naar wat je lokale Root account heeft? Ergens zit er een verschil in wachtwoord en door Samba is dat nu zichtbaar.

Commandline FTW | Tweakt met mate


  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 29-09 07:19
Het doel van samba is filesharing.
Uiteindelijk heb ik ook een domein opgezet zodat ik login scripts kan laten draaien bij de overige computers hier thuis die windows draaien en om home drives te gebruiken.

Als je naar mijn configuratie kijkt zie je dat ik pam gebruik als authenticatie waarbij ik per gebruiker een LDAP account heb aangemaakt. Aangezien de gebruikers verschillende toegangsrechten hebben tot de verschillende shares dien je de accounts toe te voegen aan samba. Dit werkt ook allemaal perfect.
De wachtwoorden syncen goed want nadat ik met mijn eigen account (nvlachakis) de eerste keer niet kon inloggen op een samba share lukte dit wel nadat ik het wachtwoord heb gesyncd.

Het wachtwoord van het lokale root account en het ldap account komen overeen. Het enige verschil dat ik zie is dat dit root account een heel andere functie heeft dan een standaard gebruiker.
Wanneer je op het einde van je samba installatie de groepen/gebruikers gaat toevoegen mbv sudo smbldap-populate wordt er een root account toegevoegd. Zodra ik dit root account in ldap van naam verander en op de server smbpasswd -a root doe heb ik wel een werkend root account ... Echter is het eerder aangemaakte root account nodig om computers te joinen in het domein ...

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Ok, dan even wat andere kanten bekijken. Kan je wel via 'su' naar de root gebruiker toe? Kan je ook gewoon authenticeren op andere plekken met de root gebruiker?

Sowieso is het niet verstandig om root login over SSH toe te staan of te gebruiken. Je kan beter eerst als unprivileged user aanmelden en dan pas naar root gaat, als dat uiteraard werkt.

Commandline FTW | Tweakt met mate


  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 29-09 07:19
Ik kan nergens meer authenticeren met de root user. Zelfs 'su' werkt niet meer.
Onlangs had ik het root account nodig om wat dingen aan te passen (via sudo gebruiker ging dit niet) en heb ik tijdelijk het root account in ldap van naam veranderd.

Ik doe trouwens altijd met een unprivileged account aanmelden en vervolgens naar root gaan door su te gebruiken. In deze situatie werkt het natuurlijk niet.

Acties:
  • 0 Henk 'm!

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 29-09 07:19
Het probleem is volledig verholpen.
Ik heb alle instellingen nagekeken behalve /etc/nsswitch.conf.
Bleek dat er eerst in LDAP werd gekeken en niet naar de lokale files waardoor hij dus het root account gebruikte dat in LDAP staat. Dit root account wordt alleen gebruikt voor het joinen van computers tot het samba domein. Tevens staat de shell uitgeschakeld voor deze gebruiker.

Topic mag gesloten worden :)

[ Voor 21% gewijzigd door ddkiller0900 op 22-08-2014 09:09 ]


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Topics worden niet zomaar gesloten.

Mare, als het account in LDAP alleen gebruikt wordt voor het toevoegen van computers aan het domein, waarom heb je 'm dan root genoemd? Dat is al vragen om problemen. Het account dan ook nog eens geen shell geven maakt het netjes af. In je TS geef je trouwens wel aan dat je zag dat er geen shell was toegekend en je dit had aangepast naar /bin/bash. Was dat de lokale root, of de LDAP root die je had aangepast? Het had overigens bij mij al een belletje laten rinkelen als ik de boel had opgezet (omdat ik dan alle config ken, met wat hier is gepost zie ik 't niet, ook door m'n beperkte ervaring met LDAP icm Linux).

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 29-09 07:19
Wanneer je Samba en LDAP met elkaar laat samenwerken bouw je een config (smbldap.conf en smbldap_bind.conf) waarmee je met het commando smbldap-populate de LDAP directory vult met windows groepen / gebruikers. Standaard heet het admin account root. Uiteraard kan en ga ik dit nog aanpassen, echter gebruik ik het hele gebeuren maar gewoon voor bij mij thuis :). Ik had de shell van dit root account tijdelijk aangepast naar /bin/bash maar heb het vrij snel weer veranderd naar /bin/false aangezien het alleen maar gebruikt wordt om computers toe te voegen aan het domein.
Pagina: 1