pureftp部署优化

也许你对FTP不陌生,但是你是否了解FTP到底是个什么玩意? FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为 “文传协议” 用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。

这个软件比vsftp配置起来更加灵活和安全。

安装pure-ftpd

1. 下载软件

pure-ftpd 官网是 http://www.pureftpd.org

[root@localhost ~]# cd /usr/local/src/ [root@localhost src]#  wget http://down.anxia.com/pure-ftpd-1.0.42.tar.gz

2. 安装pure-ftpd

[root@localhost src]# tar zxvf pure-ftpd-1.0.42.tar.gz [root@localhost src]#  cd pure-ftpd-1.0.42 [root@localhost pure-ftpd-1.0.42]# ./configure \ --prefix=/usr/local/pureftpd \ --without-inetd \ --with-altlog \ --with-puredb \ --with-throttling \ --with-peruserlimits  \ --with-tls [root@localhost pure-ftpd-1.0.42]# make && make install

配置pure-ftpd

1. 修改配置文件

pure-ftpd 编译安装很快就完成了,而且极少有出现错误的时候,下面就该配置它了:

[root@localhost pure-ftpd-1.0.42]# cd configuration-file [root@localhost pure-ftpd-1.0.42]# mkdir -p /usr/local/pureftpd/etc/ [root@localhost configuration-file]# cp pure-ftpd.conf    /usr/local/pureftpd/etc/pure-ftpd.conf [root@localhost configuration-file]# cp pure-config.pl    /usr/local/pureftpd/sbin/pure-config.pl [root@localhost configuration-file]# chmod 755    /usr/local/pureftpd/sbin/pure-config.pl

课堂视频操作步骤:

[root@localhost configuration-file]# mkdir /tmp/ftp    (创建测试目录)

[root@localhost configuration-file]# tail /etc/passwd  (查看系统用户)

dbus:x:81:81:System message bus:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin

saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

user3:x:500:500::/home/user3:/bin/bash

[root@localhost configuration-file]# chown -R user3 /tmp/ftp (映射user3)

[root@localhost configuration-file]# /usr/local/pureftpd/bin/pure-pw useradd ftpuser1 -uuser3 -d /tcp/ftp/  (添加虚拟用户,ftpuser1登录http服务的用户;user3是系统用户)

password:

Enter it again:

[root@localhost configuration-file]# /usr/local/pureftpd/bin/pure-pw mkdb   (创建生成密码库文件)

启动FTPD服务

[root@localhost configuration-file]#/usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf

Running: /usr/local/pureftpd/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb -L3136:8 -m4 -s -U133:022 -u100 -g/usr/local/pureftpd/var/run/pure-ftpd.pid -k99 -Z

登录ftp

[root@localhost ~]# ps aux |grep pure    (查看进程)

root      1717  0.0  0.0   8984   588 ?        Ss   17:29   0:00 pure-ftpd (SERVER)                                                                                                                                                                                                                

root      1723  0.0  0.0   5980   744 pts/0    S+   17:42   0:00 grep pure

[root@localhost ~]# netstat -lnp  (查看监听端口)

由于查看内容太多,显示太乱,所以需停掉rpcbind和nfs

[root@localhost ~]# /etc/init.d/rpcbind stop

停止 rpcbind:                                                 [确定]

[root@localhost ~]# /etc/init.d/nfs stop

关闭 NFS 守护进程:                                        [确定]

关闭 NFS mountd:                                         [确定]

关闭 NFS 服务:                                               [确定]

再吃执行以下命令:

[root@localhost ~]# !net  (重复执行上一条,以net开头的命令:netstat -lnp)

pureftp部署优化_第1张图片

查看是否有 lftp命令:

[root@localhost ~]# lftp

-bash: lftp: command not found

如果现实没有请安装:

[root@localhost ~]# yum install -y lftp

[root@localhost ~]# lftp [email protected]

口令:   (输入密码)

lftp [email protected]:~> ls

原笔记:

在启动pure-ftpd之前需要先修改配置文件,配置文件为/usr/local/pureftpd/etc/pure-ftpd.conf, 你可以打开看一下,里面内容很多,如果英文好,可以好好研究一番,下面是阿铭的配置文件,如果你嫌麻烦,直接拷贝过去即可:

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

2. 启动pure-ftpd

[root@localhost ~]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf

如果是启动成功,会显示一行长长的以Running开头的信息,否则那就是错误信息,如果你解决不了,请到论坛(http://www.aminglinux.com/bbs/forum-40-1.html)获取帮助吧。

3. 建立账号

[root@localhost ~]# mkdir /data/www/ [root@localhost ~]# useradd www [root@localhost ~]# chown -R www:www /data/www/ [root@localhost ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user1  -uwww -d /data/www/ Password: Enter it again:

其中,-u将虚拟用户ftp_user1与系统用户www关联在一起,也就是说使用ftp_user1账号登陆ftp后,会以www的身份来读取文件或下载文件。-d 后边的目录为ftp_user1账户的家目录,这样可以使ftp_user1只能访问其家目录/data/www/. 到这里还未完成,还有最关键的一步,就是创建用户信息数据库文件:

[root@localhost ~]#  /usr/local/pureftpd/bin/pure-pw mkdb

pure-pw还可以列出当前的ftp账号,当然也可以删除某个账号, 我们再创建一个账号:

[root@localhost ~]#  /usr/local/pureftpd/bin/pure-pw  useradd ftp_user2 -uwww -d /tmp [root@localhost ~]#  /usr/local/pureftpd/bin/pure-pw mkdb

列出当前账号:

[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw list

删除账号的命令为:

[root@localhost ~]#  /usr/local/pureftpd/bin/pure-pw  userdel ftp_user2

测试pure-ftpd

测试需要使用的工具叫做lftp, 先安装一下它:

[root@localhost ~]# yum install -y lftp

测试:

[root@localhost ~]# touch /data/www/123.txt [root@localhost ~]# lftp [email protected] 口令: lftp [email protected]:~> ls drwxr-xr-x    2 514        www              4096 Jun 12 11:14 . drwxr-xr-x    2 514        www              4096 Jun 12 11:14 .. -rw-r--r--    1 514        www                 0 Jun 12 11:14 123.txt

登陆后,使用 ls 命令可以列出当前目录都有什么文件。