關于 開機啟動加密破壞修復 自制linux系統

 

   開機破壞并且修復之   

   自制linux系統 

 

 

 

        CentOS 6啟動流程:

POST –> Boot Sequence(BIOS) –> Boot Loader –>

Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init —

>(/etc/inittab, /etc/init/*.conf) –> 設定默認運行級別–> 系統

初始化腳本rc.sysinit –> 關閉或啟動對應級別的服務–> 啟動終端

grub: GRand Unified Bootloader

grub 0.x: grub legacy

grub 1.x: grub2

grub legacy:

            stage1: mbr

            stage1_5: mbr之后的扇區,讓stage1中的bootloader

能識別stage2所在的分區上的文件系統

stage2:磁盤分區(/boot/grub/)

=================================================================

開機加密口令 防止單用戶惡意破解口令

生成加密口令

第一步:

[root@Compro ~]# grub-md5-crypt

Password: 輸入口令時不顯示

Retype password: 輸入口令時不顯示

$1$6lDgy$WpWXTfAKA/mcC6goW90If.    這個就是加密過后的口令

下面命令也是可以生成加密口令的

openssl passwd -1

xxxxxx

xxxxxx

第二步:

在配置文件中 :vim /boot/grub/grub.conf

添加 :第一個title開的的字符上方 添加加上 password –md5 加密過的口令

例如:

password –md5 $1$6lDgy$WpWXTfAKA/mcC6goW90If 

title CentOS 6 (2.6.32-642.el6.x86_64)

        root (hd0,0)

然后保存重啟

第三步:

開機開始的時候任意鍵進入菜單界面:這是單用戶的ace等口令是無效的,提示輸入p 會讓輸入passwd:也就是剛才上面保存過的加密口令;輸入成功則顯示出來ace等口令,輸入就可以進入單用戶修改口令,當然如果在不知道加密口令的用戶直接敲回車會正常啟動,防止了惡意破解口令

也可以將加密的口令放在配置文件的前后,放在前面是防止進入單用戶界

password –md5 $1$6lDgy$WpWXTfAKA/mcC6goW90If

title CentOS 6 (2.6.32-642.el6.x86_64)

        root (hd0,0)

        kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/mapper/vg_compro-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_compro/lv_swap crashkernel=auto.UTF-8  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_compro/lv_root rd_NO_DM rhgb quiet

        initrd /initramfs-2.6.32-642.el6.x86_64.img

        password 口令

在末尾添加加密口令是 啟動開始的大概幾秒鐘,直接彈出來passwd:輸入加密的口令登錄啟動系統

================================================================

開機任意鍵進入菜單界面的一個背景圖片

在配置文件中找到以下字符

splashimage=(hd0,0)/grub/splash.xpm.gz

修改背景

1 先做一張分辨率640*480的圖 命名為bjtp 上傳系統家目錄中

2 安裝一個linux的修圖工具

[root@Compro ~]# yum -y install ImageMagick

3 轉換圖片格式

[root@Compro ~]# convert -resize 640×480 -colors 14 bjtp.png bjtp.xpm

查看格式

[root@Compro ~]# more bjtp.xpm

壓縮

[root@Compro ~]# gzip bjtp.xpm

拷貝到grub

[root@Compro ~]# cp  bjtp.xpm.gz /boot/grub/

修改配置文件

[root@Compro ~]# vim /boot/grub/grub.conf

splashimage=(hd0,0)/grub/bjtp.xpm.gz    將文件名稱修改一下就可以了

重啟reboot開機過程中按下任意鍵進入菜單的界面,這是還就可以看到剛剛修改的圖片了

==================================================================

破壞第1階段并且修復

[root@Compro ~]#  dd if=/dev/zero of=/dev/sda bs=1 count=446

然后查看一下

[root@Compro ~]#  hexdump -C -v /dev/sda -n 512

重啟reboot 這時候會無法啟動 啟動的時候自動進入光盤引導界面,這時候選擇第三項救援模式

修復:

進入救援模式下的shell界面切根

bash-4.1# chroot /mnt/sysimage/

bash-4.1# grub-install /dev/sda

bash-4.1# exit

bash-4.1# exit

reboot重啟就好了

================================================================

破壞第1.5階段并且修復

[root@Compro ~]# dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1

[root@Compro ~]# hexdump -C -v /dev/sda -n 1024

重啟后手動光盤引導進入救援模式shell界面

輸入命令grub

bash-4.1# grub> root (hd0,0)

grup> setup (hd0)

grup> quit 

bash-4.1# exit

reboot重啟就好了

=================================================================

刪除/grub目錄所有內容

[root@Compro ~]# rm -rf /boot/grub/

[root@Compro ~]# reboot 重啟

開機手動光盤引導進入救援模式

bash-4.1# chroot /mnt/sysimage

bash-4.1# cd /boot

bash-4.1# grub-install /dev/sda

bash-4.1# cd /boot/grub/       這時候沒有grub.conf配置文件需要手寫一份

bash-4.1# exit

bash-4.1# exit

reboot 重啟

啟動界面會提示grub> 輸入內容

grub> kernel (hd0,0)/vmlinuz….. root=/dev/sda2

grub> initrd (hd0,0)/initramfs…. 

grub> boot

修過過程中再次提示輸入上面的命令不過在之前開頭加上grub> root (hd0,0)就ok了

創建vim /boot/grub/grub.conf

default=0

timeout=5

title Compro

root(hd0,0)

kernel /vmlinuz-2.6… root=/dev/sda2

initrd /inirtamfs….

==========================================================

刪除boot目錄并且恢復之 (大招,一招致命,解決 以上所有破壞)

[root@Compro ~]# umount /boot

[root@Compro ~]# rm -rf /boot

[root@Compro ~]# reboot

直接進入救援模式

bash-4.1# mkdir /mnt/cdrom

bash-4.1# mount /dev/cdrom /mnt/cdrom

bash-4.1# rpm -ivh /mnt/cdrom/Pachages/kernel-2* –root=/mnt/sysimage –replacepkgs 或者 force

bash-4.1# chroot /mnt/sysimage/

bash-4.1# grub-install /dev/ada

bash-4.1# vim /boot/grub/grub.conf

default=0

timeout=3

title Compro

root (hd0,0)

kernel /vmlinuz… root=/dev/sda2

initrd /initagfs  ….

==================================================================

自制Linux系統:

添加新的硬盤,用 [root@Compro ~]# echo '- – -' > /sys/class/scsi_host/host2/scan   加載

1分區并創建文件系統

[root@Compro ~]# fdisk /dev/sdb

分兩個必要的分區

/dev/sdb1對應/boot /dev/sdb2對應根/

[root@Compro ~]# mkfs.ext4 /dev/sdb2

[root@Compro ~]# mkfs.ext4 /dev/sdb2

2掛載boot

[root@Compro ~]# mkdir /mnt/boot

[root@Compro ~]# mount /dev/sdb1 /mnt/boot/

[root@Compro ~]# cd /mnt/boot/

[root@Compro boot]# cp /boot/vmlinuz-2.6.32-642.el6.x86_64 /boot/initramfs-2.6.32-642.el6.x86_64.img .

3安裝grub

[root@Compro boot]# grub-install /dev/sdb –root-directory=/mnt

4、建立grub.conf:

[root@Compro boot]# cd grub/

[root@Compro grub]# vim grub.conf

default=0

default=0

timeout=3

title Compro

root (hd0,0)

kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2 selinux=0 init=/bin/bash

initrd /initramfs-2.6.32-642.el6.x86_64.img

5、創建一級目錄

[root@Compro ~]# mkdir /mnt/sysroot

[root@Compro ~]# mount /dev/sdb2 /mnt/sysroot/

[root@Compro ~]# cd /mnt/sysroot/

[root@Compro sysroot]# mkdir -pv {etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot,dev,mnt,media}

6、[root@Compro sysroot]# vim etc/fstab

/dev/sda1 /boot ext4 defaults 1 1

/dev/sda2  /    ext4 defaults 1 2

8、復制bash和相關庫文件 復制相關命令及相關庫文件

如:ls,cat,vim,reboot,hostname等  

這里使用的是腳本

[root@Compro sysroot]# /root/copycmd.sh

Please input a command: bash

Please input a command or quit: vim

Please input a command or quit: cat

Please input a command or quit: ls

Please input a command or quit: ifconfig

Please input a command or quit: df

Please input a command or quit: mount

Please input a command or quit: umount

Please input a command or quit: rpm

Please input a command or quit: reboot

Please input a command or quit: hostname

Please input a command or quit: halt

Please input a command or quit: quit

這里已經完成了,下面看腳本內容

#!/bin/bash 

ch_root="/mnt/sysroot"

[ ! -d $ch_root ] && mkdir $ch_root 

bincopy() {

    if which $1 &>/dev/null; then

        local cmd_path=`which –skip-alias $1`

        local bin_dir=`dirname $cmd_path`

        [ -d ${ch_root}${bin_dir} ] || mkdir -p ${ch_root}${bin_dir}

        [ -f ${ch_root}${cmd_path} ] || cp $cmd_path ${ch_root}${bin_dir}

        return 0

    else

        echo "Command not found."

        return 1

    fi

}

libcopy() {

    local lib_list=$(ldd `which –skip-alias $1` | grep -Eo '/[^[:space:]]+')

    for loop in $lib_list;do

        local lib_dir=`dirname $loop`

        [ -d ${ch_root}${lib_dir} ] || mkdir -p  ${ch_root}${lib_dir}

        [ -f ${ch_root}${loop} ] || cp $loop ${ch_root}${lib_dir}

    done

}  

read -p "Please input a command: " command 

while [ "$command" != "quit" ];do

    if bincopy $command ;then

        libcopy $command

    fi

    read -p "Please input a command or quit: " command

done

=====================================================================

原創文章,作者:小馬哥,如若轉載,請注明出處:http://www.www58058.com/46532

(0)
小馬哥小馬哥
上一篇 2016-09-14
下一篇 2016-09-15

相關推薦

  • btrfs文件系統介紹

    btrfs文件系統介紹 簡介        Btrfs(B-tree,ButterFS ,Better FS通常念成Butter FS),由Oracle于2007年宣布并進行中的COW(copy-on-write式)文件系統。繼ext3/4文件系統之后linux又有了比較強大的文件系統(btrfs文件系統),btrfs…

    系統運維 2016-04-27
  • 一起學WINS系列(二)安裝、配置

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/159128  此系列第二節:安裝服務端、配置客戶端。          完整的WINS系統…

    Linux干貨 2015-03-25
  • 推薦-常用RAID級別詳解

    一、RAID是什么       RAID(Redundant Arrays of Indent Disks)的名稱是獨立磁盤冗余陣列,是一種通過將多塊硬盤按照某種特定的結構組織起來當做一塊硬盤來使用的技術,多塊硬盤不同的組織結構我們稱之為RAID的級別。而RAID技術的特性主要表現在兩個方面: (1)提高硬盤…

    Linux干貨 2016-03-27
  • 編譯安裝MariaDB源碼包

        因為MySQL的發展趨勢不甚樂觀,MariaDB已替代MySQL被CentOS 7做為默認組件,如果想在CentOS 6中使用最新的MariaDB,則需要我們手動安裝,其安裝方式有三種:     1、RPM包安裝     2、二進制…

    Linux干貨 2015-06-08
  • linux分區管理工具—fdisk

    一、關于為什么要分區       (1)為了數據的安全:當文件系統只有一個分區時,如果遇到分區需要格式化的情況,則硬盤里的數據無法保留,而如果提前對硬盤做了分區那么就可以很好地額解決這個問題;       (2)為了提升效率:硬盤(這里單指機械硬盤)分為外圈和…

    Linux干貨 2016-03-12
  • bash功能特性四 文件名通配符

    文件名通配(globbing)     通配符在bash中是一個非常有用的功能,它可以使我們更加方便的查找符合特定條件的文件。     文件通配符的包括以下幾種:          *:任意長度的任意…

    Linux干貨 2015-04-21

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-20 11:10

    內容很完整,操作性強,贊一個,

欧美性久久久久