最新公告
  • 开始等待备案新域名sdnvv.com,此后是风是雨都不放弃你!2020.3.10
  • 永久VIP只需688即可开通,全站资源随便下2020.2.25
  • 欢迎光临君耀网络,我们已开放QQ和微博注册登录了2020.2.25
星空下的樱花

Ubuntu18.04版本FTP服务器非匿名登录搭建详细教程

作者: 星空下的樱花 发布时间: 2019-12-30 文章热度: 374

一、安装 vsftpd

sudo apt-get update /*更新软件源,可有可无,当安装软件时出现错误,再更新。*/

sudo apt-get install vsftpd      /*联网安装*/

sudo apt install vsftpd     /*本地安装*/、

二、修改 ftp 的配置文件:

sudo vim /etc/vsftpd.conf     没有安装vim编辑器需要安装。

修改配置内容如下,红色部分为改动内容:注意:配置文件中#号表示注释行,不生效,需要去除#才生效等号(=)前后不能加任何空格字符 

listen=NO

listen_ipv6=YES

# Allow anonymous FTP? (Disabled by default).

anonymous_enable=NO

# Uncomment this to allow local users to log in.

local_enable=YES

# Uncomment this to enable any form of FTP write command.

write_enable=YES

# Default umask for local users is 077. You may wish to change this to 022,

# if your users expect that (022 is used by most other ftpd’s)

local_umask=022

# Activate directory messages – messages given to remote users when they

# go into a certain directory.

dirmessage_enable=YES

#

# If enabled, vsftpd will display directory listings with the time

# in your local time zone. The default is to display GMT. The

# times returned by the MDTM FTP command are also affected by this

# option.

use_localtime=YES

# Activate logging of uploads/downloads.

xferlog_enable=YES

#

# Make sure PORT transfer connections originate from port 20 (ftp-data).

connect_from_port_20=YES

# You may override where the log file goes if you like. The default is shown

# below.

xferlog_file=/var/log/vsftpd.log

#

# If you want, you can have your log file in standard ftpd xferlog format.

# Note that the default log file location is /var/log/xferlog in this case.

xferlog_std_format=YES

# You may fully customise the login banner string:

ftpd_banner=Welcome to FTP service.

# You may specify an explicit list of local users to chroot() to their home

# directory. If chroot_local_user is YES, then this list becomes a list of

# users to NOT chroot().

# (Warning! chroot’ing can be very dangerous. If using chroot, make sure that

# the user does not have write access to the top level directory within the

# chroot)

chroot_local_user=YES

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd.chroot_list 

# This option should be the name of a directory which is empty. Also, the

# directory should not be writable by the ftp user. This directory is used

# as a secure chroot() jail at times vsftpd does not require filesystem

# access.

secure_chroot_dir=/var/run/vsftpd/empty

#

# This string is the name of the PAM service vsftpd will use.

# pam_service_name=vsftpd

pam_service_name=ftp

# This option specifies the location of the RSA certificate to use for SSL

# encrypted connections.

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

ssl_enable=NO

#

# Uncomment this to indicate that vsftpd use a utf8 filesystem.

utf8_filesystem=YES

 

上面的配置中比较重要的配置包括:

  • listen=NO,设置服务器监听,很多教程设置的是 YES,但 Ubuntu16.04 设置成 YES,登陆直接被拒绝,所以设置为 NO。
  • anonymous_enable=NO 拒绝匿名登陆
  • 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 时可以看到
  • chroot_local_user=YES #是否将所有用户限制在主目录,YES 为启用 NO 禁用.(该项

默认值是 NO,即在安装 vsftpd 后不做配置的话,ftp 用户是可以向上切换到要目录之外的)

  • chroot_list_enable=YES #是否启动限制用户的名单 YES为启用 NO禁用(包括注释

掉也为禁用)

  • pam_service_name=ftp #原配置中为 vsftpd,ubuntu 用户需要更改成 ftp
  • chroot_list_file=/etc/vsftpd.chroot_list #是否限制在主目录下的用户名单,

三、创建 FTP 用户

方法一:mkdir /home/bcz     /*在/home目录下创建了bcz目录*/

sudo groupadd ftp           /*创建ftp组*/

sudo useradd bcz -g ftp -d /home/bcz    /*创建名为bcz的用户的同时并将其加入到ftp组中,另外指定了用户的家目录*/

 

方法二useradd -m -d /home/bcz -s /bin/bash bcz /*-m创建该用户文件夹,-d指定该用户文件夹,手工指定用户的shell。默认是/bin/bash*/

sudo groupadd ftp           /*创建ftp组*/

sudo usermod -g ftp bcz    /*修改bcz用户的组*/

sudo passwd bcz          /*修改bcz用户的密码*/

