C/C++教程

【CentOS-7】VSFTPD服务器——简单搭建——详解规则注意事项

本文主要是介绍【CentOS-7】VSFTPD服务器——简单搭建——详解规则注意事项,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

 

简介

接受的用户认证

默认登陆的注意事项

离开目录、下载上传、删除文件、创建目录、权限

VSFTPD 配置文件

安装 VSFTPD 服务器

主配置文件 /etc/vsftpd/vsftpd.conf

三种常见登陆 FTP 

1. Windows 文件管理器登陆

2. 浏览器登陆

3. FTP 命令程序登陆

FTP 常用命令


简介

VSFTPD:(Very Secure FTP,安全的 FTP)UNIX 系统上的 FTP 服务器软件。单个主机上支持 4000 个以上的用户并发连接。用于共享的下载与上传数据功能。

接受的用户认证

  1. 匿名用户:默认用户名 ftp ,密码空,默认权限为只读(下载)。
  2. 授权用户:指的是访问 VSFTPD 服务器时,输入有效的用户名及密码,有以下两种:
    1. 本地用户:以 VSFTPD 所在的主机中 /etc/passwd 中的用户及密码作为认证来源,也是默认配置。(也就是用主机系统中创建的用户和密码 (如 root) 来登陆 VSFTPD 服务器)
    2. 虚拟用户:支持自定义的用户名及密码,通过保存在本地数据文件、数据库(MySQL)、或 LDAP 中。通过虚拟用户来登陆大大增强了系统的安全防止本地用户密码泄露。

默认登陆的注意事项

  1. 匿名用户:默认用户名 ftp ,密码空,默认权限为只读(下载)。
  2. 所有用户登陆后 默认进入的目录
    1. 匿名用户/var/ftp
    2. 本地用户用户 Home 家目录 !!!
    3. 虚拟用户:因为虚拟用户是自定义的,在定义了虚拟用户及密码后,还需要创建本地用户和虚拟用户对应映射,所以同样是 Home 家目录!

离开目录、下载上传、删除文件、创建目录、权限

  1. 匿名用户默认不允许离开 /var/ftp 目录,但允许进入此目录下的所有子目录 ,此目录则为匿名用户根目录。只允许下载。
  2. 授权用户:拥有离开 Home 家目录、下载上传、删除文件与创建目录权限。

VSFTPD 配置文件

  • 主配置文件/etc/vsftpd/vsftpd.conf,配置参数选项。
  • 同目录下的还有/etc/vsftpd/ftpusers   、   /etc/vsftpd/user_list
    • ftpusers  user_list 里面存放的每行都是系统用户名,默认是不允许此列表中的用户登陆 VSFTPD 的(包含了 root 用户)
    • root 用户不允许登陆解决:删除这两个文件里面的 root 用户名或 # 注释掉。
  • 授权用户登陆认证 PAM 文件/etc/pam.d/vsftpd ,这里面有这么一条语句项:
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

item=user sense=deny(否定) file=/etc/vsftpd/ftpusers :这句话就是否定这个文件列表里的用户登陆 VSFTPD 的,同时还会检查 /etc/vsftpd/user_list 文件中的用户,root 用户也默认在列表里,所以需要 root 用户登陆 VSFTPD 就需要删除或注释掉这两个文件里的 root 用户名!!!

安装 VSFTPD 服务器

注意:请配置好软件源,本文不阐述,我这里使用的是本地源!
键入如下命令

  1. rpm -q vsftpd :查询 vsftpd 服务器是否安装。
  2. yum install -y vsftpd :安装 vsftpd 服务器。
  3. systemctl restart vsftpd.service :启动 vsftpd 服务器。
  4. systemctl enable vsftpd.service :开机自启动 vsftpd 服务器。
  5. firewall-cmd --zone=public --permanent --add-service=ftp :防火墙放行 vsftpd 服务器端口(不管是手动设置的端口或范围型动态分配端口,都有效)。必须放行,否则无法访问 vsftpd 服务器。
  6. 关闭 SELINUX 防止本地用户登陆系统失败,编辑 vi /etc/selinux/config 文件:
    • SELINUX=disabled
    • 保存后,键入命令执行 setenforce 0 使 SELINUX 配置修改立即生效。
  7. 设置服务器固定 IP ,编辑 /etc/sysconfig/network-scripts/ifcfg-xxxx ( ifcfg-xxxx 是你的默认网卡配置文件),如果你已经是 static 静态手动设置 IP 则忽略本步骤,如果是 DHCP 分配则需要设置,新增或修改如下项:

