Vsftpd服务的搭建

安装服务端程序#

yum install vsftpd -y

Vsftpd的程序与配置文件位置#

  • 主程序 /usr/sbin/vsftpd
  • 用户配置文件 /etc/vsftpd/ftpusers /etc/vsftpd/user_list
  • 主配置文件 /etc/vsftpd/vsftpd.conf

配置文件参数#

listen=[YES|NO]	是否以独立运行的方式监听服务。
listen_address=IP地址	设置要监听的IP地址。
listen_port=21	设置FTP服务的监听端口。
download_enable=[YES|NO]	是否允许下载文件。
userlist_enable=[YES|NO]
userlist_deny=[YES|NO]	是否启用“禁止登陆用户名单”。
max_clients=0	最大客户端连接数,0为不限制。
max_per_ip=0	同一IP地址最大连接数,0位不限制。
anonymous_enable=[YES|NO]	是否允许匿名用户访问。
anon_upload_enable=[YES|NO]	是否允许匿名用户上传文件。
anon_umask=022	匿名用户上传文件的umask值。
anon_root=/var/ftp	匿名用户的FTP根目录。
anon_mkdir_write_enable=[YES|NO]	是否允许匿名用户创建目录。
anon_other_write_enable=[YES|NO]	是否开放匿名用户其他写入权限。
anon_max_rate=0	匿名用户最大传输速率(字节),0为不限制。
local_enable=[YES|NO]	是否允许本地用户登陆FTP。
local_umask=022	本地用户上传文件的umask值。
local_root=/var/ftp	本地用户的FTP根目录。
chroot_local_user=[YES|NO]	是否将用户权限禁锢在FTP目录,更加的安全。
local_max_rate=0	本地用户最大传输速率(字节),0为不限制。

三种验证方式#

1. 匿名访问模式#

/etc/vsftpd/vsftpd.conf

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

FTP默认的根目录为/var/ftp,安全起见更改所属主为ftp
chown ftp /var/ftp/pub

2.本地用户模式#

vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:
/etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
anon_umask=022

vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户吧:

# useradd ftpadmin
# passwd ftpadmin
更改用户 ftpadmin 的密码 。
新的 密码:
无效的密码: 它基于字典单词
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

3. 虚拟用户模式#

因为虚拟用户模式的帐号口令都不是真实系统中存在的,所以只要配置妥当虚拟用户模式会比本地用户模式更加安全,但是Vsftpd服务配置虚拟用户模式的操作步骤相对复杂一些。

客户端访问#

在客户端登录访问:
[root@oracledb ~]# ftp 192.168.0.80
Connected to 192.168.0.80 (192.168.0.80).
220 (vsFTPd 2.2.2)
Name (192.168.0.80:root): ftpadmin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
257 "/home/ftpadmin/files" created
ftp> exit
221 Goodbye.

自动上传文件脚本#

上传文件到/home/ftpadmin目录下:

!/bin/bash
ftp -niv <<-EOF
open 192.168.0.80
user ftpadmin ftpadmin
bin
put test.txt
close
bye
EOF
posted @   头痛不头痛  阅读(304)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2015-10-11 Oracle应用技术精华教程:管理还原段
点击右上角即可分享
微信分享提示
主题色彩