sudo mkdir /home/bcz/pub      /*在其用户的家目录下创建pub目录*/

sudo chmod 777 -R /home/bcz/pub 新建一个 pub 目录用于存放文件,并且赋予全部访问权限

sudo usermod -s /sbin/nologin bcz   限制用户 bcz 只能通过 ftp 登陆,而不能直接登陆服务器。

四、新建/etc/allowed_users 文件

sudo vim /etc/allowed_users  /*使用vim编辑文件,若此文件不存在,则进行创建*/

注意:将bcz用户加入其中,若还想让其他用户登录只需将用户加入其中即可,每行放置一个用户,顶格输入用户名且用户名后不要加英文符号“,”否则无法登录。

五、新建/etc/vsftpd.chroot_list

sudo vim /etc/vsftpd.chroot_list

注意:将bcz用户加入其中,若还想让其他用户登录只需将用户加入其中即可,每行放置一个用户,顶格输入用户名且用户名后不要加英文符号“,”否则无法登录。

六、重启 FTP

sudo systemctl start vsftpd 或者 sudo service vsftpd start

sudo systemctl restart vsftpd 或者 sudo service vsftpd restart

七、访问 FTP 服务器

(1)Windows 下访问 FTP 服务器

在 windows 的文件资源管理器或者在浏览器中打开 ftp://your_server_ip 输入账号密码,即可用登陆。浏览器中只能查看,文件操作如新建等需要在 window 的文件资源管理器中或者 filezila 中进行。

(2)Linux 下访问 FTP 服务器

登录:Linux 下上传和下载文件常用命令示例

a)在 linux 命令行下输入:ftp://your_server_ip

b)服务器询问你用户名和口令,分别输入用户名和相应密码,待认证通过即可。

c)Linux 下上传和下载文件常用命令示例

FTP>ascii: 设定以 ASCII 方式传送文件(缺省值)

FTP>bell: 每完成一次文件传送,报警提示.

FTP>binary: 设定以二进制方式传送文件.

FTP>bye: 终止主机 FTP 进程,并退出 FTP 管理方式.

FTP>case: 当为 ON 时,用 MGET 命令拷贝的文件名到本地机器中,全部转换为小写字母.

FTP>cd: 同 UNIX 的 CD 命令.

FTP>cdup: 返回上一级目录.

FTP>chmod: 改变远端主机的文件权限.

FTP>close: 终止远端的 FTP 进程,返回到 FTP 命令状态, 所有的宏定义都被删除.

FTP>delete: 删除远端主机中的文件.

FTP>dir [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件.

FTP>get [remote-file] [local-file] 从远端主机中传送至本地主机中.

FTP>help [command] 输出命令的解释.

FTP>lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的 HOME 目录.FTP>ls [remote-directory] [local-file] 同 DIR.

FTP>macdef: 定义宏命令.

FTP>mdelete [remote-files] 删除一批文件.

FTP>mget [remote-files] 从远端主机接收一批文件至本地主机.

FTP>mkdir directory-name 在远端主机中建立目录.

FTP>mput local-files 将本地主机中一批文件传送至远端主机.

FTP>open host [port] 重新建立一个新的连接.

FTP>prompt: 交互提示模式.

FTP>put local-file [remote-file] 将本地一个文件传送至远端主机中.

FTP>pwd: 列出当前远端主机目录.

FTP>quit: 同 BYE.

FTP>recv remote-file [local-file] 同 GET.

FTP>rename [from] [to] 改变远端主机中的文件名.

FTP>rmdir directory-name 删除远端主机中的目录.

FTP>send local-file [remote-file] 同 PUT.

FTP>status: 显示当前 FTP 的状态.

FTP>system: 显示远端主机系统类型.

FTP>user user-name [password] [account] 重新以别的用户名登录远端主机.

FTP>? [command]: 同 HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显

示全部命令的列表。

FTP>! 从 ftp 子系统退出到外壳。注意:如果要在 FTP 下执行 Shell 命令,可以在 Shell 下加!

例如:将/home/bcz 目录下的 hello.txt 上传到 FTP

先将 hello.txt 权限改为 777,登录 ftp 后使用 put 命令即可

FTP> put /home/bcz/hello.txt

1、若侵权,请提供相关必要证明,否则不予回复!
2、若无特殊注明,本文皆为作者原创,商业转载请联系作者授权,非商业转载请注明出处。
3、本站所发布的资源仅用于交流、学习!商业源码若无授权请勿使用,违者所造成的后果与本站无关!

4、付费类资源一经购买概不退款,且不提供任何的安装服务,请三思而行,毕竟我也很忙!

5、本站资源一类的交易都秉承互相尊重及其自愿原则,购买与否皆在与你,请自重!
君耀网络科技工作室 » Ubuntu18.04版本FTP服务器非匿名登录搭建详细教程