linux中root用户是超级管理员,可以针对root用户暴力破解密码,这样很不安全,工作中我们一般禁止root用户直接远程登陆,开设一个或多个普通用户,只允许登陆普通用户,如果有需要用root用户,可以su切换root 或者sudo来拥有root权限执行命令。

一、root无法远程登陆,但所有用户可以切换root

首先打开配置文件:

vim /etc/ssh/sshd_config

这行的意思是允许使用root用户登陆,所以我们将它改为no,不允许root用户直接登陆。

保存退出配置文件后,重启sshd服务:

1systemctl restart sshd.service

重新建立连接就发现root用户已经不能登陆了,我们只能通过普通用户登陆再进行切换。

二、root无法远程登陆,但只有特定的用户才可以切换root

一般情况下, 普通用户执行”su -“命令, 可以登录为root。为了加强系统的安全性, 有必要建立一个管理员的组, 只允许这个组的用户执行”su -” 命令登录为root, 而让其他组的用户即使执行”su -” 输入了正确的密码, 也无法登录为root用户. 在Unix 和Linux 下, 这个组的名称通常为”wheel”.

1、添加一个用户, 把这个用户加入wheel组

adduser admin

passwd admin

usermod -G wheel admin

2、修改/etc/pam.d/su

auth required pam_wheel.so use_uid 去掉这行注释

3 修改/etc/login.defs

vim /etc/login.defs

在文件末添加一行

SU_WHEEL_ONLY yes

三、添加和root权限一样的用户

adduser admin

passwd admin (修改密码,密码要遵循密码复杂性)

修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

vim /etc/sudoers

Allow root to run any commands anywhere

root ALL=(ALL) ALL

admin ALL=(ALL) ALL

这个文件只读是一种保护机制,如果你使用vi编辑器的话,只要保存时使用:wq!就可以保存了。 或者使用visudo命令来进入sudoers文件的编辑,就可以正常保存

四、ssh限制IP和用户登录

1、配置sshd限制

在/etc/hosts.allow中添加允许ssh登陆的ip或者网段

sshd:192.168.1.2:allow #表示一个ip

sshd:192.168.1.0/24:allow #表示一段ip

在/etc/hosts.deny添加不允许ssh登陆的IP

sshd:ALL #ALL表示除了上面允许的,其他的ip 都拒绝登陆ssh

2、利用iptables防火墙限制

iptables -A INPUT -p tcp -s 192.168.1.2 --destination-port 22 -j ACCEPT

iptables -A INPUT -p tcp --destination-port 22 -j DROP

Linux 禁止root远程登录解决办法的更多相关文章

  1. Linux禁止root远程登录及修改默认端口

    1.1 修改SSHD配置,禁止root远程登录 禁止登录之前先穿甲一个可以远程登录的普通用户,以免造成登录不了的情况 [root@jhkj66 ~]# useradd yw001 #创建用户 [roo ...

  2. 禁止root远程登录

    Linux禁止root远程登录 ssh的修改vi /etc/ssh/sshd_config将默认的#PermitRootLogin yes去注释改为PermitRootLogin no service ...

  3. ubuntu拒绝root用户ssh远程登录解决办法

    ubuntu拒绝root ssh远程登录通常情况是ssh设置了禁止root远程登录,解决办法就是:修改ssh配置,然后重启ssh服务即可. vi /etc/ssh/sshd_config 找到并用#注 ...

  4. linux下禁止root远程登录和添加新用户

    https://www.cnblogs.com/jianz/p/7979250.html 一.添加和root权限一样的用户 1. adduser admin passwd  admin (修改密码) ...

  5. linux下禁止root远程登录

    一.添加和root权限一样的用户 1. adduser admin passwd  admin (修改密码) 2.修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示 ...

  6. Linux生成ssh密钥免密登录,允许/禁止密码登录,允许/禁止root远程登录,更改ssh端口

    进入想要使用密钥登录的用户家目录 cd 或 cd ~ 执行密钥创建命令,不行可能需要下载openssh-server与openssh-client ssh-keygen -t rsa -P " ...

  7. aix 禁止root远程登录

    Aix禁止root远程登录 aix用户扩展信息大都在/etc/security/user这个文本文件里.你可以修改: login=false 用户不能登录系统 rlogin=false 用户不能从远程 ...

  8. centos6.5 ssh安全优化,修改默认端口名,禁止root远程登录

    一.修改默认端口号 第一步: vi /etc/sysconfig/iptables 添加修改后的端口号的配置 -A INPUT -p tcp -m state --state NEW -m tcp - ...

  9. 禁止root远程登录 sshd问题:A protocol error occurred. Change of username or service not allowed

    在研究Linux安全的时候遇到一个问题,原本打算修改linux直接远程root登陆,修改为sshd的配置文件后 Nano /etc/ssh/sshd_config 把#PermitRootLogin ...

