linux中ftp服务的搭建与介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中ftp服务的搭建与介绍相关的知识,希望对你有一定的参考价值。
- FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。
- 安装vsftp(vsftp应该是一款不错的ftp软件。)
yum search vsftp
yum install vsftpd -y
对vsftp进行安装
systemctl start vsftpd 启动vsftpd服务
systemctl status vsftpd 查看vsftpd状态
3.设置防火墙
安装ftp服务
yun install ftp -y
firewall-cmd --permanent --add-service=ftp 在防火墙中添加ftp服务
firewall-cmd --reload 重新加载参数
firewall-cmd --list-all 显示防火墙服务列表
4.ftp搭建成功
5.ftp配置文件修改
配置文件: /etc/vsftpd/vsftpd.conf 每次修改配置文件后需要重新启动服务才能生效
systemctl restart vsftpd.service
1.anonymous_enable=YES|NO #匿名用户可以|不可以登陆
匿名用户无法登陆
2.local_enable=YES|NO #本地用户可以|不可以登陆
3.write_enable=YES|NO ##ftp是否对登陆用户可写
服务未开启
4.报错id解析
500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本身功能未开启
553 ##本地文件系统权限过小
5.匿名用户上传
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 777 /var/ftp/pub(一定使用者需要有写权限)
匿名用户可以上传文件
6.匿名用户家目录修改(匿名用户家目录默认在/var/ftp)
anon_root=/目录地址
在新的家目录里新建一个文件夹 file1
匿名用户登陆后验证 file1 则该家目录被修改
7.匿名用户上传文件默认权限修改
8.anon_mkdir_write_enable=YES|NO #匿名用户创建目录
服务未开启
目录被成功建立
9.anon_world_readable_only=NO #匿名用户下载,设定参数为no,表示匿名用户可以下载
服务未开启
下载成功
10.anon_other_write_enable=YES|NO #匿名用户删除
服务开启 删除成功
11.anon_max_rate=102400 #匿名用户最大上传速率 单位为字节
dd if=/dev/zero of=/mnt/redfile bs=1M count=1000 截取daxiao大小为1M的数据存在redfile中
上传平均速度为102400
12.匿名用户最大链接数
这里表示连接数最多为两个
13.匿名用户修改上传文件所有者
chown_uploads=YES
chown_username=xxxx(系统已存在的用户名)
14.匿名用户修改上传文件权限
上传的文件权限被更改
本地用户
local_enable=YES|NO ##本地用户登陆限制
write_enable=YES|NO ##本地用户写权限
local_root=/绝对路径 本地用户家目录修改,默认登陆用户家目录
本地用户的登陆与写的权限开启
修改本地用户的家目录为/var/ftp
local_umask=xxx #本地用户上传文件的umask值
限制本地用户浏览/目录
所有用户被锁定到自己家目录中
chroot_local_user=YES(此参数与用户写权限冲突,所以将用户所有写权限删除,由于此目录下只有拥有者有写权限,所以只需要把用户写权限减去。但是如果需要上传文件,则可能会出现553报错,建议减去用户权限后做完实验即可恢复。)
chmod u-w /home/*
关闭后成功切换到 /
用户黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在/etc/vsftpd/chroot_list名单的用户被锁定在自己家目录中
用户白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
不在/etc/vsftpd/chroot_list名单的用户被锁定在自己家目录中
bruceiter 不在chroot_list中 则访问不了/目录
限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
用户白名单设定
userlist_deny=NO ##将本来的名单权限打开,并且关闭黑名单权限,就是剩余白名单权限
/etc/vsftpd/user_list ##设定可以登陆ftp的用户
NO为打开
开启后所有用户登陆不了
在 /etc/vsftpd/user_lis 添加后登陆成功
ftp虚拟用户的设定
vim /etc/vsftpd/userfile ##新建虚拟用户账户密码信息
user1
2233
user2
2233
user3
2233
db_load -T -t hash -f /etc/vsftpd/userfile /etc/vsftpd/userfile.db ##将新建的用户账户密码文件加密
vim /etc/pam.d/user ##编写验证账户密码若验证不通过拒绝,验证软件,被验证核对的文件
account required pam_userdb.so db=/etc/vsftpd/userfile(为之前建立的账户密码信息文件)
auth required pam_userdb.so db=/etc/vsftpd/userfile
vim /etc/vsftpd/vsftpd.conf
pam_service_name=user ##验证的文件是从/etc/pam.d/user决定的,与其同名
guest_enable=YES ##设定虚拟用户登陆
guest_username=ftp ##登陆软件是ftp
登陆使用 -u是由于虚拟用户与本地用户都是使用ftp这个用户的身份,ftp用户是安装时就生成的。
虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER ##区分虚拟账户家目录,但是由于$USER是脚本用法,所以用下一句来告诉ftp,$USER的用法与脚本中的$USER一样
user_sub_token=$USER
##可以在每个虚拟用户家目录下建立不同的文件作为标示。
mkdir /ftphome/user1/user1file -p
mkdir /ftphome/user2/user2file -p
mkdir /ftphome/user3/user3file -p
独立设置配置文件
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
并且注释掉关于匿名用户的语句。在/etc/vsftpd/userconf/user1中添加关于匿名用户配置语句,重启服务,以用户1的身份链接出现创建文件,创建成功之后,若用户2创建不成功,则说明二者独立设置配置文件。但是应注意要把之前的配置文件关于匿名用户全部注释,否则默认读取原来的配置文件,没有找到权限就找自己的配置文件。
以上是关于linux中ftp服务的搭建与介绍的主要内容,如果未能解决你的问题,请参考以下文章