统信服务器操作系统【SSH与 SFTP 端口分离配置】介绍

全文导读:本文将介绍SSH 与 SFTP 服务分离及验证方法

准备环境

1、已安装统信服务器操作系统 V20

安装步骤

步骤一、创建sftp 用户

用户创建示例如下(以下为创建 sftpuser1 示例):
#  groupadd sftpgrp
useradd -s /sbin/nologin -G sftpgrp sftpuser1
passwd sftpuser1
Changing password for user sftpuser1.
New password:                                              #输入密码
Retype new password:                                   #确认密码

步骤二、创建 sftpuser1 用户目录

# mkdir /sftp/sftpuser1 -p
# chown root:root /sftp
# chown root:root /sftp/sftpuser1
# chmod 755 /sftp
chmod 755 /sftp/sftpuser1

步骤三、ssh 和 sftp 分离

ssh 和 sftp 都有单独的服务,并且 ssh 监听 22 号端口,sftp 监听 20022 端
1)、生成 sftp_config 文件
cp -p /etc/ssh/sshd_config /etc/ssh/sftpd_config
2)、编辑/etc/ssh/sftpd_config,修改 sftp 的监听端口和 Pid 文件等
vi /etc/ssh/sftpd_config         
开启如下两个配置
Port 20022
PidFile /var/run/sftpd.pid
修改如下配置
#Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH
Subsystem sftp internal-sftp -l INFO -f AUTH
文件尾增加如下配置
AllowGroups sftpgrp
Match Group sftpgr
             ChrootDirectory /sftp/%u
              AllowTcpForwarding no
             ForceCommand internal-sftp
             X11Forwarding no
3)、编辑/etc/ssh/sshd_config,修改 sftp 的监听端口和 Pid 文件
vi /etc/ssh/sshd_config
增加一行内容
DenyGroups sftpgrp
4)、拷贝 sshd 服务的 systemd unit file
cp -p /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service
5)、修改/etc/systemd/system/sftpd.service 文件配置
vi /etc/systemd/system/sftpd.service
[Unit]
Description=OpenSSH sftp server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.target auditd.service sshd.service
Wants=sshd-keygen.target
[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sftpd_config $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
6)、生成认证配置文件
cp -p /etc/pam.d/sshd /etc/pam.d/sftpd
7)、重启服务
systemctl restart sshd.service
systemctl restart sftpd.service

步骤四、验证

验证一:使用 sftpuser1 用户的通过 sftp 登陆系统
sftp -o Port=20022 sftpuser1@10.10.10.xx
password:                 #输入密码
预期结果:正常登录
验证二、使用 sftpuser1 用户的通过 ssh 登陆系统
ssh sftpuser1@10.10.10.xx
预期结果:不能登录
验证三、使用其他用户(非 sftpgrp 组用户)用户的通过 sftp 登陆系统
# sftp -o Port=20022 otheruser@10.10.10.xx
预期结果:不能登录
验证四:使用其他用户(非 sftpgrp 组用户)用户的通过 ssh 登陆系统
ssh otheruser@10.10.10.xx
预期结果:正常登录

 ©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。

2023-01-13
4 3