1.部署ftp服务
在/etc/sysconfig/selinux 中
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled 将此处修改为disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
~
~
配置完成后必须重新启动虚拟机
reboot
2.安装ftp
yum install vsftpd -y 下载vsftpd
systemctl start vsftpd 开启ftp服务
systemctl stop firewalld 关闭火墙
systemctl enable vsftpd 开机自动开启ftp服务
netstat -antlupe | grep vsftpd #查看ftp端口是否成功开启
firewall-cmd –list-all 查看防火墙
firewall-cmd –permanent –add-service=ftp 在防火墙允许列表中添加ftp服务
firewall-cmd –reload 更新防火墙规则
[root@localhost ~]# yum install vsftpd -y
Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:3.0.2-9.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================
Package Arch Version Repository Size
===========================================================================
Installing:
vsftpd x86_64 3.0.2-9.el7 rhel_dvd 166 k
Transaction Summary
===========================================================================
Install 1 Package
Total download size: 166 k
Installed size: 343 k
Downloading packages:
vsftpd-3.0.2-9.el7.x86_64.rpm | 166 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : vsftpd-3.0.2-9.el7.x86_64 1/1
Verifying : vsftpd-3.0.2-9.el7.x86_64 1/1
Installed:
vsftpd.x86_64 0:3.0.2-9.el7
Complete!
若无法安装说明yum源配置出现问题
编辑 /etc/yum.repos.d/rhel_dvd.repo 查看是否有问题再重启
# Created by cloud-init on Thu, 10 Jul 2014 22:19:11 +0000
[rhel_dvd]
gpgcheck = 0
enabled = 1
baseurl = http://172.25.254.65/rhel7.0
name = Remote classroom copy of dvd
~
~
~
测试 使用lftp来访问真机
[root@foundation69 ~]# lftp 172.25.254.65
lftp 172.25.254.196:~> ls
-rw-r--r-- 1 0 0 0 May 09 14:30 westos
drwxr-xr-x 2 0 0 6 Mar 07 2014 pub
lftp 172.25.254.65:/> quit 进入成功,服务已开启
文件信息、报错id
默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id的解析:
500 #文件系统权限过大
530 #用户认证失败
550 #服务本身功能未开放
553 #本地文件系统权限过小
man 5 vsftpd.conf
一匿名用户设定
1.匿名用户设定
anonymous_enable=YES|NO ##匿名用户登陆限制
2.匿名用户上传
vim /etc/vsftpd/vsftpd.conf
write_enable=YES 给予匿名用户写的权力
anon_upload_enable=YES 上传
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
匿名用户家目录修改
anon_root=/direcotry
匿名用户上传文件身份
chown_uploads=YES
匿名用户上传身份指定
chown_username=用户名
2.本地用户设定
local_enable=YES|NO ##本地用户登陆限制
write_enable=YES|NO ##本地用户写权限限制
#<本地用户家目录修改>
local_root=/directory
#<本地用户上传文件权限>
local_umask=xxx
#<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*
用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#<限制本地用户登陆>
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp
FTP中虚拟账户的配置
1.
vim /etc/vsftpd/loginusers ##蓝体字名字任意
在vim编辑界面编写以下内容,创建用户列表文件
ftpuser1 ##用户名
123 ##密码
ftpuser2
123
ftpuser3
123
2.
[root@foundation69 ~]# db_load -T -t hash -f /etc/vsftpd/virtuser virtuser.db ##创建用户数据库
[root@foundation69 ~]# vim /etc/pam.d/ftpusers ##配置pam
account required pam_userdb.so db=/etc/vsftpd/loginusers
auth required pam_userdb.so db=/etc/vsftpd/loginusers
[root@foundation80 vsftpd]# vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftpusers ##指定pam
guest_enable=YES ##开启访客
虚拟用户的身份指定
[root@foundation69 home]# useradd westos 首先添加一个普通用户,指定访客用户为westos
在vim /etc/vsftpd/vsftpd.conf下编辑
guest_username=ftpuser ##指定用户
chmod u-w /home/ftpuser ##不给访客写的权力
虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conflocal_root=/westoshome/$USER 用户家目录
user_sub_token=$USER 引入系统的变量 $USER
虚拟帐号配置独立vim /etc/vsftpd/vsftpd.confuser_config_dir=/etc/vsftpd/ftpuser1
mkdir -p /etc/vsftpd/ftpuser1
备注:vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级高