在linux上搭建ftp服务器及其配置文件常用参数详解
一、ftp简介1.文件传输协议ftp://可用浏览器访问2.默认发布目录/var/ftp3.接口协议21/tcp4.服务配置文件/etc/vsftpd/vsftpd.conf5.连接时部分报错id的解析id解释500文件系统权限过大530用户认证失败550服务本身功能未开放553本地文件系统权限过小6.ftp协议提供的软件...
·
一、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 | 设置虚拟用户独立配置路径 |
更多推荐
已为社区贡献1条内容
所有评论(0)