Linux中的ftp服务
文章目录
- Linux中的ftp服务
- 1.ftp的定义
- 2.ftp协议提供的软件
- 3.部署ftp服务
- 4.ftp服务的基本信息
- 5.用户权限
- 6.ftp虚拟用户的设定(创建虚拟账号身份)
1.ftp的定义
**ftp:// **是文件传输协议
2.ftp协议提供的软件
在rhel7中是 **vsftpd **
3.部署ftp服务
yum install vsftpd -y 安装vsftpd
systemctl start vsftpd 启动vsftpd
systemctl enable vsftpd 设置开机启动
firewall-cmd --permanent --add-service=ftp 设置防火墙允许ftp服务通过
firewall-cmd --reload 使防火墙设定立即生效
检测:
yum install ftpd -y 安装ftpd
lftp 172.25.254.228 匿名访问172.25.254.228的ftp地址
lftp 172.25.254.228:~> ls
drwxr-xr-x 2 0 0 19 Mar 07 2014 pub
4.ftp服务的基本信息
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id的解析:
500 文件系统权限过大
530 用户认证失败
550 服务本身功能未开放
553 本地文件系统权限过小
5.用户权限
通过对以下文件的编辑进行权限的控制
vim /etc/vsftpd/vsftpd.conf
注:以下每进行一次vsftpd.conf文件修改都要重启一次vsftpd服务,以下省略此步骤
(1)匿名用户登录
anonymous_enable=YES|NO 匿名用户是否可以登录
(2)匿名用户上传
vim /etc/vsftpd/vsftpd.conf 编辑配置文件
对文件进行编辑:
write_enable=YES 登录用户开启“写”的权限
anon_upload_enable=YES 匿名用户开启上传的权限
退出保存后执行命令:
chgrp ftp /var/ftp/pub 将/var/ftp/pub的所有目录修改为ftp
chmod 775 /var/ftp/pub 设置权限为775
(3)匿名用户家目录修改
anon_root=/westos 家目录修改为/westos
注:不允许在匿名用户家目录修改后对内容进行操作,只能在默认目录时进行操作。
(4)匿名用户上传文件默认权限修改
anon_umask=xxx(一般是022)
(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=westos 匿名用户登录身份为westos
(9)本地用户登登录(具体操作步骤与匿名用户相同,在此不放截图)
local_enable=YES|NO 本地用户是否可以登录
write_enable=YES|NO ftp是否对登录用户可写
(10)本地用户家目录修改(具体操作步骤与匿名用户相同,在此不放截图)
local_root=/westos 将本地用户家目录修改为/westos(必须存在)
chgrp student /westos/ 更改用户的所有组
chmod 755 /westos 修改家目录权限
(11)本地用户上传文件权限(具体操作步骤与匿名用户相同,在此不放截图)
local_umask=xxx(一般为022)
(12)限制本地用户浏览根目录
chroot_local_user=YES YES表示开启限制功能,不允许浏览,NO表示允许
chmod u-w /home/* 修改本地用户对家目录的写的权限
浏览根目录的黑白名单
黑名单建立
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 设定名单目录
注:名单文件需要自己创建,对 /etc/vsftpd/chroot_list(名单) 进行编辑。
(13)限制本地用户登陆
黑名单
vim /etc/vsftpd/ftpusers 永久用户黑名单
vim /etc/vsftpd/user_list 用户临时黑名单
白名单
userlist_deny=NO 关闭黑名单
vim /etc/vsftpd/user_list 设置白名单用户
(14)最大上传速率
anon_max_rate=102400 设置最大上传速率为100KB/s
测试:
dd if=/dev/zero of=/mnt/bigfile bs=1M count=1500 截取一个1.5G的文件进行上传测试
(15)最大连接个数
max_clients=1 设置最大连接个数为1
6.ftp虚拟用户的设定(创建虚拟账号身份)
vim etc/vsftpd/westosfile 此处文件名称可以自己任意设置
(1)设置虚拟账号
在文件中输入
user1 虚拟用户1的登录名
123 虚拟用户1的密码
user2 虚拟用户2的登录名
123 虚拟用户2的密码
执行命令
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db 生成db加密文件
设置pam认证
vim /etc/pam.d/westos 此处文件名称可以自己任意设置
在文件中输入
accout required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile
编辑vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
编辑以下命令
pam_service_name=westos 设定加密来自于pam认证中的westos方式
guest_enable=YES 开启游客登录
guest_username=lee 虚拟账号登录身份指定(用户必须存在)
在指定虚拟账号登录身份后需要修改权限
chmod u-w /home/lee
(2)虚拟账号家目录独立的设定
vim /etc/vsftpd/vsftpd.conf
输入以下指令
local_root=/ftphome/$USER 设定家目录路径
user_sub_token=$USER 认证shell内的$
建立用户家目录
mkdir /ftphome/user1/user1dir -p 建立user1的家目录
mkdir /ftphome/user2/user2dir -p 建立user2的家目录
虚拟账号配置独立
chgrp ftp /ftphome -R 更改用户家目录所有组为ftp
ll /ftphome/user* 查看各个用户家目录的权限
chmod 775 /ftphome/user1/user1dir 给user1dir相应的权限
chmod 775 /ftphome/user2/user2dir 给user2dir相应的权限
改写主配置文件
vim /etc/vsftpd/vsftpd.conf
输入以下指令
user_config_dir=/etc/vsftpd/userconf 更改配置文件路径
建立新配置文件目录
mkdir -p /etc/vsftpf/userconf
编辑配置文件
vim /etc/vsftpd/userconf/user1
在此文件中设定配置文件中的所有参数,此文件优先级高
anon_upload_enable=YES