BOOTPROTO="static"              # 把 dhcp 更改为 static
IPADDR=172.17.21.211            # 这是我服务器的 IP ,请根据你所在网络设置服务器的 IP 地址
NETMASK=255.255.255.0       # 这是我服务器的网络掩码,请根据你所在网络设置服务器的网络掩码
GATEWAY=172.17.21.1           # 这是我服务器的路由网关,请根据你所在网络设置服务器所在网络的路由器地址

END :配置完成。

如需要 root 用户登陆 vsftpd ,就需要删除或注释掉 /etc/vsftpd/ftpusers   、   /etc/vsftpd/user_list  两个文件中的 root 用户名!!!

主配置文件 /etc/vsftpd/vsftpd.conf

配置项描述
anonymous_enable=YES|NO匿名用户登陆
allow_anon_ssl=YES|NO匿名用户通过 SSL 连接
local_enable=YES|NO本地用户登陆
write_enable=YES|NO授权用户上传文件到 FTP 服务器,对匿名用户无效
anon_upload_enable=YES|NO

匿名用户上传文件到 FTP 服务器

anon_mkdir_write_enable=YES|NO匿名用户在 FTP 服务器上创建目录
anon_other_write_enable=YES|NO匿名用户其它的如删除、重命名操作
download_enable=YES|NO下载文件
local_umask=022授权用户上传文件时设置文件的权限码
anon_umask=022匿名用户上传文件时设置文件的权限码

chown_uploads=YES|NO
chown_username=root

匿名用户上传文件时的所属主,通过chown_username指定
ls_recurse_enable=YES|NO使用 ls -R 等比较占用资源的命令
dirlist_enable=YES|NO使用 dir 等列目录命令
userlist_enable=YES|NOYES时,/etc/vsftpd/user_list 文件中的用户登陆 FTP 时,将在输入密码之前就被禁止登陆!
userlist_deny=YES|NO
  • YES 时: /etc/vsftpd/user_list 文件中的用户禁止登陆 FTP 服务器,同时不发送密码提示!
  • NO 时:只允许 /etc/vsftpd/user_list 文件中的用户登陆 FTP 服务器。

条件是 userlist_enable=YES

chroot_local_user=YES|NO用户离开家 Home 目录
local_root=/var/ftp授权用户登陆时引导到的目录,对匿名用户无效
anon_max_rate=匿名用户最大传输速度(单位:Byte/s)
local_max_rate=授权用户最大传输速度(单位:Byte/s)
async_abor_enable=YES|NO客户端使用 sync 等命令
ascii_upload_enable=YES|NO上传文件时使用 ASCII 传输模式
ascii_download_enable=YES|NO下载文件时使用 ASCII 传输模式
idle_session_timeout=会话超时(客户端连接 FTP 但未操作的时间)(单位:秒)
data_connection_timeout=数据传输时超时时间(单位:秒)
deny_file={}不允许上传文件类型,如 deny_file={*.exe,*.dll}
pam_service_name=vsftpd系统用户登陆时的认证来源,默认文件 /etc/pam.d/vsftpd 文件
listen_address=当服务器主机有多个 IP 地址时,通过该参数只接受一个IP地址,监听 FTP 客户端请求
listen_port=21vsftpd 监听端口,默认21
max_clients=3000允许的最大并发连接用户
max_per_ip=允许同一个 IP 发起连接 vsftpd 的连接数量
use_localtime=YES|NO在目录列表时使用本地时间
ftpd_banner=指定登陆 FTP 服务器时显示的欢迎信息
dirmessage_enable=YES|NO用户在 FTP 服务器上切换目录时是否显示欢迎信息
banner_fail=连接失败显示的文件信息,如 banner_fail=/etc/vsftpd/error_info
xferlog_enable=YES|NO用户上传/下载文件时记录日记
xferlog_file=指定使用的日记文件
xferlog_std_format=YES|NO使用标准日记文件记录日记
nopriv_user=ftp指定的默认匿名登陆账户,默认时 ftp
connect_from_port_20=YES|NO使用20端口传输数据

