zoukankan      html  css  js  c++  java
  • Linux—禁止用户SSH登录方法总结

    Linux—禁止用户SSH登录方法总结

    一、禁止用户登录

    1、修改用户配置文件/etc/shadow
          将第二栏设置为“*”,如下。那么该用户就无法登录。但是使用这种方式会导致该用户的密码丢失,也就是当你再次允许他登录的时候,你还得让他重新设置密码。(再次启用这个帐号的方法是把“*”去掉就可以了)
          如:tom:*:14245:0:99999:7:::

    2、使用命令usermod
          这个方式简单又实用,而且没有(1)中的副作用。

    usermod -L tom##Lock 帐号tom
    usermod -U tom##Unlock 帐号tom
    

    3、通过修改shell类型
          这种方式会更加人性化一点,因为你不仅可以禁止用户登录,还可以告诉他你这么做的原因。如下:

    chsh tom-s /sbin/nologin #将用户tom的shell进行更改
     
    ###############
    ##修改/etc/nologin.txt(没有就新建一个),
    ##在里面添加给被禁止用户的提示
    ###############
    
    #解禁用户的方式就是把shell改为他原有的就可以了。
    

    4、禁止所有的用户登录
          当你(如果你是系统管理员)不想让所有用户登录时(比如你要维护系统升级什么的),如果按上面的方式,一个一个地去禁止用户登录,这将是很……无聊的事。而且还容易出错。下面有一种简洁有效的方式:

    ##在/etc目录下建立一个nologin文档
    touch /etc/nologin ##如果该文件存在,那么Linux上的所有用户(除了root以外)都无法登录
    ##在/etc/nologin(注意:这可不是(3)中的nologin.txt啊!)写点什么,告诉用户为何无法登录
    #################
    cat /etc/nologin
    9:00-10:00 系统升级,所有用户都禁止登录!
    
    ##解禁帐号也简单,直接将/etc/nologin删除就行了!
    

    5、修改用户配置文件/etc/ssh/sshd_config
    (1)只允许指定用户进行登录(白名单):

    在/etc/ssh/sshd_config配置文件中设置AllowUsers选项,(配置完成需要重启 SSHD 服务)格式如下:
    AllowUsers    aliyun test@192.168.1.1            
    # 允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统。
    

    (2)只拒绝指定用户进行登录(黑名单):

    在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:   
    DenyUsers    zhangsan aliyun    #Linux系统账户        
    # 拒绝 zhangsan、aliyun 帐户通过 SSH 登录系统
    

    (3)禁止root通过ssh远程登录

    vi /etc/ssh/sshd_config
    找到PermitRootLogin,将后面的yes改为no,把前面的注释#取消,这样root就不能远程登录了!
    可以用普通账号登录进去,要用到root的时候使用命令su root切换到root账户
    

    重启SSH

    service sshd restart
    

    二、限制IP登录
          除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置/etc/hosts.allow和/etc/hosts.deny这个两个文件,hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器,方法比较简单,且设置后立即生效,不需要重启SSHD服务,具体如下:

    /etc/hosts.allow添加
    sshd:192.168.0.1:allow  #允许 192.168.0.1 这个IP地址SSH登录
    sshd:192.168.0.:allow #允许192.168.0.1/24这段IP地址的用户登录,多个网段可以以逗号隔开,比如192.168.0.,192.168.1.:allow
    
    /etc/hosts.allow添加
    sshd:ALL #允许全部的ssh登录
    
    /etc/hosts.deny添加
    sshd:ALL #拒绝全部IP
    



    参考博客:
    [1]Linux 如何禁止用户登录
    [2]linux根文件系统 /etc/shadow文件详解
    [3]Linux限制某些用户或IP登录SSH、允许特定IP登录SSH
    [4]CentO下限制SSH登录次数
    [5]linux下限制ip访问
    [6]su普通用户切换root用户失败
    [7]普通用户无法登陆SSH问题

  • 相关阅读:
    Windows下查看dll被哪个进程调用
    mfc笔记之string,wstring,CString
    查看用户主目录
    我看Windows 8 RT
    C# 性能优化之斤斤计较篇 一
    曾经生活过的城市
    大型.NET项目的目录、编译和版本管理实践 四
    大型.NET项目的目录、编译和版本管理实践 五
    大型.NET项目的目录、编译和版本管理实践 二
    大型.NET项目的目录、编译和版本管理实践 一
  • 原文地址:https://www.cnblogs.com/shujk/p/13797439.html
Copyright © 2011-2022 走看看