linux初学之ftp服务
一 ftp的定义
ftp=文件传输协议(File Transfer Protocol)二 ftp协议提供的软件
在rhel7中名字为vsftpd
vsftpd
三 部署ftp服务yum install vsftpd -y
systemctl enable vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
浏览器测试:ftp://172.25.254.153
lftp 172.25.254.141
二 ftp服务的基本信息
1)软件安装包: vsftpd
2)默认发布目录: /var/ftp
3)协议接口: 主动21 被动>1024 ss antlpe |grep vsftpd 查看端口
4)服务配置文件: /etc/vsftpd/vsftpd.conf 通过修改相对应的参数,实现相关功能,配置完systemctl restart vsftpd重启服务
5)报错id解析
(550:服务本身功能未开放
530:用户认证失败
500:文件系统权限太大
553:本地文件系统权限过小)
三 ftp基本配置
vim /etc/vsftpd/vsftpd.conf12行表示匿名用户是否可以登陆ftp服务器
19行 表示ftp是否对客户端(登陆用户)可写
29行 表示匿名用户能否上传(put)
1)允许匿名用户登陆,可以上传文件并进行写操作,
配置完进行以下命令
chgrp ftp /var/ftp/put 把组改为ftp
chmod 775 /var/ftp/pub
2)不允许匿名用户登陆
3) 匿名用户家目录修改
anon_root=/direcotry
4)匿名用户上传文件默认权限修改
anon_umask=xxx
5)匿名用户建立目录
anon_mkdir_write_enable=YES|NO
6)匿名用户下载
anon_world_readable_only=YES|NO(no表示匿名用户可以下载)
7)匿名用户删除
anon_other_write_enable=YES|NO (只能删除自己上传的文件)
8)匿名用户使用的用户身份进行修改
chown_uploads=YES
chown_username=student
9)最大上传速率
anon_max_rate=102400(1m)
10)最大链接数
max_clients=2
2 本地用户设定
1)16行 表示本地用户是否可以登陆ftp服务器
2)本地用户家目录修改
local_root=/directory
3)本地用户上传文件权限
local_umask=xxx
4)限制本地用户浏览/目录
所有用户被锁到自己的家
chroot_local_user=YES
chmod u-w /home/*
四
1 用户黑名单建立
chroot_local_user=NOchroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
参考白名单进行修改即可
2 用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
限制本地用户登陆
vim /etc/vsftpd/ftpusers 用户黑名单
vim /etc/vsftpd/user_list 用户临时黑名单
用户白名单设定
userlist_deny=NO 用户反转
/etc/vsftpd/user_list 参数设定,此文件变成用户白名单,只有在名单中出现的用户才能登陆ftp
ftp虚拟用户的设定
创建虚拟帐号身份
vim /etc/vsftpd/loginusers 文件名称任意
举例:
ftpuser1
123
ftpuser2
123
ftpuser3
123
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db 加密
vim /etc/pam.d/ckvsftpd 文件名称任意
account required pam_userdb.so db=/etc/vsftpd/loginusers 设定从何处读取用户名称和密码
auth required pam_userdb.so db=/etc/vsftpd/loginusers
vim /etc/vsftpd/vsftpd.conf 更改配置文件
pam service name=ckvsftpd
guest_enable=YES
然后虚拟用户就能登陆