设置网络和yum源
设置网路nm-connection-editor
设定名称hostnamectl set-hostname server3.example.com
yum install vsftpd -y(相当于阿帕奇)
yum install lftp -y(相当于浏览器)
启动ftpd服务
systemctl start vsftpd
systemctl enable vsftpd
设置内核配置
vim /etc/sysconfig/selinux
SELINUX=disabled
重启
firewall-cmd –permanent –add-service=ftp
success //更改防火墙设置为永久,启动服务ftp
firewall-cmd –reload
success //更改防火墙设置加载
或者
firewall-config 在图形界面里设置
Configuration设置为permanent
下方列表中添加ftp
Options中reload
下面的实验我是用一台虚拟机和一台真机做的
这台虚拟机做的配置端
用真机来测试
ftp服务的基本信息 软件安装包 vsftpd 默认发布目录 /var/ftp 服务配置文件 /etc/vsftpd/vsftpd.conf 重启服务 systemctl restart vsftpd
anonymous_enable=YES(第12行)匿名用户是否可以登录 local_enable=YES(第16行)为本地用户是否可以登录 write_enable=YES(第19行)为本地用户能否可写 local_umask=xxx (第23行)本地用户上传文件权限 anon_upload_enable=YES(第29行)为匿名用户可以上传 默认目录 /var/ftp/ anon_umask=xxx (加在13行) 为匿名用户上传文件默认权限修改 anon_mkdir_write_enable=YES(第33行)匿名用户建立目录 anon_world_readable_only=NO(加在35)匿名用户下载 ##设置NO表示可以下载 anon_other_write_enable=YES(加在15)匿名用户删除 anon_root=/x (加在16)设定匿名用户家目录 max_clients=x (加在14行)表示最大可连接数 anon_max_rate=x (加在15行)【单位是字节】表示最大速度 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES chown_uploads=YES (第53行)开启上传文件的所有人 chown_username=whoever (第54行)设定上传文件的所有人 chown_upload_mode=0755 (加在55行 )设定上传的权限 xferlog_std_format=YES local_root=/dir (加在21) 本地用户家目录修改 chroot_local_user=YES (第107行)所有用户被锁定到自己的家目录中 chroot_list_enable=YES (第108行) 启动列表[黑/白名单] chroot_list_file=/etc/vsftpd/chroot_list(第110行) 开启名单文件 userlist_enable=YES (第130行) 列表生效 userlist_deny=NO (加在131)将黑名单变成白名单 user_config_dir=/etc/vsftpd/userconf (加) 虚拟用户配置指定文件 pam_service_name=x(加) 这里的x和之前建立的虚拟用户文件名一致 guest_enable=YES (加) 虚拟用户生效 guest_username=ftp ##默认是以ftp用户身份登陆
在服务端添加用户
用真机使用服务端里面的本地用户登陆
19行 write_enable改为NO
本地用户默认是可以上传下载。但是匿名用户不可以
测试匿名用户登陆
匿名用户上传
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_uoload_enable=YES
systemctl restart vsftpd
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
可以看到
上传报错由550变成553了
继续配置
设置匿名用户上传文件权限
第13行添加anon_umask=044
实验结果上传文件的权限应该是622
不能改为033.因为这样的话,文件的权限变成了777-033-111=633,但是系统对于其他用户是不给执行权限的,所以就会失效
设置匿名用户上传文件速度
第15行 添加 anon_max_rate=204800
【单位是字节即200k】表示最大速度
注意如果文件太小,会看不到上传过程哦
匿名用户下载
vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO可以下载
systemctl restart vsftpd
下载和权限无关哦
但是只能下载/var/ftp/ 这个目录下的东西
与上传区别,但是上传地址还是/var/ftp/
匿名用户建立目录
vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES(33行)
systemctl restart vsftpd
匿名用户的家目录设定
vim /etc/vsftpd/vsftpd.conf
anon_root=/x ## 其中x是服务端已经存在的目录
systemctl restart vsftpd
本地用户家目录设定
vim /etc/vsftpd/vsftpd.conf
local_root=/x ## 其中x是服务端已经存在的目录
systemctl restart vsftpd
本地用户锁定在自己的家目录中
产生的效果是只能看到/home
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES !!锁定 108行
systemctl restart vsftpd
chmod u-w /home/*
!!去除家目录所有的写权限,否则会报500权限过大错误
限制本地用户浏览根目录
产生的效果是不允许的用户只能被锁定在家目录
vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES ##启动列表
chroot_local_user=YES ##锁住了 ,下面是白名单
chroot_list_file=/etc/vsftpd/chroot_list ##指定白名单名称
chroot_local_user=NO ##没有锁 ,下面是黑名单
chroot_list_file=/etc/vsftpd/chroot_list ##指定黑名单名称
vim /etc/vsftpd/chroot_list
systemctl restart vsftpd
chmod u-w /home/*
##去除家目录所有的写权限,否则会报500权限过大错误
用户登陆黑名单设定
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##临时黑名单
用户登陆白名单设定
vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
systemctl restart vsftpd
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单
设定上传文件的所有人
产生的效果是文件的所有人id是设置的所有人id
vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES 有这项才可有下面的两项
chown_username=student 更改为student
id student查看UID
systemctl restart vsftpd
最大链接数
vim /etc/vsftpd/vsftpd.conf
max_clients=2
systemctl restart vsftpd
FTP虚拟用户的设定
vim /etc/vsftpd/anyfile
ftpuser1
mima
ftpuser2
mima
ftpuser3
mima
db_load -T -t hash -f /etc/vsftpd/anyfile /etc/vsftpd/anyfile.db
vim /etc/pam.d/ftpany 注意:有的机子中没有装pam,可以yum search all | pam 查看
account required pam_userdb.so db=/etc/vsftpd/anyfile ##账户
auth required pam_userdb.so db=/etc/vsftpd/anyfile ##密码
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftany
guest_enable=YES
guest_username=ftp ##默认是以ftp用户身份登陆
指定虚拟账户的用户身份
guest_username=存在的用户
chmod u-w /home/存在的用户
注意:虚拟用户和真实的本地用户是互相冲突的。
mkdir /ftphome/dabao -p
touch /ftphome/dabao/dabaofile
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf