17:サブホストの設定4、アンチウィルスソフト導入(Clam AntiVirus)

参考URL:http://centossrv.com/clamav.shtml
# yum -y install clamd

EPELレポジトリーを有効にして置かないとインストール出来ない
# gedit /etc/clamd.conf

#User clam ← 行頭に#を追加(root権限で動作するようにする)

Clam AntiVirusの起動
# service clamd start
# chkconfig clamd on
ウィルス定義ファイル最新化
# freshclam

ClamAV update process started at Mon May  5 14:29:28 2014
main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
WARNING: getfile: daily-18354.cdiff not found on remote server (IP: 211.10.155.48)
WARNING: getpatch: Can't download daily-18354.cdiff from db.jp.clamav.net
Trying host db.jp.clamav.net (203.212.42.128)...
WARNING: getfile: daily-18354.cdiff not found on remote server (IP: 203.212.42.128)
WARNING: getpatch: Can't download daily-18354.cdiff from db.jp.clamav.net
Trying host db.jp.clamav.net (219.94.128.99)...
WARNING: getfile: daily-18354.cdiff not found on remote server (IP: 219.94.128.99)
WARNING: getpatch: Can't download daily-18354.cdiff from db.jp.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Downloading daily.cvd [100%]
daily.cvd updated (version: 18924, sigs: 929974, f-level: 63, builder: neo)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 236, sigs: 43, f-level: 63, builder: dgoddard)
Database updated (3354242 signatures) from db.jp.clamav.net (IP: 120.29.176.126)

毎日のアップデートは/etc/cron.dailyに自動的に出来た freshclam によりなされる。
ウィルススキャンテスト
# clamscan –infected –remove –recursive
全体をスキャンするので時間がかかる。スキャンが終わるとサマリーが表示され何行目かに ”Infected files: 0″ と表示がでていればOK。
テスト用のウィルスをダウンロード。
# wget http://www.eicar.org/download/eicar.com
# wget http://www.eicar.org/download/eicar.com.txt
# wget http://www.eicar.org/download/eicar_com.zip
# wget http://www.eicar.org/download/eicarcom2.zip
再度ウィルスチェック
# clamscan –infected –remove –recursive

/root/eicarcom2.zip: Eicar-Test-Signature FOUND ← ウィルス検知
/root/eicarcom2.zip: Removed ← ウィルス削除
/root/eicar.com.txt: Eicar-Test-Signature FOUND ← ウィルス検知
/root/eicar.com.txt: Removed ← ウィルス削除
/root/eicar_com.zip: Eicar-Test-Signature FOUND ← ウィルス検知
/root/eicar_com.zip: Removed ← ウィルス削除
/root/eicar.com: Eicar-Test-Signature FOUND ← ウィルス検知
/root/eicar.com: Removed ← ウィルス削除
以下省略

ウィルススキャン定期自動実行設定
# gedit virusscan

#!/bin/bash
PATH=/usr/bin:/bin
# clamd update yum -y update clamd > /dev/null 2>&1
# excludeopt setup
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
    for i in `cat $excludelist`
    do
        if [ $(echo "$i"|grep \/$) ]; then
            i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
            excludeopt="${excludeopt} --exclude-dir=^$i"
        else
            excludeopt="${excludeopt} --exclude=^$i"
        fi
    done
fi
# virus scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

# chmod +x virusscan
除外するファイル、ディレクトリーの設定、ディレクトリを除外する場合は末尾に「/」を付加すること
# echo “/proc/” >> clamscan.exclude
# echo “/sys/” >> clamscan.exclude
スクリプトをcron.dailyへ
# mv virusscan /etc/cron.daily/

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

16:サブホストの設定3、chkrookitのインストール

参考URL:http://centossrv.com/chkrootkit.shtml
# yum -y install chkrootkit

EPELレポジトリーを有効にしていないとインストール出来ない
# chkrootkit | grep INFECTED
grepは大文字と子文字を区別するので必ず大文字でINFECTEDとする事。
汚染されていない場合は not infected となるので、小文字でやると正常な分が表示される。
chkrootkit定期自動実行設定
# gedit chkrootkit

