使用非默认模块 mod_sftp 安装 ProFTPD

使用非默认模块 mod_sftp 安装 ProFTPD

ProFTPD 模块 mod_sftp

我想建立一个带有 sftp 和虚拟账户的文件服务器,所以我使用 ProFTPD。

系统信息:red hat enterprise linux 6.8-x86_64

proftpd 信息:proftpd-1.3.6

OpenSSL 1.0.1e-fips 2013 年 2 月 11 日

错误:openssl/rand.h:没有此文件或目录

我做什么:

mkdir /usr/local/proftpd
mkdir /etc/proftpd
cd /usr/local/src
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.6.tar.gz
tar -zxvf proftpd-1.3.6.tar.gz 
cd /usr/local/src/proftpd-1.3.6    
./configure --prefix=/usr/local/proftpd --sysconfdir=/etc/proftpd --enable-openssl --with-modules=mod_sftp
make

错误信息:

--------------
Build Summary
--------------
Building the following static modules:
  mod_ident
  mod_quotatab
  mod_quotatab_file
  mod_sftp
  mod_cap

--------------
[root@slave1 proftpd-1.3.6]# make && make install
echo \#define BUILD_STAMP \"`date +"%a %b %e %Y %H:%M:%S %Z"`\" > include/buildstamp.h
cd lib/ && make lib
make[1]: Entering directory `/usr/local/src/proftpd-1.3.6/lib'
gcc -DHAVE_CONFIG_H  -DLINUX  -I.. -I../include  -g2 -O2 -Wall -fno-omit-
........
gcc -DHAVE_CONFIG_H  -DLINUX  -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c table.c
table.c:30:26: error: openssl/rand.h: No such file or directory
table.c: In function ‘tab_get_seed’:
table.c:366: warning: implicit declaration of function ‘RAND_bytes’
make[1]: *** [table.o] Error 1
make[1]: Leaving directory `/usr/local/src/proftpd-1.3.6/src'
make: *** [src] Error 2

安装

The mod_sftp module is distributed with ProFTPD. For including mod_sftp as a staticly linked module, use:
  $ ./configure --enable-openssl --with-modules=mod_sftp ...
Alternatively, mod_sftp can be built as a DSO module:
  $ ./configure --enable-dso --enable-openssl --with-shared=mod_sftp ...
Then follow the usual steps:
  $ make
  $ make install
Note that if the libsodium library is available, mod_sftp will auto-detect this, which enables other supported algorithms. You can ensure that mod_sftp compiles with the libsodium library like so:
  $ ./configure --enable-openssl --with-modules=mod_sftp ... \
    --with-includes=/path/to/libsodium/include \
    --with-libraries=/path/to/libsodium/lib

答案1

ProFTPDmod_sftp模块需要 OpenSSL 库;您遇到的这个构建错误:

error: openssl/rand.h: No such file or directory

表示您的系统上未安装 OpenSSL。

在运行 ProFTPDconfigure脚本之前,您需要确保 OpenSSL发展安装库后,使用例如

$ yum install openssl-dev

然后您可以再次运行 ProFTPD 的构建命令:

$ ./configure ...
$ make clean
$ make
$ make install

稍后,如果您发现想要使用mod_sqlmod_sql_mysql模块,那么您将需要安装 MySQL 库:

$ yum install mysql-devel mysql-lib

你不是必需的提供 MySQL 标头的位置(用于--with-includesProFTPDconfigure脚本);假设默认安装,ProFTPD 构建系统通常足够智能地找到它们。

综上所述,那么:

$ mkdir /usr/local/proftpd
$ mkdir /etc/proftpd
$ cd /usr/local/src
$ yum install mysql-devel mysql-lib openssl-dev
$ wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.6.tar.gz
$ tar -zxvf proftpd-1.3.6.tar.gz 
$ cd /usr/local/src/proftpd-1.3.6    
$ ./configure --prefix=/usr/local/proftpd --sysconfdir=/etc/proftpd --enable-openssl --with-modules=mod_sftp:mod_sql:mod_sql_mysql
$ make
$ make install

希望这可以帮助!

相关内容