利于群晖的File Station+SFTP实现第三方人员快速获取服务器应用日志
需求场景:
由于供应商或者第三方技术人员需要查看应用服务器上的日志进行问题排查
但是基于运维安全和权限考虑,又不想将服务器SSH权限给到用户(虽然通过堡垒机上授权给到第三方用户)
也不想每次都自己SSH登录服务器后手工下载日志文件后打包发给第三
方用户,这样太浪费精力
解决方案:
服务器上创建SFTP用户,然后利于群晖的File Station为第三方用户提供方便查看nginx服务器访问日志的途径
具体步骤如下
假设第三方用户是要查看Nginx服务器的访问日志
1、Nginx服务器IP 192.168.31.170
2、群晖NAS 192.168.31.140
一、nginx服务器上创建SFTP用户
参考如下链接完成
https://www.linuxprobe.com/linux-sftp.html https://blog.csdn.net/zhangzhenzhou777/article/details/120126015
1、Nginx服务器上面创建SFTP用户
SFTP用户只能登录SFTP,无法登录shell
groupadd sftpusers useradd -d /var/log/nginx -s /sbin/nologin -G sftpusers sftpuser passwd sftpuser
(图片点击放大查看)
2、修改sshd_config
vi /etc/ssh/sshd_config #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no
systemctl restart sshd
(图片点击放大查看)
(图片点击放大查看)
Tips
1、如果通过sftp登录时报如下错误时
sftp sftpuser@192.168.31.170 packet_write_wait: Connection to 192.168.31.170 port 22: Broken pipe Couldn't read packet: Connection reset by peer
(图片点击放大查看)
可以在该服务器上查看日志
tail -f /var/log/secure
(图片点击放大查看)
根据如下报错
fatal: bad ownership or modes for chroot directory
问题的原因是ChrootDirectory的权限问题,请确保sftp用户根目录的所有人是root 修改
解决办法:chown root SFTP用户的家目录
2、权限报错
sftp> dir remote readdir("/"): Permission denied
无法读取目录下文件
(图片点击放大查看)
解决办法
(图片点击放大查看)
(图片点击放大查看)
chmod -R 755 /var/log/nginx
二、群晖上创建日志查看的用户
1、先创建logviewer专门查看日志的用户
(图片点击放大查看)
2、单独创建一个目录LogSpace,授权给到这个logviewer用户
(图片点击放大查看)
(图片点击放大查看)
3、在FileStation设置中允许这个logviewer用户装载服务器
(图片点击放大查看)
(图片点击放大查看)
(图片点击放大查看)
三、登录群晖NAS后FileStation中装载SFTP服务器
logviewer登录NAS上装载SFTP后 这样可以在NAS中查看到Nginx服务器的日志
(图片点击放大查看)
(图片点击放大查看)
(图片点击放大查看)
(图片点击放大查看)
(图片点击放大查看)
(图片点击放大查看)
总结:这样就无需给第三方用户提供Nginx服务器的SSH权限
只用提供一个NAS登录地址和NAS账号就可以让第三方用户方便快捷地查看nginx的日志