注意:该服务器(10.0.1.9),安装的是CentOS7.2,因此系统开机自动启动ftp服务,防火墙放行ftp服务,重启ftp服务以及查看ftp服务运行状态只对CentOS7系列和RHEL7系列有效,除此之外其他的命令在CentOS6系列和RHEL6系列通用。
1,先登录服务器,IP地址:10.0.1.9,用户root,密码xxxxxx,在linux下使用下面命令连接
如果显示”ssh command not found ”,安装ssh服务,使用命令
yum install openssh -y
第一次链接的过程中会提示是否做指纹识别, 选择yes, 然后输入密码xxxxxx
windows下需要安装xshell, putty, securecrt等工具,设置好要连接的IP地址和用户登录,以windows下安装的xshell为例
1) 点击左上角新建,图标
2) 然后输入主机和名称,名称任意都可以,如图所示
3) 在这个界面的左上方选择用户身份验证, 方法选择Password, 然后输入用户名和密码, 如下图所示,选择确定即可.
2, 因为后续很多命令的使用是需要root权限的,所以如果是以普通用户登陆的需要切换到root, root用户登陆的则不需要, 可以略过,切换root命令
su -
3, 安装vsftp服务,使用命令
yum install vsftpd -y
4, 使服务开机自动启动,使用命令
systemctl enable vsftpd.service
5, 备份vsftpd服务的配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
6, 设置防火墙使得ftp能够被访问
firewall-cmd --permanent --zone=public --add-service=ftp #永久开放ftp服务
firewall-cmd --reload #重新加载配置
7, 关闭selinux,这个影响ftp服务,使用命令
setenforce 0
8, 创建ftp服务使用的一个系统用户,使用命令
useradd -d /home/bernie -s /sbin/nologin
9, 创建系统用户对应的虚拟用户, 使用命令
touch /etc/vsftpd/ftp_user.txt
在文件中写入下面两行, 第一行对应的是虚拟用户的名字,第二行是虚拟用户对应的密码。
taiyouxi1
2kBK990oqQCZ
10, 将使用的明文用户名和密码文件ftp_user.txt转换为数据库文件并加加密, 使用命令
db_load -T -t hash -f /etc/vsftpd/ftp_user.txt /etc/vsftpd/vsftpd_login.db
11, 修改/etc/vsftpd/ftp_user.txt /etc/vsftpd/vsftpd_login.db 文件权限, 使得只有root可以修改和查看, 使用命令
chown 600 /etc/vsftpd/vsftpd_login.db /etc/vsftpd/ftp_user.txt
12, 修改vsftpd服务的认证方式,让他以配置的虚拟用户的身份来认证,使用命令
vim /etc/pam.d/vsftpd,
进去后按”i”编辑,将其中的auth和account开头的,在开头使用#全部注释, 在auth和account原来位置添加如下内容:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
13, 修改配置文件 vsftp.conf , 改为以下内容,命令
vim /etc/vsftpd/vsftpd.conf (按”i”编辑)
anonymous_enable=YES 修改为: anonymous_enable=NO 设定不允许匿名访问
write_enable=YES 修改为: write_enable=NO 设定不允许进行写操作
添加下面内容:
xferlog_file=/var/log/vsftpd.log 设定vsftp日志的路径
chroot_local_user=YES 禁止本地用户登出自己的FTP主目录
guest_enable=YES 设定启用虚拟用户功能
guest_username=bernie 指定虚拟用户的宿主用户,这里的bernie既是ftp_user.txt中定义的虚拟用户的宿主用户
user_config_dir=/etc/vsftpd/vsftpd_user_conf 设定虚拟用户个人的文件配置
virtual_use_local_privs=YES 设定虚拟用户的权限符合他们的宿主用户
allow_writeable_chroot=YES 添加用户的写权限,和chroot_local_user=YES有关
14, 创建/etc/vsftpd/vsftpd_user_conf目录,和user_config_dir=/etc/vsftpd/vsftpd_user_conf这个文件,使用命令
mkdir /etc/vsftpd/vsftpd_user_conf
在这个目录下建立文件,这里以建立的虚拟用户的名字命名,使用命令
touch /etc/vsftpd/vsftpd_user_conf/taiyouxi1
在这个文件下写入下面内容,下面设置使得taiyou1这个用户登陆后具有所有的(读,写,删除)权限使用命令
vim /etc/vsftpd/vsftpd_user_conf/taiyouxi1 (按”i”编辑)
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO 只要宿主用户对文件有读权限,就可以下载
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=YES
local_root=/data/bernie
15, 设定ftp登陆后文件的路径会在/data/bernie ,先创建bernie目录,再设置bernie的用户所有者和所属组为bernie,使用命令
mkdir /data/bernie
chown bernie.bernie /data/bernie -R
16, 编辑完成以后需要对服务进行重启才能生效,使用命令
systemctl restart vsftpd.service
查看是否重启成功以及服务运行的状态,使用命令
Systemctl status vsftpd.service
17, 登陆机器完成搭建服务了以后,这个时候是root用户,如果本身就是root用户登录的输入”exit”,按回车 退出,或者在键盘上按”ctrl”加”d”退出,如果本身是以普通用户登陆进入切换到root用户的,需要输入”exit”按回车,再输入”exit”按回车。
18, 在别的机器(linux)上登陆ftp服务时使用命令
lftp taiyouxi1:[email protected]
如果没有lftp命令,自行安装, 命令
yum install lftp -y
Windows上想要登陆ftp服务,打开我的电脑,在这个位置输入下图所示的内容
在弹出的页面输入给定的ftp服务的用户和密码,然后登陆