Интеграция AIX и MS Active Directory 2003 с помощью Kerberos

Главная Форумы Обсуждение материалов портала Интеграция AIX и MS Active Directory 2003 с помощью Kerberos

Просмотр 11 веток ответов
  • Автор
    Сообщения
    • #2319
      andrewk
      Участник

      Обсуждение статьи: Интеграция AIX и MS Active Directory 2003 с помощью Kerberos[/url]

      1. ставить что-либо кроме krb5.client.rte и krb5.lic для аутентификации по Kerberos необязательно.
      2. документация рекомендует еще запускать chauthent -k5 -std
      3. для работы ssh надо внести следующие правки в /etc/ssh/sshd_config:

      KerberosAuthentication yes
      KerberosTicketCleanup yes
      GSSAPIAuthentication yes

      и не помню откуда и почему, но на новых серверах пишу в /usr/lib/security/methods.cfg
      KRB5A:
      program = /usr/lib/security/KRB5A
      options = authonly,tgt_verify=no

      и не пишу keytab’а, а все равно все работает 🙂

    • #2330
      avk
      Участник

      keytab нужен для sso. т.е., единожды получив билет на клиенте (например через kinit), далее идем по ssh на другие серверы без переввода имен/паролей. есть даже виндовые ssh-клиенты, которые возьмут твой билет, формируемый по факту входа в домен, и используют его при аутентификации по ssh.

      несколько моментов.
      ограничение длинны имени в AIX (AD-имя может быть длинное, а мапинг все таки не нагляден). длину логина в AIX можно увеличить. но считается, что это приводит к снижению производительности (кто-нить замерял?).

      еще момент – “запасная аутентификация”. хотелось бы, чтоб на случай отказа доменной аутентификации (из-за сети, винды, забитой /tmp) осталась (у некоторых логинов) старая аутентификация по “/etc/passwd”. тут, как я понимаю, придется прикручивать PAM.

      следующие грабли – истечение срока действия доменного пароля.

      ну и sudo, который таки рулит, надо бы тоже интегрировать с AD – т.е. PAM.

      P.S.
      еще немного, и под AIX начнут привинчивать SSO к сквиду через самбовый ntlm_auth. кстати, при большом желании таковой sso можно даже к cyrus-imapd привинтить.

    • #5987
      Вадим
      Участник

      чтото у меня не получается с авторизацией через LDAP, возможно я чтото не догоняю
      фактически нужно ли заводить пользователей локально в систему или они будут целиком грузиться из AD?

      получается если я пользователя не завожу то авторизация не проходит
      в логах совершенно странные вещи творятся

      Nov 19 17:13:32 testaix auth|security:info sshd[323778]: Did not receive identification string from xx.xx.xx.xx
      Nov 19 17:13:42 testaix daemon:info telnetd[368854]: ttloop: peer died: A file or directory in the path name does not exist.
      Nov 19 17:13:42 testaix auth|security:info sshd[323780]: Did not receive identification string from xx.xx.xx.xx
      Nov 19 17:13:52 testaix daemon:info telnetd[286930]: ttloop: peer died: A file or directory in the path name does not exist.
      Nov 19 17:13:52 testaix auth|security:info sshd[323784]: Did not receive identification string from xx.xx.xx.xx
      Nov 19 17:14:02 testaix daemon:info telnetd[368858]: ttloop: read: A connection with a remote socket was reset by that socket.
      Nov 19 17:14:02 testaix auth|security:info sshd[323786]: Did not receive identification string from xx.xx.xx.xx
      Nov 19 17:14:12 testaix daemon:info telnetd[286934]: ttloop: peer died: A file or directory in the path name does not exist.
      Nov 19 17:14:12 testaix auth|security:info sshd[323788]: Did not receive identification string from xx.xx.xx.xx
      Nov 19 17:14:22 testaix daemon:info telnetd[368862]: ttloop: peer died: A file or directory in the path name does not exist.
      Nov 19 17:14:22 testaix auth|security:info sshd[323790]: Did not receive identification string from xx.xx.xx.xx

      Nov 19 17:24:11 testaix auth|security:info sshd[368720]: Invalid user user1 from xx.xx.xx.yy
      Nov 19 17:24:11 testaix auth|security:info syslog: ssh: failed login attempt for UNKNOWN_USER from ws1.example.ru
      Nov 19 17:24:11 testaix auth|security:info sshd[368720]: Failed none for invalid user user1 from xx.xx.xx.yy port 1510 ssh2
      Nov 19 17:24:14 testaix auth|security:info sshd[368720]: Failed password for invalid user user1 from xx.xx.xx.yy port 1510 ssh2
      Nov 19 17:24:14 testaix auth|security:info syslog: ssh: failed login attempt for UNKNOWN_USER from ws1.example.ru
      Nov 19 17:24:20 testaix daemon:info telnetd[155716]: ttloop: peer died: A file or directory in the path name does not exist.
      Nov 19 17:24:20 testaix auth|security:info sshd[348332]: Did not receive identification string from xx.xx.xx.xx
      Nov 19 17:24:30 testaix daemon:info telnetd[294950]: ttloop: peer died: A file or directory in the path name does not exist.
      Nov 19 17:24:30 testaix auth|security:info sshd[364790]: Did not receive identification string from xx.xx.xx.xx

      причем xx.xx.xx.xx это ip адрес сервера на котором стоит ексченджь, а AD там не в жизнь небыло

    • #5990
      uxTuaHgp
      Участник

      При Kerberos + LDAP аутентикации пользователи берутся из AD, только им нужно прописать Unix атрибуты.

      # lsldap -a group somegroup*
      # lsldap -a passwd someuser*
      # id someuser
      # lsuser someuser

      отрабатывают?

      Все по шагам нужно, как я написал конфигурировать и проверять по шагам.

      Если что-то где-то не отрабатывает – есть ссылки на источники, которыми я пользовался.

    • #5992
      uxTuaHgp
      Участник

      то что LDAP тычется на эксчейндж, говорит о том, что LDAP клиента неправильно настроили

      2) Правим /etc/security/ldap/ldap.cfg

      ldapservers:dc01.example.com,dc02.examle.com
      ….

    • #6000
      Вадим
      Участник

      листинг ldap.cfg
      ldapservers:dc.example.com
      binddn:CN=aixt,OU=Service Accounts,DC=example,DC=com
      bindpwd:somepassword
      userattrmappath:/etc/security/ldap/sfu30user.map
      groupattrmappath:/etc/security/ldap/sfu30group.map
      userbasedn:OU=Service Accounts,DC=example,DC=com
      userbasedn:OU=Org1,DC=example,DC=com
      userbasedn:OU=Org2,DC=example,DC=com
      userbasedn:OU=Org3,DC=example,DC=com
      groupbasedn:OU=AIX,OU=Groups,DC=example,DC=com
      netgroupbasedn:OU=AIX,OU=Groups,DC=example,DC=com
      userclasses:user
      groupclasses:group
      connectionsperserver:100
      usercachetimeout: 3000
      groupcachetimeout: 3000

      ексченджь живет на mx.example.com и ip адреса различаются

      При Kerberos + LDAP аутентикации пользователи берутся из AD, только им нужно прописать Unix атрибуты.

      # lsldap -a group somegroup*
      выводит кучу информации из лдапа
      # lsldap -a passwd someuser*
      выводит кучу информации из лдапа
      # id someuser
      пишет что пользователь не найден в /etc/passwd
      # lsuser someuser
      пользователь не существует
      отрабатывают?

      но стоит добавить ключ -R LDAP все находит, как сказать системе что поиск групп и пользователей нужно вести в LDAP

      листинг methods.cfg
      NIS:
      program = /usr/lib/security/NIS
      program_64 = /usr/lib/security/NIS_64

      DCE:
      program = /usr/lib/security/DCE

      NISPLUS:
      program = /usr/lib/security/NISPLUS

      LDAP:
      program = /usr/lib/security/LDAP
      program_64 = /usr/lib/security/LDAP64

      KRB5A:
      program = /usr/lib/security/KRB5A
      program_64 = /usr/lib/security/KRB5A_64
      options = authonly,is_kadmind_compat=no,kadmin=no,tgt_verify=no

      KRB5ALDAP:
      options = db=LDAP,auth=KRB5A

      KRB5Afiles:
      options = db=BUILTIN,auth=KRB5A

      листинг users
      default:
      admin = false
      login = true
      su = true
      daemon = true
      rlogin = true
      sugroups = ALL
      admgroups =
      ttys = ALL
      auth1 = SYSTEM
      auth2 = KRB5Afiles
      tpath = nosak
      umask = 022
      expires = 0
      * SYSTEM = “compat”
      logintimes =
      pwdwarntime = 0
      account_locked = false
      loginretries = 0
      histexpire = 0
      histsize = 0
      minage = 0
      maxage = 0
      maxexpired = -1
      minalpha = 0
      minother = 0
      minlen = 0
      mindiff = 0
      maxrepeats = 8
      dictionlist =
      pwdchecks =
      SYSTEM=”KRB5ALDAP”

    • #6036
      uxTuaHgp
      Участник

      Ну Вы первый, кто с таким столкнулся.
      Ждем результатов траблшутинга.

    • #6163
      Вадим
      Участник

      может есть какие идеи?

    • #6185
      Вадим
      Участник

      в приципе, если пользователя завести через смитти то авторизуется, но идея то такова , чтобы я заводил пользователя не на AIX (или Linux) машине, коих у меня зоопарк (или вагон и маленькая тележка) а именно в АД я создавал пользователя давал бы ему группу допустим AIX1 и он мог ходить на первую группу AIX серверов, или давал бы группу AIX2 и Linux1 и пользователь мог бы ходить на вторую группу Аикс серверов и первую группу Linux серверов

    • #6194
      Вадим
      Участник

      грабли в визгом в логах от почтовика починил
      теперь осталась непонятка почему из лдапа не берется группа и логин

    • #6258
      Вадим
      Участник

      так сделал я авторизацию в домене, все работает!!!!
      есть небольшие дополнения по интеграции AIX 5.3 и Windows 2003 Server R2 (просьба внести в официальный мануал, который размещен на сайте)
      1.SFU в 2003 R2 идет в комплекте и называется Identify Manager for Unix
      2. в сехеме на AIX нужно внести следующие изменения
      файл sfu30group.map
      groupname SEC_CHAR cn s na
      #groupname SEC_CHAR msSFU30Name s na

      id SEC_INT gidNumber s na
      #id SEC_INT msSFU30GidNumber s na

      users SEC_LIST memberUid m na
      #users SEC_LIST msSFU30PosixMember m na

      #users SEC_LIST msSFU30MemberUid m na
      3. в схеме для AIX нужно внести следующие изменения файл sfu30user.map
      username SEC_CHAR uid s na
      #username SEC_CHAR msSFU30Name s na

      id SEC_INT uidNumber s na
      #id SEC_INT msSFU30U1idNumber s na

      pgrp SEC_CHAR gidNumber s na
      #pgrp SEC_CHAR msSFU30GidNumber s na

      home SEC_CHAR unixHomeDirectory s na
      #home SEC_CHAR msSFU30HomeDirectory s na

      shell SEC_CHAR loginShell s na
      #shell SEC_CHAR msSFU30LoginShell s na

      gecos SEC_CHAR msSFU30Gecos s na
      #gecos SEC_CHAR gecos s na

      spassword SEC_CHAR userPassword s
      #spassword SEC_CHAR unicodePwd s

      lastupdate SEC_INT shadowLastChange s days
      #lastupdate SEC_INT msSFU30ShadowLastChange s days

      maxage SEC_INT shadowMax s na
      #maxage SEC_INT msSFU30ShadowMax s na

      minage SEC_INT shadowMin s na
      #minage SEC_INT msSFU30ShadowMin s na

      maxexpired SEC_INT shadowExpire s na
      #maxexpired SEC_INT msSFU30ShadowExpire s na

      pwdwarntime SEC_INT shadowWarning s na
      #pwdwarntime SEC_INT msSFU30ShadowWarning s na

      #spassword SEC_CHAR unicodePwd s na
      #unsuccessful_login_count SEC_INT badPwdCount s na
      #time_last_unsuccessful_login SEC_INT badPasswordTime s na

      5. группы которым разрешен доступ к AIX машинам должны быть прописаны в файл ldap.cfg строка groupbasedb

      groupbasedn:CN=ИМЯ_ГРУППЫ_КОТОРОЙ_ДОСТУП_РАЗРЕШЕН,CN=КОНТЕЙНЕР(ОргЮнит),DC=example,DC=com

      вроде бы все что сделал описал

    • #19817
      uxTuaHgp
      Участник

      При сшивании AIX 6.1 и AD версии 2008 все настраивается гораздо проще.
      Но…пытливый ум найдет себе трудности.

      Кто-то пробовал делать чтобы доменный аккаунт не совпадал с uid.

      Решил попробовать сделать так, потому что в AIX по умолчанию ораничена длина логина, а в AD они бывают гораздо длиннее.

      Понятно, что можно увеличить длину, но
      во-первых тогда нужна перезагрузка
      во-вторых не везде длинные логины правильно отображаются: логи, who и тд и тп.

      Так вот проблема какая: если доменный логин не совпадает с UNIX логином, то
      lsuser -R KRB5LDAP shortun
      правильно показывает пользователя с атрибутами, но при аутентикации возникают проблемы:

      Feb 7 14:46:50 sandbox auth|security:debug sshd[10420368]: [krb_authenticate] Error in getting TGT …
      Feb 7 14:46:50 sandbox auth|security:debug sshd[10420368]: Client not found in Network Authentication Service database or client locked out
      Feb 7 14:46:50 sandbox auth|security:info sshd[10420368]: Failed password for shortun from 1.1.1.2 port 2944 ssh2
      Feb 7 14:46:50 sandbox auth|security:info syslog: ssh: failed login attempt for shortun from winhost

Просмотр 11 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.