はじめまして
おやじ様のページを参考にProftpd1.2.9をインストールした者です。
そろそろ1.2.10にバージョンアップしようとしたのですが、
PAM認証の部分でエラーが表示されます。
SmartFTPで接続時のエラー
220 ProFTPD 1.2.10 Server (ProFTPD) []
AUTH TLS
500 AUTH not understood
proftpd.confには以下を記載しています。
AuthPAM on
AuthPAMAuthoritative on
AuthPAMConfig ftp
注:proftpd.confは1.2.9を使いまわし。
/etc/pam.d/ftpの内容
#%PAM-1.0
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
session required /lib/security/pam_pwdb.so
注:おやじ様の指示と違っていますが、1.2.9では動きました。
PAM認証設定は苦し紛れで作りました。正直よく分かっておりません。
不躾なお願いなのですが、ご教授の程宜しくお願いします。
> そろそろ1.2.10にバージョンアップしようとしたのですが、
> PAM認証の部分でエラーが表示されます。
>
> SmartFTPで接続時のエラー
> 220 ProFTPD 1.2.10 Server (ProFTPD) []
> AUTH TLS
> 500 AUTH not understood
このエラーはPAM以前の話で、ProFTPDがTLS対応できていないためにでるエラーです。
証明書等はそのままだと思いますから、RPM作成時に「--with mod_tls」を付け忘れたりしてませんか?
> proftpd.confには以下を記載しています。
> AuthPAM on
> AuthPAMAuthoritative on
> AuthPAMConfig ftp
> 注:proftpd.confは1.2.9を使いまわし。
>
> /etc/pam.d/ftpの内容
> #%PAM-1.0
> auth required /lib/security/pam_pwdb.so shadow nullok
> account required /lib/security/pam_pwdb.so
> session required /lib/security/pam_pwdb.so
> 注:おやじ様の指示と違っていますが、1.2.9では動きました。
上記は問題ありません。ソースにあるftp.pamdを使うと、ftpusersによる制御が効きますが、それができないだけですから。
おやじ様
ご返答有難うございます。
1.2.9の時にPAM認証で苦労したので、思い込みをしていました。
make時にmoduleエラーが出ております。
どうやらmod_tlsを組み込めていないようです。
make時エラーは以下の通りです。
環境はRedhat9、カーネル2.4.20です。
宜しくお願いします。
cc -DLINUX -I.. -I../include -I/usr/include/openssl -O2 -Wall -c mod_tls.c
/usr/include/openssl/ssl.h:179 から include されたファイル中,
mod_tls.c:40 から:
/usr/include/openssl/kssl.h:72:18: krb5.h: そのようなファイルやディレクトリはありませ
ん
/usr/include/openssl/ssl.h:179 から include されたファイル内,
mod_tls.c:40 から:
/usr/include/openssl/kssl.h:132: 構文解析エラー が "krb5_enctype" の前にあります
/usr/include/openssl/kssl.h:134: 構文解析エラー が "FAR" の前にあります
/usr/include/openssl/kssl.h:135: 構文解析エラー が '}' トークンの前にあります
/usr/include/openssl/kssl.h:147: 構文解析エラー が "kssl_ctx_setstring" の前にあります
/usr/include/openssl/kssl.h:147: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:148: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:149: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:149: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:150: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:151: 構文解析エラー が "kssl_ctx_setprinc" の前にあります
/usr/include/openssl/kssl.h:151: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:153: 構文解析エラー が "kssl_cget_tkt" の前にあります
/usr/include/openssl/kssl.h:153: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:155: 構文解析エラー が "kssl_sget_tkt" の前にあります
/usr/include/openssl/kssl.h:155: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:157: 構文解析エラー が "kssl_ctx_setkey" の前にあります
/usr/include/openssl/kssl.h:157: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:159: 構文解析エラー が "context" の前にあります
/usr/include/openssl/kssl.h:160: 構文解析エラー が "kssl_build_principal_2" の前にあります
/usr/include/openssl/kssl.h:160: 構文解析エラー が "context" の前にあります
/usr/include/openssl/kssl.h:163: 構文解析エラー が "kssl_validate_times" の前にあります
/usr/include/openssl/kssl.h:163: 構文解析エラー が "atime" の前にあります
/usr/include/openssl/kssl.h:165: 構文解析エラー が "kssl_check_authent" の前にあります
/usr/include/openssl/kssl.h:165: 構文解析エラー が '*' トークンの前にあります
/usr/include/openssl/kssl.h:167: 構文解析エラー が "enctype" の前にあります
mod_tls.c:40 から include されたファイル内:
/usr/include/openssl/ssl.h:909: 構文解析エラー が "KSSL_CTX" の前にあります
/usr/include/openssl/ssl.h:931: 構文解析エラー が '}' トークンの前にあります
make[1]: *** [mod_tls.o] エラー 1
make[1]: 出ます ディレクトリ `/usr/local/src/proftpd-1.2.10/modules'
make: *** [modules] エラー 2
自己レスです。
過去ログを見ておりましたら、2004/11/04にnoda様の記事に
回答がありました。
/usr/include/opensslを自サーバのssl(私の環境では
/usr/local/ssl/include/openssl)にコピーしたら
解決しました。
インストールを無事に完了し、接続も問題ないです。
有難うございました。
今後とも参考にさせていただきます。
> 過去ログを見ておりましたら、2004/11/04にnoda様の記事に > 回答がありました。 > /usr/include/opensslを自サーバのssl(私の環境では > /usr/local/ssl/include/openssl)にコピーしたら > 解決しました。 > インストールを無事に完了し、接続も問題ないです。 上記スレも最終的にはコピーしていないはずです。 コピーは、止めたほうがいいのでのではないでしょうか? nadaさんの時にも書きましたが、Apacheでも問題になるのと同じ理由で、原因は、RedHat9 の場合、openssl が Kerberos サポートの状態でコンパイルされていて、kerberos のヘッダが何故か /usr/kerberos/include にあるためにmake でエラーが発生していると思います。 作業前に、 # export CPPFLAGS=-I/usr/kerberos/include とやるか、proftpd.specにHPの内容以外に下記のように一行追加すればうまくいくはず。 %endif MODULES="mod_ratio:mod_readme" MODULES="${MODULES}%{?_with_mod_tls::mod_tls}" MODULES="${MODULES}%{?_with_mod_radius::mod_radius}" MODULES="${MODULES}%{?_with_mod_ldap::mod_ldap}" MODULES="${MODULES}%{?_with_mod_wrap::mod_wrap}" MODULES="${MODULES}%{?_with_mod_sql::mod_sql}" MODULES="${MODULES}%{?_with_mod_sql_mysql::mod_sql_mysql}" MODULES="${MODULES}%{?_with_mod_sql_postgres::mod_sql_postgres}" MODULES="${MODULES}%{?_with_mod_rewrite::mod_rewrite}" MODULES="${MODULES}%{?_with_mod_ifsession::mod_ifsession}" CPPFLAGS="-I/usr/kerberos/include" \ <---追加 CFLAGS="$RPM_OPT_FLAGS" ./configure \ --prefix=%{prefix} \ --sysconfdir=/etc \ --localstatedir=/var/run \ --mandir=%_mandir \ %{?_with_mod_tls:--with-includes=/usr/kerberos/include} \ %{?_with_mod_sql_mysql:--with-includes=/usr/include/mysql} \ %{?_with_ipv6:--enable-ipv6} \ --with-modules=${MODULES}