変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

Linux

【CentOS7】XRDP

あるインストーラがX-Windowで動いちゃうのでメンドクサイと思いながら

yum -y groupinstall “KDE Plasma Workspaces”

しました。

でも、調べ物はWindowsでやっているので、2つのキーボードとマウスを使い分けるのが、やはり面倒。

とは云うものの以前にvncやspiceとか使ってみた感じでは…

CentOS側で事前にX-Windowsが動かしておいて
コッソリ覗き見している感じだったから、
事前準備が全て整っている必要があり
起動までが面倒だった。※サーバーを動きっぱなしにするのは必然。

当然、いくつも繋ぎっぱなしにしようとすると、
ポートの割振りが必要だったり、パッケージのSSLの扱いも豆に変わてたりしてて、暫く使わないと、パッケージの自動アップデートで動作が安定せず 右往左往してしまい、 電源入れっぱなしと云うこともあり次第に使わなくなっていた。

でも今では Windowsのリモートディスクトップ からLinuxのX-Windowに繋いでしまうパッケージXRDPが出ていた。これは楽そうだ。

  • いくつでも接続できそう。※数枚なら並行利用可能。
  • コマンドのコピペが楽なキャラクターモードで接続したいなら、ログインの初期設定はキャラクターモードでもOK。
  • CentOS側はxrdpのサービスを常駐させて置くだけいい。
  • yum install xrdp tigervnc-server と3389ポート開放だけ。
    • 色は事前に/etc/xrdp/xrdp.iniのmax_bppを32から24に変えた方がいいらしい。

但し、同じユーザで複数ログインしても、画面コピーになるので無駄。
※でも、やり様はあるのかもしれない。

