vsFTP部署

1. 预备组件

yum -y install vsftpd install pam* install db4 db4-utils

// 设置开机启动
chkconfig vsftpd on

2.建立虚拟用户

// 以下为四个准备开启虚拟用户名称
user1
user2
user3
user4

// 添加虚拟用户名、密码。奇数行为用户名,偶数行为密码。
vi /etc/vsftpd/vftpuser.txt
user1
passwd12
user2
passwd12
user3
passwd12
user4
passwd12

3.生成虚拟用户口令认证文件

 // 把刚添加的vftpuser.txt虚拟用户口令转换成系统的口令认证文件。

db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vu_list.db

4.编辑vsftpd的PAM认证

vim /etc/pam.d/vsftpd
注释掉所有内容 并录入下面两行

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu_list
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu_list

5. 建立本地映射用户并设置宿主权限

// 创建用户前,不要创建/disk/ftp
useradd -d /disk/ftp -s /sbin/nologin user1
useradd -d /disk/ftp -s /sbin/nologin user2 
useradd -d /disk/ftp -s /sbin/nologin user3 
useradd -d /disk/ftp -s /sbin/nologin user4
注: 提示 “useradd: cannot create directory /disk/ftp”,不理会。

// 一次性创建每个虚拟用户根目录
mkdir -p /disk/ftp/user{1..4}

// 目录的权限应该是770,owner是root,group是ftp(这里的用户组应该是当前系统已有的用户组,不存在的用户组无效,用户组为ftp是造成后面编辑无权限)

chmod -R 770 /disk/ftp
chown -R  root:hadoop /disk/ftp

6.配置 vsftpd.conf

// 设置虚拟用户配置项,修改成以下属性。
vim /etc/vsftpd/vsftpd.conf 

// 12行
anonymous_enable=NO  
// 95行
#users to NOT chroot().添加以下部分:

#虚拟用户配置文件存放位置
user_config_dir=/etc/vsftpd/vsftpd_user (注意:这里的" vsftpd_user "目录,可以不用改.但是下面一个根据系统用户而改.)
#开启虚拟用户
guest_enable=YES
#FTP虚拟用户对应的系统用户,注意:这里的"vftpuser是对应挂钩的用户,比如hadoop."
guest_username=vftpuser

// 限定用户只在自己目录, 取消下面几行的注释
xferlog_file=/var/log/vsftpd.log        // 39行
chroot_list_enable=YES                  // 103行
chroot_list_file=/etc/vsftpd/chroot_list // 105行

// 123行
pam_service_name=vsftpd

6.2 新建chroot_list文件

touch /etc/vsftpd/chroot_list

7.虚拟用户权限配置

// 创建虚拟用户放置主目录
mkdir /etc/vsftpd/vsftpd_user



配置用户权限
// 依次创建4个文件,并输入配置信息
vi /etc/vsftpd/vsftpd_user/user{1..4}

// 配置信息,将 * 分别替换成 1,2,3,4
local_root=/disk/ftp/user*
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_other_write_enable=yes
anon_mkdir_write_enable=yes

修改端口默认的连接端口号:
添加此行:117行 listen 下添加: listen_port=21001     //117行
vim +117 /etc/vsftpd/vsftpd.conf 

vim +44 /etc/services 
将其中的 ftp 21/tcp 改为 ftp 21001/tcp , ftp     // 44行 

启动 vcftp
/etc/init.d/vsftpd {stop|start|restart|status}

FTP效果验证

// 服务搭载主机ip:开房端口号
123.456.789.012:3456

// 使用ftp 软件即可连接和使用

注意: 防火墙问题

8.常用配置组合:

1.可浏览
local_root=/disk/ftp/tonecan
anon_world_readable_only=no

1-1.禁浏览
local_root=/disk/ftp/tonecan
anon_world_readable_only=yes (默认设置)

2.可上传
local_root=/disk/ftp/tonecan
write_enable=yes
anon_upload_enable=yes

3.浏览+下载+上传
local_root=/disk/ftp/tonecan
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes

4.浏览+下载+上传+删除
local_root=/disk/ftp/tonecan
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_other_write_enable=yes

5.浏览+下载+上传+创建目录+删除
local_root=/disk/ftp/tonecan (指定FTP只能登陆到这里)
anon_world_readable_only=no (只读,不能下载)
write_enable=yes (可写入)[不能单独使用,相当于写开关]
anon_upload_enable=yes (可上传)
anon_other_write_enable=yes (可删除)
anon_mkdir_write_enable=yes (可创建目录)

6.浏览+下载+上传+创建目录+不可删除
local_root=/disk/ftp/tonecan
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_other_write_enable=yes
anon_mkdir_write_enable=yes
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST

9.查看ftp日志

tail -f    /var/log/xferlog 
# ABOR - 取消文件传输
# CWD - 更改目录
# DELE - 删除文件
# LIST - 列目录
# MDTM - 返回文件的更新时间
# MKD - 远程新建文件夹
# NLST - 远程目录列表名称
# PASS - 发送密码
# PASV - 进入被动模式
# PORT - 打开一个传输端口
# PWD - 显示当前工作目录
# QUIT - 退出
# RETR - 检索远程下载文件
# RMD - 删除远程目录
# RNFR - rename from 重命名源
# RNTO - rename to    重命名为
# SITE - 站点特定的命令
# SIZE - 返回文件大小
# STOR - 上传文件
# TYPE - 设置传输类型
# USER - 发送用户名
# ACCT* - 发送帐户信息
# APPE - 附加到远程文件(续传)
# CDUP - CWD到当前目录的父
# HELP - 帮助
# MODE - 设置传输模式
# NOOP - 什么都不做
# REIN* - 重新初始化连接
# STAT - 返回服务器状态
# STOU - 存储文件的唯一
# STRU - 设置文件的传输结构
# SYST - 返回系统类型

示例vsftp.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_file=/var/log/vsftpd.log
xferlog_std_format=YES
guest_enable=YES
guest_username=vftpuser
user_config_dir=/etc/vsftpd/vsftp_user
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
”’

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章