栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Centos搭建SFTP服务

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Centos搭建SFTP服务

一、什么是SFTP

sftp = ssh+ftp(安全文件传输协议)
由于ftp是明文传输的,没有安全性。sftp基于ssh,传输内容是加密过的,较为安全。

二、需求
  1. 公司需要对接DJI和ASUS两个客户之间文件交付,如SOP,BOM等信息,其实也可以用VX和Q进行传输,但安全性不好,一般大企业都会有对外的SFTP
  2. 需要建立的账号有读写和读两个区分
  3. SFTP使用账号不能登入服务器
  4. 建立SFTP日志功能
三、主机信息
系统IP
Centos7.588.88.88.254/24
四、SFTP用户信息
专案用户名权限
DJIdji1读写
DJIdji2
ASUSasus1读写
ASUSasus1
五、搭建过程
  1. 建立一个DJI客户和ASUS客户的sftp文件夹
cd /
mkdir -p SFTP-DJI/DJI         
mkdir -p SFTP-ASUS/ASUS 

-p: 创建SFTP-DJI目录以及SFTP-DJI目录下面的DJI文件夹。允许创建目录及子目录

  1. 权限文件夹755权限
chmod 755 SFTP-DJI
chmod 755 SFTP-ASUS
  1. 创建DJI专案和ASUS专案的只读和读写组(把用户加入到组就不需要单独用户给权限)
groupadd DJI-RO
groupadd DJI-RW
groupadd ASUS-RO
groupadd ASUS-RW

RO:代表只读
RW:代表读写

  1. 授权组对文件夹的权限
cd /SFTP-DJI
setfacl -m  g:DJI-RO:rx  DJI
setfacl -m  g:DJI-RW:rwx  DJI
cd /SFTP-ASUS
setfacl -m  g:ASUS-RO:rx  ASUS
setfacl -m  g:ASUS-RW:rwx  ASUS

解释下这个的意思“g:DJI-RO:rx DJI”
g:要设置的为组
DJI-RO:组
rx:读执行权限

setfacl命令
可以用来细分linux下的文件权限。chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。换句话说,setfacl可以更精确的控制权限的分配。比如:让某一个用户对某一个文件具有某种权限。

setfacl 参数
  -m:设置后续acl参数 
  -x:删除后续acl参数  
  -b:删除全部的acl参数
  -k:删除默认的acl参数
  -R:递归设置acl,包括子目录
  -d:设置默认acl

查看两个文件夹的权限

[root@SFTP SFTP-ASUS]# cd /SFTP-DJI/
[root@SFTP SFTP-DJI]# ll
总用量 0
drwxrwxr-x+ 2 root root 6 12月 28 13:37 DJI
[root@SFTP SFTP-DJI]# getfacl DJI/
# file: DJI/
# owner: root
# group: root
user::rwx
group::r-x
group:DJI-RO:r-x      #DJI-RO读权限
group:DJI-RW:rwx      #DJI-RW读写权限
mask::rwx
other::r-x

[root@SFTP SFTP-DJI]# 
  1. 建立DJI和ASUS的SFTP账号,指定到相对应的组,禁止用户ssh登入服务器本身并修改密码
useradd -g DJI-RW -s /sbin/nologin -M dji1
useradd -g DJI-RO -s /sbin/nologin -M dji2
useradd -g ASUS-RW -s /sbin/nologin -M asus1
useradd -g ASUS-RO -s /sbin/nologin -M asus2

-g DJI-RW:加入DJI-RW用户组
-s /sbin/nologin:禁止用户ssh登录
-M:不要自动建立用户的登入目录

[root@SFTP SFTP-DJI]# passwd dji1     #记得修改所有用户密码
更改用户 dji1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@SFTP SFTP-DJI]# 
  1. 修改sshd配置文件
vi /etc/ssh/sshd_config

找到这条注释掉
#Subsystem   sftp  /usr/libexec/openssh/sftp-server    


添加
Subsystem   sftp  internal-sftp    #这行指定使用sftp服务使用系统自带的internal-sftp代码



末尾添加
Match Group DJI-RO,DJI-RW                     #匹配组,如果要匹配多个组,多个组之间用逗号分割
               X11Forwarding no               #用户不能使用端口转发
               AllowTcpForwarding no          #用户不能使用端口转发
               ForceCommand internal-sftp     #指定运行internal-sftp的命令
               ChrootDirectory /SFTP-DJI      #只能访问规定的/SFTP-DJI目录

Match Group ASUS-RO,ASUS-RW
               X11Forwarding no
               AllowTcpForwarding no
               ForceCommand internal-sftp
               ChrootDirectory /SFTP-ASUS

重启sshd 如果重启报错可以用sshd -t来查看是那一行代码有误

systemctl restart sshd     
  1. 验证各个账号的功能(这边用WinSCP软件进行连接)


再用Xshell验证账号是否可以连接服务器

六、建立SFTP日志
vi /etc/ssh/sshd_config 

在原来的条目上添加-l INFO -f local5和LogLevel INFO
Subsystem          sftp        internal-sftp -l INFO -f local5
LogLevel INFO

修改rsyslog配置

vi /etc/rsyslog.conf

添加以下内容
auth,authpriv.*,local5.* /var/log/sftp.log

重启服务

systemctl restart sshd
systemctl restart rsyslog

查看日志

[root@SFTP ~]# tail /var/log/sftp.log
2021-12-28T17:51:58.129242+08:00 SFTP systemd-logind: Removed session 22.
2021-12-28T17:51:58.793180+08:00 SFTP sshd[18895]: pam_unix(sshd:session): session closed for user asus1
2021-12-28T17:51:58.799773+08:00 SFTP systemd-logind: Removed session 23.
2021-12-28T17:51:59.477644+08:00 SFTP sshd[18902]: pam_unix(sshd:session): session closed for user asus2
2021-12-28T17:51:59.487868+08:00 SFTP systemd-logind: Removed session 24.
2021-12-28T17:52:01.097787+08:00 SFTP sshd[18883]: pam_unix(sshd:session): session closed for user dji1
2021-12-28T17:52:01.111250+08:00 SFTP systemd-logind: Removed session 21.
2021-12-28T17:52:10.029401+08:00 SFTP sshd[18973]: Accepted password for dji1 from 88.88.88.88 port 52557 ssh2
2021-12-28T17:52:10.194591+08:00 SFTP systemd-logind: New session 27 of user dji1.
2021-12-28T17:52:10.197011+08:00 SFTP sshd[18973]: pam_unix(sshd:session): session opened for user dji1 by (uid=0)
[root@SFTP ~]# 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/680841.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号