甩祸 发表于 2018-5-20 15:34:40

Linux常用服务ftp

  ftp有两种工作模式:PORT方式和PASV方式,中文意思为主动模式和被动模式
  主动模式的FTP工作原理:客户端从一个任意的非特权端口N连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
  

  被动模式:当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
  

  主动模式ftp与被动模式FTP优点和缺点:
  主动FTP对FTP服务器的管理和安全很有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
  

  pure-ftpd安装:
  wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2
  解压:tar -jxvf pure-ftpd-1.0.42.tar.bz2
  cd pure-ftpd-1.0.42
  安装参数:./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls
  干净的环境可能会报错:未安装gcc;configure: error: OpenSSL headers not found.
  解决:yum install -y openssl-devel
  编译安装:make ;make install
  cd configuration-file/
  创建目录:mkdir -p /usr/local/pureftpd/etc/
  复制配置文件:cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
  复制执行文件:cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl
  修改执行权限:chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
  更改配置文件:vim /usr/local/pureftpd/etc/pure-ftpd.conf (或者下载文件 http://study.lishiming.net/.pf.c)
  ChrootEveryone yes
  BrokenClientsCompatibility no
  MaxClientsNumber 50
  Daemonize yes
  MaxClientsPerIP 8
  VerboseLog no
  DisplayDotFiles yes
  AnonymousOnly no
  NoAnonymous no
  SyslogFacility ftp
  DontResolve yes
  MaxIdleTime 15
  PureDB /usr/local/pureftpd/etc/pureftpd.pdb
  LimitRecursion 3136 8
  AnonymousCanCreateDirs no
  MaxLoad 4
  AntiWarez yes
  Umask 133:022
  MinUID 100
  AllowUserFXP no
  AllowAnonymousFXP no
  ProhibitDotFilesWrite no
  ProhibitDotFilesRead no
  AutoRename no
  AnonymousCantUpload no
  PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid
  MaxDiskUsage 99
  CustomerProof yes
  

  启动pure-ftpd:cd /usr/local/pureftpd/
  ./sbin/pure-config.pl ./etc/pure-ftpd.conf
  重启可能会麻烦一些:
  killall pure-ftpd
  cd /usr/local/pureftpd/; ./sbin/pure-config.pl ./etc/pure-ftpd.conf
  

  建立账号:Pure-ftpd 使用的账号并非 Linux 系统账号,而是虚拟账号。因为,这样做比较安全。
  mkdir /data/www/
  useradd ftp01

  chown -R ftp01:ftp01 /data/www/

  /usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uftp01 -d /data/www/
  其中,-u 将虚拟用户 ftp_user1 与系统用户 www 关联在一起,也就是说使用 ftp_user1
  账号登陆 ftp 后,会以 www 的身份来读取文件或下载文件。-d 后边的目录为 ftp_user1 账户
  的家目录,这样可以使 ftp_user1 只能访问其家目录/data/www/。
  创建用户数据库文件:(很重要的一步)/usr/local/pureftpd/bin/pure-pw mkdb
  pure-pw 还可以列出当前的 ftp 账号,当然也可以删除某个账号, 我们再创建一个账号:
  /usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uwww -d /tmp
  /usr/local/pureftpd/bin/pure-pw mkdb
  列出当前账号:/usr/local/pureftpd/bin/pure-pw list
  删除账号:/usr/local/pureftpd/bin/pure-pw userdel ftp_user2
  

  连接软件ftp不成功情况:
  (1)出现错误不能连接ftp软件,查看日志错误是:try pure-pw mkdb;
  第一种:可能是你没有创建用户数据库文件,执行命令pure-pw mkdb即可;
  第二种:可能是你的配置文件有错误;(/usr/local/pureftpd/etc/pure-ftpd.conf)
  (2)连接超时,没有提示错误信息,日志上也没有错误提醒;
  这种情况可能就是你服务器的网络问题了。建议修改网络,再重启网络。
  
页: [1]
查看完整版本: Linux常用服务ftp