web-dev-qa-db-ja.com

Active Directoryで認証するためのvsftpdの構成

一部のActive Directoryユーザーにvsftpdアクセスを付与しようとしています。

設定ファイルの内容は次のとおりです。

# egrep -v '^(#.*|)$' vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
dual_log_enable=YES
log_ftp_protocol=YES
local_root=/srv/ftp/users
chroot_local_user=YES

# egrep -v '^(#.*|)$' /etc/pam.d/vsftpd
auth     required    pam_ldap.so use_first_pass
account  required    pam_ldap.so
session  required    pam_limits.so

# egrep -v '^(#.*|)$' /etc/pam_ldap.conf
Host ad.example.lan
base dc=example,dc=lan
binddn cn=ftp_auth,dc=example,dc=lan
bindpw password
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute shadowLastChange pwdLastSet
nss_map_objectclass posixGroup group
nss_map_attribute uniqueMember member
pam_login_attribute sAMAccountName
pam_filter objectclass=User

ただし、ログインしようとすると、正しいパスワードかどうかに関係なく、この応答が返されます。

# tail -f -n0 /var/log/messages /var/log/vsftpd.log
==> /var/log/messages <==

==> /var/log/vsftpd.log <==
Fri Feb 14 14:55:46 2014 [pid 3747] CONNECT: Client "192.168.1.49"
Fri Feb 14 14:55:46 2014 [pid 3747] FTP response: Client "192.168.1.49", "220 (vsFTPd 2.2.2)"
Fri Feb 14 14:55:46 2014 [pid 3747] FTP command: Client "192.168.1.49", "USER melbin"
Fri Feb 14 14:55:46 2014 [pid 3747] [melbin] FTP response: Client "192.168.1.49", "331 Please specify the password."
Fri Feb 14 14:55:46 2014 [pid 3747] [melbin] FTP command: Client "192.168.1.49", "PASS <password>"
Fri Feb 14 14:55:46 2014 [pid 3746] [melbin] FAIL LOGIN: Client "192.168.1.49"
Fri Feb 14 14:55:47 2014 [pid 3747] [melbin] FTP response: Client "192.168.1.49", "530 Login incorrect."

誰かが私たちを正しい方向に向けることができますか?おそらく、さらにデバッグメッセージを取得したり、PAM構成で何が間違っているのかを説明したりできます。

2

PAMについて少し読んだ後、accountインターフェースをpam_ldapは必要ありませんでした。私がやりたかったのはパスワード構成の確認だけだったので、サービスファイルを次のように設定しました。

#%PAM-1.0
auth     required    pam_ldap.so
account  required    pam_permit.so
session  required    pam_limits.so

魅力のように働いた。

2

私はpam_ldapの使用経験がありませんでしたので、ドメイン認証にSSSDを使い始めました。テストサーバーにVSFTPDをインストールし、vsftpd.confファイルを完全にコピーした後、認証に成功しました。ドメインユーザーはこのサーバー上の他のサービスに対して認証できますか?ユーザーが認証しようとしているときに、ユーザーが見つからないと思います。

yum install sssd

SSSDで認証するには、安全な接続(TLSを使用したLDAP、TCP/636を介したLDAPS、またはグローバルカタログ用のTCP/3269を介したLDAPS)を使用する必要があります。

以下は、Centos 6のActive Directoryに対してユーザーを認証するために職場で使用する構成ファイルの編集済みバージョンです。同じフォレスト内に複数のドメインがあるため、Kerberos経由でサーバーをドメインに参加させるのではなく、LDAPルックアップを行いました。私の生活を少し楽にします。

[sssd]

domains = WORK
services = nss, pam
config_file_version = 2

[pam]
offline_credentials_expiration = 5

[nss]

[domain/WORK]
description = Work domains

enumerate = false

id_provider = ldap
auth_provider = ldap
chpass_provider = none
access_provider = ldap

ldap_pwd_policy = none
ldap_schema = ad
ldap_user_name = sAMAccountName
ldap_user_object_class = person
ldap_group_object_class = group
ldap_id_mapping = True
case_sensitive = false

override_Shell = /bin/bash
override_homedir = /home/%u

ldap_uri = ldaps://10.9.8.6:3269
ldap_tls_reqcert = never

ldap_search_base = dc=work,dc=local
ldap_default_bind_dn = CN=Shell Auth Lookup,OU=Service Accounts,DC=work,DC=local
ldap_default_authtok_type = password
ldap_default_authtok = password-for-the-proxy-user

ldap_access_filter = (&(objectClass=person)(|(memberOf:1.2.840.113556.1.4.1941:=CN=Shell-admins,OU=Groups,DC=work,DC=local)(memberOf:1.2.840.113556.1.4.1941:=CN=Shell-access,OU=Groups,DC=work,DC=local)))

設定ファイルを書き込んだ後は、rootだけが編集可能にする必要があります。 SSSDは、アクセス権が600以外の場合、ルート所有権がある場合、すぐに終了します。

chmod 600 /etc/sssd/sssd.conf

SSSD認証を有効にしました(シェルの使用を目的としているため、ホームディレクトリを作成するためのスイッチをスキップできます)。

authconfig --enablesssd --enablesssdauth --enablemkhomedir --updateall

サービスを開始して有効にします。

service sssd start && chkconfig enable sssd

参照: http://www.gadgeteering.ca/blogs/active-directory-authentication-linux-through-sssd

代わりにLDAPを使用する代わりにKerberosを介してドメインに参加したい場合、これは私がサンドボックスでフォローした記事です http://theblitzbit.com/2013/04/08/make-red-hat-talk -to-windows /

1
Gadgeteering