ubuntu14.04 server ftp 服务安装配置详解

JohRoth 9年前

来自: http://blog.csdn.net/ubuntu64fan/article/details/50596122


ubuntu14.04 server ftp 服务安装配置详解

cheungmine

2016-01-27

http://wiki.ubuntu.com.cn/Vsftpd

0 安装好vsftpd服务

vsftpd - Very Secure FTP Daemon

 

安装
$ sudo apt-get install vsftpd
关闭,启动
$ sudo service vsftpd stop|start|restart
实际目录在: /srv/ftp/

访问URL: ftp://yourhost

1 下载需要的软件包

$ wget http://ftp.us.debian.org/debian/pool/main/d/db4.8/libdb4.8_4.8.30-2_amd64.deb  $ wget http://cz.archive.ubuntu.com/ubuntu/pool/universe/d/db4.8/db4.8-util_4.8.30-11ubuntu1_amd64.deb

2 安装软件包

$ sudo dpkg -i libdb4.8_4.8.30-2_amd64.deb  $ sudo dpkg -i db4.8-util_4.8.30-11ubuntu1_amd64.deb

3 创建虚拟用户文件

$ vi ~/ftpvusers.txt
cab  123456  sedan  234567  limo  345678

4 数据库文件导入db

$ sudo mkdir /etc/vsftpd.d  $ sudo rm -f /etc/vsftpd.d/vsftpd_login.db  $ sudo db4.8_load -T -t hash -f ~/ftpvusers.txt /etc/vsftpd.d/vsftpd_login.db

将数据库文件设置权限为600,并不需要被其他用户读,修改:
$ sudo chmod 600 /etc/vsftpd.d/vsftpd_login.db

5 创建链接

$ sudo ln -s /lib/x86_64-linux-gnu/security/pam_userdb.so /lib/security/pam_userdb.so

6 编辑PAM配置文件

$ sudo vi /etc/pam.d/vsftpd_login
auth required /lib/security/pam_userdb.so db=/etc/vsftpd.d/vsftpd_login  account required /lib/security/pam_userdb.so db=/etc/vsftpd.d/vsftpd_login
可见,/etc/vsftpd.d/vsftpd_login 指向了 /etc/vsftpd.d/vsftpd_login.db

ftp的虚拟用户将采用PAM进行验证,这是通过: /etc/vsftpd.conf 文件中的语句
pam_service_name=vsftpd
来启用的,稍后我们要配置: /etc/vsftpd.conf,使其指向
pam_service_name=vsftpd_login

7 为虚拟用户创建本地系统用户

相当于就是虚拟用户借用本地用户的名去访问ftp服务器. 就是把一个本地用户和
一个目录进行绑定,也就是说这个用户默认访问的地方就是这个绑定的目录.

新建一个系统用户vsftpd,用户主目录为/home/vsftpd, 用户登录终端
设为/bin/false(即使之不能登录系统)
#### 创建ftp读写访问用户目录(vsftpd访问权限)  $ sudo mkdir -p /home/vsftpd/limo  $ sudo useradd vsftpd -d /home/vsftpd -s /bin/false  $ sudo chown -R vsftpd:vsftpd /home/vsftpd  $ sudo chgrp -R vsftpd /home/vsftpd  $ sudo chmod -R 700 /home/vsftpd  #### 创建ftp只读访问用户目录(root访问权限)  $ sudo mkdir /home/vsftpd/{cab,sedan}

8 修改vsftpd配置文件

/etc/vsftpd.conf

先备份
# cp /etc/vsftpd.conf /etc/vsftpd.conf.bac
# vi /etc/vsftpd.conf
确保以下配置:
------------------------------------------------------------------------

listen=YES                        #以standalone模式运行vsftpd  #listen_ipv6=YES                  #注释掉这个!! 解决错误: 500 OOPS: run two copies of vsftpd for IPv4 and IPv6    anonymous_enable=NO               #禁止匿名访问  dirmessage_enable=YES             #显示目录下的message消息    xferlog_enable=YES                #启用日志  xferlog_file=/var/log/vsftpd.log  #设定日志路径  xferlog_std_format=YES            #使用标准日志格式    chroot_local_user=YES             #限定用户在家目录  guest_enable=YES                  #启用虚拟用户  guest_username=vsftpd             #将虚拟用户转换成本地用户vsftpd    user_config_dir=/etc/vsftpd.d     #虚拟用户的配置文件存放目录  pam_service_name=vsftpd_login     #指定认定文件=> /etc/pam.d/vsftpd_login    local_enable=YES  secure_chroot_dir=/var/run/vsftpd/empty    #此句必要!!  allow_writeable_chroot=YES        # 解决错误: 500 OOPS: vsftpd: refusing to run with writable root inside chroot
------------------------------------------------------------------------


9 配置虚拟用户配置文件

虚拟用户的配置文件存放目录在/etc/vsftpd.conf的user_config_dir指定,因此要在
/etc/vsftpd.d目录下创建用户配置文件:cab, sedan, limo

# vi /etc/vsftpd.d/cab
local_root=/home/vsftpd/cab

# vi /etc/vsftpd.d/sedan
local_root=/home/vsftpd/sedan

最后一个是特殊,可以上传文件的用户:
# vi /etc/vsftpd.d/limo
local_root=/home/vsftpd/limo     # 指定家目录  write_enable=YES                 # 开启全局上传(写)权限  anon_world_readable_only=NO      # 关闭匿名用户只读(下载)权限  anon_upload_enable=YES           # 开启匿名用户上传权限  anon_mkdir_write_enable=YES      # 开启匿名用户建目录权限  anon_other_write_enable=YES      # 开启匿名用户除上传和建目录之外的写权限(如重命名,删除等)

10 服务启用与停止

$ sudo killall vsftpd  $ sudo /usr/sbin/vsftpd /etc/vsftpd.conf &  或者  $ sudo service vsftpd stop  $ sudo service vsftpd start|restart

浏览器访问:
ftp://cab:123456@yourhost
ftp://sedan:234567@yourhost
ftp://limo:345678@yourhost

FTP命令行:
$ ftp cab:123456@yourhost
$ ftp sedan:234567@yourhost
$ ftp limo:345678@yourhost

FTP命令参考:
http://www.cnblogs.com/xmphoenix/archive/2011/03/11/1981831.html

当然也可以用lftp访问。需要安装lftp
LFTP命令参考:
http://blog.csdn.net/fjb2080/article/details/7758486