一、ftp下载安装以及基本配置
1.先下载安装 vsftpd 和 lftp(lftp为了验证ftp)
getenforce 显示为Enforcing
修改 /etc/sysconfig/selinux
2.安装vsftpd的主机 安装后继续配置:
Systemctl start vsftpd
Systemctl enable vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
firewall-cmd --list-all
报错550 代表服务不允许
二、匿名用户
1.匿名用户上传(3)
/etc/vsftpd/vsftpd.conf
限制匿名用户登陆
同时需要修改pub目录的权限为 775 将pub的所有组更改为 ftp
2.修改默认访问路径(13)
3.允许匿名用户下载匿名用户上传的文件(31)
4.允许用户创建目录(9)和删除(6)
5.限制下载上传速度,限制同时连接ftp的用户数量
(33,34行)
生成一个可控大小的文件
6.扩大上传者文件的权限(34)
7.修改上传文件的所有者 (服务器存在的用户才可以)(53 54)
anon umask 和 修改上传文件的所有者 冲突
三、用本地用户登陆
lftp ip -u 用户名
17行 是否允许本地用户登陆
20行 是否允许本地用户读写
24行 修改本地用户UMASK
四、限制本地用户访问根目录
打开106行时 需要chmod u-w /home/*(权限太大需要减去W权限)
106行 NO|YES 都可以访问|不可以访问
107行打开 黑白名单列表
109行 创建此文件并且 写入用户
当106为yes时,文件为白名单
当106为no时,文件为黑名单
(以上的所有黑白名单都是针对能否进入根目录)
五、本地用户登陆黑名单
/etc/vsftpd/ftpusers和user_list
均为黑名单 ftpusers为永久黑名单
User_list为临时黑名单
在/etc/vsftpd/vsftpd.conf中
130行 vsftpd 路径为/etc/pam.d/
加入第132行 user_list 即变为白名单
同时加入两个文件中ftpusers > user_list
六、如何做虚拟用户
在/etc/vsftpd下
创建loginusers(名字任意)文件
里面写入用户名和密码
然后给这个文件加密
db_load -T -t hash -f loginusers loginusers.db
进入 /etc/pam.d/
创建文件ftpauth(名字任意)
修改配置文件
/etc/vsftpd/vsftpd.conf(130,131,132)
systemctl restart vsftpd
(添加虚拟用户帐号信息继续编写loginusers文件,重新给文件加密)
虚拟用户指定家目录
给每个虚拟用户创建家目录
chmod u-w /ftpuser/*
修改配置文件vsftpd.conf(135,136行)
给虚拟用户单独分配权限
先把虚拟用户权限关掉
以user1为例子:
在配置文件中指定用户单独权限的位置
vim /etc/vsftpd/userconf/user1
把user1需要的权限写入
mkdir -p /ftpuser/user{1..3}/config
chgrp ftp /ftpuser/user{1..3}/config
chmod 775 /ftpuser/user{1..3}/config
提示数字对应错误原因:
500:对于文件权限太大(一般是本地用户)
或者是文件配置有错误
530:帐号和密码不匹配
550:配置文件权限不允许
553:匿名用户对于文件没有写权限
getenforce对于lftp的影响
vim /etc/sysconfig/selinux
命令设置
touch /mnt/file 移动到ftp pub下
匿名用户登陆无法看到 file
查看标签
修改标签(临时修改)
默认下 本地用户无法上传 是因为selinux 默认关闭 不安全功能
selinux:匿名用户可以上传
setsebool -P ftpd_anon_write on
setsebool -P ftpd_full_access on
原文地址:http://wxl1607.blog.51cto.com/12044330/1853981