GRUB——防止root密码被破解

GRUB(Boot Loader):


·grub:GRand Unified Bootloader

         grub 0.x:grub leagacy

         grub 1.x:grub2

·grub legacy:

         stage1:mbr中

         stage1_5:mbr之后的扇区,让stage1上的bootloader能识别stage2所在的分区上的文件系统

         stage2:磁盘分区(/boot/grub/)

         配置文件:/boot/grub/grub.conf <– /etc/grub.conf

        

         stage2及内核等通常放置于一个基本磁盘分区:

         功用:

                 (1) 提供菜单,并提供交互式接口

                         e:编辑模式,用于编辑接口

                         c:命令模式,启动交互式接口

                

                 (2) 加载用户选择的内核或操作系统

                         运行传递参数给内核

                         可隐藏此菜单

                

                 (3) 为菜单提供了保护机制

                         为编辑菜单进行认证

                         为启用内核或操作系统进行认证

                

         如何设备设备:

                 (hd#,#)

                         hd#:磁盘变化,用数字表示;从0开始编号

                         #:分区编号,用数字表示;从9开始

                        

                         (hd0,0)

·grub的命令行接口

         help:获取命令帮助

         help KEYWORD:获取帮助信息

         find (hd#,#) /PATH/TO/SOMEFILE

        ·root (hd#,#):指定grub stage2的根所在

        ·kernel /PATH/TO/KERNEL_FILE:设定本次启动时用户的内核文件;额外还可以添加许多内核支持使用的cmdline参数

                 可在kernel后追加的内容:

                         init=/path/to/init:指明init路径,指定启动内核后的第一个进程

                         selinux=0:此次启动关闭seliunx

                         ro root=/path/to :指明根文件系统

                         quiet:静默模式

                        

                        rhgb:设置启动过程是图像

                        max_loop=100:增加/dev/loop设备为100个(默认为8个)

                        1,S,s,single:以级别1启动,可用户破解root用户密码

        ·initrd /PATH/TO/INITRAMFS_FILE:设定为选定的内核提供额外文件的ramdisk

                 initrd中文件的版本号必须同内核版本号完全匹配(这个文件是安装好系统后自动编译生成了(mkdosfs),和当前系统是匹配的,选则了不匹配的ramdisk则可能出错)

        ·boot:引导启动此前选定的内核

         手动在grub命令行接口启动系统:

                 grub > root (hd0,0)

                 grub > kernel /vmliunz-VERSION-RELEASE ro root=/dev/DEVICE selinux=0

                 grub > initrd /initramfd-VERSION-RELEASE.img

                 grub > boot

·配置文件:/boot/grub/grub.conf

         配置项:

                 default=#:设定默认启动的菜单项;菜单项(title)编号从0开始

                 timeout=#:设定菜单项等待选项选择的时长

                 splashimage=(hd0,0)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径

                 hiddenmenu:隐藏菜单

                 password [–md5] STRING:菜单编辑认证,增加系统安全

                 title TITLE:定义菜单项“标题”,可出现多次

                         root (hd0,0):grub查找stage2及kernel文件所在这边分区,为grub的“根”提供访问路径

                         kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核

                         initrd /PATH/TO/INITRAMFS_FILE:内核匹配的ramfs文件

                         password [–md5] STRING:启动选定的内核或操作系统时进行认证

·grub-md5-crypt命令:

        用于生成/etc/grub.conf文件中password –md5 的密码

·cat /var/log/boot.log  

        记录系统启动过程(Welcome to CentOS 之后的)

·cat /proc/cmdline

    本次启动的内核参数

·进入单用户模式:(可直接root破解密码)

         (1) 编辑grub菜单(选定要编辑的title,而后使用e命令)

         (2) 在选定的kernel后附加

                 1,s,S或single都可以

         (3) 在kernel所在行,键入“b”命令

·MBR被破坏了,安装grub:(系统启动中<先挂载光盘,然后进行根切换,然后运行命令>,或系统运行中)

         (1) grub-install

                 grub-install –root-directory=ROOT /dev/DISK

                         -root-directory=:应该为boot所在的父目录

                         /dev/DISK:对那块磁盘安装grub

         (2) grub

                 grub > root (hd#,#)

                 grub > setup (hd#)

拓展:


·chroot命令: 根切换

·破坏了rpm包如何安装

        进入光盘救援模式:

             rpm -ivh /mnt/cdrom/Packages/rpm….rpm –root=/mnt/sysimage/

·破坏了kernel包如何安装

        进入光盘救援模式:

                 (1)rpm -ivh /mnt/cdrom/Packages/kernel….rpm –root=/mnt/sysimage/

                (2)chroot /mnt/sysimage

                mount /dev/cdrom /mnt

                rpm -ivh /mnt/Packages/kernel….rpm

·/etc/fstab被破坏了

         进入救援模式

         测试性挂载,找到根

                 无法使用lsblk

                 可以使用fdisk -l ,  blkid (有卷标则可以直接找到根所在磁盘)

         vim /etc/fstab

                 /dev/sda1 /boot ext4 defaults 0 0     //挂载boot分区

                 /dev/sda2 / ext4 defaults 0 0     //挂载root分区

         reboot:重新启动

·根为lvm的/etc/fstab 被破坏

         lvsacn   //扫描lvm

         vgchange -ay   //恢复lvm中的vg和lv

         blkid   //查看逻辑卷

        挂载根和boot分区,操作同上



原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/45531

(0)
megedugaomegedugao
上一篇 2016-09-11 17:13
下一篇 2016-09-11 17:43

相关推荐

  • class17 网络管理(二)

    IP 地址 它们可唯一标识IP网络中的每台设备 每台主机(计算机、网络设备、外围设备)必须具有唯一的地址           IP 地址由两部分组成:     • 网络ID:   …

    Linux干货 2016-09-06
  • 马哥教育网络班20期+第二周课程练习

    Table of Contents 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 目录管理 文件管理 2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。 脚本返回值 命令或路径补全和展开 3、请使用命令行展开功能来完成以下练习: (1)、创建/tmp目录下的:a_c, a_d, b_c, b (2…

    Linux干货 2016-06-23
  • IP命令

    IP命令 ip命令是Linux下较新的功能强大的网络配置工具。 1 功能 ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道。 2用法 Usage: ip [ OPTIONS ] OBJECT { COMMAND | help } ip [ -force ] -batch filename -force:不要终止批处理模式中的错误 -b:-…

    Linux干货 2017-05-07
  • linux 网络管理命令 SS的使用详则

    SS命令 ss命令用来显示处于活动状态的套接字信息,ss迷路可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCO和连接状态信息,而且比netstat更快速更高效。 当服务器的socket连接数量变得非常大时,无论是使用netest命令还是直接  cat/proc/net/tcp 。…

    2017-08-19
  • Tomcat基础知识

    标签:centos  Java1.7  Tomcat8   零、tomcat简介 一、安装java环境 二、安装tomcat 三、tomcat目录结构以及相关文件 四、WebAPP结构及简单部署 五、tomcat常用组件配置 零、tomcat简介 1、tomcat简介       tomcat是SU…

    Linux干货 2017-02-09
  • ——-史上最全的Vim命令 ——-vim命令 /正则表达式 /搜索 /定位 /分屏

    一,vim vim编辑器是vi的进阶版,是一个静态文本编辑器。它的强大不逊色于任何最新的文本编辑器,
    对Unix及Linux系统的任何版本,vi编辑器是完全相同的。Vi也是Linux中最基本的文本…

    2017-11-26