Vsftpd服务的搭建

安装vsftpd服务程序
yum install vsftpd -y

Vsftpd的程序与配置文件:

主程序 /usr/sbin/vsftpd
用户禁止登陆列表 /etc/vsftpd/ftpusers
/etc/vsftpd/user_list
主配置文件 /etc/vsftpd/vsftpd.conf

vsftpd程序配置文件参数的作用:

参数 作用
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为不限制。

Vsftpd的验证方式

1 匿名访问模式

vim /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

在客户端安装ftp

yum install ftp -y

连接服务端,进行访问

[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): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir dir1
257 "/pub/dir1" created
ftp> rename dir1 database
350 Ready for RNTO.
250 Rename successful.
ftp> exit
221 Goodbye.
2.本地用户模式
vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:

vim /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身份登入,那么创建个普通用户吧:

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

在客户端登录访问:

[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.
3 虚拟用户模式

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

附:

自动化的脚本:

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

!/bin/bash
ftp -niv <<-EOF
open 192.168.0.80
user ftpadmin ftpadmin
bin
put test.txt
close
bye
EOF
原文地址:https://www.cnblogs.com/zydev/p/5949783.html