Linux

运行多个sshd实例

2021-12-24  本文已影响0人  偷油考拉

背景:
某系统需要通过sftp上传文件到服务器,服务器操作系统CentOS 7。
1)服务器经过安全加固,服务运行于指定user下。sftp上传的文件,该user具备写权限。
2)服务器的openssh统一进行安全加固、策略管理,所以不能使用原有openssh server。必须再运行一个daemon。
3)该daemon进行安全限制,仅允许指定用户访问,设置允许访问的地址段。

一、配置多实例运行

How to configure multiple instances of sshd in RHEL 7 or 8? - Red Hat Customer Portal

  1. 复制配置文件sshd_config,命名为 sshd-2_config
cp /etc/ssh/sshd{,-2}_config
  1. 复制服务启动文件
cp /usr/lib/systemd/system/sshd.service  /etc/systemd/system/sshd-2.service

编辑sshd-2.service,修改 Description ,添加 -f /etc/ssh/sshd-2_config 指定启动配置文件。修改后的配置,如下:

[Unit]
Description=2nd OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd-2_config $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
  1. 重载systemd
systemctl daemon-reload
  1. 编辑第二个sshd daemon的配置文件 sshd-2_config
    参考: man sshd_config
Port 2222
PermitRootLogin no
AllowUsers sftpuser
Match User sftpuser
        PermitTTY no
  1. 启动服务
systemctl enable sshd-2.service --now

二、设置文件夹权限

  1. 创建用户sftpuser,指定home目录
useradd sftpuser -d /lvmdata/sftpdir -u 5001
chown -R sftpuser:sftpuser sftpdir/
  1. 设置目录权限,允许服务user拥有写权限。
setfacl -m u:admin:rwx sftpdir/
  1. 测试sftpuser上传文件权限
[root@VM-17-13-centos lvmdata]# getfacl -a sftpdir/
# file: sftpdir/
# owner: sftpuser
# group: sftpuser
user::rwx
user:admin:rwx
group::r-x
mask::rwx
other::r-x
  1. 测试admin用户是否具有写权限
[admin@VM-17-13-centos lvmdata]$ cd sftpdir/

[admin@VM-17-13-centos sftpdir]$ ll
total 8
-rw-r--r-- 1 sftpuser sftpuser 5258 Dec 24 17:32 deadlock.txt

[admin@VM-17-13-centos sftpdir]$ getfacl -a deadlock.txt 
# file: deadlock.txt
# owner: sftpuser
# group: sftpuser
user::rw-
group::r--
other::r--

[admin@VM-17-13-centos sftpdir]$ rm deadlock.txt 
rm: remove write-protected regular file ‘deadlock.txt’? y
[admin@VM-17-13-centos sftpdir]$ ls
[admin@VM-17-13-centos sftpdir]$ 

结论:admin 用户具备了该目录的完全执行权限

另一个失败的配置:
admin用户不能删除文件

[root@VM-17-13-centos lvmdata]# setfacl -dRm u:admin:rw sftpdir/
[root@VM-17-13-centos lvmdata]# getfacl -a sftpdir/
# file: sftpdir/
# owner: sftpuser
# group: sftpuser
user::rwx
group::r-x
other::r-x

[root@VM-17-13-centos lvmdata]# su - admin
Last login: Fri Dec 24 17:25:15 CST 2021 from 10.41.99.232 on pts/2
[admin@VM-17-13-centos ~]$ cd /lvmdata/sftpdir/
[admin@VM-17-13-centos sftpdir]$ getfacl -a deadlock.txt 
# file: deadlock.txt
# owner: sftpuser
# group: sftpuser
user::rw-
user:admin:rw-
group::r-x          #effective:r--
mask::rw-
other::r--

[admin@VM-17-13-centos sftpdir]$ rm deadlock.txt 
rm: cannot remove ‘deadlock.txt’: Permission denied

上一篇 下一篇

猜你喜欢

热点阅读