カテゴリー: Linux

ClamAVからVirus Foundのメールが来た

ClamAVからVirus Foundのメールが来た。

「発見」⇒「即削除」から「発見」⇒「通知」⇒「手動削除」のフローに変えてから
初めてメールが来たのでちょっと驚く。

対象ファイルはこれ。

/home/***/.composer/cache/files/symfony/symfony/74f61c9a4abb84d0995ee346f00aeb53f7cb1b12.zip: Win.Trojan.Toa-5372190-0 FOUND

「Dec 23, 2016, 3:45 PM」に更新された模様。

Signatures Published daily – 22765

キャッシュファイルだし、自分で触った際にできたファイルだから
問題無いと思うけど念のためダウンロードしてウイルスソフトでも検査。

大丈夫だったのでホワイトリストに入れるか検討する。

同じような人も発見
https://twitter.com/AndyBeak/status/812632192107106304

追記 2016/12/27

「Dec 25, 2016, 7:49 PM 」に「Dropped Detection Signatures: 」になった。
Signatures Published daily – 22778

で、新たに「Win.Trojan.Toa-5370166-0」が見つかった。。

/home/***/.composer/cache/files/phpunit/phpunit/72ee2dd5dce111bfd7824e8702ad764dd2d1f273.zip: Win.Trojan.Toa-5370166-0 FOUND

こっちも同様に困惑している人を発見
https://twitter.com/mayuco_maid/status/813560405175857153

数日様子を見る。

追記 2016/12/28

「Win.Trojan.Toa-5370166-0」は「Dec 26, 2016, 11:51 AM 」に「Dropped Detection Signatures: 」になった。
というかこの日は「Dropped Sigs: 11296 」ってどういうことなのか・・・。

Signatures Published daily – 22782

Vagrant上のCentOS6にVulsインストール

Vulsインストール

Vagrant上のCentOS6にインストールを行ったメモ

公式のインストール方法:Vuls: VULnerability Scanner
SSHの設定をする

ローカルホストにSSH接続できるようにする。
SSHキーペアを作成し、公開鍵をauthorized_keysに追加する。

$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

Vulsに必要な以下のソフトウェアをインストールする。
– SQLite3
– git v2
– gcc
– go v1.7.1 or later

※gitはCentOS6のデフォルトだと1.7とかなので、そのまま入れてはいけない

How to Install Git 2.8.1 on CentOS/RHEL 7/6/5 & Fedora 23/22

$ sudo yum -y install sqlite git gcc
$ wget https://storage.googleapis.com/golang/go1.7.1.linux-amd64.tar.gz   <-時間がかかる
$ sudo tar -C /usr/local -xzf go1.7.1.linux-amd64.tar.gz
$ mkdir $HOME/go

/etc/profile.d/goenv.sh を作成し、下記を追加する。

$ sudo vi /etc/profile.d/goenv.sh
$ cat /etc/profile.d/goenv.sh
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

カレントシェルに上記環境変数をセットする。

$ source /etc/profile.d/goenv.sh

go-cve-dictionaryのインストール

$ sudo mkdir /var/log/vuls
$ sudo chown mogu /var/log/vuls
$ sudo chmod 700 /var/log/vuls
$ mkdir -p $GOPATH/src/github.com/kotakanbe
$ cd $GOPATH/src/github.com/kotakanbe
$ git clone https://github.com/kotakanbe/go-cve-dictionary.git
$ cd go-cve-dictionary
$ make install

バイナリは、`$GOPATH/bin`いかに生成される
NVDから脆弱性データベースを取得する。
これは実行ユーザのホームディレクトリに「vuls」というディレクトリを掘ってその中に取得する方がやりやすい。

$ pwd
/home/mogu
$ mkdir vuls
$ cd vuls
$ for i in {2002..2016}; do go-cve-dictionary fetchnvd -years $i; done
$ pwd
/home/mogu/vuls
$ ll
total 680368
-rw-r--r-- 1 mogu mogu 592179200 Oct 21 10:11 cve.sqlite3
-rw-r--r-- 1 mogu mogu     32768 Oct 21 10:11 cve.sqlite3-shm
-rw-r--r-- 1 mogu mogu  22845432 Oct 21 10:11 cve.sqlite3-wal

vulsインストール

$ mkdir -p $GOPATH/src/github.com/future-architect
$ cd $GOPATH/src/github.com/future-architect
$ git clone https://github.com/future-architect/vuls.git
$ cd vuls
$ make install

Config

