Linux系统下的ftp服务

一、什么是ftp

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

二、ftp的启用

1.关闭selinux

vim /etc/sysconfig/selinux ##编辑selinux配置文件

SELINUX=disable ##设置关闭selinux

reboot ##重起生效
这里写图片描述
2.安装ftp服务和lftp工具

  • yum install vsftpd lftp -y

  • systemctl start vsftpd

  • systemctl enable vsftpd

3.配置防火墙

  • firewall-cmd –permanent –add-service=ftp ##添加ftp服务到火墙白名单(不关闭防火墙)

  • firewall-cmd –reload ##重新加载防火墙配置

4.使用ftp访问主机

lftp 172.25.254.128
这里写图片描述

三、ftp的基本信息

访问数据端口:21

数据传输端口:大于1024的随机端口

默认发布目录:/var/ftp/

netstat -antlupe | grep vsftpd ##查看vsftpd服务所用端口信息
这里写图片描述
访问方式:

  • lftp 172.25.254.128 ##匿名登陆 默认目录/var/ftp

  • lftp 172.25.254.128 -u student ##用户登录 默认目录/home/student
    这里写图片描述
    配置文件 /etc/vsftpd/vsftpd.conf

四、ftp的安全部署

vim /etc/vsftpd/vsftpd.conf

12行 匿名用户登陆设置
anonymous_enable=YES|NO      ##匿名用户是否可以登陆

16行 本地用户登陆设置
local_enable=YES|NO          ##本地用户是否可以登陆

19行 本地用户w设置
write_enable=YES|NO          ##本地用户是否可写

systemctl restart vsftpd ##重启服务,使配置生效

注意:每次修改完ftp配置文件后,都需要重新启动服务
操作过程中常见报错:

530  ##报错表示认证失败
550  ##服务本身不允许这样做
500  ##权限过大
553  ##服务器上的文件系统不允许写

这里写图片描述

五、匿名用户

1.匿名用户可上传
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
vim /etc/vsftpd/vsftpd.conf
29行 anon_upload_enable=YES
systemctl restart vsftpd
这里写图片描述
这里写图片描述
2.匿名用户可下载

默认不能下载不可读的文件
添加 anon_world_readable_only=NO 匿名用户可下载
这里写图片描述
3.匿名用户建立目录

34行 anon_mkdir_write_enable=YES 匿名用户可以新建目录
这里写图片描述
4.匿名用户是否可以删除和重命名

添加 anon_other_write_enable=YES 匿名用户可以删除,重命名
这里写图片描述
5.匿名用户家目录修改

anon_root=dir
这里写图片描述
6.匿名用户更改mask值

默认上传文件权限 600 建立目录权限700

anon_umask=022

更改后如下图所示:这里写图片描述

7.匿名用户使用的用户身份修改

  • chown_uploads=YES
  • chown_username=student 匿名用户使用student身份进行操作
    这里写图片描述
    8.最大上传速率

anon_max_rate=102400(单位为字节)
这里写图片描述
9.最大链接数

max_clients=1
这里写图片描述

六、本地用户

1.本地用户家目录修改

local_root=/dir
这里写图片描述
2.本地用户上传文件权限mask

local_umask=033
这里写图片描述
3.限制本地用户浏览/目录

本地用户访问可一切换到/目录,这样很不安全,我们可以限制本地用户浏览/目录

chroot_local_user=YES

chmod u-w /home/* ##减小目录权限,否则会出现权限过大的500报错
这里写图片描述
1)用户黑名单建立

chroot_local_user=NO

chroot_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 ##白名单建立后黑名单失效,且黑名单文件变为白名单文件
这里写图片描述
4.限制本地用户登陆
1)用户黑名单设定

vim /etc/vsftpd/ftpusers #用户永久黑名单
这里写图片描述
vim /etc/vsftpd/user_list #用户临时黑名单
这里写图片描述
2)用户白名单设定

userlist_deny=NO

/etc/vsftpd/user_list #参数设定,此文件变为用户白名单,只在名单中出现的用户可以登陆ftp(但是如果在名单中出现的用户也在永久黑名单中出现,那么该用户无法登录)
这里写图片描述
这里写图片描述

七、ftp虚拟用户的设定

1.虚拟用户的作用

虚拟用户不是本地用户,无需占用大量主机空间,并且不能对系统进行修改,提高了系统安全性
2.创建虚拟帐号身份

vim /etc/vsftpd/westosfile ##文件名称任意

user1
111
user2
222
user3
333

注意:帐号密码后面均不能添加空格
这里写图片描述

db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db           ##采用hash加密方式给westosfile加密

vim /etc/pam.d/westos                 
auth     required  pam_userdb.so  db=/etc/vsftpd/westosfile    
account  required  pam_userdb.so  db=/etc/vsftpd/westosfile

vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos       ##采用ftp方式访问时会读取westos文件
guest_enable=YES

这里写图片描述
3.虚拟帐号身份指定

vim /etc/vsftpd/vsftpd.conf

guest_username=ftp

若指定为student用户,则登陆这三个虚拟帐号时将进入student用户家目录
这里写图片描述
4.虚拟帐号家目录独立设定

vim /etc/vsftpd/vsftpd.conf
    local_root=/ftphome/$USER
    user_sub_token=$USER
mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
mkdir /ftphome/user3/user3dir -p
systemctl restart vsftpd

这里写图片描述
5.虚拟帐号配置独立

可分别配置虚拟用户中各个用户的权限

chgrp ftp /ftphome -R
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir

vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf

mkdir -p /etc/vsftpd/userconf

vim /etc/vsftpd/userconf/user1    ##在此文件中设定配置文件中的所有参数,此文件的优先级高

anon_mkdir_write_enable=YES

这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值