一 、ftp服务的开启与连接。
(一)配置yum源,安装服务。
挂载镜像文件
配置软件仓库
安装 vsftpd 和lftp 服务
(二)启动ftp服务,并且通过netstat来查看网络信息。
(三)开启火墙策略。
开启火墙,并列出所有预设服务。
火墙添加ftp服务
--permanent 参数表示永久生效设置,如果没有指定--zone参数,那么会加入默认区
域) 删除使用参数 --remove
重载防火墙
查看火墙服务列表
匿名用户使用FTP服务连接本机
当我们对配置文件使用默认配置时,我们匿名用户连接到主机的/var/ftp/ 下,其中/var/ftp/ 是我们ftp的默认发布目录。
二 、ftp服务的简单配置。
一、匿名用户的相关设置
(一)不允许匿名用户登录,只允许本地用户登录
1、打开配置文件
2、修改配置文件
3、重启ftp服务
4、ftp匿名用户连接进行验证
连接失败(不能使用ls进行该目录浏览)
5、ftp 本地用户连接认证
我们是用本地用户登录,会默认进入本地用户的家目录。
(二)允许匿名用户上传文件
在我们不对配置文件设置时,我们的匿名用户不可以进行文件的上传
1、我们对配置文件修改
我们本次ftp的所有实验都要disabled — SELinux 被完全中止。
reboot 重启
2、修改默认发布目录的权限
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
3、重启服务,上传文件验证
(三)允许匿名用户下载文件
vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
测试
使用 get 命令下载只能下载 匿名用户家目录中的文件,会下载到连接ftp之前的路径里面。
(四)允许匿名用户建立文件夹
配置 /etc/vsftpd/vsftpd.conf 文件
测试
(五)允许匿名用户删除文件
anon_other_write_enable=YES|NO 匿名用户删除文件权限
测试
(六)匿名用户上传文件的权限
vim /vsftpd/vsftpd.conf 文件中修改 anon_umask=xxx
文件权限=777-025=752
(七)匿名用户上传文件速率限制
anon_max_rate=102400 (102400字节/s)
(八)匿名用户家目录修改
我们匿名用户默认的家目录是/var/ftp/pub
我们可以在配置文件 /etc/vsftpd/vsftpd.conf 修改。
创建家目录,并修改家目录权限以及所有组
ftp链接 创建文件夹
真机中验证 test文件夹存在。
(九)指定匿名用户上传文件的默认的所有者和权限
我们可以在配置文件 /etc/vsftpd/vsftpd.conf 修改。
chown_uploads=YES(默认NO)
chown_username=wang 设置上传文件的所属人为wang
chown_upload_mode=0644设置上传文件的权限为644
(十)ftp链接的最大用户数
我们可以在配置文件 /etc/vsftpd/vsftpd.conf 修改。
max_clients=2 链接的最大用户数为2
二、本地用户的相关设置
(一)本地用户登录权限限制
write_enable=YES|NO ##本地用户写权限限制
(二)本地用户上传文件权限
我们可以在配置文件 /etc/vsftpd/vsftpd.conf 修改。
local_umask=xxx
文件权限=777-025=7
(三)本地用户家目录修改
/etc/vsftpd/vsftpd.conflocal_root=/directory 修改用户登录时的家目录为/directory
本地用户登陆后的家目录已经被修改。
(四)限制本地用户浏览/目录
我们将所有用户被锁定到自己的家目录中,不允许本地用户浏览其他目录。 例如:如下
1、建立访问限制黑名单
黑名单内的用户不能访问,默认的登录目录之外的其他目录,而黑名单外的用户访问目录不受限制。
配置文件 /etc/vsftpd/vsftpd.conf 修改如下:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
测试 我们使用三个用户分别连接浏览根目录
ftptest 用户在黑名单之外,可以浏览根目录
test用户在黑名单之内,不可以浏览根目录
studnet 用户在黑名单之内,不可以浏览根目录
2、建立访问限制白名单
白名单之外的用户不能访问默认的登录目录之外的其他目录,而白名单之内的用户访问目录不受限制。
配置文件 /etc/vsftpd/vsftpd.conf 修改如下:
chroot_local_user=YES
chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
我们设置将test和student放入白名单
如上 student 可以
如上 因为ftptest在白名单之外,因此不能访问。
(五)限制本地用户登录
限制本地用的的登录我们主要对vsftpd.conf文件中userlist_enable和userlist_deny进行组合应用
1、userlist_enable = NO 时
此时,/etc/vsftpd/user_list文件将失去作用,不会使用,而/etc/vsftpd/ftpusers文件成为用户登陆的黑名单,在文件内的用户都不能lftp进行登录链接.
例如:
student 不能登录
ftptest可以登录
2、userlist_enable = YES 和 userlist_deny = NO 时
此时,/etc/vsftpd/user_list文件将作用,成为用户登录的白名单。而/etc/vsftpd/ftpusers文件依旧为
用户登陆的黑名单,在文件内的用户都不能lftp进行登录链接,但是ftpusers不对文件之外的用户限制
将student加入白名单。
此时ftptest用户在白名单之外,不可登陆
student在白名单之内,可以登录(切记删除上一步的实验结果,即ftpusers文件中的student删掉)
3、userlist_enable = YES 和 userlist_deny = YES 时
此时,/etc/vsftpd/user_list文件将作用,成为用户登录的黑名单。而/etc/vsftpd/ftpusers文件依旧为
用户登陆的黑名单,在文件内的用户都不能lftp进行登录链接,但是ftpusers不对文件之外的用户限制
将student加入黑名单。
studnet不能登录
ftptest用户可以登录
三、虚拟用户的相关设置
1、创建虚拟账号
vim /etc/vsftpd/users
2、为该文件进行哈希加密。
db_load -T -t hash -f /etc/vsftpd/users users.db
加密完成后会生成一个users.db的文件 使用file users.db查看文件属性
3、创建/etc/pam.d/usercheck文件。
4、编辑/etc/vsftpd/vsftpd.conf配置文件
5、指定虚拟账户的身份
6、在/var/ftpdir/目录下分别创建如下目录和文件,登陆ftp服务器,检验虚拟用户是否创建成功。