Pureftpd问题集之通过SSH进行FTP


Pureftpd是一款快速,高质量,功能齐全的ftp服务器,最重要的是可以支持设置客户端默认编码,Pureftpd非常强大非常好用,但是要加密所有的连接数据,我们就要用到SSH来运行Pure-FTP

Q:怎么通过SSH运行Pure-FTP?我想加密所有的连接数据(包括密码)

A:通过SSH运行FTP比通过SSL运行FTP要好(后者在安全的防火墙内无法使用),也比SFTP好(较慢,但只使用一个端口)

使用Windows的客户可以使用Van Dyke's SecureFX客户端--一个极好的客户端--来 通过SSH访问FTP.这不需要任何特殊的知识:只要在为FTP服务器建立账户时,告诉客 户去在"协议"列表框内检查"FTP-over-SSH2".

至于服务器一边,下面是如何管理通过SSH进行FTP的账户

1)在/etc.shell文件中添加/usr/bin/false (在某些系统内,可能是/bin/false)

2)要建立通过SSH进行FTP的账户,建立一个以/dev/null为主目录、/usr/bin/false 为shell的系统账户。不需要专用的UID:每个通过SSH进行FTP的账户都可以重复使 用相同的uid

3)为用户创建虚拟用户(使用PureDB,SQL或者LDAP)。给虚拟用户一个真实的主 目录,只允许从127.0.0.1来的连接(所有的通过SSH进行FTP的会话都来自本地主机,这是由于SSH管道的原因)

没有主目录(/dev/null),没有有效shell的用户无法得到shell,不能在服务器上运行任何命令。但他们可以有通过SSH进行FTP的会话。

下面是一些例子(Linux/OpenBSD/ISOS命令,如有必要,可以改变)

1)创建一个常规的FTP账户:

  1. pure-pw useradd customer1 -m -d /home/customer1 -u ftpuser  

2)建立一个通过SSH进行FTP的账户(拒绝非加密的会话)

  1. useradd -u ftpuser -g ftpgroup -d /dev/null -s /usr/bin/false customer2  
  2.  
  3. pure-pw useradd customer2 -m -d /home/customer2 -u ftpuser -r 127.0.0.1/32  
  4.  

3)建立一个账户.该账户在内网(192.168.1.x)可以使用常规的(非加密的)FTP,但在 外网(internet)必须使用SSH连接FTP.

  1. useradd -u ftpuser -g ftpgroup -d /dev/null -s /usr/bin/false customer3  
  2.  
  3. pure-pw useradd customer3 -m -d /home/customer3 -u ftpuser \  
  4.  
  5. -r 127.0.0.1/32,192.168.1.0/24  

通过分析和阅读全文,我们怎么处理加密所有的连接数据,怎么通过SSH运行Pure-FTP!希望本文对大家有所帮助!

  • PureFTPd 问答搜集大全
  • Pureftpd问题集之防火墙篇
  • PureFTPd 问答集中文版
  • 用shell用户或虚拟用户登录pureftpd
  • Pureftpd功能之系统帐号分离
  • Pureftpd的权限控制
  • 用pureftpd在slackware 10.1下架设带web管理的ftp服务器
  • Pureftpd之MYSQL数据库所使用的函数

相关内容