CentOS7.4中安装vsftp服务器

参考:

https://www.jianshu.com/p/05dc6455b513

安装:

shell> vsftpd -v
shell> yum -y install vsftpd

配置

文件在/etc/vsftp/vsftp.conf

如下:设置成passive模式

# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
#anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
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
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
# When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=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
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/xferlog
#
# 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 change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode. The vsftpd.conf(5) man page explains
# the behaviour when these options are disabled.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# 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
#allow_writeable_chroot=YES
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
# Make sure, that one of the listen options is commented !!
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
#userlist_deny=NO
tcp_wrappers=YES

pasv_enable=YES
# 是否允许数据传输时使用PASV模式(默认值为 YES)
pasv_min_port=6000
# PASV 模式下,数据传输使用的端口下界(0 表示任意。默认值为 0)把端口范围设在比较高的一段范围内,比如 50000-60000,将有助于安全性的提高.
pasv_max_port=6050
# PASV 模式下,数据传输使用的端口上界(0 表示任意。默认值为 0)
pasv_promiscuous=NO
# 是否屏蔽对 PASV 进行安全检查,默认值为 NO(当有安全隧道时可禁用)
#pasv_address # PASV 模式中服务器传回的 ip 地址。默认值为 none,即地址是从呼入的连接套接字中获取。
chroot local user 与 chroot list enable 的 组 台 . 交 处 果 如 下 : 
chroot local user=YES 
1 所 有 用 户 都 被 限 制 在 具 主 目 录 下 
chroot list e 
2 . 使 chroot_list_file 指 定 的 户 列 
nable=YES 
表 , 这 些 用 户 作 为 " 例 外 " , 不 受 限 制 
1 所 有 用 户 都 被 限 制 在 具 主 目 录 下 
chroot list e 
2 . 不 使 用 chroot_list_file 指 定 的 用 户 
nable=NO 
列 表 , 没 有 任 何 " 例 外 " 用 户 
chroot local user=NO 
1 所 有 用 户 都 不 被 阝 艮 制 其 主 目 录 下 
2 . 使 用 chroot_list_file 指 定 的 户 列 
表 , 这 些 户 作 为 " 例 外 " , 受 到 限 制 
1 所 有 用 户 都 不 被 阝 艮 制 其 主 目 录 下 
2 . 不 使 用 chroot_list_file 指 定 的 用 户 
列 表 , 没 有 任 何 " 例 外 " 用 户 
: 如 二 果 i} 殳 置 了 local enable=YES , 
自 带

启动ftp服务

# 查看当前配置
shell> getsebool -a |grep ftp
# 设置 ftp 可以访问 home 目录
shell> setsebool -P ftp_home_dir=1
# 设置 ftp 用户可以有所有权限
shell> setsebool -P allow_ftpd_full_access=1
或者关闭 SELinux
shell> setenforce 0

设置防火墙

# 允许 ftp 服务
shell> firewall-cmd –permanent –zone=public –add-service=ftp
# 重新载入配置
shell> firewall-cmd –reload

启动 ftp 服务

shell> systemctl start vsftpd

用户管理

# 添加用户 ftpuser
# -d:指定用户主目录
# -s:指定用户所用的shell,此处为/sbin/nologin,表示不登录
shell> useradd ftpuser -d /home/ftp1 -s /sbin/nologin
shell> passwd ftpuser

天翼云设置网络安全组

服务器CentOS端

TCP : 20-21IPv4192.168.1.209/32
TCP : 6000-6050IPv4192.168.1.209/32

客户端Windows server不用设置

测试

filezilla

站 点 管 理 器 
思 规 高 级 传 0 过 岩 字 符 集 
远 择 i 已 录 〔 
我 的 站 占 
新 站 〔 N ) 
新 建 韦 〔 M ) 
删 涂 〔 D 〕 
协 议 田 : 
登 录 喽 型 〔 L 〕 : 
背 昱 灏 色 〔 引 
FTP . 文 仁 传 葒 协 议 
1g2 的 6 & 1.159 
二 〔 刁 : 
果 可 哇 显 蕊 的 FTPoverTLS 
正 思 
凵 s 巳 r 
无 
V 
新 文 仁 荚 旧 
0 名 〔 R ) 
复 制 0 〕 
讠 0 
确 定 〔 0

Done~

几个问题:

服务器发回了不可路由的地址。使用服务器地址代替。

https://blog.csdn.net/zhezhebie/article/details/80527252

解决方法:

更改Filezilla设置,编辑 – 设置 – 连接-FTP-被动模式,将“使用服务器的外部IP地址来代替”改为“回到主动模式”即可。

也可以设置一个外部IP

200 Switching to Binary mode. 
PORT 
200 PORT command successful. Consider using PA 
LIST 
sever\ 
beife nsq seve r 
og s_new seeg.O 
New SeeVg 
N report 
020 Test Web 
020 Logs 
Richa rd 
server 2012 
WygIDBXSC 
wyg I 
- ftpuser@119.96.173.214 - FileZilla 
C]PBäJ Filazila 
FileZiIIa 
FileZiIIa 
6000 
7000 
=-ötäit 
, FileZiIIa n. 
119.96.172.171 
O URL 
http://ip.filezilla-p 
http://ip.filezilla-project.org/ip.php

响应: 425 Failed to establish connection.

需要使用passive模式,已在上面配置

https://www.cnblogs.com/kuliuheng/p/3209744.html


评论

《“CentOS7.4中安装vsftp服务器”》 有 1 条评论

  1. […] CentOS7.4中安装vsftp服务器 was originally published on DormanthinkZ.C […]

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注