ubuntu16.04下安装FTP

ubuntu16.04下安装FTP


一、vsftpd

1. 安装

sudo apt-get install vsftpd

安装完成后系统默认自动启动vsftpd服务

2. 运行

  • 启动ftpd服务
sudo service vsftpd start
  • 停止ftpd服务
sudo service vsftpd stop
  • 重启ftpd服务
sudo service vsftpd restart
  • 查看21号端口是否打开
sudo netstat -npltu | grep 21
tcp    0   0 0.0.0.0:21     0.0.0.0:*     LISTEN      13072/vsftpd  
  • 查看当前ftpd运行状态
sudo service vsftpd status

二、/etc/vsftpd.conf 相关配置

1. 基本配置项

# 设置为YES时vsftpd以独立运行方式启动,设置为NO时以xinetd方式启动
#(xinetd是管理守护进程的,将服务集中管理,可以减少大量服务的资源消耗)
listen=YES

# 同上,如果支持ipv6网络则有效
listen_ipv6=NO

# 是否支持匿名用户访问
anonymous_enable=NO

# 是否支持本地用户访问
local_enable=YES

# 是否开放本地用户写权限,即是否允许上传
write_enable=YES

# 本地用户上传文件的权限掩码
local_umask=022

# 是否允许匿名用户上传文件
#anon_upload_enable=YES

# 是否允许匿名用户创建目录
#anon_mkdir_write_enable=YES

# 用户进入目录时是否显示message_file指定的文件内容(需要添加message_file配置项)
#dirmessage_enable=YES

# 强制ftp数据传输使用20端口,默认YES
connect_from_port_20=YES

# 登陆后显示的信息(欢迎信息)
ftpd_banner=Horizon FTP.

# 为YES时,禁止所有用户访问上级目录,只能访问各自的家目录
chroot_local_user=YES

# 如果禁止所有用户访问上级目录,即chroot_local_user=YES,则该项需配置为YES
# 如果没有配置该项,则要求ftp根目录权限不可写,否则登录时报:500 OOPS错误
# vsftp2.3.5之后版本,该配置项需要手动添加
allow_writeable_chroot=YES

# 和前面同名配置项一样
chroot_local_user=YES

# 设置chroot_list_file是否有效
chroot_list_enable=YES

# 当chroot_list_enable=YES时,该文件生效,该文件需要手动添加,存放用户列表
# 如果所有用户被限制只能访问家目录,禁止访问上级目录(即chroot_local_user=YES)
# 那么该文件内的用户为特权用户,可以不被限制地访问家目录之上的目录
# 反之,如果所有用户都不被限制,都可以访问上级目录,即(chroot_local_user=NO)
# 则该文件内部的用户为被限制的用户,只能访问各自家目录,禁止访问上级目录
chroot_list_file=/etc/vsftpd.chroot_list

# 设置vsftpd使用utf8编码的文件系统
utf8_filesystem=YES

以上列出的只是部分配置项,没列出的配置项保持默认即可

2. 相关文件

  • /etc/ftpusers 文件
    该文件内的用户一律禁止ftp连接,默认列表包括了root, daemon, nobody等。需要禁止某个用户,把用户名添加进来即可。

  • userlist_file 文件
    该文件需手动创建和指定,一般设置成/etc/vsftpd.user_list,和以下三个配置项相关:

# 是否使userlist_file配置的文件生效
userlist_enable=YES

# 设置为YES时,userlist_file指定文件内的用户被禁止连接,类似于ftpusers
# 设置为NO时,只允许userlist_file指定文件内的用户连接,限制其他一切用户
userlist_deny=YES

# 文件名和路径可自由指定
userlist_file=/etc/vsftpd.user_list

# 新版vsftpd配置文件默认没有这三个配置项,要手动添加,个人认为一般不需要添加
# 需要限制连接使用/etc/ftpusers文件即可
  • chroot_list 文件
    该文件需要手动创建和指定,文件名和路径可自由指定,相关配置项有chroot_local_user、chroot_list_enable和chroot_list_file,具体配置相关参考上面配置文件注释说明。

三、运行模式和访问控制

1. 运行模式

  • stand alone
    stand alone指的是一直运行vsftpd,占用资源,提供ftp服务,默认运行就是这种方式
sudo service vsftpd start
  • super daemon
    super daemon指的是有需要时由xinetd启动vsftpd服务。
    需要修改 vsftpd.conf 配置文件
    listen=NO

这里若不改成NO,会出现下列错误

500 OOPS: could not bind listening IPv4 socket

安装xinetd

sudo apt-get install xinetd
sudo vi /etc/xinetd.conf
service ftp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/vsftpd
        log_on_success          += DURATION USERID
        log_on_failure          += USERID
        nice                    = 10
        disable                 = no
}

停止vsftpd,启动xinetd

sudo service vsftpd stop
sudo service xinetd start

查看端口

$ sudo netstat -npltu | grep 21
tcp     0      0 0.0.0.0:21     0.0.0.0:*      LISTEN      16787/xinetd  

2. 访问控制

建议参考:Vsftpd-Ubuntu中文
其中第10、11部分和访问控制相关

猜你喜欢

转载自blog.csdn.net/oaix101125/article/details/74454826
今日推荐