pasv_min_port=

pasv_max_port=

被动模式时,客户端数据连接端口范围
listen=YES|NO开启 IPv4 支持(IPv4 与 IPv6 只能开启一个)
listen_ipv6=YES|NO开启 IPv6 支持(IPv4 与 IPv6 只能开启一个)
tcp_wrappers=YES|NO通过 tcp_wrappers 管理

 注意:如果配置文件配置错误,将可能会导致 vsftpd 服务器无法启动!所以在发生这种错误时,请检查以下配置文件!

三种常见登陆 FTP 

分为两种方式登陆

  1. 协议链接登陆:也分匿名链接登陆、用户链接登陆。
    1. 匿名链接登陆ftp://主机名或IP地址
    2. 用户链接登陆ftp://userName:password@主机名或IP地址
  2. FTP 客户端命令程序登陆:如 Windows CMD命令行工具中启动 FTP 客户端命令程序,和 Unix 终端 Terminal 程序中的 FTP 客户端命令程序。

1. Windows 文件管理器登陆

在文件管理器中的地址栏输入协议链接即可!!!

2. 浏览器登陆

同样在浏览器的地址栏输入协议链接即可!!!
这里显示中文乱码了,Linux 使用的编码格式是 UTF-8,更改浏览器当前界面使用的字符编码!

3. FTP 命令程序登陆

在 CMD 命令行,或 Terminal 终端中键入命令

  1. ftp :运行 FTP 到前台。
  2. open <Host | IPAddress>  [port] :打开访问 vsftpd 远程服务器,记住,端口号是可选的,只有在自定义了端口号才选择,默认是 21 端口互传命令连接!
  3. 输入用户名
  4. 输入密码
  5. 登陆成功:login successful.
[root@localhost /]# ftp
ftp> open 172.17.21.211 21
Connected to 172.17.21.211 (172.17.21.211).
220 (vsFTPd 3.0.2)
Name (172.17.21.211:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (172,17,21,211,171,2).
150 Here comes the directory listing.
drwxr-xr-x    9 0        0            4096 Jun 17 12:26 MainData
drwxr-xr-x    2 0        0               6 Jun 17 05:32 说明
226 Directory send OK.
ftp>

注意:输入密码时是不显示的,还有匿名用户名是 ftp 、密码为空(不需要输入密码直接回车即可)!

FTP 常用命令

查看文件命令

  • pwd:显示服务器当前所在目录。
  • dir [pash]:显示服务器目录和文件列表,dir 命令可以使用通配符 “ ” 和 “ ? ” 。
  • ls [pash]:显示服务器目录和文件列表
  • cd <pash>:进入服务器指定的目录,如 cd dirName。
  • lcd:进入本地客户端指定的目录。

下载文件命令

  • get <Server:PASH/Download FileName> <Client:PASH/ New FileName>:下载单个文件,第一项指定要从服务器下载的文件(可以是全路径),第二项指定客户端的保存文件路径加新文件名!
  • mget <Server:PASH/Download FileName [FileName ....]>:下载多个文件,可以使用通配符 *? 。

上传文件命令

  • put <Client:PASH/ Put FileName> <Server:PASH/New FileName>:上传单个文件。
  • mput <Client:PASH/Put FileName [FileName ....]>:上传多个文件。

其它命令

  • delete <FileName>:删除文件,可以使用通配符 *? 。
  • rmdir <DirName>:删除目录。
  • mkdir <Pash/NewDirName>:创建目录。
  • rename <TargetFileName> <NewFileName>:更改文件或目录名。
  • close:关闭当前连接的 FTP 服务器。
  • help:显示帮助,命令!
  • quit:关闭当前连接的 FTP 服务器,并退出 FTP 命令程序。

 

 

这篇关于【CentOS-7】VSFTPD服务器——简单搭建——详解规则注意事项的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!