先ほど作った実行ユーザの「vuls」内に設定ファイルを記載する

$ pwd
/home/mogu/vuls
$ vim config.toml
$ cat config.toml 
[servers]

[servers.127-0-0-1]
host         = "127.0.0.1"
port        = "22"
user        = "mogu"
keyPath     = "/home/mogu/.ssh/id_rsa"

$ vuls configtest
[Oct 21 10:24:09]  INFO [localhost] Validating Config...
[Oct 21 10:24:09]  INFO [localhost] Detecting Server/Contianer OS... 
[Oct 21 10:24:09]  INFO [localhost] Detecting OS of servers... 
[Oct 21 10:24:10]  INFO [localhost] (1/1) Detected: 127-0-0-1: centos 6.7
[Oct 21 10:24:10]  INFO [localhost] Detecting OS of containers... 
[Oct 21 10:24:10]  INFO [localhost] Checking sudo configuration... 
[Oct 21 10:24:10]  INFO [127-0-0-1] sudo ... OK
[Oct 21 10:24:10]  INFO [localhost] SSH-able servers are below...
127-0-0-1 

セットアップ

$ vuls prepare
INFO[0000] Start Preparing (config: /home/mogu/vuls/config.toml) 
[Oct 21 10:24:46]  INFO [localhost] Detecting OS... 
[Oct 21 10:24:46]  INFO [localhost] Detecting OS of servers... 
[Oct 21 10:24:46]  INFO [localhost] (1/1) Detected: 127-0-0-1: centos 6.7
[Oct 21 10:24:46]  INFO [localhost] Detecting OS of containers... 
[Oct 21 10:24:46]  INFO [localhost] Checking sudo configuration... 
[Oct 21 10:24:47]  INFO [127-0-0-1] sudo ... OK
[Oct 21 10:24:47]  INFO [localhost] No need to install dependencies

検査開始

    $ vuls scan -cve-dictionary-dbpath=$PWD/cve.sqlite3 -report-json

TUIで結果確認

$ vuls tui

Ctrl + cで閉じる

脆弱性があったのにtuiでは空で表示された場合はconfig.tomlと同じディレクトリに脆弱性データベースを落としていたか再度確認する。

ClamAVでPdf.Exploit.CVE_2016_4207-1の対応

ClamAVでPdf.Exploit.CVE_2016_4207-1の対応

元々、「アンチウィルスソフト導入(Clam AntiVirus)

を参考にClamAVを導入していましたが、先日の「Signatures Published daily – 22213
以降PDFやzip、docxなどが誤検知されファイルが削除される状態になった。

検知⇒即刻削除の方が安全性は高いと思うけど、今回のような誤検知があった場合には被害が大きいので
一旦自分で内容を確認するようにしてみる。

まず、そもそも検知と同時に削除してしまうのが危ないので、
ウィルススキャン定期自動実行のスクリプトである「virusscan」スクリプト内を変更。

# vim /etc/cron.daily/virusscan

clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1

↓削除オプションを取る

clamscan --recursive ${excludeopt} / > $CLAMSCANTMP 2>&1

それとroot宛にメールを飛ばしていたので以下の箇所も変更。気づかないので・・・。

# vim /etc/cron.daily/virusscan

grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root

↓メール送信先を変更

grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" 自分のメールアドレス

ここまでで検知したら即時削除ではなく、検知したファイルをメールで通知してくれるようになった。

メールが来たらシグネチャを調査して本当に消す必要があるのか自分で判断してから削除する。

サーバ側での削除は以下のコマンドで検知&削除する。

# clamscan --infected --remove --recursive

remove以外にもmove、copyもあるようなので、必要に応じて使い分けるればいいかも。

# clamscan --help
・・・
    --remove[=yes/no(*)]                 Remove infected files. Be careful!
    --move=DIRECTORY                     Move infected files into DIRECTORY
    --copy=DIRECTORY                     Copy infected files into DIRECTORY
・・・

それと今回の「Pdf.Exploit.CVE_2016_4207-1」を除外するためにホワイトリスト設定を追加。

Whitelisting signatures
元々の結果

# clamscan --infected --recursive
/root/virus-data/test.pdf: Pdf.Exploit.CVE_2016_4207-1 FOUND

----------- SCAN SUMMARY -----------
Known viruses: 4850553
Engine version: 0.99.2
Scanned directories: 1
Scanned files: 2
Infected files: 1
Data scanned: 2.30 MB
Data read: 0.37 MB (ratio 6.20:1)
Time: 7.857 sec (0 m 7 s)

