ubuntu系统中配置FTP服务

       vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
       vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
       在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等[360百科]

准备

  • 安装ftp服务器。
    目前Linux上使用较多的ftp服务器是vsftpd。所以,我们需要先安装vsftpd软件。在Ubuntu上安装vsftpd,使用的命令是
sudo apt-get update  #不一定非要写这条命令
sudo apt-get install vsftpd 

       我使用的Ubuntu版本为18.10,vsftpd为3.0.3-11版本,个人觉得ubuntu的版本对vsftpd的设置影响不大。

FTP服务器配置

       ftp配置是很有学问的,必须要强调的是如果你的ftp服务无法启动,十有八九就是配置文件的配置错误。
配置参考如下:

#去掉下面语句的注释
write_enable=YES
local_umask=022
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
utf8_filesystem=YES
#将vsftpd修改成ftp
pam_service_name=ftp #ubuntu用户需要更改成ftp
#添加下列语句在vsftpd.conf
allow_writeable_chroot=YES
local_root=/home/xingyu/Documents/ftpdirs  #此处设置一个想让用户访问的主目录
# 下面几句话不是必须的,不过我觉得设置了更好,因为这样可以登录的用户全都在自己可控的范围内。
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.userlist  #文件名是任意的,只要不和etc下的文件重名就行
max_clients=500   #最大客户端连接数
max_per_ip=3    #同一ip的最大连接数

上面的配置文件中,我不是很熟悉,我挑一些我稍微知道的讲。

  • listen=NO       配置文件中说以独立模式运行。不过不太了解,我查看了很多博客,有设置为YES,也有设置为NO的。我没有做改动,不影响后来的登陆与上传。
  • anonymous_enable=NO       拒绝匿名登陆,设置为YES允许匿名登陆,但是还要设置配置文件中的其他参数才能工作。我暂时不想设置匿名登陆,所以没有修改
  • write_enable=YES        设置可以上传文件,这个设置看需要个人需要
  • xferlog_enable=YES       开启日志记录
  • xferlog_file=/var/log/vsftpd.log       设置日志文件路径
  • xferlog_std_format=YES       设置日志格式为标准输出
  • connect_from_port_20=YES       绑定20端口
  • ftpd_banner=Welcome to FTP service.       欢迎语句,在使用shell时可以看到
  • local_umask        新建文件或文件夹时的掩码
  • allow_writeable_chroot        vsftpd 3版本一下当设置了chroot_local_user后需要设置,否则将无法登陆FTP

下面这几个的设置比较重要:

  • chroot_local_user=YES
  • chroot_list_enable=YES
  • chroot_list_file=/etc/vsftpd.chroot_list
           上面的这几个配置实现的功能是:用户被限制在自己的主目录下。用户名单来源于/etc/vsftpd.chroot_list。 个人认为设置一个可以访问主目录的上级目录的用户就可以了,其他用户全部都只能访问规定的主目录。这样的话在/etc/vsftpd.chroot_list 中添加上用户,例如我添加的是ftpuser,那么只有ftpuser可以访问ftpdirs的上级目录Documents(以我自己的为例子),其他用户均不可以。
    具体可以参考:http://blog.csdn.net/bluishglc/article/details/42398811

userlist_enable和userlist_deny的组合效果可以参考下表:

userlist_enable=YESuserlist_enable=NO
userlist_deny=YES1.vsftpd 将会从所给的用户列表中加载用户名字列表
2.使用userlist_file指定的用户列表,这些用户不允许登录FTP
1.vsftpd 将不会从所给的用户列表中加载用户名字列表
2.userlist_deny和userlist_file设置无效
userlist_deny=NO1.vsftpd 将会从所给的用户列表中加载用户名字列表
2.使用userlist_file指定的用户列表,只有这些用户允许登录FTP
1.vsftpd 将不会从所给的用户列表中加载用户名字列表
2.userlist_deny和userlist_file设置无效

一个重要的配置

pam_service_name=ftp原配置中为vsftpd,ubuntu用户需要更改成ftp

关于编码:

utf8_filesystem=YES
不知道这项有没有起作用,上传的文件不乱码,用浏览器打开是乱码(浏览器编码问题?),使用windows自带的文件资源管理器是没有乱码的,使用filezila乱码。

创建用户:
创建用户
       因为我想创建一个只用于登陆FTP的用户,所以我创建一个FTP用户ftpuser,ftpuser的主目录为Documents下面的ftpdirs,并设置为不具有登陆系统的权限,ftpuser所属的用户组为默认的ftpuser组,-M代表不自动创建家目录。
创建好用户之后最好立刻就设置好密码,否则后期更改密码必须切换到root用户(su - root)才可以修改密码
修改密码的命令为"sudo passwd 想要修改密码的用户名",例如sudo passwd ftpuser

后期再创建的FTP用户我就会设置为全部属于ftpuser组,例如
创建用户ftpuser1和ftpuser2
       我添加两个用户ftpuser1和ftpuser2,并指定两个用户所属的组为ftpuser。

重要的一点:

新建/etc/vsftpd.chroot_list将ftpuser放进去
启动vsftpd或者重启

重启或是启动vsftpd服务的命令有如下三种方式

命令方法1方法2方法3
启动vsftpdsudo service vsftpd startsudo systemctl start vsftpdsudo /etc/init.d/vsftpd start
重启vsftpdsudo service vsftpd restartsudo systemctl restart vsftpdsudo /etc/init.d/vsftpd restart
停止vsftpdsudo service vsftpd stopsudo systemctl stop vsftpdsudo /etc/init.d/vsftpd stop

尝试访问FTP

  1. Ubuntu中访问
    ubunru中访问ftp
  2. windows访问ftp
    使用windows浏览器访问FTP服务器界面我觉得太low了,所以我使用了Xftp6来访问FTP服务器
    打开Xftp后,新建会话如下图所示。
    xftp登录ftp服务器
    登录成功后显示如下界面
    登录成功
    左边就是windows中文件了,右边是FTP服务器中的目录,上传文件直接拖拽文件就可以啦。
    文中都是我个人的理解,如有错误的地方欢迎下方评论告诉我,我及时更正,大家共同进步
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值