随机推荐

  1. python爬虫之JS逆向某易云音乐

    Python爬虫之JS逆向采集某易云音乐网站 在获取音乐的详情信息时,遇到请求参数全为加密的情况,现解解决方案整理如下: JS逆向有两种思路: 一种是整理出js文件在Python中直接使用execjs ...

  2. Typora图片与阿里云OSS图床的结合之旅

    图床? 专门用于存放图片,并允许用户通过独一的外链进行特定图片资源的访问 为什么是阿里云OSS(Object Storage Service) 码云开源需要审核,已经不能作为免费的图床使用(2022年 ...

  3. [pwn基础] Linux安全机制

    目录 [pwn基础] Linux安全机制 Canary(栈溢出保护) 开启关闭Cannary Canary的种类 Terminator canaries(终结者金丝雀) Random cannarie ...

  4. canvas简易画布

    今天学习了canvas,利用它做了一个简易版的画板,校验自己所学的知识,分享出来以供大家学习指教.先上效果图. 主要是使用了canvas的stroke和clearReact来实现画板的绘画和橡皮擦功能 ...

  5. Netty 如何高效接收网络数据?一文聊透 ByteBuffer 动态自适应扩缩容机制

    本系列Netty源码解析文章基于 4.1.56.Final版本,公众号:bin的技术小屋 前文回顾 在前边的系列文章中,我们从内核如何收发网络数据开始以一个C10K的问题作为主线详细从内核角度阐述了网 ...

  6. P2599 [ZJOI2009]取石子游戏 做题感想

    题目链接 前言 发现自己三岁时的题目都不会做. 我发现我真的是菜得真实. 正文 神仙构造,分讨题. 不敢说有构造,但是分讨我只服这道题. 看上去像是一个类似 \(Nim\) 游戏的变种,经过不断猜测结 ...

  7. Kingbase重新数据初始化,设置大小写

    KingbaseV8数据库安装完成后,删除/opt/Kingbase/ES/V8/data下所有内容,重新在其他目录初始化数据库,设置为忽略大小写 [kingbase@dbserver bin]$ . ...

  8. Tapdata 在线研讨会:如何快速上手 Tapdata Cloud?

    偶然接触到 Tapdata Cloud,据说不仅可以实现异构数据实时同步,还永久 100% 免费,但就是不知道怎么获取.怎么用? 打开相关文档逐渐陷入迷茫,术语."黑话"随处可见, ...

  9. 【cartogarpher_ros】一: ros系统下的快速安装

    Cartographer是一个跨多个平台和传感器配置提供 2D 和 3D实时同步定位和映射 ( SLAM ) 的系统. 使用Cartographer有Ros集成环境和无Ros环境,对于新手快速入门,推 ...

  10. 字符输入流_Reader类&FileReader类介绍和字符输入读取字符数据

    java.io.Reader:字符输入流的最顶层父类,其中定义了一些共性的成员方法,是一个抽象类共性的成员方法 int read() 读取单个字符并返回 int read(char[] cbuf) 将 ...