linux学习 lesson17FTP

ftp 服务

ftp是早期的传送文字文件的服务,到90年网页图片视频开始兴起才开始用httpd。

一、开启ftp服务:

下载ftp

配置好yum源
yum search ftp ##搜索安装包
在这里插入图片描述
vs是安全传输,现如今大部分都使用的是vsftpd

 yum install vsftpd.x86_64     ##安装ftp

systemctl start vsftpd        ##开启服务
firewall-cmd --list-all       ##查看火墙状态,没有允许ftp服务

firewall-config               ##图形界面管理火墙
先将临时改为永久,勾选ftp。relog火墙。
firewall-cmd --list-all       ##查看火墙状态,允许ftp服务
systemctl start vsftpd        ##开启服务
systemctl enable vsftpd        ##永久开启服务
getenforce                    ##
vim /etc/sysconfig/selinux    ##将状态改为disabled
reboot                        ##重启虚拟机

在真机测试
lftp 172.25.254.164 可以用
在这里插入图片描述
完成!

二、ftp权限

寻找权限文件

rpm -qc vsftpd
权限文件:/etc/vstpd/vsftpd.conf
在这里插入图片描述

设置匿名用户不能登陆

12行 改为NO
在这里插入图片描述
systemctl restart vsftpd ##重启服务
则匿名不可以访问。

在这里插入图片描述
##lftp 直接加用户名默认为匿名用户ftp。

设置本地用户不能访问

16行 改为NO
在这里插入图片描述
systemctl restart vsftpd ##重启服务
本地用户不能访问
在这里插入图片描述

本地用户访问方法:lftp ip -u 用户名

设置本地用户不可写入

将16行还原到YES
19行 改为NO
在这里插入图片描述
systemctl restart vsftpd ##重启服务
本地用户不能写入
在这里插入图片描述

530 认证失败
550 本地服务不允许
553 服务器文件系统不允许

匿名用户可以上传

29行 取消注释,改为YES
systemctl restart vsftpd ##重启服务
在这里插入图片描述

ll -d /var/ftp/pub         
chmod 775 /var/ftp/pub                ##修改权限
chgrp ftp /var/ftp/pub                   ##更改组
ls -ld /var/ftp/pub

在这里插入图片描述

lftp 172.25.254.108
>put /etc/passwd

在这里插入图片描述

其他匿名用户权限命令

30行 编写:anon_world_readable_only=NO  ##匿名用户可下载
34 anon_mkdir_write_enable=YES   ##匿名可以建立目录
35 anon_other_write_enable=YES   ##匿名可以删除
36 anon_max_rate=102400          ##匿名下载速度不超过100k
37 max_clients=2                 ##最多两个链接同时在线

<匿名用户家目录修改>

anon_root=/direcotry

<匿名用户上传文件默认权限修改>

anon_umask=xxx
umask=022建立的目录是644

匿名用户使用身份修改

chown_uploads=YES
chown_username=student
chown_upload_mode=0644     ##指定上传权限

本地用户家目录修改

local_root=/directory

本地用户上传文件权限

local_umask=xxx

三、限制本地用户浏览/目录

为了不让所有用户可以进入根目录,对系统造成的安全威胁。对用户进行限制。

限制所有用户

所有用户被锁定到自己的家目录中。
在这里插入图片描述

如果不加限制任意用户都可以浏览根目录。

chroot_local_user=YES
在这里插入图片描述
chmod u-w /home/*
在这里插入图片描述
systemctl restart vsftpd
在这里插入图片描述
限制成功!

限制黑名单与白名单

黑/白名单原本是没有的,所以需要touch文件。名单格式也是一行一个。
touch /etc/vsftpd/chroot_list ##建立名单表
在这里插入图片描述

用户黑名单建立

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在这里插入图片描述

在这里插入图片描述

用户白名单建立

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在这里插入图片描述
在这里插入图片描述

限制本地用户登陆

userlist_enable=YES
在这里插入图片描述
vim /etc/vsftpd/ftpusers ##用户黑名单(永久,一黑永黑)

在这里插入图片描述

在这里插入图片描述
vim /etc/vsftpd/user_list ##用户临时黑名单(如果同在白名单则失效)

在这里插入图片描述
#用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp
此时student就在白名单里。
所以只有student可以登陆

在这里插入图片描述

四、ftp虚拟用户的建立

建立db文件

vim /etc/vsftpd/userlogin ##登陆信息文件,文件名随意
在这里插入图片描述
保存之后建立db文件(为了被pam识别,pam是登陆认证模块)

db_load -T -t hash -f /etc/vsftpd/userlogin /etc/vstpd/userlogin.db
     ^   ^  ^  ^   ^           ^                     ^
     1   2  3  4   5           6                     7

1.生成db文件头命令
2.trasf
3.type 文件类型
4.散列类型
5.
6.登陆信息文件
7.要生成的db文件
在这里插入图片描述

将db文件与登陆认证模块连接

vim /etc/pam.d/userlogin ##登陆认证
在这里插入图片描述
account:用户名 auth:密码
db=的文件不用加.df 自动加

编写权限文件

vim /etc/vsftpd/vsftpd.conf

编写
pam_service_name=userlogin
guest_enable=YES
guest_usrname=ftp
在这里插入图片描述

在这里插入图片描述

虚拟用户家目录建立

U S E R / h o m e / USER 用户变量 切换之后自动改变 家目录在/home/ USER
如何让不同的虚拟用户进入各自的家目录呢?
step1
首先,建立个用户的家目录
mkdir /ftphome/kris1/kris1dir/ -p
mkdir /ftphome/kris2/kris2dir/ -p
mkdir /ftphome/kris3/kris3dir/ -p
step2
在系统中承认家目录的作用
vim /etc/vsftpd/vsftpd.conf

local_root=/ftphome/KaTeX parse error: Expected 'EOF', got '#' at position 16: USER #̲#设置用户变量 user_su…USER

restart使其生效,现在登陆之后ls虚拟用户就到了自己的家目录。

猜你喜欢

转载自blog.csdn.net/qq_38864155/article/details/83511633
今日推荐