#!/bin/bash
PATH=/usr/bin:/bin
TMPLOG=`mktemp`
# chkrootkit実行
chkrootkit > $TMPLOG

# ログ出力 cat $TMPLOG | logger -t chkrootkit

# SMTPSのbindshell誤検知対応
if [ ! -z "$(grep 465 $TMPLOG)" ] && [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
      sed -i '/465/d' $TMPLOG
fi

# upstartパッケージ更新時のSuckit誤検知対応
if [ ! -z "$(grep Suckit $TMPLOG)" ] && [ -z $(rpm -V `rpm -qf /sbin/init`) ]; then
       sed -i '/Suckit/d' $TMPLOG
fi

# rootkit検知時のみroot宛メール送信
[ ! -z "$(grep INFECTED $TMPLOG)" ] && grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root

rm -f $TMPLOG

# chmod 700 chkrootkit
# mv chkrootkit /etc/cron.daily/
その後、http://centossrv.com/chkrootkit.shtmlを参考に”chkrootkitで使用する安全なコマンドの確保”をやっておく

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

15:サブホストの設定2、EPELレポジトリの導入

参考URL:http://centossrv.com/epel.shtml
yumでは出来ないプログラムの為にEPELレポジトリの導入する
# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm ← これは64bitの場合、32bitの場合は途中のx86_64をi386に変更。
今日やったらrikenのftpサーバーが落ちているみたい。たまたまかも知れないが、
# rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm ← ここからでも出来る
yum-prioritiesプラグイン導入
# yum -y install yum-plugin-priorities
# gedit /etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1 ← 追加

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1 ← 追加

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1 ← 追加

プライオリティーについて
優先度は “1~99″、値が小さいほど優先度が高くなる。又未設定の場合は優先度が “99” 。つまりこの設定はBase,updates,extraを最優先にし、EPELを含むそれ以外は最低のプライオリティーという事。

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

14:その他のサブホストの設定1

私はDVDから直接日本語でインストールしたが、もし英語でインストールし、日本語化するには(必要なければ読み飛ばして)

# yum groupinstall “Japanese Support”
次に /etc/sysconfig/i18nのLANGを

LANG="ja_JP.UTF-8"

に訂正し、保存後
# source /etc/sysconfig/i18n

ログイン時のユーザーリストを非表示するには

/etc/gconf/gconf.xml.defaults/%gconf-tree.xmlの22678行目くらいに下記があるので、

<entry name="disable_user_list" mtime="1366723318" type="schema" stype="bool" owner="gdm-simple-greeter" gettext_domain="gdm">
	<local_schema locale="C" short_desc="Do not show known users in the login window">
 		<default type="bool" value="false"/> ←ここを True に変更
 		<longdesc>Set to true to disable showing known users in the login window.</longdesc>
        /local_schema>
</entry>

上に示したようにfalseをtureに変更し保存。
その後、再起動すると日本語になっているが、downloadやDesktopなどを日本語にするか聞いてくるので、好みで。変更前は入力が日本語にならなかったが、変更後は入力できるようになる。
もし、日本語のキーボード・マップになっていない場合は /lib/kbd/keymaps/i386/qwerty/jp106.map.gz があることを確認し、/etc/sysconfig/keyboard を

KEYTABLE="jp106"
KEYBOARDTYPE="pc"

として保存後、再起動すれば日本語になる。保存前は MODEL=”pc105+inet” LAYOUT=”us” の二つがあったが、なくてもいいみたいです。 次にIPアドレスをを固定にするので、/etc/sysconfig/network-scripts/ifcfg-eth0 に下記を設定

DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.xx.xx
PREFIX=24
GATEWAY=192.168.xx.xx
NAME="System eth0"

IPアドレスはすぐにブリッジを作るのでいらなくなるが、その前に固定IPでネットワークのテストをしたいので設定しておく。
DHCPでなくなるので、DNSの設定をする。/etc/resolv.conf に

search kinryokai.net
nameserver 192.168.xx.xx
nameserver 8.8.8.8
nameserver 202.224.32.2

3行目はgoogleのDNS、4行目はISPのDNSです。
インストール時にホスト名を設定したが、反映していないので、/etc/sysconfig/networkのホスト名を

HOSTNAME=xxx.kinryokai.net

に変更し、NetworkManagerを止める(後で仮想化をインストールし、ブリッジを作りますが、NetworkManagerはブリッジをサポートしていないそうな。なのでここで止めるのが正解)
# service NetworkManager stop
# chkconfig NetworkManager off
NetworkManagerを止めないと、resolve.confが書き換えられてしまうので注意。
そ して、ネットワークドライバーを変更する。現在のドライバーはマザーボードのLANチップであるRealtekのRTL8111GR用のr8169が自動 的にインストールされているが、r8169は何かと問題が多い。その前にソースからインストール出来るように環境を作る。
注: ここで順番が大事、順番を間違えるとドライバーがダウンロードできなくなる。全てをダウンロード後、再起動してから、LANドライバーをインストールする 事。これは”Base” “Development tools”のインストールによりカーネルもアップデートされるが、再起動しないと有効になっていない為、順番を間違えるとネットワークが使えなくなる。
# yum -y groupinstall “Base” “Development tools”
でインストール。
ついでに日本語環境で有用なnkfをインストールしておく。
# yum -y install nkf
ドライバーはrealtekのRealtekのWEBからUnix (Linux)用の LINUX driver for kernel 3.x and 2.6.x and 2.4.x をダウンロードし、その保存した場所をカレントディレクトリーにし(CDをする)
# tar vjxf r8168-8.038.00.tar.bz2
# cd r8168-8.038.00
# ./autoru.sh
とすると、r8169を削除し、r8168を入れてくれる。この時

make: *** /lib/modules/2.6.32-358.el6.x86_64/build: そのようなファイルやディレクトリはありません.  中止.

と出る時は再起動し、再度行う。
追 記:ある時再起動後、キーボードとマウスが動かないので、ログインすら出来ない。”Development tools” を入れたらカーネルのアップデートもあり、それでかなー。古いカーネルでは入力が出来る。色々調べたら、USBキーボードの取り付けをUSB3(青い USB)にするとOKになった。
そして再起動。あれネットに繋がらない。入り色調べたらネットワークが走っていないみたい。なので
# service network start
# chkconfig network on
でやっと正常に繋がった。

次に https://www.kinryo.net/?p=342 を参照してサブホストの初期設定をします。

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

13:VNCサーバーの設定(xinet経由)

サブホストを設定していくのに、標準ではやりにくいので(カーソルの移動が面倒)VNCサーバーをインストールするが、その前にOSのアップデートをしておく。
ここからはサブホスト側の設定。サブホストにログインし、
# yum -y update
VNCサーバーをインストール
# yum -y install tigervnc-server
VNCをXinet経由で動かしたいので(常時接続を待ち受けるのではなく、リクエストがあった時のみプログラムを走らせる)
# yum -y install xinetd
CentOSはVNCサーバーのポートが決め打ちしてあるがそれを変更する。
# gedit /etc/services

前略
ppsuitemsg      5863/udp                # PlanetPress Suite Messeng
vnc-server      5900/tcp                # VNC Server ← 5900 を 5910位までの好きな番号に、この番号でアクセスすることになる
vnc-server      5900/udp                # VNC Server ← 5900 を 5910位までの好きな番号に、この番号でアクセスすることになる
cm              5910/tcp                # Context Management
後略

vnc-serverで検索するとヒットするのでそのポートを変更するが、UDPも設定しているがこの理由は不明。私の理解ではTCPポートだけでいい筈だが?
xinetd用のVNCの設定。/etc/xinetd.d/vnc-server に

service vnc-server
{
	disable		= no
 	socket_type	= stream
 	wait		= no
 	user		= nobody
 	server		= /usr/bin/Xvnc
 	server_args	= -inetd -query localhost -once -securitytypes=none -geometry 1800x850 -depth 24
 	lon_on_failure	+= USERID
}

と設定し、一様 /usr/bin/Xvnc があるかチェックしておく。なければVNCサーバーがインストールされていない。
次に /etc/gdm/custom.conf に

# GDM configuration storage
[daemon]
	remoteGreeter=/usr/libexec/gdmgreeter
[security]
	AllowRemoteRoot=true
[xdmcp]
	Enable=true
[greeter]
[chooser]
[debug]

xinetdをスタートする
# service xinetd start
# chkconfig xinetd on
ファ イアーウォールの設定。System→Administration→Firewallで開き、左ペインでOther Portsを選び、右ペインで Add をクリック、開いたウィンドウで、VNC用に開けたポート番号 TCP vnc-server を選び、OKをクリック後,
Apply をクリック後、ウィンドウを閉じる。サブホスト側は再起動しておく。

*******************
ここでホスト側にVNCビュアーをインストールするので、ホスト側に移る。

私はyumでインストールできるビュアーより、realvncの方が使いやすいので、http://www.realvnc.com/download/viewer/からか らlinuxのBINARY(32ビット又は64ビット)をダウンロードし、実行フラグを付け、/usr/binにでもvnc-viewer とでもリネームし保存する。これをクリックすると、ウィンドウが開くので、VNC Server: の欄に、サブホストのIP:ポート番号を入力し、connect をクリック。(画像は一部IPアドレスを隠しています)注:port番号は設定しているポート番号の下一桁のみ、5901なら ipアドレス:1 の様に)これでウィンドウが開きログイン画面が出てくる。ウィンドウのサイズは /etc/xinetd.d/vnc-server の -geometry の後で設定が出来る

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

12:サブホストの設定を確かめる

0ここで一度サブホストの設定を確かめる。アプリケーション→システムツール→仮想マシンマネージャーで走らせ、作ったサブホストを選び、開くをクリック、開いたウィンドウで i のアイコンをクリック、(画面0)ローカルタイムを設定したが、何故かUTCになっているので、画面0の様にlocaltimeにし、適用をクリック。

1

 

 

 

 

 

 

 

デフォルトでインストールしたらディスクの種類がIDEになっていたので、効率の良い(とどこかのWEBに書いてあったが)virtioを選び適用をクリック(画面1)

 

 

 

 

2

このままではアンダーバーが入力できないので、画面2の様にjaを選び適用をクリック。

 

 

 

 

3

11:サブホストのインストールでも触れたが、SWAPをアタッチせずにインストールしているので、ここで、SWAPを入れる。画面3の様に”ハードウェアの追加”をクリックし、

 

5
開いた画面4の様に

設定をしていく。私は全てのサブホストの領域はLVMで作っており、このSWAPも画面4の様にLVMであり、管理しているストレージ…..にチェックマークが付いている。また

、このSWAPではないが、領域をサブホスト同士で、共有したい場合があるが、その場合は画像5の様にアタッチした後、その領域を選び、共有可能にチェックマークを付ける。

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

4.太陽電池の考察

実際に取り付けると充電しながらの最大電圧は現時点で(稼動後、約1ヶ月で29Vまで出ていました。この時の電流は3Aです)。又、最大電流は今の所、 3.5Aです。(私の場合南向きの屋根が無く、西向きの切妻屋根に取り付けている関係で、100%は出ません。資料によると東西側に取り付けると80%位 だそうです。3.5Aは70%ですが、太陽の角度もあると思いますので、これ位が妥当かも知れません。)この結果最大で3.5A X 4枚で14Aが最大充電電流になります。設計時点での消費電流は3.5Aでしたので1日あたり3.5X24h=84Aになり、最大充電電流で割ると6時間 になり、電池の効率を80%とすると7.5時間、毎日最大充電電流が必要となります。これは結果論ですが、難しそうです。最大の誤算は計算の時モジュール の電流を5Aで計算し、モジュールの数を4枚としましたが、6枚設置すべきでした。2008年6月に東側に2枚追加し、現在は6枚設置してあります。それでも足りないみたいで、補充電がしょっちゅうONになります。
蛇 足:太陽電池はモジュールだけ買って自分で設置させてくれません。設置のためにシャープでは教育をし、資格のあるものが取り付けるようになっているようで す。(雨漏りや、取り付け強度などの問題があるみたいです、)私の場合、家庭の100Vも太陽電池化しましたので一緒に設置しましたので、設置のコストは 不明ですが、このためだけに設置工事をするとモジュールも入れてかなりの金額になると思われます。私は下記の業者に頼みました。
太陽電池業者:徳屋

カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

3:太陽電池の選択

(青は2009年10月20日追記)太陽電池は24Vのバッテリーを充電するために、電圧が26V位(これが大失敗34V以上にしないとダメ。注参照)がいいので、シャープのNE-132AT(現在は廃品)を4枚(パラレルに)付ける事にしました。(現在は東側に2枚追加し合計6枚)この太陽電池モジュールは1枚で、
公称最大出力動作電圧:26.41V
公称最大出力動作電流:5.00A
公称最大出力:132W の多結晶モジュールです。
シャープにした理由は特にありませんが、シャープが1番実績があるから。
(注:26.1V{ショッ トキーバリヤ ダイオードの電圧降下が0.3V位ある}以上は充電電流が減ってくるので充電効率が悪くなり極端に効率が下がる。5.太陽電池は実際どれ位発電するの?の 重大な発見に書いてあるように直列に繋ぎ太陽電池の1枚あたりの動作電圧を下げると{つまり最大出力動作電圧より下げる}電流が増えるのはこのため。又 34V位の太陽電池はシャープには無い)
写真の左奥がサーバー用パネル。他は家庭用100Vのパネル

カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

11:サブホストのインストール

やっとサブホストをインストールするが、KVMはクローンで簡単にサブホストのコピーが出来るので、各サブホストに最低必要なプログラムを入れた雛形のサブホストを作る。
グラフィックから作った方が簡単なので、アプリケーション→システムツール→仮想マシンマネージャーを走らせる。開いたウインドウのターミナルが光っているようなアイコンで、新しい仮想マシンを作成する。
このマシンはDVDドライブがないので、USBのドライブをつけてもいいが、予め、CentOSの6.5のイメージをダウンロードしておき(拡張子が .iso)そこを指定してインストールを行う。
普通にやっていくと(インストールはググるといっぱい参考になるWEBがあるので参照してね)、どうしても途中 selinux-policy-target-3-7.19-231.el6.noarch の所で止まってしまい、先にいかない、ネットワークをDHCPにしたり、固定にしたり色々やるが同じである。
そ れではと日本語を止め英語でインストールをすると無事終わった。その際、わざとSWAPなしでインストールする。理由はインストール時に指定した領域の中 にさらに領域を作り、ルートとSWAPの二つの領域を作るため、私はこれが嫌で、インストール後SWAPの設定をした。インストールはminimal Desktopにし、General Purpose Desktop と Graphical Administration Tools を入れた。
インストールが終わり再起動するとkernel Panic だー!!! 表示は

Kernel panic - not sycing: Attempted to kill init!
以下省略

これはスタートし、OSが選択され比較的すぐにパニックになっているので、多分ブートに問題がありそう。
まずはサブホストの領域をこのホストにマウントするが、作られた領域は、さらにその中に領域を作っている(イメージファイルを使えるため、そのようになっている見たい)
マウントする方法はここを参照してね.。私は /test1 にマウントした。
/test1/boot/grub/grub.confは

#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-431.el6.x86_64)
	root (hd0,0)
	kernel /boot/vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=500d2a6b-f175-42c6-ad79-6b7ec6d5dd7c
 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto
 KEYBOARDTYPE=pc KEYTABLE=jp106 rd_NO_LVM rd_NO_DM rhgb quiet selinux=0 ← selinux=0を追記
    initrd /boot/initramfs-2.6.32-431.el6.x86_64.img

これでやっとサブホストが稼働したので、初期設定をすまし、再起動。

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

ネットに繋がらなくなった。

設定の続きをやろうとホストを立ち上げると、ネットに繋がらない。network は動いているし、ifconfig で設定をみても固定IPになっているし、br0とeth0 も問題ない。
もしやと思い
# lsmod | grep r81
でネットワークのドライバーを調べてみると r8169 になっていた。
何で、変更されたかは不明、(原因が分かった。OSのアップデート時にドライバーが前に戻された!!)
ともかくダウンロードしてあったドライバーの保存場所にCDし、
# ./autorun.sh
でドライバーをインストールすると無事ネットワークが復活した。
ドライバーのダウンロードとインストールはhttps://www.kinryo.net/?p=1074の下の方にr8168ドライバーをインストールする方法がある。

カテゴリー: Linux運用時のメモ | コメントする