ホワイトリストに追加。

# echo "Pdf.Exploit.CVE_2016_4207-1" >> /var/lib/clamav/local.ign2

検知されなくなった。

# clamscan --infected --recursive

----------- SCAN SUMMARY -----------
Known viruses: 4850552
Engine version: 0.99.2
Scanned directories: 1
Scanned files: 2
Infected files: 0
Data scanned: 2.54 MB
Data read: 0.37 MB (ratio 6.85:1)
Time: 7.712 sec (0 m 7 s)

DELL PowerEdge T310のLCDパネルに「I1912 System Event Log full. Review & clear log.」と表示されたのでその対応

DELL PowerEdge T310のLCDパネルに「I1912 System Event Log full. Review & clear log.」と表示されたのでその対応。

OS:CentOS6.2

調べてみると以下のページにたどり着いた。

ハードウェアログがいっぱいになった場合の対処方法

このページを見ると、「OpenManage Server Administrator」をインストールする必要があるようなのでインストールしてみる。

インストールは以下のページを参考に進める。

[OMSA] OpenManage Server Administratorインストール手順 for Red Hat Enterprise Linux 6.x

「コマンド:./srvadmin-install.sh –x」でエラーが発生。。

# ./srvadmin-install.sh -x
Error: srvadmin-install.sh is already executing.
       Wait for srvadmin-install.sh to complete and try again.
       Concurrent executions of srvadmin-install.sh can lead to unexpected
       or invalid installation results.

       If you want to continue anyway, please delete '/var/lock/LCK..srvadmin-install.sh.0' and try again.

数時間悩むも偶然見つけた以下のページを参考に「procmail」をインストールしてみた。

Install Dell OpenManage 7.4 on XenServer 6.5

# yum  install procmail

すると・・・

# ./srvadmin-install.sh -x
     Unrecognized Operating System or Architecture. This script cannot 
     continue with the installation. Select rpms from the OS folder in 
     the media that closely matches this Operating System to continue 
     with the manual install.

なんか変わった。

これもしばらく悩むも、「/etc/redhat-release」をどうにかすればよさそうな記事を目にする。

とりあえず

# echo "Santiago" >> /etc/redhat-release

でもだめっだった。もとに戻してから、

# echo "Tikanga" >> /etc/redhat-release
# ./srvadmin-install.sh -x
  Server Administrator version 7.4.0 is currently installed.
  Installed components are:
   - srvadmin-storelib-sysfs-7.4.0-4.1.1.sles10.i386
   - srvadmin-hapi-7.4.0-4.28.2.sles10.i386

  You are attempting to install Server Administrator version 7.3.0
  7.3.0 is lower than the installed version 7.4.0.
  Error: install cannot continue.

進んだ!
CDからは「7.3.0」を入れようとしてるみたいだけど、悩んでいろいろやってたときに「7.4.0」の
コンポーネントが入ってしまったようなので削除。

# yum remove srvadmin-hapi
# yum remove srvadmin-storelib-sysfs

削除して再度実行。

# ./srvadmin-install.sh -x
Installing the selected packages.

準備中...                ########################################### [100%]
   1:libsmbios              ########################################### [ 50%]
   2:smbios-utils-bin       ########################################### [100%]
エラー: 依存性の欠如:
        libcurl.so.3 は libwsman1-2.2.3.9-4.1.7.el5.i386 に必要とされています