無論CentOS側の負担は半端ないけどね。(笑

Cleron G3900にはチョット厳しい様だ。

初期設定はUSだけど
・[アプリケーション]⇒[設定]⇒[システム設定]⇒[国・言語]⇒[ロケール]で日本・日本語に変えて再起動。
・IBus-kkcがインスト済みでタスクバーに[JA]か[あ]表示があるハズ。
無ければ [アプリケーション]⇒[設定]⇒ [入力メソッドのセレクター]でIBusを有効にすれば、Windowsキー+スペースでかな漢字変換をON/OFFできる。
・ターミナルは [アプリケーション]⇒[システム] の中。
・画面の解像度は [アプリケーション]⇒[設定]⇒[システム設定]でスクロールバーを下げていくと[ハードウェア]が出てくるので[ディスプレイとモニタ]でDisplay Configurationを選び画面右のスクリーンの絵中の4つの矢印が描かれたアイコンをクリックすると使える解像度から選べる。

ここまで羅列すれば困らないかなぁ~(不慣れスギ

あ、そうそう、Windowsのリモートディスクトップを閉じてもログアウトしないから、ちゃんとログアウトした方がいいかもしれない。うっかりシャットダウンを選ぶと「30秒後にその様」になります。※キャンセル可。



postgresqlでハマる

postgresqlを普通にyumでインストすると9.2.xなので

本家のRPMを追加して11.xをインストしてみた。

すると、phpPgAdminからログインできなくなった。

どうやら、pg_hba.confに

local  all   all   peer

があると、 su – postgres  以外の接続を嫌うご様子。でも・・・

local  template1 postgres trust

を手前に付けておけばOK。※でも非常に不安~

無事ログインできた?
おや?
白い画面?

このバージョンの PostgreSQL はサポートしていません。バージョン 以上にアップグレードしてください。

ドコにあるんだ!と思ったら、5.6は対応しているらしい。
yumは5.1なので、公式からzipをDLし、/usr/share ※/root下はダメだった。に解凍し、URLを繋ぎ直してみると、

Configuration error: Copy conf/config.inc.php-dist to conf/config.inc.php and edit appropriately.

yum じゃないから設定からはじめないとイケナいが、でもコピるだけ。

ログインが許可されませんでした。

フリダシに戻った気がしたが、

$conf[‘extra_login_security’] = false;

を忘れていただけだったと思ったけど甘かった。
何かクリックするとログインに戻されてしまう。
詰めが甘い?
よーくみると・・・左のツリーメニューに

読み込み中のエラーです。 database.php?subject=database=%3A5432%3Aallow&action=tree&database=postgres(200: OK)

ぐぐってみると、PHPのエラーを全て無視させればOKらしい。

結果: 効果無し。

PHPのログからはロクな情報が得られなかったが、
postgresqlのログファイルに親切な見解が書かれていたので
参考にしながら
pg_hba.confを少しづつ修正して得られた正解は・・・

host all all ::1/128 trust

md5にするとダメなのが困りもの。※trust: パスワード無視

local all all peer

ハマった時のためにコレは残しておいた方が良さそう。

他はコメントアウト!!!

結論: やっぱりユーザはちゃんと作った方が良さそう。



【Windows 10】Hyper-VにFedoraをインストしてみる

今回は、Fedoraをインストしてみた。
Hyper-Vの仮想マシンは、第一世代バージョン、メモリは1GB、ネットワークはいつもの「新しい仮想スイッチ」。
CDはダウンロードしたFedora-Workstation-Live-x86_64-28-1.1.isoを指定。
いざ起動。
Anacondaのチェックリストがちょっと流れた後、画面が∑(・∀・) コワレタ !!
そして、それっきり。
(強制的に)停止。
仮想マシンの設定を見直してみると・・・
ハードウェアの追加に「RemoteFX 3Dビデオアダプター」というのがあったので追加してみた。(解像度はHD解像度がリストアップされなかったので、1920x1200は不安があったので、1280 x 1024)
再度、起動。
すると、さっきの∑(・∀・) コワレタ !!画面の後、しばらく待つと・・・
LiveUserをクリックすると、また真っ黒な画面で待たされ・・・
しびれを切らして、右クリックしたら・・・
インスト画面が表示された。
再起動させてみると、
また、インスト画面が・・・
ここは、Hyper-Vからシャットダウンさせた。
再び、起動。
時計の画面・・・
また、しびれを切らして、右クリックしたら・・・
というか「何かキーを押せばよかったらしい」
動作確認のため、Hyper-Vからシャットダウンさせ、起動。
画面に「・・・」だけが出てきた。
画面をキャプチャしようとAlt+PrintScreenを押すと、Anacondaのログが流れ出す。
どうやら、かなり遅いようだ。
ユーザ登録を適当に済ませると・・・再び画面が壊れる(今回は縦筋がいっぱい出る)
Hyper-Vからシャットダウンさせ、起動。
やっと、デスクトップは拝めた。
やはり、何事も慣れが必要な様だ。
 
 
 



【KVM】 公開用の雛形からブログサーバーを作る

公開用からブログサーバーをクローンする

virt-clone -o {公開用} -n {ブログ鯖} -f /var/lib/libvirt/images/{ブログ鯖}.qcow2
qemu-img convert -c -f qcow2 -O qcow2 /var/lib/libvirt/images/{ブログ鯖}{,.compress}.qcow2
rm -f /var/lib/libvirt/images/{ブログ鯖}.qcow2
mv /var/lib/libvirt/images/{ブログ鯖}.compress.qcow2 /var/lib/libvirt/images/{ブログ鯖}.qcow2

tripwireの調整

ホスト名を変えたので調整。

ローカルキーファイルをリネーム。
mv /etc/tripwire/{古いホスト名}-local.key /etc/tripwire/{新しいホスト名}-local.key
新しい環境の環境変数を使って、設定ファイルを再生成
twadmin --print-cfgfile > /etc/tripwire/twcfg.txt
twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
Please enter your site passphrase:
Wrote configuration file: /etc/tripwire/tw.cfg

データベースを作り直す。

tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase:
チェック。
tripwire --check
・・・
===============================================================================
Error Report:
===============================================================================
No Errors
・・・

/etc/tripwireにあるテキストファイルを消す。

rm -rf /etc/tripwire/*.txt
 <h3>Apatchインストール</h3> <pre>
yum -y install httpd php php-mbstring

設定(/etc/httpd/conf/httpd.conf)

色々(省略)

起動、自動実行

systemctl start httpd.service
systemctl enable httpd.service 

Postfixインストール

yum -y install postfix

設定(/etc/postfix/main.cf)

色々(省略)

ログインとメールで同じパスワードを使うので

yum -y install cyrus-sasl
systemctl start saslauthd
systemctl enable saslauthd

Maildir形式のメールボックスを作成

mkdir -p /etc/skel/Maildir/{new,cur,tmp}
chmod -R 700 /etc/skel/Maildir/

起動、自動実行

systemctl restart postfix
systemctl enable postfix

Dovecotインストール

yum -y install dovecot

設定ファイル(/etc/dovecot/conf.d/10-mail.conf)を修正

・・・省略・・・

起動、自動実行

systemctl start dovecot
systemctl enable dovecot

MariaDBインストール

yum -y install mariadb-server

設定ファイル(/etc/my.cnf.d/server.cnf)に追記

[mysqld]
character-set-server = utf8

起動、自動実行

systemctl enable mariadb.service
systemctl start mariadb.service

phpMyAdminインストール

yum -y install phpMyAdmin

設定ファイル(/etc/httpd/conf.d/)を修正

   &amp;lt;IfModule mod_authz_core.c&amp;gt;
     # Apache 2.4
     &amp;lt;RequireAny&amp;gt;
       Require ip 127.0.0.1 ←LANからも見える様にする
       Require ip ::1
     &amp;lt;/RequireAny&amp;gt;
   &amp;lt;/IfModule&amp;gt;

設定ファイル(/etc/phpMyAdmin/config.inc.php)を修正

$cfg['blowfish_secret'] = '' ←空だったら  mkpasswd -l 46 の結果を貼る

※mkpasswd が無かった yum -y install expect でインスト。

wordpressインストール

リポジトリィにあるwordpressは英語版なので日本語の最新版を使う

wget https://ja.wordpress.org/latest-ja.zip
unzip -q latest-ja.zip
mv wordpress /var/www/wordpress

wordpressのデータベース設定ファイル(/root/wordpress.sql)を作る

/* rootのパスワードを設定 */
set password for root@localhost=password('{パスワード}');
/* wordpressのデータベースのユーザを作成。*/
insert into user set user="{ユーザ名}", password=password("{パスワード}"), host="localhost";
/* wordpressのデータベースを作成 */
create database {データベース名};
/* wordpressのデータベースに ユーザに権限を与える */
grant all on {データベース名}.* to {ユーザ名};
/* 最新に更新 */
FLUSH PRIVILEGES;

設定

cd /root
mysql -uroot -Dmysql -p{パスワード} &amp;lt; wordpress.sql

設定ファイル(/var/www/wordpress/wp-config-sample.php)の作成

cd /var/www/wordpress
cp wp-config-sample.php  wp-config.php

設定ファイル(/var/www/wordpress/wp-config-sample.php)の編集

define('DB_NAME', '作成したデータベース名を設定');
define('DB_USER', '作成したユーザ名を設定');
define('DB_PASSWORD', '作成したパスワードを設定');
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

は https://api.wordpress.org/secret-key/1.1/salt/ の結果を順に貼る

define('AUTH_KEY',         '**************');
define('SECURE_AUTH_KEY',  '**************');
define('LOGGED_IN_KEY',    '**************');
define('NONCE_KEY',        '**************');
define('AUTH_SALT',        '**************');
define('SECURE_AUTH_SALT', '**************');
define('LOGGED_IN_SALT',   '**************');
define('NONCE_SALT',       '**************');

設定ファイルの再読み込み

systemctl reload httpd.service

to be continue・・・



【KVM】 CentOS7.2のKVMゲストの雛形から公開用を作る

雛形から公開用のクローンを作る。

virt-clone -o CentOS7_2 -n {公開用} -f /var/lib/libvirt/images/{公開用}.qcow2

割り当て中 ‘{公開用}.qcow2’ | 20 GB 00:05
‘{公開用}’のクローニングに成功しました。

{公開用}は任意のゲスト名を指定する。

/etc/libvirt/qemu/{公開用}.xmlの内容を確認する。

<channel type=’unix’>
<source mode=’bind’ path=’/var/lib/libvirt/qemu/channel/target/domain-CentOS7_2/org.qemu.guest_agent.0’/>

<target type=’virtio’ name=’org.qemu.guest_agent.0’/>
<address type=’virtio-serial’ controller=’0′ bus=’0′ port=’1’/>

上の様にCentOS7_2と雛形の名前のままの場合には、virsh start {公開用}でエラーになるので、

  1. このxmlファイルを/rootにバックアップし、CentOS7_2の部分を{公開用}に変更。
  2. クローンしたゲストの登録を解除
    • virsh undefine {公開用}
  3. クローンしたゲストを再登録
    • virsh define /root/{公開用}.xml

※本当に20GBの仮想ディスクファイルが出来てしまっている場合は圧縮する。

qemu-img convert -c -f qcow2 -O qcow2 /var/lib/libvirt/images/{公開用}{,.compress}.qcow2
rm -f /var/lib/libvirt/images/{公開用}.qcow2
mv /var/lib/libvirt/images/{公開用}.compress.qcow2 /var/lib/libvirt/images/{公開用}.qcow2

ブログサーバーのXMLの設定をファイルシステムにも反映

virt-edit -d {公開用} /etc/sysconfig/network-scripts/ifcfg-eth0

UUID=適当に修正
HWADDR=適当に修正
IPADDR=適当に修正
/etc/libvirt/qemu/{公開用}.xmlを見ながら適当に修正。

virt-edit -d {公開用} /etc/hostname

ホスト名を修正

virt-edit -d {公開用} /etc/sysconfig/network

ホスト名があれば修正
※virt-editが無ければ、yum install libguestfs libguestfs-tools libguestfs-tools-c
※virt-editがviを開くまでは結構長いので気長に待つ。

{公開用}を再起動

virsh start {公開用}

一通りパッケージを入れる。

yum -y groupinstall base "Development tools"

epel インストール

yum -y install epel-release

Tripwireインストール

yum -y install tripwire

Tripwireの設定は http://yokensaka.com/centos/?p=318 を参照。
※とりあえず残っているものを消す

yum remove tripwire
find /* | grep tripwire
rm -rf  見つかったもの全て

インスト開始

yum install tripwire

初期設定

tripwire-setup-keyfiles
・・・
Enter the site keyfile passphrase: ← サイトパスフレーズを設定
Verify the site keyfile passphrase: ← サイトパスフレーズを再度入力
・・・
Enter the local keyfile passphrase: ← ローカルパスフレーズを設定
Verify the local keyfile passphrase: ← ローカルパスフレーズを再度入力
・・・
Enter the site keyfile passphrase: ← サイトパスフレーズを設定
・・・
Enter the site keyfile passphrase: ← サイトパスフレーズを設定

設定ファイル(/etc/tripwire/twcfg.txt)の編集

LOOSEDIRECTORYCHECKING =false

LOOSEDIRECTORYCHECKING =true
REPORTLEVEL            =3

REPORTLEVEL            =4

設定ファイル(/etc/tripwire/twcfg.txt)を暗号化

twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
Please enter your site passphrase: ← サイトパスフレーズを設定
rm -f /etc/tripwire/twcfg.txt

復活の呪文

twadmin --print-cfgfile > /etc/tripwire/twcfg.txt

ポリシーファイルの最適化スクリプト(/etc/tripwire/twpolmake.pl)を作る

省略

ポリシーファイル(/etc/tripwire/twpolmake.pl)を最適化

perl /etc/tripwire/twpolmake.pl /etc/tripwire/twpol.txt > /etc/tripwire/twpol.txt.new

ポリシーファイル(/etc/tripwire/twpolmake.pl)を暗号化

twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt.new
Please enter your site passphrase: ← サイトパスフレーズを入力
rm -f /etc/tripwire/twpol.txt*

復活の呪文

twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt

データベース作成

tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase: ← ローカルパスフレーズを入力

※うまくいかない場合は、ポリシーファイルを復活させ編集し暗号化してもう一度やってみる。
動作確認

tripwire -m c -s -c /etc/tripwire/tw.cfg

クローンで定時動作(/etc/cron.daily/tripwire-check)

#!/bin/sh
# デフォルトの部分をコメントアウト
#HOST_NAME=`uname -n`
#if [ ! -e /var/lib/tripwire/${HOST_NAME}.twd ] ; then
#        echo "****    Error: Tripwire database for ${HOST_NAME} not found.    ****"
#        echo "**** Run "/etc/tripwire/twinstall.sh" and/or "tripwire --init". ****"
#else
#        test -f /etc/tripwire/tw.cfg && /usr/sbin/tripwire --check
#fi
# パスフレーズ設定
LOCALPASS='****' ← ローカルパスフレーズを設定
SITEPASS='****'  ← サイトパスフレーズを設定
cd /etc/tripwire
# Tripwireチェック実行
tripwire -m c -s -c tw.cfg|mail -s "Tripwire(R) Integrity Check Report in `hostname`" root
# ポリシーファイル最新化
twadmin -m p -c tw.cfg -p tw.pol -S site.key > twpol.txt
perl twpolmake.pl twpol.txt > twpol.txt.new
twadmin -m P -c tw.cfg -p tw.pol -S site.key -Q $SITEPASS twpol.txt.new > /dev/null
rm -f twpol.txt* *.bak
# データベース更新
rm -f /usr/local/tripwire/lib/tripwire/*.twd*
tripwire -m i -s -c tw.cfg -P $LOCALPASS

実行属性を付加

chmod 700 /etc/cron.daily/tripwire-check

chkrootkitインストール

wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
mkdir ~/bin
mv chkrootkit-0.50/chkrootkit ~/bin
rm -rf chkrootkit-0.50/ rm -f chkrootkit.tar.gz

※2016/10/30の更新で、chkrootkit.tar.gzやchkrootkit-051.tar.gzは使えない(テキストっぽい)ので、chkrootkit-050.tar.gzをDLかな?
内容を確認

chkrootkit | grep INFECTED

Searching for Suckit rootkit… Warning: /sbin/init INFECTED

原因を確認

rpm -V `rpm -qf /sbin/init`

差分が出なければ誤検知なので、
/root/chkrootのINFECTEDの部分から/sbin/initを除外する

echo "Warning: ${ROOTDIR}sbin/init INFECTED"

    if ! rpm -V `rpm -qf /sbin/init` > /dev/null 2>&1
    then
      echo "Warning: ${ROOTDIR}sbin/init INFECTED"
    fi

に変更
コマンドをバックアップ

mkdir chkrootkitcmd
cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed ssh uname` chkrootkitcmd/
chkrootkit -p /root/chkrootkitcmd|grep INFECTED
zip -r chkrootkitcmd.zip chkrootkitcmd/

Clam AntiVirusインストール

http://impov.hatenablog.com/entry/2016/08/22/002350を参考にする様にする

yum -y install clamav clamav-scanner-systemd clamav-update

設定ファイル(/etc/clamd.d/scan.conf)を編集

# Comment or remove the line below.
# Example ←コメントアウトする
# 以下はお好みで、該当部分を探しコメントを外して有効化
LogFile /var/log/clamd.scan
LogFileMaxSize 2M
LogRotate yes
# ローカルソケットの設定を探しコメントを外して有効化
LocalSocket /var/run/clamd.scan/clamd.sock
# ユーザーをコメントアウトして root で動作させる
#User clamscan
# スキャンしないディレクトリを設定しておく(必要に応じて適宜ディレクトリ追加)
# Don't scan files and directories matching regex
# This directive can be used multiple times
# Default: scan all
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/home/share/
ln -s /etc/clamd.d/scan.conf /etc/clamd.conf

データベース更新用の設定ファイル(/etc/freshclam.conf)を編集

# Comment or remove the line below.
# Example ←コメントアウト
# 以下はお好みで、該当部分を探しコメントを外して有効化
UpdateLogFile /var/log/freshclam.log
LogFileMaxSize 2M
LogRotate yes

データベース更新用の設定ファイル(/etc/sysconfig/freshclam)を編集

# FRESHCLAM_DELAY=disabled-warn # REMOVE ME 最終行をコメントアウト

実行、自動実行

systemctl start clamd@scan
systemctl enable clamd@scan

データベース更新

freshclam

NTPサーバーインストール

インストしていない場合のみ

yum -y install chrony
vi /etc/chronyd.conf
#server 0.centos.pool.ntp.org iburst ←コメントアウト
#server 1.centos.pool.ntp.org iburst ←コメントアウト
#server 2.centos.pool.ntp.org iburst ←コメントアウト
#server 3.centos.pool.ntp.org iburst ←コメントアウト
server ntp1.jst.mfeed.ad.jp  ←追加
server ntp2.jst.mfeed.ad.jp  ←追加
server ntp3.jst.mfeed.ad.jp  ←追加
systemctl restart chronyd
systemctl enable chronyd

ps.2016.10.31  Syntax Highlighter と エディタが相性が悪く、ソース部分の文字化けが酷いので手修正。一部間違っているかもしれない。



【KVM】 CentOS7.2.1511 のKVMゲストの雛形作成

※7.1ではキックスタートファイルを使わないとうまくいかない。

【KVM】キックスタートを使ったCentOS7.1のゲストのインストール

 
今のゲスト・イメージで作ったブログ・サーバーが不調気味。
https://www.centos.org/download/ からミラーのファイル名を見ると、
日付は10(or 14)-Dec-2015 去年の12月。
ファイル名は CentOS-7-x86_64-******-1511.iso  と 7.2になっていたので、またKVMゲストを作ろうかな。
※すぐに7.3が出そうな悪寒がするけどキニシナイ。
ISOイメージをダウンロードしようとしたら2~5時間ぐらいかかるみたいなので、ISOファイルを使わずにALLネットインスト。
でもミラーサーバーの旧バージョンにはREADMEしか見当たらなかったので一応ISOイメージをDLしておいた方がよさそう。
1./rootにキックスタートファイル(centos7_2.ks.cfg)を作る。
※中身は7.1の時に使ったファイルを修正(/7/⇒/7.2.1511/)。
※–hostnameのドメイン付のホスト名は何かに変えておくこと。後でも変えれるけどね。
※管理者のユーザIDは何かに変えておくこと。後で変えられない。

#参考 url
#http://ngyuki.hatenablog.com/entry/2013/10/16/233656
#http://qiita.com/ngyuki/items/fd469fec1cea873de0bf
#version=RHEL7
install
text
cmdline
skipx
#とりあえず画面もキーボードも日本語で設定。
lang ja_JP.UTF-8
keyboard jp106
timezone Asia/Tokyo --isUtc --nontp
#--noipv6は好み次第、Win10では青い画面の原因。
network --hostname=ドメイン付のホスト名 --onboot yes --device eth0 --bootproto dhcp --noipv6
zerombr
bootloader --location=mbr
#ラフなパーテーション設定なので要確認
clearpart --all --initlabel --drives=vda
part /boot --fstype=xfs --size=500 --asprimary
part swap --size=1024
part / --fstype=xfs --size=1 --grow --asprimary
#仮のパスワードはpassword。
rootpw password
user --name=管理者のユーザID --password=password
auth --enableshadow --passalgo=sha512
#邪魔なものは全て外しておきますので、適宜調整してください。
selinux --disabled
firewall --disabled
firstboot --disabled
reboot
#
repo --name="CentOS" --baseurl=http://ftp.riken.jp/Linux/centos/7.2.1511/os/x86_64/
#以下は最小限程度です。必要なパッケージは適宜追加してください
%packages
@base
@core
%end

2./rootにKVMクライアントのインストールファイル(create_kvm_centos7_2_guest.sh)を作る。
※中身は7.1の時に使ったファイルを修正(/7/7⇒/7.2.1511/、CentOS7_1⇒CentOS7_2、centos7.ks.cfg ⇒centos7_2.ks.cfg )。
※KVMホスト側でネットワークブリッジを設定していない場合は–network network=default にする。でも後で変えるのはとても大変。

#ネットワークインストールするリポジトリURL指定
REPOS=http://ftp.riken.jp/Linux/centos/7.2.1511/os/x86_64/
#KVM上での名前(CentOS7_2)を指定
 IMAGE_NAME=CentOS7_2
 IMG_PATH=/var/lib/libvirt/images
#virt-installでインストールする ※ディスクサイズは20GBになっています。
 virt-install \
 --name ${IMAGE_NAME} \
 --ram 1024 \
 --disk path=${IMG_PATH}/${IMAGE_NAME}.qcow2,size=20,format=qcow2 \
 --vcpus=1 \
 --hvm \
 --os-type linux \
 --os-variant=rhel7 \
 --nographics \
 --location="${REPOS}" \
 --cpu host-passthrough,+lahf_lm \
 --network bridge=br0 \
 --initrd-inject=/root/centos7_2.ks.cfg \
 --extra-args='inst.ks=file:/centos7_2.ks.cfg console=ttyS0'

3.sh ./create_kvm_centos7_2_guest.sh でインスト開始。
4.暫く待つ。(数十分)
※OSImeage作成後のリブート時にdracut-initqueue・・・が時々でてきて延々と待たされることがある。(今までの最大待ち時間39分
原因:DHCPサーバーがなかなかIPアドレスを割り振ってくれない。
5.(・_・)フツウにrootでログイン。パスワードはキックスタートファイルに書いてある様にあくまでも仮。
6.ip a  でIPアドレスを調べる。
7.一旦poweroffし、KVMホストから virsh start CentOS7_2で再起動。
8.試しにTeraTermで先のIPアドレスに接続してみる。失敗した場合は、KVMホストから virsh console CentOS7_2で接続。
※初回の接続までかなり時間がかかるらしい。
9.とりあえずパッケージを更新

yum -y update

10.自動更新設定

yum -y install yum-cron
vi /etc/yum/yum-cron.conf
apply_updates = yes
systemctl start yum-cron
systemctl enable yum-cron

11.ホスト停止時にゲストを停止できる

yum -y install acpid
systemctl start acpid
systemctl enable acpid

10.他の設定の確認

getenforce

Disabled
12.KVMゲストを終了

poweroff

ls -h /var/lib/libvirt/images/CentOS7_2.qcow2 でみると20GBもある・・・
中身は圧縮形式だけどね。
13.qcow2形式ファイルを圧縮

qemu-img convert -c -f qcow2 -O qcow2 /var/lib/libvirt/images/CentOS7_2{,.compress}.qcow2

※とても長い

rm -f /var/lib/libvirt/images/CentOS7_2.qcow2
mv /var/lib/libvirt/images/CentOS7_2.compress.qcow2  /var/lib/libvirt/images/CentOS7_2.qcow2


【CentOS7】 Clam AntiVirus

Clam AntiVirusのアップデートが不調で、
いつも参考にしている
https://centossrv.com/clamav-centos7.shtml
の通りに再インストしてみると
systemctl enable clamd.scan
で失敗する。
systemctl list-unit-files| grep clamd で調べると
clamd@.scan しか見当たらない。原因も全く判らないので、
yum list clamav* で@rpmforgeのものは全てアンスコ。

rm /etc/cron.daily/virusscan

も必須。

普通のリポジトリィのclamavのDBの更新は /etc/cron.daily/freshclam。
epelリポジトリィのclamavのDBの更新は /etc/cron.d/clamav-update。
と違うのでゴミが残っていたら消す。
rpmforgeのclamavはどうも不調なのでepelのclamavを使ってみた。
http://www.server-memo.net/server-setting/clamav/epel-clamav-install.html#clamdscan
を参考にさせていただいた。

epelの方はパッケージが細かく分かれているらしくインストコマンドも長い。
yum install –enablerepo=epel clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
ただ、そのままでは
1.設定を見直してメールがやってきた。

WARNING: update of clamav database is disabled; please see
‘/etc/sysconfig/freshclam’
for information how to enable the periodic update resp. how to turn
off this message.

確かに

### !!!!! REMOVE ME !!!!!!
### REMOVE ME: By default, the freshclam update is disabled to avoid
### REMOVE ME: network access without prior activation
FRESHCLAM_DELAY=disabled-warn # REMOVE ME

のままではまずいので

#FRESHCLAM_DELAY=disabled-warn # REMOVE ME

に修正。
※いつものページの方にはこの修正が載っていた。
2.ウイルススキャン定期実行のスクリプトで

yum -y update $CLAMUPDATE

の部分を

yum –enablerepo=epel -y update $CLAMUPDATE

に変えた。
この辺はepelリポジトリィのインスト方法で多少違うのかもしれない。

rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/e/epel-release-7-8.noarch.rpm

yum -y install epel-release
のドッチだったろうか?

yum install epel-release
のハズなんだけどな???
# vi epel.repo
で[epel]のenabled=1 は enabled=0 にしているせいもあって、updateの時も–enablerepo=epelが必須になっている。
あと赤字部分を追加した。
CLAMUPDATE=”clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd”
とりあえずチェック後にメールも

/: OK

———– SCAN SUMMARY ———–
Infected files: 0
Time: 634.616 sec (10 m 34 s)

と帰ってくる。
不思議なことに何度もテストしてるのに毎日ウイルスチェックの時間にやって来る【[Jetpack モニター] サイト ssiscirine.perma.jp がダウンしていたようです。】のメールが来ない。
しかし、自動のyum updateでまた出てきた。
ま、来ないのは良い知らせだ。

ClamAV update が
ERROR: Can't open/parse the config file /etc/clamd.d/.scan.conf
を返す。
全く意味不明だが
ln -s /etc/clamd.d/scan.conf /etc/clamd.d/.scan.conf
するしかないようだ。
/usr/share/clamav/freshclam-sleepは
ERROR: Can't open /var/lib/clamav/mirrors.dat for writing
を返す。
これは、rootでfreshclamを実行したせいだけどオーナを気にしすぎだ。
しかもデフォルトのclamupdateではログインできないからchownで書き換えないといけない。
でも一度書き換えたらrootでfreshclamを何度実行してもオーナーは書き換わらない。

/etc/clamd.d/scan.confと同じように
/etc/freshclam.confにも
DatabaseOwner root
を設定。
もうリポジトリィの中身がぶっ壊れているようだ。
※随分前からrpmForgeは更新をやめていたらしい。ミラーサイトが頑張ってUPDATEを入れていたようだ。
やはり、最近のUPDATEが多すぎるせいなのだろう。
systemctl list-unit-files | grep clamd で調べると

clamd@.service                              static
clamd@scan.service                          enabled
clamd@.serviceは消したいけど、ドコで作成されたのかは不明なので仕方が無い。
これからは

systemctl start/stop/enable/disable/status clamd@scan
で設定しなければ・・・
なんとなくメンドクサイ。
しかしこれがUNIX系のOSなのだ。
全然違うように見えるAndroidもMacOSもベースは似たようなものなのだ。
でも、よーく考えると、とても無駄なことをやっている訳だ。
Windows並みに
もう1度VMから作り直した方がいいのかもしれない。
ps.
Logwatchの名義でclam-updateのメールが飛んできた
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamd.scan/clamd.sock: Permission denied
とメールが飛んできた。
前にこのファイルを消してOKだと思ってたんだけど、パーミッションが戻ってしまうらしい。
chown clamupdate:clamupdate /var/run/clamd.scan/clamd.sock
の様になるようにWinSCP(ver.5.9.2)でclamupdateを2度打つとclamupdateなんて知らないと番号を求めてきた。
しかし、WinSCPでファイルのOwnerがclamscanと表示。
/etc/passwordを見ると
中身が腐っていやがる( ^ω^)・・・
否、腐りかけていた。
systemd-network、clamupdate、clamscanで、ユーザIDとグループIDの違いがあるが、互いに同じIDを使いまわしていた。
これでWinSCPが変なオーナーの名前を探し当てたようだ。
否、ちょっとIDと打ち間違えたせいかもしれない。でも、IDだけ入力したんだから・・・(大笑
でも何度かIDを直接設定しているうちに正常になった。
多分、これでいいのだろう。


【KVM】 久しぶりにリモートからのvirt-installしてみたら・・・

久々にCentOS7.0のゲストOSを新たに作ろうとしたら・・・
アレ?インスト画面が出ない!
コンソールからやってもブートログが出るだけ!
インストーラーがGUIしか考えていないものになったのか?
https://virt-manager.org/download/ の
virt-viewer 2.0 (gpg) Monday Jan 12th, 2015 Win x86 MSI (gpg) Win x64 MSI (gpg)
をクリックしてSPICEのviewer(クライアント)をダウンロード。
しかしインストーラーを起動すると、ファイルコピーをするだけ。
どこだ!Windows10だけに(爆
C:\Users\${ユーザー名}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
を見るとVirtViewerが出来ていた。中のRemote viewerをクリックすると接続設定画面が出てくる。
CentOSゲストをインストールするファイルのvirt-installのパラメータの

--nographics \

    --accelerate \
    --graphics spice,listen=0.0.0.0 --channel spicevmc \
    --video qxl \

に変えてインストール。
virsh dumpxml CentOS7.0 | grep spice で
<graphics type=’spice’ port=’5900‘ autoport=’yes’ listen=’0.0.0.0′>
と出たのでポートを開ける。
firewall-cmd –zone=public –permanent –add-port=5900/tcp
systemctl restart firewalld
ここでRemote viewerからspice://192.168.*.*:5900 で繋ぐと、・・・手遅れだった。
今度はRemote viewerを設定してから再インスト。
ブートログは順調に流れたが・・・
リモートやコンソールから接続と同様に
[  OK  ] Reached target Basic System
からGUIに切り替わらない!
Windows10のインストで使った-cpuオプションのh,+lahf_lmも
./create_kvm_centos7_guest.sh: 行 22: h,+lahf_lm: コマンドが見つかりません
の始末。※ 途中の行末に\ が抜けていたのが原因だった。
世の中、何か変わってる。
to be continue…
ps.
旧バージョンも試してみた。
http://www.spice-space.org/download.html から
spice-client-win32-0.6.3.zip と wspice-x86_20110308.zip をDLし
wspice-x86_20110308.zipを展開したLIBフォルダに
spice-client-win32-0.6.3.zipの中身をコピーしないといけないっぽい。
しかしwspice-x86_20110308.zipが壊れているっぽく解凍できない。
HDDを検索したら前にDLしたwspice-x86_08032011.zipが残っていたのでこれを使うことにする。
しかし、やはりダメ。
yum -y install spice-server
パッケージ spice-server-0.12.4-9.el7_1.3.x86_64 はインストール済みか最新バージョンです
何もしません
spice-clientで矢印やFきーを押すと見慣れた起動中バーが表示される
横にはCentOS Linux 7 (Core) dracut-033-240.el7 (Initramfs)と書いてある。
ぐぐってみると

Issue while creating a CentsOS 7 KVM Guest

を見るといいらしいのだが・・・
とりあえず起動ログを見ると、何か失敗したらしい
journalctl コマンドで
vda: failed to get path uid
とか
dhcp failed
の文字が見える。
testモードで起動すると、HDDが無いやん!となるのは知っているので、そうなってしまったらしい。
先のURLの記事を見ると、まさにその通りになっていた。
どうやらキックスタートファイルを作らないとダメになったようだ。
もう設定はグチャグチャだ。
 
 
 
 



【ハック】裏と表

ハックとは常識的な枠を越えて活用を見出してしまうこと。
外部jsを使わず自力でsjisコード変換してcsvファイルをダウンロードする。

【間違った実装方法】 Windows Form(C#)のPictureBoxのカスタムコントロールにスクロールバーを付ける
も「普通の人はやらないコト」なので
一種のハックみたいなものだが、
SQLインジェクションのような「普通の人が作りこんでしまった脆弱性」を見つけてしまうのもハックなので
ハックして見つけた内容を日記(Blog)に書く時には公開しても大丈夫なのかな?
ということは一応考えないといけない。



[CentOS] logwatch

1日1回ログの内容をザクっと報告するツール

# yum install logwatch

でインスト。
/usr/share/logwatch/default.conf/logwatch.conf に設定ファイルがあるのでMailTo=rootの部分を適宜に修正して使う。
–printオプションは無く、/etc/cron.daily/0logwatch にクローン設定が作られるので、その通りに

# logwatch --output mail

すると Range = yesterday 分がメール送信される。

403 Forbidden
       /wp-login.php?action=register: 8 Time(s)
       /phpMyAdmin/scripts/setup.php: 1 Time(s)

の他に
/wp-content/uploads/2015/09/c5a222a3306853 … d7681467f0.xlsm: 1 Time(s)
も混ざっている。ごく僅かな間だったのに拾っていくロボットがあるらしい。
また既に無くなって久しいモノを探しているトコロもある。

       /ig_gadgets/20100404m.png: 1 Time(s)
       /lineageIIDaiary/05/10/05_10.html: 1 Time(s) ※読んでみると真っ黒な日記だった。
       /oldBlog/201001.html: 1 Time(s)

のあたりになると何の記事か思い出せないのでバックアップのtar.gzを漁ってみると確かにあった。
ig_gadgetsはi-googleのガシェット用。lineageIIDaiaryは1行プレイ日記。oldBlogはOCNブログ(サービス終了)のバックアップ。
さらに
Detail = High に設定を変えるとより多くの情報が得られる

A total of 7 ROBOTS were logged
    Mozilla/5.0 (compatible; Yahoo! Slurp; http://****) 1 Time(s)
    Mozilla/5.0 (compatible; Googlebot/2.1; +http://****) 2 Time(s)
    Mozilla/5.0 (compatible; Steeler/3.5; http://****/) 1 Time(s)
    ia_archiver 2 Time(s)
    Mozilla/5.0 (Windows NT 6.1) (compatible; SMTBot/1.0; +http://****) 1 Time(s)
    Mozilla/5.0 (compatible; DotBot/1.1; http://***, ***@***) 10 Time(s)
    Mozilla/5.0 (compatible; bingbot/2.0; +http://****) 11 Time(s)
但し処理時間も長くなる。



top