ftp服务器搭建(实现只上传禁止下载)

1.目的

搭建一个多人使用ftp服务器,进行必要的权限隔离。

2.安装与配置
2.1 安装

我的环境为centos,直接yum install -y vsftpd

2.2 配置文件如下:
#禁止匿名登录
anonymous_enable=NO
#开启本地用户访问
local_enable=YES
#允许写入
write_enable=YES
#
local_umask=022
#
dirmessage_enable=YES
#开启日志
xferlog_enable=YES
#设置ftp-data 端口,默认为20
connect_from_port_20=YES
#记录ftp操作日志
xferlog_file=/var/log/xferlog
#格式化日志
xferlog_std_format=YES
#提示信息
banner_file=/etc/vsftpd/welcome.txt
#将ftp活动目录固定在各用户家目录,在chroot_list为例外,即可以去到其他目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#被动模式,必须设置为YES
pasv_enable=YES
# 
listen=YES
#
listen_ipv6=NO
#pam设置
pam_service_name=vsftpd
#
userlist_enable=YES
#
tcp_wrappers=YES
#使用系统时间
use_localtime=YES
#在user_list 才允许登录ftp
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
2.3 限制在家目录访问配置

主要是下面3个参数chroot_local_user、chroot_list_enable、chroot_list_file=/etc/vsftpd/chroot_list

chroot_local_user   是否将所有用户限制在家目录,YES表示开启,NO表示禁用;
chroot_list_enable  是否启动限制用户的名单,YES表示启用,NO表示禁用
chroot_list_file=/etc/vsftpd/chroot_list   是否限制在家目录的用户名单,至于是限制还是排除名单,取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,
    其为YES时,全部用户被锁定于主目录,
    其为NO时,全部用户不被锁定于主目录。
    那么我们势必需要在全局设定下能做出一些“微调”,
    即,我们总是需要一种“例外机制“,所以当chroot_list_enable=YES时,
    表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全
    部用户被锁定于主目录“时(即chroot_local_user=YES),”例外”就
    是:不被锁定的用户是哪些;当”全部用户不被锁定于主目录”时(即chroot_local_user=NO),
    ”例外”“就是:要被锁定的用户是哪些。
2.4 限制用户访问

1、利用pam:配置文件:pam_service_name=vsftpd配置,禁止文件/etc/vsftpd/ftpusers用户登录ftp,初始将root也一并禁止了,需要去除。

2、自身限制:使用userlist_enable、userlist_deny、userlist_file

以下配置为允许user_list中用户访问

userlist_enable=YES                 # 配置为YES,底下userlist_deny才能生效,进行配置
userlist_deny=NO                    # 开放部分人员访问
userlist_file=/etc/vsftpd/user_list # 具体开放访问人员名单
3.特殊需求实现
3.1 实现只允许上传,不允许下载

需求:建设一个私网,要求实现一个普通用户只能往私网传输文件,不能拷贝出来,在私网内部上传下载不受限制。

实现:使用ftp完成此项工作,需要两个ftp,数据目录为nfs共享目录,方案如下:(项目基于aliyun搭建,使用很多aliyun上限制方案)

1.配置一个ftp,配置公网,用户只能上传不能下载,对用户暴漏此公网ip

1.1 配置只上传,这个仅对ftp生效。在上面配置文件添加,这个配置文件在man vsftp.conf 找不到也是比较奇怪。

download_enable=NO

1.2 设置好后,使用xftp、winscp 使用sftp协议,还是可以下载,需要将/etc/ssh/sshd_config下面配置文件修改如下,将sftp协议引导错误的引导程序。对用户宣传好使用ftp协议连接。

Subsystem       sftp    /usr/libexec/openssh/sftp-server.sh 

2.再在私网搭建一个ftp,只有私网ip,在私网暴漏此ip,这个ftp不做1中相关配置。
3.两个ftp挂载nfs共享目录,保证数据一致。
以上即可完成上述需求。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值