该文档主要是记录 proftpd 配置 SSL/TSL 的安装部署配置文档
环境
服务器环境
- CentOS 5.8
客户端端软件环境
- lftp-4.6.1
- openssl-1.0.2
服务器端软件环境
- proftpd:【我这边是使用的最新版】
- openssl
服务器端软件安装
安装 proftpd
-
下载最新版的 proftpd
wget https://github.com/proftpd/proftpd/archive/master.zip
-
安装
unzip master cd proftpd-master ./configure --with-modules=mod_tls --prefix=/apps/svr/proftpd make && sudo make install
客户端软件安装
更新 gnutls 版本
sudo yum -y install gnutls*
安装最新版本的 openssl-1.0.2
-
下载 openssl-1.0.2
wget http://www.openssl.org/source/openssl-1.0.2.tar.gz
-
解压编译安装
tar -zxvf openssl-1.0.2.tar.gz cd openssl-1.0.2 ./config make && sudo make install
安装 lftp-4.6.1
-
下载 lftp
wget http://lftp.yar.ru/ftp/lftp-4.6.1.tar.gz
-
解压编译安装
./configure --without-gnutls --with-openssl=/usr/local/ssl make && sudo make install
配置,使用 Proftpd
生成证书
mkdir -p /home/test/proftpd/etc/ftpcert
openssl genrsa 1024 > /home/test/proftpd/etc/ftpcert/host.key
openssl req -new -x509 -nodes -sha1 -days 365 -key host.key > /home/test/proftpd/etc/ftpcert/host.cert2
### 配置 proftpd
配置文件如下,/home/test/proftpd/etc/proftpd.conf
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
Port 21
UseIPv6 off
Umask 022
#日志格式
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"
DefaultTransferMode binary
ServerIdent off
MaxInstances 50
User nobody
Group nobody
DefaultRoot ~
RootLogin off
RequireValidShell off
AllowOverwrite on
#加快 ftp 的连接效率,去掉 DNS反向查询
UseReverseDNS off
IdentLookups off
TransferLog /tmp/logs/ftpd/xferlog
ExtendedLog /tmp/logs/ftpd/access.log WRITE,READ write
ExtendedLog /tmp/logs/ftpd/auth.log AUTH auth
ExtendedLog /tmp/logs/ftpd/paranoid.log ALL default
<Limit SITE_CHMOD>
DenyAll
</Limit>
###匿名用户,全局
<Anonymous ~ftp>
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayChdir .message
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
#### 配置 TLS 部分
<IfModule mod_tls.c>
TLSEngine on
TLSLog /tmp/logs/ftpd/proftpd-tls.log
TLSProtocol SSLv3 TLSv1
TLSRequired on
TLSRSACertificateFile /home/test/proftpd/etc/ftpcert/host.cert
TLSRSACertificateKeyFile /home/test/proftpd/etc/ftpcert/host.key
TLSVerifyClient off
TLSRenegotiate required off
</IfModule>
####对ftp的登录用户做限制
<Limit LOGIN>
AllowUser test
DenyAll
</Limit>
#### 对 FTP 的访问 IP 做限制
<Limit LOGIN>
Allow from 192.168.xx.xx
DenyAll
</Limit>
<Directory />
<Limit ALL>
AllowUser test
DenyAll
</Limit>
</Directory>
proftp 的启动命令是:
-
后台启动命令
sudo /apps/svr/proftpd/sbin/proftpd -c /apps/svr/proftpd/etc/proftpd.conf
-
调试命令
sudo /apps/svr/proftpd/sbin/proftpd -c /apps/svr/proftpd/etc/proftpd.conf -d 10 -n
注:上面的 -n 选项是表示不后台启动,-d 选项是 debug 级别,从 0-10 级别,10 是最高级别
测试
Linux 客户端软件 lftp 测试
lftp -u test 192.168.xx.xx
Password: (这里输入 test 的密码)
lftp apps@192.168.44.105:~> ls
-rw-rw-r-- 1 apps apps 70305 Jun 17 2014 MySQL-python-1.2.3.tar.gz
drwxr-xr-x 19 root root 4096 Jul 25 2013 Python-2.7
-rw-rw-r-- 1 apps apps 256862 Jun 17 2014 setuptools-0.6c11.tar.gz
drwxr-xr-x 15 root root 4096 Jun 20 2014 software
drwxr-xr-x 8 root root 4096 Jul 23 2014 tornado-2.0
windows 客户端软件 FileZilla 测试
- windows 下面安装 FileZilla
- 然后配置 FileZilla 使用 SSL 加密的方式连接服务器,如下图样配置
配置完成后,点击连接按钮,会弹出一个证书,点击信任即可。