Centos7 搭建多用户SFTP服务,并开启日志记录

一、环境描述

系统版本:CentOS Linux release 7.8.2003
背景:有一台Centos服务器作为SFTP服务器,需要有SFTP用户,且需要记录操作日志。

二、基于Centos7搭建sftp

①、修改SSH文件 /etc/ssh/sshd.conf

先注销掉这行

#Subsystem       sftp    /usr/libexec/openssh/sftp-server

在最底下添加如下几行

Subsystem       sftp    internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no

添加后如下:

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS# override default of no subsystems
#Subsystem  sftp    /usr/libexec/openssh/sftp-server# Example of overriding settings on a per-user basis
#Match User anoncvs
#   X11Forwarding no
#   AllowTcpForwarding no
#   PermitTTY no
#   ForceCommand cvs server
Subsystem       sftp    internal-sftp -l INFO -f local5
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand    internal-sftp -l INFO -f local5
AllowTcpForwarding no
X11Forwarding no

ChrootDirectory 锁定SFTP目录到该路径, %u 每用户不同家目录

②、创建SFTP用户组

[root@server3 ~]# groupadd sftp

③、重启sshd服务

[root@server3 ~]# systemctl restart sshd

④、建sftp用户

创建用户,用户所属组为sftp
useradd -g sftp -s /bin/false tempsftp
设置用户密码
echo “123456” |passwd --stdin tempsftp
创建家目录/data/sftp/tempsftp
注:用户无法在家目录直接操作,需要在家目录下创建一个文件夹用于存放文件
mkdir -p /data/sftp/tempsftp/home
修改用户家目录
usermod -d /data/sftp/tempsftp tempsftp
修改文件夹属主和属组
chown tempsftp:sftp /data/sftp/tempsftp/home/

[root@localhost ~]# useradd -g sftp -s /bin/false tempsftp
[root@localhost ~]# echo "123456" |passwd --stdin tempsftp
Changing password for user tempsftp.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# mkdir -p /data/sftp/tempsftp/home
[root@localhost ~]# usermod -d /data/sftp/tempsftp tempsftp
[root@localhost ~]# chown tempsftp:sftp /data/sftp/tempsftp/home/
[root@localhost ~]# ls -l /data/sftp/tempsftp/
total 0
drwxr-xr-x 2 tempsftp sftp 6 May 12 16:23 home
[root@localhost ~]# ls -l /data/sftp/tempsftp/home/

家目录属主、属组、及用户权限如下:

[root@localhost ~]# ls -l /data/sftp/
total 0
drwxr-xr-x 3 root root 18 May 12 16:23 tempsftp
[root@localhost ~]# ls -l /data/sftp/tempsftp/
total 0
drwxr-xr-x 2 tempsftp sftp 25 May 12 16:24 home

⑤、测试sftp

[16:24:17] [L] SSH 连接打开
[16:24:17] [L] 已建立连接对象: OpenSSH_7.4 (SFTP v3)
[16:24:17] [L] SFTP 连接就绪
[16:24:17] [L] 获取目录列表中……
[16:24:18] [L] 列表完成: 255 字节 耗时 0.03 秒 (0.2 KB/s)
[16:24:19] [L] 目录更改进度:/home/
[16:24:19] [L] 获取目录列表中……
[16:24:19] [L] 列表完成: 170 字节 耗时 0.02 秒 (0.2 KB/s)
[16:24:22] [L] 正在上载: /home/2021-02.txt
[16:24:22] 上载: 2021-02.txt 521 字节 耗时 0.02 秒 (0.5 KB/s)
[16:24:22] [L] 获取目录列表中……
[16:24:22] [L] 列表完成: 271 字节 耗时 0.04 秒 (0.3 KB/s)
[16:24:22] 传输队列已完成
[16:24:22] 已传输 1 个文件 (521 字节) 耗时 0.08 秒 (0.5 KB/s)

三、开启SFTP日志记录

①、设置sshd.conf文件

修改Subsystem 和ForceCommand 在后面增加 -l INFO -f local5

Subsystem       sftp    internal-sftp -l INFO -f local5
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand    internal-sftp -l INFO -f local5
AllowTcpForwarding no
X11Forwarding no

