關于 開機啟動加密破壞修復 自制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 20:42
下一篇 2016-09-15 13:19

相關推薦

  • 常用文本處理命令練習

    1、列出當前系統上所有已經登錄的的用戶的用戶名,注意同一用戶登錄多次,則只顯示一次 [root@keyou ~]#  w -hs | cut -d' ' -f 1 | sort -u  gentoo …

    系統運維 2016-11-13
  • 一起學DHCP系列(一)開篇、概述

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/162108     從本節開始,我們將開始討論有關DHCP服務器的相關問題,從易到難一步步理解DHCP服務。還是一樣,在…

    Linux干貨 2015-03-25
  • 優云automation實踐技巧:簡單4步完成自動化構建發布

    前言:本文介紹了優云是如何將運維自動化產品應用到日常工作實踐中,并通過內部用戶的大量使用來不斷改進產品的用戶體驗。 各位看官,這不是一個揭發單身有為青年因同事們天天秀恩愛而受到一萬點暴擊傷害的故事。這里指的狗糧,不是真正的“狗糧”——當然,也不是你們認為的狗糧。 事實上,現在很多涉足產品開發的互聯網公司,都會提到“吃狗糧”這一概念(出自“Eating you…

    系統運維 2017-01-09
  • Memcached命令

    Memcache 的命令行用法: 1、啟動Memcache 常用參數    memcached 1.4.3      -p <num>      設置端口號(默認不設置為: 11211)      -U <num> &nbsp…

    Linux干貨 2015-05-18
  • KeepAlived實現HAProxy雙主并實現資源的動靜分離

    KeepAlived實現HAProxy雙主并實現資源的動靜分離 前言 HAProxy介紹 實驗拓撲 實驗環境 實驗步驟 配置后端httpd服務器 配置HAProxy實現backend負載均衡 測試動靜分離效果 配置KeepAlived 測試KeepAlived 配置DNS DNS測試 最終測試 總結 前言 我們這次使用HAProxy作為負載均衡調度器來實現后…

    Linux干貨 2016-04-16
  • 攜程全站癱瘓引發的思考

       為今年5月冠上多事之夏的名頭已是無可厚非的一件事,自支付寶光纖被挖斷后,攜程又暴出全站癱瘓的風波,從5/28 11:00開始,直到晚上11:29分才全面恢復.互聯網也是謠言四起,紛紛猜測百度騰訊誰會是下一個災難的受害者。暫切拋開這些玩笑言論,就攜程本次事情引發的思考太多,前車之鑒后事之師,如果攜程的事情發生到我們身上,我們該怎么辦,…

    Linux干貨 2015-06-03

評論列表(1條)

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

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

欧美性久久久久