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
虚拟用户家目录建立
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虚拟用户就到了自己的家目录。