準備中...                ########################################### [100%]
   1:srvadmin-omilcore      ########################################### [  3%]
     **********************************************************
     After the install process completes, you may need 
     to log out and then log in again to reset the PATH
     variable to access the Server Administrator CLI utilities

     **********************************************************
   2:srvadmin-deng          ########################################### [  6%]
   3:srvadmin-omacs         ########################################### [  9%]
   4:srvadmin-xmlsup        ########################################### [ 12%]
   5:srvadmin-rac-components########################################### [ 15%]
   6:srvadmin-hapi          ########################################### [ 18%]
   7:srvadmin-isvc          ########################################### [ 21%]
   8:srvadmin-argtable2     ########################################### [ 24%]
   9:srvadmin-smcommon      ########################################### [ 26%]
  10:srvadmin-ominst        ########################################### [ 29%]
  11:srvadmin-omcommon      ########################################### [ 32%]
  12:srvadmin-jre           ########################################### [ 35%]
  13:srvadmin-omacore       ########################################### [ 38%]
  14:srvadmin-idracadm7     ########################################### [ 41%]
  15:srvadmin-racdrsc       ########################################### [ 44%]
  16:srvadmin-deng-snmp     ########################################### [ 47%]
  17:srvadmin-storelib-sysfs########################################### [ 50%]
  18:srvadmin-storelib      ########################################### [ 53%]
  19:srvadmin-racadm4       ########################################### [ 56%]
  20:srvadmin-megalib       ########################################### [ 59%]
  21:srvadmin-storage       ########################################### [ 62%]
  22:srvadmin-idrac-vmcli   ########################################### [ 65%]
  23:srvadmin-idrac7        ########################################### [ 68%]
  24:srvadmin-smweb         ########################################### [ 71%]
  25:srvadmin-cm            ########################################### [ 74%]
  26:srvadmin-oslog         ########################################### [ 76%]
  27:srvadmin-storage-cli   ########################################### [ 79%]
  28:srvadmin-storage-snmp  ########################################### [ 82%]
  29:srvadmin-tomcat        ########################################### [ 85%]
  30:srvadmin-idracadm      ########################################### [ 88%]
  31:srvadmin-isvc-snmp     ########################################### [ 91%]
  32:srvadmin-idrac-ivmcli  ########################################### [ 94%]
  33:srvadmin-idrac-snmp    ########################################### [ 97%]
  34:srvadmin-sysfsutils    ########################################### [100%]

入った。一応「libcurl」入れておく。

# yum search libcurl

遂にOMSAのサービスを起動。

# /opt/dell/srvadmin/sbin/srvadmin-services.sh start
Starting Systems Management Device Drivers:
Starting dell_rbu:                                         [  OK  ]
Starting ipmi driver:                                      [  OK  ]
Starting Systems Management Data Engine:
Starting dsm_sa_datamgrd:                                  [  OK  ]
Starting dsm_sa_eventmgrd:                                 [  OK  ]
Starting dsm_sa_snmpd:                                     [  OK  ]
Starting DSM SA Shared Services:                           [  OK  ]

Starting DSM SA Connection Service:                        [  OK  ]

状態確認。

[root@localhost dell]# /opt/dell/srvadmin/sbin/srvadmin-services.sh status
dell_rbu (module) is running
ipmi driver is running
dsm_sa_datamgrd (pid 31827 31795) is running
dsm_sa_eventmgrd (pid 31906) is running
dsm_sa_snmpd (pid 31965) is running
dsm_om_shrsvcd (pid 32032) is running
dsm_om_connsvcd (pid 32085 32084) is running

起動した!ブラウザからも見れた!

夜エアコンが止まってる間にサーバが高温になってwarningログが大量に出てた。
ログのクリアをしたらLCDパネルの表示ももとに戻った。
夜社内が暑いのは解決していない。

※ちなみに別のサーバでは以下のサイトの方法で簡単に導入できました。

OMSA を CLI からサクッとインストールする。 (CentOS 6.x)

CentOS7にduplicityをインストール

CentOS7にduplicityをインストール

■epel導入

# yum install https://mirrors.kernel.org/fedora-epel/7/x86_64/e/epel-release-7-5.noarch.rpm

■python tools導入

# yum install python-devel librsync-devel librsync python-setuptools python-lockfile python-boto wget

■Duplicityのソースを取得、解凍、インストール

# wget https://code.launchpad.net/duplicity/0.6-series/0.6.26/+download/duplicity-0.6.26.tar.gz
# tar xvf duplicity-0.6.26.tar.gz
# cd duplicity-0.6.26
# python setup.py build
# python setup.py install
# duplicity --version

Duplicity 0.6 series is being deprecated:
See http://www.nongnu.org/duplicity/

duplicity 0.6.26

■FTPも使うのでncftpもインストール

# yum install ncftp

とりあえずこれでOK。

■参考
Installing Duplicity for Backups on CentOS 7

install duplicity on centos 64bit

■以前の記事
duplicityをCentOS6.3にインストールするメモ

duplicityをCentOS6.3にインストールするメモ

duplicity で1日前のデータを復元する

duplicity で1日前のデータを復元する

CentOS5系にduplicityをインストールする

CentOS5系にduplicityをインストールする

CentOS6の特定のサーバでMondo Rescueが動かなかった件

CentOS6の特定のサーバでMondo Rescueが動かなかった件

ログを見ると

mkisofs: Uh oh, I cant find the boot image ‘isolinux.bin’

と出ていた。