重要 [ -l INFO -f local5 ]

日志等级:INFO # 定义代码:local5

记录消息代码:DAEMON,USER,AUTH,LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5,LOCAL6,LOCAL7。默认值为AUTH。

②、修改/etc/rsyslog.conf

[root@localhost ~]# vim /etc/rsyslog.conf
在最后面添加以下
auth,authpriv.,local5. /var/log/sftp.log

# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList   # run asynchronously
#$ActionResumeRetryCount -1    # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###
auth,authpriv.*,local5.*  /var/log/sftp.log

③、重启sshd、rsyslog服务

[root@localhost ~]# systemctl restart rsyslog
[root@localhost ~]# systemctl restart sshd

④、验证sshd日志是否记录

[root@localhost ~]# tail -f /var/log/sftp.log
May 12 16:31:52 localhost polkitd[645]: Unregistered Authentication Agent for unix-process:1543:60006 (system bus name :1.23, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
May 12 16:33:39 localhost polkitd[645]: Registered Authentication Agent for unix-process:1559:70773 (system bus name :1.24 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
May 12 16:33:39 localhost sshd[1540]: Received signal 15; terminating.
May 12 16:33:39 localhost sshd[1566]: Server listening on 0.0.0.0 port 22.
May 12 16:33:39 localhost sshd[1566]: Server listening on :: port 22.
May 12 16:33:39 localhost polkitd[645]: Unregistered Authentication Agent for unix-process:1559:70773 (system bus name :1.24, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
May 12 16:33:44 localhost polkitd[645]: Registered Authentication Agent for unix-process:1567:71197 (system bus name :1.25 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
May 12 16:33:44 localhost polkitd[645]: Unregistered Authentication Agent for unix-process:1567:71197 (system bus name :1.25, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
May 12 16:33:54 localhost sshd[1525]: pam_unix(sshd:session): session closed for user tempsftp
May 12 16:33:54 localhost systemd-logind: Removed session 2.
May 12 16:33:56 localhost sshd[1580]: Accepted password for tempsftp from 192.168.7.119 port 54375 ssh2
May 12 16:33:56 localhost systemd-logind: New session 3 of user tempsftp.
May 12 16:33:56 localhost sshd[1580]: pam_unix(sshd:session): session opened for user tempsftp by (uid=0)
May 12 16:33:56 localhost sshd[1580]: session opened for local user tempsftp from [192.168.7.119] [postauth]
May 12 16:33:56 localhost sshd[1580]: opendir "/home/" [postauth]
May 12 16:33:56 localhost sshd[1580]: closedir "/home/" [postauth]
May 12 16:33:56 localhost sshd[1580]: opendir "/home/" [postauth]
May 12 16:33:56 localhost sshd[1580]: closedir "/home/" [postauth]
May 12 16:33:58 localhost sshd[1580]: sent status No such file [postauth]
May 12 16:33:58 localhost sshd[1580]: open "/home/123.jpg" flags WRITE,CREATE,TRUNCATE mode 0666 [postauth]
May 12 16:33:58 localhost sshd[1580]: close "/home/123.jpg" bytes read 0 written 10566 [postauth]
May 12 16:33:58 localhost sshd[1580]: set "/home/123.jpg" modtime 20210318-06:12:39 [postauth]
May 12 16:33:58 localhost sshd[1580]: opendir "/home/" [postauth]
May 12 16:33:58 localhost sshd[1580]: closedir "/home/" [postauth]

参考连接:https://blog.51cto.com/wangxiaoyong/2394832

Centos7 搭建多用户SFTP服务,并开启日志记录相关推荐

  1. Centos7 搭建Nginx图片服务超详细新手小白教程

    简介:以上文章讲述的是[Centos7超详细的安装与部署应用MySQL,Redis]接下来我总结一下[Centos7 搭建Nginx图片服务超详细教程].觉得我还可以的可以加群一起督促学习探讨技术.Q ...

  2. php ci log,PHP框架CI CodeIgniter 的log_message开启日志记录方法

    PHP框架CI CodeIgniter 的log_message开启日志记录方法 第一步:index.php文件,修改环境为开发环境 define('ENVIRONMENT', 'developmen ...

  3. mysql开启日志记录

    windwos下mysql开启日志,linux暂时没试过. general-log=1 log-output=FILE general-log-file="myq.log" 转载于 ...

  4. mybatis 开启日志记录 打印sql语句

    使用mybatis 的时候 ,无法查看sql 语句 !!非常不方便调试程序,所以 配置了日志记录输出sql  ,在控制台打印, 1.要配置mybatis 使用log4j 记录日志,  导入 log4j ...

  5. CentOS7.6-搭建SFTP服务

    1.需求 搭建多账号SFTP,不同的用户只能够查看自己所属的目录 禁止SFTP账号通过SSH连接 SFTP 用户demo1.demo2,所属目录:/data/sftp/demo1./data/sftp ...

  6. 【网络安全】基于centos7搭建discuz+redis服务

    目录 一.discuz介绍 二.搭建准备 1 .搭建LAMP (1)安装  (2)启动 (3)查询状态  2.安装MySQL (1)安装 (2)启动mariadb服务 (3)察看状态  (4)查看端口 ...

  7. HAproxy开启日志记录

    1.说明 HAproxy在默认情况不会记录日志, 不仅要在haproxy.conf中配置日志输出, 还需要修改系统日志的配置文件. 2.修改haproxy.conf 在haproxy.conf文件中增 ...

  8. 开启mysql日志记录_Mysql开启日志记录

    vim /etc/my.conf.d/server.cnf: #lower_case_tables_name = 1 #错误日志 log_error = /var/log/mysql_error.lo ...

  9. mysql开启日志记录及清理general_log文件

    日志开启 set global log_output = 'TABLE'; set global general_log = 'ON'; 查看是否开启成功 show variables like '% ...

  10. CRT 开启日志记录功能

    使用CRT登陆设备的时候,需要看设备的各种信息,有时打印信息超出CRT的打印限制后,再找想要的打印信息的时候就找不到了.查了一下CRT有自动记录日志的功能,用了一段时间发现挺好用的,记录一下配置步骤. ...

最新文章

  1. 外贸网站制作 网页的宽度多少为合适
  2. 机器学习Sklearn实战——其他线性回归模型、逻辑回归
  3. 鸿蒙开发目录结构及文件使用规则介绍
  4. VC++制作DLL具体解释
  5. 漫步数学分析四——集合内部
  6. (49)FPGA面试技能提升篇(仿真加速平台Palladium、Zebu、Veloce)
  7. docker-compose教程(安装,使用, 快速入门)
  8. 电商运营、美工必备导航类网站,有效提高工作效率
  9. html个人中心源代码,HTML用户注册页面设置源码
  10. 《遗传算法原理及应用》笔记—基本遗传算法
  11. php给超链接添加图标,怎么给一个PHP密码访问页面加超链接
  12. 如何撰写专利说明书?
  13. AI“独角兽”排队上市,但属于AI公司的胜利还没有到
  14. java基于ssm的在线装机DIY系统的分析与设计
  15. CSAPP Lab2 实验记录 ---- Bomb Lab(Phase 1 - Phase 6详细解答 + Secret Phase彩蛋解析)
  16. 黑暗堵神传服务器维护是什么意思,重要公告 | 6月24日5点-12点停服维护
  17. 汽车后市场助理—行驶证识别
  18. GeckoDriver 国内镜像源加速下载
  19. win10 系统中 网易 MuMu 模拟器调试钉钉微应用
  20. Squirrel 连接Hive

热门文章

  1. linux服务器硬盘检测,在Linux服务器中检查硬盘坏道的命令
  2. SQL server中模式的定义和删除
  3. 成为优秀交互设计师的六个必备技能
  4. 虚拟机到服务器丢包,虚拟机丢包问题排查处理
  5. python指数函数的计算,Python exp() 指数函数
  6. 自定义Google搜索引擎
  7. JavaWeb笔记——JSPThymeleaf
  8. 新萝卜家园 Ghost XP SP3 电脑城装机版 2011.06+
  9. 村上春树 --《当我谈跑步时,我谈些什么》句子摘录​
  10. Python模拟登录淘宝