<>FTP服务器部署

<>FTP服务器配置

设置网络和yum源
设置网路nm-connection-editor
设定名称hostnamectl set-hostname server3.example.com <http://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






对第七行进行修改,然后重启


重启后安装






安装完成后,测试一下



<>lftp操作

下面的实验我是用一台虚拟机和一台真机做的
这台虚拟机做的配置端
用真机来测试
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

29行 anon_upload_enable取消注释


可以看到
上传报错由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



友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信