かなりいろいろ調べてみたけどまったくわからなかった。

ふと再度バージョンを確認すると・・・

mindiのバージョンだけmondorescue-testのものになってた。

# mindi -v
Mindi v3.0.220160107015217-r3494M
# mondoarchive -v
mondoarchive v3.2.1-r3456

最初のインストール時にmondoをmondorescue-testから入れて、
それから削除してとかやってたからmindiとバージョンがあわなく
なっちゃったんだな。

入れなおし後。

# mindi -v
Mindi v3.0.1-r3456
# mondoarchive -v
mondoarchive v3.2.1-r3456

それにしてもエラーメッセージからはまったく気づけなかった。。

さくらVPSのCentOS6をMondRescueでさくらVPSにリストアしてみた。

さくらVPSのCentOS6をMondRescueでリストアしてみた。

無料お試しのVPS2Gを借りて、デフォルトインストールされている
CentOS6をバックアップしてisoをダウンロードしてから、
同じサーバに対してisoイメージインストールでリストアを実験してみた。

一応再度インストール方法から。

今回の対象はCentOS release 6.7です。

# wget ftp://ftp.mondorescue.org//rhel/6/x86_64/mondorescue.repo
# mv mondorescue.repo /etc/yum.repos.d/
# yum -y install dvd+rw-tools
# yum install --enablerepo=mondorescue mondo
# yum install lzop
# cd /
# mkdir backup
# mondoarchive -Oi -L -N -s 4480m -d /backup -E /backup -p sakura-`hostname`-`date +%Y-%m-%d`

出来たisoファイルをダウンロードしておく。

その後、さくらVPSの管理画面にログインして「OSインストール」から「ISOイメージインストール」を選択する。
「SFTP」のアカウントを作成するボタンがあるのでクリックしてISOイメージアップロード先の情報を取得する。

SFTPで接続して「iso」フォルダに先ほどダウンロードしておいたisoイメージファイルをアップロードする。

アップロード終了後に再度「OSインストール」から「ISOイメージインストール」に進むと、
アップロードしたisoファイルが表示されているはずなので内容を確認してさらに「VirtIOを有効にする」の
チェックを外してから「設定内容を確認する」をクリック。
確認画面が出るので「インストールを実行する」をクリックしてリストアを開始する。

※「VirtIOを有効にする」にチェックが入っていた状態だと「expert」モードの時に「fdisk -l」しても
デバイスが無いも表示されなかったので、チェックを外した。

Mondo Rescueの画面になるので「expert」を入力する。

boot: expert
sh-4.1# fdisk -l

/dev/sdaとかが表示されているはず。

sh-4.1# vi /tmp/mountlist.txt

ファイル内の「vda」の箇所をすべて「sda」に変更する。

sh-4.1# mondorestore

「Automatically」を選択

リストアが始まる。

たぶんこの時に画面の下に

Formatting /dev/sda3 as ext4...OK
Formatting /dev/sda1 as ext4...OK
Formatting /dev/sda2 as swap...OK
All partitions were mounted OK.

が出れば順調に進んでいるはず。

次に

You will now be able to re-generate your initrd.
This is especially useful if you changed of hardware configuration,log: socket ignored cloned, made P2V, used multipath…
Do you need to do it ?

と出るので「Yes」を選択。

initrdの再作成の画面

次に

You’ll now be chrooted under your future / partition.
Go under /boot and rebuild your init(rd|ramfs) with
mkinitrd -f -v initrd-2.x.y.img 2.x.y
e.g.
or initramfs, dracut, … Then type exit to finish

と出るので「OK」を選択。

mkinitrdの再作成の画面

プロンプトでinitrdの再構築を行う。

sh-4.1# cd /boot/
sh-4.1# ls -lhtr vmlinuz*

一番下のバージョンのimgでinitrdを再生成。
今回はこんな感じだった。

sh-4.1# mkinitrd -f -v initramfs-2.6.32-573.12.1.el6.x86_64.img 2.6.32-573.12.1.el6.x86_64

再構築が終わったら

sh-4.1# exit

すこし待つと、

Because of bugs in GRUB’s own installer,
GRUB was not installed properly. Please install the boot loadermanually now,
using this chroot()’ed shell prompt. Type ‘exit’ when you have finished.

と出るので「OK」を選択。

GRUBのバグの再作成の画面

 

grubのインストールを試みる。

sh-4.1# grub-install /dev/sda
/dev/sda does not have any corresponding BIOS drive./boo

とエラーが出てしまったのでいろいろ捜索。

「/etc/mtab」に「vda」の記述が残っていることを発見したのでこれを修正する。

sh-4.1# vi /etc/mtab

それと「/boot/grub/device.map」に「vda」の記述が残っていることを発見したのでこれを修正する。

sh-4.1# vi /boot/grub/device.map

再度「grub-install」を実行。

sh-4.1# grub-install /dev/sda
・・・
(hd0)   /dev/sda

このように最後に表示されればOKっぽい。

プロンプトを抜ける。

sh-4.1# exit

最後に

Mondo has restored your system.
・・・

と表示されるので「OK」を選択。

プロンプトを抜ける。

sh-4.1# exit

その後何も起きないので、VPSの管理画面から
「強制再起動」を行う。

ログインプロンプトが表示されればOK。

今回は同じサーバにリストアしたので、ネットワーク関係の
再設定はいらないはず。

違うVPSにリストアする場合はUUID関係とかも調整しないと
いけないのかもしれない。。

今回同じサーバにも関わらず「Automatically」で全部できなかったのは
バックアップの時にカーネル検出を失敗していたのかもしれないと↓の
ブログを拝見して思いました。

さくらのVPSでOSイメージを作ってまるごとコピー

あと、VirtIOでも大丈夫って書いてある記事もあったのだけど
なんでできなかったのかは不明。

とりあえず、有事の際にローカルの仮想環境や元のVPSで
リストアできるところまでは検証できた。

Mondo Rescue リストアの実験:VirtualBoxにさくらVPS CentOS5をリストア

Mondo Rescue VirtualBoxにさくらVPSのCentOS5のリストアを行った時の記録

同じ環境にリストアするならあっさりできるかもしれないけど、
構成が違った場合に難易度が跳ね上がったので記録しておく。

参考サイトを大量に見ながら試行錯誤してできたので、以下の手順は
実際に行った順番とか違うかもしれない。。

リストア手順

昔のVPSでHDDが20GBの時のものなので、VirtualBoxのHDDのサイズは
とりあえず25GBで準備。

リカバリーのisoを設定して起動する。

ディスクの構成が違うので「expart」モードで実行

fstab -l でデバイスファイルの状態確認。
「/dev/sda」があるはず

# vi tmp/mountlist.txt

昔のVPSなので「/dev/hda1」とかになってる箇所を「/dev/sda1」という風に
「hda」を「sda」にすべて変更。

# mondorestore <- コマンドを実行

Automaticallyを選択して実行

「initrd」の再生成のアラートが出るので「OK」する。

「/」にchrootして「/boot」の下でmkinitrdを実行する

# cd /boot
# mkinitrd -f -v initrd-2.x.y.img 2.x.y

※このとき一番新しいものを選ぶ。最初間違って古いものを指定してしまい、起動時にkernel panicになってパニックになった。

# exit <- シェルを抜ける。

サーバを落としてisoイメージを抜く。

サーバの起動をする。

起動すればOK。ネットワーク関係の設定をし直す。

Kernel panicの場合はCentOSのインストールisoを用意してRescueモードを実行し、
grubとinitrdを再作成する。

自分はKernel panicになってしまったのでRescueモードで起動して修正作業を行った。

# chroot /mnt/sysimage

そんでdevice.mapの記述を変更。

# vi /boot/grub/device.map

保存してからgrub-installを実行

# grub-install /dev/sda

その後間違ったinitrdの再生成に。

# cd /boot
# ls -lhtr vmlinuz*

で一番下のものをメモ。
今回は

vmlinuz-2.6.18-348.6.1.el5 だった
initrdの作り直し。

# mkinitrd -f -v /boot/initrd-2.6.18-348.6.1.el5.img 2.6.18-348.6.1.el5
・・・
# exit
# exit

で再起動しちゃうのでサーバを落としてisoを取り外してからサーバを起動。

やっと動いた。
実際には動くまでに「Automatically」、「Interacively 」とかを何度も試し、
途中であきらめたりしながら4日間くらいかかって起動するようになりました・・・。
起動プロセスやディスク、レスキューモードとか普段めったに触らないところだったので
いちいち勉強しないといけなかった。でも実際まだよくわかっていない。

緊急用にmondo rescueでリカバリメディアを作成している人は急にリストアを
依頼されて困らないように練習しておく必要があるかもです。

これで一応ローカルでアップデートの実験とかできる。

【リストア参考サイト】
非常にお世話になりました。ありがとうございました。

■Mondo Rescueによるリストアを失敗しないために。

■さくらインターネットのVPS環境へMondo Rescueでリストアする方法 (Automatically編)

■さくらインターネットのVPS環境へMondo Rescueでリストアする方法 (Interactively編)

■さくらVPS環境をMondorescueでバックアップしてVmwareにリカバリする

■Mondo Rescue

■レスキューモードでGrubリカバリ

■起動時にkernel panicが発生する場合の対処法

Mondo RescueをCentOS5で試してエラーが出た。

Mondo RescueをCentOS5で試してエラーが出た。

■OSのバージョン
CentOS release 5.9 (Final)

■その時点での最新をインストール

# mondoarchive --version
mondoarchive v3.2.1-r3456
See man page for help
# mindi --version
Mindi v3.0.1-r3456
# mkisofs --version
mkisofs 2.01 (cpu-pc-linux-gnu)

■実行!

# mondoarchive -Oi -gF -s 4480m -d /backup -E /backup

■エラーが発生。logに以下のように…faildが・・・。

DBG3: [Main] libmondo-fork.c-&gt;run_external_binary_with_percentage_indicator_NEW#685: Parent res = 256
INFO: Call to mkisofs to make ISO (ISO #1) ...failed
DBG1: [Main] libmondo-archive.c-&gt;make_iso_fs#1883: WARNING - make_iso_fs returned an error
DBG2: [Main] libmondo-archive.c-&gt;write_iso_and_go_on#3223: Retrying, at user's request...

■以下の情報を発見。
[Mondo-devel] Newest mondo error calling mkisofs

Yes, this is a regression for non RHEL 7 versions 🙁 Please use the
test of 3.2.2 that will be out soon to foix that + some other issues
reported since.

Cf: ftp://ftp.mondorescue.org/test/rhel/5

RHEL7以外のものはダメらしいのでテストの3.2.2を入れて試す。

ftp://ftp.mondorescue.org/test/rhel/5/x86_64/
mondorescue-test.repo

■リポジトリを削除してmondorescue-test.repoを入れなおす。

# yum --enablerepo=mondorescue-test install mondo
[root@www15172u ~]# mondoarchive --version
mondoarchive v3.2.220151218023212-r3492

■実行!

# mondoarchive -Oi -gF -s 4480m -d /backup -E /backup

出来た。
とりあえずこれで凌ぐ。

リストアできるかな~

 

※その後CentOS6環境でも「mondoarchive」を試すが、こちらは「3.2.1」、「3.2.2」でもエラーが出てメディアの作成が完了しない・・・。
今のところどうしていいのかわからず途方に暮れています。⇒mindiのバージョンがずれてました・・・。

CentOS7にMondo Rescureをインストール

CentOS7にMondo Rescureをインストール

Mondo Rescureを使ってみようと思いローカル環境で実験をすることに。

最終目標はさくらのVPSのリカバリディスクの作成。

今回の実験環境
ホスト:Windows10
VirtualBox:5.0.12
Vagrant:1.8.1
ゲスト:CentOS7.2

ゲストのCentOS7.2のリカバリディスクを作成する。

※Vagrant環境なんだからpackageにすればいいんだけど「Mondo Rescure」の実験なので・・・。

作業はゲストでのみ行う。
まずはCentOS7.2にログインしてインストールから。

■yumリポジトリをインストールして「Mondo Rescure」をインストールする。

Download Mondo Rescue

ミラーサイトからリポジトリを取得

# wget ftp://mondo.mirror.pclark.com/pub/mondorescue/rhel/7/x86_64/mondorescue.repo

# mv mondorescue.repo /etc/yum.repos.d/

■インストール

# yum --enablerepo=mondorescue search mondo
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.riken.jp
 * extras: www.ftp.ne.jp
 * remi-php70: mirrors.thzhost.com
 * remi-safe: mirrors.thzhost.com
 * updates: www.ftp.ne.jp
============================================================================================================ N/S matched: mondo =============================================================================================================
mondo.x86_64 : MondoRescue is a GPL Disaster Recovery and Cloning Solution
mondo-debuginfo.x86_64 : Debug information for package mondo
perl-MondoRescue.noarch : The perl-MondoRescue provides a set of functions for the MondoRescue project


# yum --enablerepo=mondorescue install mondo
・・・・
Complete!

以上でインストールは完了。

2つのコマンドが入った模様
mondoarchive
mondorestore

■バージョン確認

# mondoarchive -v
mondoarchive v3.2.1-r3456
See man page for help

■ISOイメージを作成してみる

オプションはこのページを参考にしました。

# mondoarchive -Oi -s 4480m -d /tmp
See /var/log/mondoarchive.log for details of backup run.
Checking sanity of your Linux distribution
Done.
Making catalog of files to be backed up
---evalcall---1---          Making catalog of /       
---evalcall---2--- TASK:  [**..................]  10% done;  0:09 to go
---evalcall---E---
---evalcall---1---          Making catalog of /       
---evalcall---2--- TASK:  [**********..........]  48% done;  0:02 to go
---evalcall---E---
---evalcall---1---          Making catalog of /       
---evalcall---2--- TASK:  [***********.........]  53% done;  0:02 to go
---evalcall---E---
---evalcall---1---          Making catalog of /       
---evalcall---2--- TASK:  [***************.....]  71% done;  0:01 to go

・・・・・

---evalcall---1---             Verifying...           
---evalcall---2--- TASK:  [******..............]  28% done;  0:02 to go
---evalcall---E---
---evalcall---1---             Verifying...           
---evalcall---2--- TASK:  [**********..........]  50% done;  0:06 to go
---evalcall---E---
Mindi failed to create your boot+data disks.
Fatal error... Failed to generate boot+data disks
---FATALERROR--- Failed to generate boot+data disks
If you require technical support, please contact the mailing list.
See http://www.mondorescue.org for details.
The list's members can help you, if you attach that file to your e-mail.
Log file: /var/log/mondoarchive.log
Mondo has aborted.
rm: cannot remove ‘/tmp/mondo.tmp.OD9jow/mountpoint.29356’: Device or resource busy
Execution run ended; result=254
Type 'less /var/log/mondoarchive.log' to see the output log

こけた?

Mondo RescueをつかってのCentOs7のバックアップ

上記のページを参考に設定値を変更してみた。

# pwd
/etc/mindi

# diff mindi.conf.org mindi.conf
12,13c12,13
< # EXTRA_SPACE=80152           # increase if you run out of ramdisk space
< # BOOT_SIZE=32768 # size of the boot disk --- > EXTRA_SPACE=240000            # increase if you run out of ramdisk space
> BOOT_SIZE=100000              # size of the boot disk

なんとなく出力先も変更して再度実行

# mondoarchive -Oi -s 4480m -d /backup -E /backup
・・・

---progress-form---3--- Please wait. This may take some time.
---progress-form---E---
---progress-form---4--- TASK:  [********************] 100% done;  0:00 to go
Done.
Writing any remaining data to media         
Please be patient. Do not be alarmed by on-screen inactivity.
Call to mkisofs to make ISO (ISO #1) ...OK
Done.
Done.
Backup and/or verify ran to completion. Everything appears to be fine.
/var/cache/mindi/mondorescue.iso, a boot/utility CD, is available if you want it
Data archived OK. 
Mondoarchive ran OK.
See /var/log/mondoarchive.log for details of backup run.
Execution run ended; result=0
Type 'less /var/log/mondoarchive.log' to see the output log

出来た!

# pwd
/backup
# ls -alh
total 1.2G
drwxr-xr-x   2 root root   30 Jan 28 06:40 .
dr-xr-xr-x. 19 root root 4.0K Jan 28 06:20 ..
-rw-r--r--   1 root root 1.2G Jan 28 06:40 mondorescue-1.iso

isoイメージは1.2GBになった。

そもそもこのサーバの使用容量はこちら↓

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.3G  4.2G  4.1G  51% /
devtmpfs                 298M     0  298M   0% /dev
tmpfs                    308M     0  308M   0% /dev/shm
tmpfs                    308M  4.5M  304M   2% /run
tmpfs                    308M     0  308M   0% /sys/fs/cgroup
/dev/sda1                497M  230M  267M  47% /boot
tmpfs                     62M     0   62M   0% /run/user/1000

■isoが出来たのでリカバリの実験

これは参考サイト「Mondo rescueを用いたシステムリカバリの方法

と同様にVirtualBoxにisoイメージをセットして起動し、Automaticallyで実行した。
参考サイトの指示通りにやってたリカバリができた。
あとはネットワークの設定とかをやってみたらそっくりそのままの環境ができた。

ローカルでの実験ができたので稼働中のさくらVPSとかでも実行する予定。

■参考サイト
Mondo Rescue Home Page

Mondo rescueを用いたシステムリカバリの方法

Mondo Rescueを使ったVPSのマイグレーション