您的位置:首页 > 运维架构 > Linux

在linux上搭建ftp服务器及其配置文件常用参数详解

2019-01-28 12:34 1041 查看
版权声明:https://blog.csdn.net/weixin_42499593 https://blog.csdn.net/weixin_42499593/article/details/86666176

一、ftp简介

1.文件传输协议

ftp://
可用浏览器访问

2.默认发布目录

/var/ftp

3.接口协议

21/tcp

4.服务配置文件

/etc/vsftpd/vsftpd.conf

5.连接时部分报错id的解析

id 解释
500 文件系统权限过大
530 用户认证失败
550 服务本身功能未开放
553 本地文件系统权限过小

6.ftp协议提供的软件

在rhel7中:
vsftpd

二、部署ftp服务

  • 在服务端部署
vim /etc/sysconfig/selinux		##关闭selinux
7 SELINUX=disabled		##更改第七行为disable


更改完后须重启

getenforce				##查看selinux状态

yum install vsftpd lftp -y

systemctl start vsftpd 						##打开vsftp服务
systemctl start firewalld					##打开防火墙
firewall-cmd --permanent --add-service=ftp	##允许ftp通过防火墙
systemctl restart firewalld

firewall-config			##用图形更改防火墙设置

firewall-cmd --list-all		##查看防火墙状态

  • 测试
    在客户端进行
lftp 172.25.254.210		##连接ftp服务器


在其中能使用命令则说明部署ftp服务成功

三、ftp配置文件

vim /etc/vsftpd/vsftpd.conf			##编辑ftp配置文件

Ⅰ.匿名用户的设定

1.匿名用户和本地用户的登陆限制
参数 解释
anonymous_enable=YES/NO 匿名用户是否可以登陆


2.匿名用户上传
参数 解释
write_enable=YES/NO ftp是否对登陆用户可写,即上传、下载、创建等功能的总开关
anon_upload_enable=YES/NO 允许匿名用户是否可以上传

systemctl restart vsftpd	##重启vsftpd服务chgrp ftp /var/ftp/pub		##更改该文件组为ftp
chmod 775 /var/ftp/pub		##允许该文件被ftp组可读可写

注:上传命令是put

3.匿名用户家目录修改
参数 解释
anon_root=/directory 该目录即是匿名用户登陆时进入的目录

systemctl restart vsftpd	##重启vsftpd服务

4.匿名用户上传文件默认权限修改
参数 解释
anon_umask=022 匿名用户新增文件时系统保留的权限为022



由于系统对文件保留执行权限,所以文件最后的权限为644

5.匿名用户建立目录
参数 解释
anon_mkdir_write_enable=YES/NO 默认在33行,匿名用户是否可以创建目录


6.匿名用户下载
参数 解释
anon_world_readable_only=YES/NO 设定参数值为NO表示匿名用户可以下载



注:下载命令是get,下载的文件会保存在进入lftp时所在的路径下

7.匿名用户删除
参数 解释
anon_other_write_enable=YES/NO 匿名用户是否可以删除文件


8.匿名用户使用的用户身份修改及最大上传速率和最大链接数
参数 解释
chown_uploads=YES 默认在48行,所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=redhat 默认在49行,匿名用户身份指定,必须是服务端已有的用户
anon_max_rate=102400 最大上传速率,单位为bit
max_clients=2 允许同时有2个用户登陆该ftp服务器


上传的文件用户uid已变成1001,即redhat

上传速率保持在100K左右

最大链接数为2,最右边的主机无法连接

Ⅱ.本地用户设定

1.本地用户登陆
参数 解释
local_enable=YES/NO 本地用户是否可以登陆


2.本地用户家目录修改
参数 解释
local_root=/directory 家目录的用户权限应没有w

chmod u-w /mnt/dc

3.本地用户上传文件权限
参数 解释
local_umask=022 本地用户新增文件时系统保留的权限为022



上传得到的passwd文件权限为777-022-111=644,与结果rw-r–r--相符

4.限制本地用户浏览根目录
参数 解释
chroot_local_user=YES 默认在101行,将所有本地用户被锁定到自己的家目录中


5.本地用户黑名单建立

作用:其他用户用黑名单上的本地用户登陆ftp时,会被锁定到该本地用户的家目录中。

touch /etc/vsftpd/chroot_list	##建立黑名单
vim /etc/vsftpd/chroot_list		##在里面添加的用户不能进入根目录

参数 解释
chroot_local_user=NO 默认在101行,NO表示下面的路径是黑名单
chroot_list_enable=YES 默认在102行,YES表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_list 默认在104行,黑名单路径


6.本地用户白名单建立

作用:其他用户用白名单上的本地用户登陆ftp时,可以访问根目录

touch /etc/vsftpd/chroot_listb	##建立白名单
vim /etc/vsftpd/chroot_listb	##在里面添加的用户可以进入根目录

参数 解释
chroot_local_user=YES 默认在101行,YES表示下面的路径是白名单
chroot_list_enable=YES 默认在102行,YES表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_listb 默认在104行,白名单路径


7.限制本地用户登陆
vim /etc/vsftpd/ftpusers      ##用户永久黑名单,只要在该名单上出现的用户不能登陆ftp服务器
vim /etc/vsftpd/user_list     ##用户临时黑名单,当userlist_deny=NO出现时该名单变为白名单

参数 解释
userlist_deny=YES/NO YES时/etc/vsftpd/user_list时黑名单,NO时/etc/vsftpd/user_list是白名单




Ⅲ.虚拟用户的设定

1.创建虚拟用户身份
vim /etc/vsftpd/virtfile		##新建账户名单文件,文件名任意,奇数行时帐号,偶数行是密码

db_load -T -t hash -f /etc/vsftpd/virtuser /etc/vsftpd/virtuser.db		##hash加密,账户名单文件

vim /etc/pam.d/virt		##指定文件名任意
用户或密码 判定方式 指向插件 帐号文件
account required pam_userdb.so db=/etc/vsftpd/virtuser
auth required pam_userdb.so db=/etc/vsftpd/virtuser

vim /etc/vsftpd/vsftpd.conf	##更改配置文件
参数 解释
pam_service_name=virt 关联/etc/pam.d目录下的virt文件
guest_enable=YES 打开虚拟用户登陆
guest_username=ftp 虚拟用户登陆时用的身份


2.虚拟帐号独立家目录设置
mkdir -p /var/ftpuserdir/redhat{1..3}	##家目录名须和虚拟账户名相同
vim /etc/vsftpd/vsftpd.conf				##更改配置文件
参数 解释
local_root=/var/ftpuserdir/$USER 设置用户进入时的家目录为/var/ftpuserdir/$USER, $USER表示当前用户的名字
user_sub_token=$USER 设置该配置文件识别$USER符号时使用shell里的 $USER


3.虚拟帐号独立配置
mkdir -p /etc/vsftpd/user_conf		##创建独立配置路径
vim /etc/vsftpd/vsftpd.conf			##更改配置文件
参数 配置
user_config_dir=/etc/vsftpd/user_conf 设置虚拟用户独立配置路径


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: