ライン

ポイント:*

ライン

 はじめに

FTP専用のアカウントをOpenLDAP管理にする

 メールのアカウントに続き、FTP用のアカウントを発行して利用することにします。
vsftpdはこの辺りは柔軟性に欠けるようで、ProFTPDで実現することが多いようです。
個人的には久々ですが、ProFTPDを立てて利用してみることにします。

 OpenLDAPにアカウントを作成

 メールに同様に追加していくことにします。
まず、ユーザのパスワードを決めておきます。

# slappasswd -s PASSWORD
{SSHA}v1a0sJ8lJhRAqoRPWbRvIw8S8kfYs3rX

そして、以下のようにファイルを準備しました。

dn: uid=ftp7001,dc=example.com,dc=.
uid: ftp7001
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ftp7001
uidNumber: 7001
gidNumber: 7000
userPassword: {SSHA}v1a0sJ8lJhRAqoRPWbRvIw8S8kfYs3rX
homeDirectory: /var/www/example.com
loginShell: /sbin/nologin
gecos: ftp7001

slapd.confには、スキーマの以下を追加しました。

include         /usr/local/etc/openldap/schema/nis.schema

これで一度LDAPを再起動しました。 

# ldapadd -x -W -h localhost -D "cn=Manager,dc=." -f example.com-ftp.ldif
Enter LDAP Password: ********
adding new entry "uid=ftp7001,dc=example.com,dc=."

実ディレクトリも用意しました。

# mkdir -p /var/www/example.com
# chown 7001:7000 /var/www/example.com

 こんな感じでいいのか良く理解できていませんが。

 ProFTPDの導入

導入

 まず、パッケージの導入から開始します。

# pkg install proftpd-mod_ldap
Updating repository catalogue
The following 3 packages will be installed:

        Upgrading openldap-client: 2.4.38 -> 2.4.39
        Installing proftpd: 1.3.4d_5
        Installing proftpd-mod_ldap: 1.3.4d_5

The installation will require 6 MB more space

1 MB to be downloaded

Proceed with installing packages [y/N]:
..
************************************************************

The OpenLDAP client package has been successfully installed.

Edit
  /usr/local/etc/openldap/ldap.conf
to change the system-wide client defaults.

Try `man ldap.conf' and visit the OpenLDAP FAQ-O-Matic at
  http://www.OpenLDAP.org/faq/index.cgi?file=3
for more information.

************************************************************

 /etc/rc.confに以下を追加しておきます。

proftpd_enable="YES"

 設定ファイルは、/usr/local/etc/proftpd.conf です。
以前に記述していた内容を追記しました。
未だに必要なのかは知りませんが。

DefaultRoot             ~ !wheel
TimesGMT                off
ListOptions             "-a"
UseReverseDNS           off
IdentLookups            off
SyslogFacility          LOCAL7

TransferLog             /var/log/proftpd-xferlog
LogFormat               default "%h %l %u %t \"%r\" %s %b"
LogFormat               auth "%v [%P] %h %t \"%r\" %s"
LogFormat               write "%h %l %u %t \"%r\" %s %b"

ExtendedLog             /var/log/proftpd-access.log WRITE,READ write
ExtendedLog             /var/log/proftpd-auth.log AUTH auth

 サービスを開始してエラーにならないことをまず確認しました。

# service proftpd start

 大丈夫でした。

mod_ldap.c

 知らない間にパッケージが分割されていました。

20120717:
  AFFECTS: users of ftp/proftpd
  AUTHOR: mm@FreeBSD.org
 
  The options of ProFTPD have been made much more user-friendly.
  As the modules are all shared libraries, all possible modules are built
  and installed. The following modules are now in separate slave ports:
 
  databases/proftpd-mod_sql_odbc: mod_sql_odbc
  databases/proftpd-mod_sql_sqlite: mod_sql_sqlite
  databases/proftpd-mod_sql_tds: mod_sql_tds
  net/proftpd-mod_ldap: mod_ldap and mod_quotatab_ldap

 既に2年も前の話みたいです。
しかしながら、このパッケージを入れているにかかわらずモジュールには見えてきません。

# /usr/local/sbin/proftpd -l
Compiled-in modules:
  mod_core.c
  mod_xfer.c
  mod_auth_unix.c
  mod_auth_file.c
  mod_auth.c
  mod_ls.c
  mod_log.c
  mod_site.c
  mod_delay.c
  mod_facts.c
  mod_dso.c
  mod_ident.c
  mod_auth_pam.c
  mod_ctrls.c
  mod_lang.c

やはりありませんでした。
FreeBSD 10でも9でも変化はありません。

# ll /usr/local/libexec/proftpd/mod_ldap.*
-rw-r--r--  1 root  wheel  70948 Apr 13 17:55 /usr/local/libexec/proftpd/mod_ldap.a
-rwxr-xr-x  1 root  wheel   1094 Apr 13 17:55 /usr/local/libexec/proftpd/mod_ldap.la*
-rwxr-xr-x  1 root  wheel  45488 Apr 13 17:55 /usr/local/libexec/proftpd/mod_ldap.so*

コンパイルは通っているみたい。
またまた、ProFTPD 1.3.4以降から動きが変わったということみたい。
最近、この大きな変化のタイミングで試していることが多くて熱いものばかりでゲッソリ気味。

/usr/local/share/doc/proftpd/README.LDAP をまず読めってことらしい。
しかし欲しい情報なんて書かれていない。

# service proftpd start
Starting proftpd.
proftpd[79297]: Fatal: unknown configuration directive 'LDAPServer' on line 103 of '/usr/local/etc/proftpd.conf'
/usr/local/etc/rc.d/proftpd: WARNING: failed to start proftpd

むむ。Google先生様にお尋ねしても、Linuxなんかでは、proftpd/ldap.confに何か書いているものもあるみたいけど。
良くわからないな。使っている人いないのかなぁ。

LDAPするなら、PureFTPDがいいよ、って発言を途中で見かけた。
これまた久々に見るツールだな。
PureFTPd.iRedMail.with.OpenLDAP-FreeBSDのページ見ても確かに具体的。
日本の方でもいますね。LDAPによるバーチャルユーザの設定 [メモとかメモのようなものとか(By ルーキーの中のひと)]

なんだか、またOpenLDAPで生活するのがだんだんと面倒臭くなってしまいました。
とりあえず、OpenSSLの脆弱性だけは対処完了し、今日は電源を切ることにしました。
どこかで改善しそうな際に続きを書きます。


【改訂履歴】

作成:2014/04/13 更新日: -/-/-


【参照ページ】


 
Copyright © 1996,1997-2006,2007- by F.Kimura,