proftp sftp
博客专区 > davis_qi 的博客 > 博客详情
proftp sftp
davis_qi 发表于3年前
proftp sftp
  • 发表于 3年前
  • 阅读 148
  • 收藏 2
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

公司跟很多客户合作,需要提供ftp服务器供客户上传文件。 根据pci-dss的要求,ftp是不行的,因为是明文;用tls加密的话,客户又不干了,程序很麻烦。

1 2 3 4 5 /export |-- upload 对应用户sftponly,可以操作所有子目录 |-- dacheng 对应用户50010100,只能在自己目录下操作 |-- fuhua 对应用户50101200,只能在自己目录下操作 |-- xxxxxx 没办法,只能用sftp了。两种做法: ①用openssh自带的sftp功能,这个不推荐啊。理由如下: 一是要建立一堆的系统帐号,就算shell设置成/sbin/nologin,也是一大威胁。 二是我们需要把用户限制在自己的目录下,不能看到其他用户的东西,这个好办,我们还需要建立一个在所有客户目录上的一个用户sftponly,他是可以往这些用户的目录中写反馈文件的。这样就麻烦了,用openssh-sftp的话,需要上级目录是root权限,下级目录是用户权限,而上级如果是能读所有下级目录的话,就必须把这个用户放进root组,严重违反了pci-dss的要求。而且这么设置后,还必须用mount的方法来限制用户越出目录,越弄越麻烦啊。 ②用proftp,超级强悍啊。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 DenyAll <virtualhost 192.168.1.26> SFTPEngine on SFTPLog /var/log/sftp.log SFTPOptions IgnoreSFTPUploadPerms IgnoreSCPUploadPerms PessimisticKexinit RequireValidShell off # We are presumably using port 22 for standard Shell login, so move SFTP to another port Port 6666 SFTPHostKey /etc/ssh/ssh_host_rsa_key SFTPHostKey /etc/ssh/ssh_host_dsa_key SFTPCompression delayed MaxLoginAttempts 6 DefaultRoot ~ Umask 022 CreateHome on 700 dirmode 700 SFTPAuthMethods password AuthUserFile /usr/local/proftp/etc/sftp.passwd AllowAll <Directory /export/upload> AllowOverwrite on order Allow,Deny AllowUser ALL 解释一下,首先的deny all,拒绝掉了21端口的所有请求,表明这个proftp就是纯的一台sftp server。 我们实际只建立了一个系统用户,所有的子帐号都是虚拟的,所以SFTP Options需要做一些指定。 proftp的权限可以限制到非常多的细节,所以下面做了很多具体权限的设置,大家可以根据需要裁剪。 本服务器已经搭建供10几家基金公司使用。 系统的实际用户只有一个:

1 sftponly:x:602:603::/export/upload:/sbin/nologin 可以用proftp提供的ftpasswd来产生sftp.passwd sftp.passwd

1 2 50110000:xxxxxxxxxxxxx:602:603::/export/upload/yifangda:/bin/bash 50060000:xxxxxxxxxxxxx:602:603::/export/upload/penghua:/bin/bash 注意,这里的/bin/bash是可以胡填的,因为帐号602的sftponly实际根本没有权限。

共有 人打赏支持
粉丝 10
博文 108
码字总数 64742
×
davis_qi
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: