はじめまして、おやじ様。
「セキュアFTPサーバの構築(ProFTPD+SSL/TLS)」を拝見させて
頂いたのですが、どうしても
make
のところで以下のエラーが出てしまいます。
=======================================================
ake[1]: 入ります ディレクトリ `/home/epsonadmin/proftpd-1.2.10/modules'
gcc -DLINUX -I.. -I../include -I/usr/include/openssl -O2 -Wall -c mod_tls.c
mod_tls.c:40:25: openssl/ssl.h: そのようなファイルやディレクトリはありません
mod_tls.c:41:25: openssl/evp.h: そのようなファイルやディレクトリはありません
mod_tls.c:42:28: openssl/x509v3.h: そのようなファイルやディレクトリはありません
mod_tls.c:43:25: openssl/err.h: そのようなファイルやディレクトリはありません
mod_tls.c:44:26: openssl/rand.h: そのようなファイルやディレクトリはありません
make[1]: *** [mod_tls.o] エラー 1
make[1]: 出ます ディレクトリ `/home/epsonadmin/proftpd-1.2.10/modules'
make: *** [modules] エラー 2
============================================================
最初は ./configure 〜〜 でもエラーが出ていたのですが、これは
openssl-0.9.7/include/openssl を /usr/include/へコピーしたら
なくなりました。
openssl-0.9.7/include/openssl のなかには、上記の「ない」と言われるファイルは存在しているのですが・・・。
お手数ですがどこが間違っているのか教えてください。
ちなみにRedHut7.3を使用しています。
> 「セキュアFTPサーバの構築(ProFTPD+SSL/TLS)」を拝見させて
> 頂いたのですが、どうしても
> make
> のところで以下のエラーが出てしまいます。
>
> =======================================================
> ake[1]: 入ります ディレクトリ `/home/epsonadmin/proftpd-1.2.10/modules'
> gcc -DLINUX -I.. -I../include -I/usr/include/openssl -O2 -Wall -c mod_tls.c
> mod_tls.c:40:25: openssl/ssl.h: そのようなファイルやディレクトリはありません
> mod_tls.c:41:25: openssl/evp.h: そのようなファイルやディレクトリはありません
> mod_tls.c:42:28: openssl/x509v3.h: そのようなファイルやディレクトリはありません
> mod_tls.c:43:25: openssl/err.h: そのようなファイルやディレクトリはありません
> mod_tls.c:44:26: openssl/rand.h: そのようなファイルやディレクトリはありません
> make[1]: *** [mod_tls.o] エラー 1
> make[1]: 出ます ディレクトリ `/home/epsonadmin/proftpd-1.2.10/modules'
> make: *** [modules] エラー 2
> ============================================================
>
> 最初は ./configure 〜〜 でもエラーが出ていたのですが、これは
> openssl-0.9.7/include/openssl を /usr/include/へコピーしたら
> なくなりました。
>
> openssl-0.9.7/include/openssl のなかには、上記の「ない」と言われるファイルは存在しているのですが・・・。
>
> お手数ですがどこが間違っているのか教えてください。
>
> ちなみにRedHut7.3を使用しています。
随分、古いデストリでがんばっていますね。偶然というか、7.3が残っていたのでやってみましたが、あっさりとRPMが作れてしまいました。
で、気なったのがopensslです。これはRHの正規のものですか?RHのOpensslはKeberosを組み込んでコンパイルされているので、
> gcc -DLINUX -I.. -I../include -I/usr/include/openssl -O2 -Wall -c mod_tls.c
ではなく、
> gcc -DLINUX -I.. -I../include -I/usr/kerberos/include -O2 -Wall -c mod_tls.c
となるはずなんですが・・・。
で、試しに、./configure前に
$ export CPPFLAGS=-I/usr/kerberos/include
とやってみては、どうですか?
但し、opensslが純正品であることが前提ですが?
因みに、おやじの環境ではあっさりRPMができてしまいましたので、PRMでやったほうがいいと思いますよ。
参考までですが、Vine2.6 Vine3.0でも proftpd-1.2.10及び、openssl-0.9.7eのtar.gzで難なく ./configure、
make共、エラー無くできました。
(以下、出力ログ)
==========================================================================
make[1]: 入ります ディレクトリ `/home/xxx/proftpd-1.2.10/modules'
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_core.c
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_xfer.c
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_auth_unix.c
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_auth_file.c
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_auth.c
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_ls.c
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_log.c
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_site.c
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_tls.c
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c mod_cap.c
srcdir=. ./glue.sh mod_core.o mod_xfer.o mod_auth_unix.o mod_auth_file.o mod_auth.o mod_ls.o mod_log.o mod_site.o mod_tls.o mod_cap.o
gcc -DLINUX -I.. -I../include -I/home/xxx/openssl-0.9.7e/include/openssl -O2 -Wall -c module_glue.c
make[1]: 出ます ディレクトリ `/home/xxx/proftpd-1.2.10/modules'
====================================================================================
> 最初は ./configure 〜〜 でもエラーが出ていたのですが、これは
> openssl-0.9.7/include/openssl を /usr/include/へコピーしたら
> なくなりました。
なぜエラーが出るのか不明ですが、コピーがマズいんじゃないでしょうかね。
おやじ様の言うとおり、rpmのopensslをインストールし、
U-mex様言うように、
> > 最初は ./configure 〜〜 でもエラーが出ていたのですが、これは
> > openssl-0.9.7/include/openssl を /usr/include/へコピーしたら
> > なくなりました。
>
> なぜエラーが出るのか不明ですが、コピーがマズいんじゃないでしょうかね。
/usr/include/opensslを削除したらなんのエラーメッセージも出ずに、インストールができました。
ありがとう御座いました。
ただ、SmartFTPでアクセスすると、
Resolving host name 192.168.1.10...
Connecting to (192.168.1.10) -> IP: 192.168.1.10 PORT: 21
Connected to (192.168.1.10) -> Time = 0ms
Socket connected waiting for login sequence.
220 ProFTPD 1.2.10 Server (ProFTPD Default Installation) [192.168.1.10]
AUTH TLS-C
500 AUTH not understood
Cannot login waiting to retry (30s)...
Continue to login attempt 2..
というエラーがでて、ログインできません。
それから、おやじ様が
>但し、opensslが純正品であることが前提ですが?
とおっしゃってましたが、
md5sumで確かめたら、改ざんされていなかったのですが、そういう意味ではないのですか?
> > ただ、SmartFTPでアクセスすると、
> > Resolving host name 192.168.1.10...
> Connecting to (192.168.1.10) -> IP: 192.168.1.10 PORT: 21
> Connected to (192.168.1.10) -> Time = 0ms
> Socket connected waiting for login sequence.
> 220 ProFTPD 1.2.10 Server (ProFTPD Default Installation) [192.168.1.10]
> AUTH TLS-C
> 500 AUTH not understood
> Cannot login waiting to retry (30s)...
> Continue to login attempt 2..
> > というエラーがでて、ログインできません。
ProFTPD-TLSの構築は、やった事無いのでコメントできませんがサーバ証明書の作成は行ないましたか?
> md5sumで確かめたら、改ざんされていなかったのですが、そういう意味ではないのですか?
ここで言う純正品とは、各ディストリビューションのopensslパッケージでの事です。
> ただ、SmartFTPでアクセスすると、
>
> Resolving host name 192.168.1.10...
> Connecting to (192.168.1.10) -> IP: 192.168.1.10 PORT: 21
> Connected to (192.168.1.10) -> Time = 0ms
> Socket connected waiting for login sequence.
> 220 ProFTPD 1.2.10 Server (ProFTPD Default Installation) [192.168.1.10]
> AUTH TLS-C
> 500 AUTH not understood
> Cannot login waiting to retry (30s)...
> Continue to login attempt 2..
>
> というエラーがでて、ログインできません。
これは、サーバ側がTLS対応できていないときのメッセージです。module mod_tlsの設定はできていますか?
証明書の不備ではこのようにはならないはずです。(500エラーではない)
7.3でも、SuSEの新規入れなおしでも何も問題なく動きましたので、何かサーバで設定ができていないと思います。
> それから、おやじ様が
>
> >但し、opensslが純正品であることが前提ですが?
>
> とおっしゃってましたが、
> md5sumで確かめたら、改ざんされていなかったのですが、そういう意味ではないのですか?
そこまでのつもりで言ったのではなく、U-mexさんが言っているとおりです。特にRHのOpensslは特殊なので他のデストリのものでは問題がでると思って確認したまでです。
おやじ様、U-mex様うまくいきました。
opensslを何度もいれていたら、訳が分からなくなってしまったので
OSをもう一回入れなおしました。それでopensslはRPMをインストールしたら、なんの問題もなくうまくいきました。
どうもありがとうございました。
それからまた質問になってしまいますが、
sslを使ったftpはftps(port990)とは違うんですか?
それと、Etherealというのを使ってパケットをキャプチャしてみたんですが、ftp-dataという項目はsslを有効にするとでてこないのですか?
> それからまた質問になってしまいますが、
> sslを使ったftpはftps(port990)とは違うんですか?
Proftpdがサポートしているのはexplicitモードで、21番ポートでAUTH TLSが動作します。それに対して、implicitモードは990番でTLSが走ります。
> それと、Etherealというのを使ってパケットをキャプチャしてみたんですが、ftp-dataという項目はsslを有効にするとでてこないのですか?
Activeモードならでてきます?よ。ftp-dataというのはActiveモード時のサーバがクライアントに張る20番をソースアドレスとするデータコネクションのことですから、SSLとは関係なく(explicitの場合)20番ソースのコネクションでデータのやり取りはされますので、Ethereal上に見えないはずはありません。Passiveで動かしたのではないですか?
> Activeモードならでてきます?よ。ftp-dataというのはActiveモード時のサーバがクライアントに張る20番をソースアドレスとするデータコネクションのことですから、SSLとは関係なく(explicitの場合)20番ソースのコネクションでデータのやり取りはされますので、Ethereal上に見えないはずはありません。Passiveで動かしたのではないですか?
おっしゃるとおり、passiveで動かしてました。なんとなくですが、仕組みが分かってきました。
ありがとうございました。