美文网首页Linux
运行多个sshd实例

运行多个sshd实例

作者: 偷油考拉 | 来源:发表于2021-12-24 17:39 被阅读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
    
    

    相关文章

      网友评论

        本文标题:运行多个sshd实例

        本文链接:https://www.haomeiwen.com/subject/rywlqrtx.html