• Linux系统安全 非活跃会话自动断开连接机制


    场景:服务器经常被网络中各系统的很多个用户访问,某些用户使用完毕后忘记登出会话.

    留下一个处于连接状态的session是一件非常危险的事情,作为一名系统管理员,如果去检查每个系统用户是否有登出,这根本不现实,要知道网络中有成百上千台机器.

    此时就需要设置用户在本机或通过SSH登陆服务器超过一定时间不活跃便自动断开连接的机制.

    以下为实验过程.

    实验系统:rhel 8.4

    以下介绍三种实现方法.

    方法 1:

    编辑~/.bashrc或~/.bash_profile文件:

    $ vi~/.bashrc

    $ vi~/.bash_profile

    将下面行加入其中:

    TMOUT=100

    说明:用户在停止动作 100 秒后自动登出.

    运行下面命令让更改生效:

    $ source~/.bashrc

    $ source~/.bash_profile

    现在让会话闲置100秒,会看到下面这段信息,并且用户会自动退出会话.

    [oracle@dbserver~]$ timed out waiting for input: auto-logout

    [root@dbserver~]#

    不过该设置可以轻易地被用户所修改,因为~/.bashrc文件被用户自己所拥有.

    要修改或者删除超时设置,只需要删掉上面添加的行,然后执行source~/.bashrc命令让修改生效.

    此外,用户也可以运行下面命令来禁止超时:

    $ exportTMOUT=0

    或,

    $ unsetTMOUT

    若想阻止用户修改该设置,使用方法2.

    方法2:

    以root用户登录,创建一个名为autologout.sh的新文件.

    # vi/etc/profile.d/autologout.sh

    加入下面内容:

    TMOUT=60

    readonlyTMOUT

    exportTMOUT

    添加可执行权限:

    # chmod+x /etc/profile.d/autologout.sh

    现在登出或重启系统,非活动用户就会在60秒后自动登出.

    说明:该修改对当前已开启的会话不会产生影响,只会对新开的session生效.

    普通用户即使想保留会话连接但也无法修改该配置,他们会在60秒后强制退出.

    这两种方法本地登录的用户和远程系统上通过SSH登录的用户都有效.

    下面实现只自动登出非活动的SSH会话,而不自动登出本地服务器上的会话.

    方法3

    编辑/etc/ssh/sshd_config文件

    # vi/etc/ssh/sshd_config

    添加/修改下面行:

    ClientAliveInterval60

    ClientAliveCountMax0

    保存并退出该文件,重启 sshd 服务.

    #systemctl restart sshd

    现在,在远程系统通过ssh登录该系统,60秒后ssh会话就会自动关闭.

    出现以下信息:

    [oracle@dbserver~]$

    Socketerror Event: 32 Error: 10053.

    Connectionclosing...Socket close.

    Connectionclosed by foreign host.

    Disconnectedfrom remote host(192.168.133.120) at 12:32:49.

     

  • 相关阅读:
    vue图片验证码
    微信公众平台-服务号
    Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)
    NEFTUNE: NOISY EMBEDDINGS IMPROVE INSTRUCTION FINETUNING
    7-51 愿天下有情人都是失散多年的兄妹——dfs
    Python工具箱系列(五十三)
    MySQL主从复制(基于GTID--事务ID方式)
    导出域内信息
    CSS之hover的使用、+、~
    VMware安装虚拟机ubuntu
  • 原文地址:https://blog.csdn.net/cqszpx/article/details/126127386