2010年12月31日金曜日

CentOS 不要サービスの停止

Cです。

OSインストール後の最初の作業として「不要サビースの停止作業」をするよね?

この作業の理由を、いまさらだけど言っとこう。

  理由1:不要なサービスを動作させていると、サーバーのリソースを無駄に消費する。
  理由2:動作していると、そのサービスの脆弱性を突いた攻撃の対象となる。

以上の理由からこの作業はする必要があるんだ。

もう、CentOSとかインストール後に一杯動かしてくれてありがとう。
せっかく自動起動にしてくれてるけど、ほとんど停止させちゃう。

CentOS5.5を対象にしたクリーンインストール後(余計なパッケージをインストールしない)
どんだけ動いてるかみてみよう。

#ls -la /etc/rc3.d/

なぜchkconfig --listにしないかって?
それは、ベンダーニュートラル精神の賜物。

確かに、chkconfigはとても便利で私も実際の運用では使用する。
だが、デフォルトで使えるのはRedHat系OSのみ。

chkconfigがやってくれているのは/etc/rc*.d/にあるファイルのリネーム作業で、
いわゆる便利ツールでしかないのだよ。
ベンダーに囲われないベンダーニュートラルな技術を身につけていく必要がある。

さてどうでもいいことはほっといて、作業しよう。


Sが自動起動設定になってるやつで、Kが自動的に起動しない設定になっている。
chkconfig --list と見比べてくれたら解りやすいと思う。

モチロン手動でこのファイルの頭文字をSからKに変えたらchkconfigの結果も反映されるからね。

今回停止するサービスは

ip6tables     --------   IPv6用のファイアウォール
mcstrans  --------   ごめんなさい、いつかONにできる日を夢見て(SElinux トランスレーション)
restorecond ------    ごめんなさい、いつかONにできる日を夢見て(SElinux ラベリング)
netfs     -------    /etc/fstab にNFSとかsambaをマウントするように書いている場合に必要
messagebus -------    D-BUSのデーモン
haldaemon  -------     ハードウェア抽象化レイヤ(プラグアンドプレイ)、今回は無効にしてみよう。
rawdevices  ------     カーネル内部のページキャッシュを使わないIO処理をしてくれる。
            (oracleとかバッファ管理をしてるアプリケーションなどで2重バッファを防ぐときに使う)

こんだけ停止させてみるか。(各サービスが何かは各自調べてくれ、そして私に教えてくれ)

さてココからが本題だ。

chkconfig とかリネームでじゃかじゃかやっていってもいいんだけど、
サーバ構築のたびにやる作業になると思うので、
効率化を図る為にシェルスクリプトを用意しよう。

※シェルスクリプトを実行する前に!!
 今回SELinux関係のサービスを2つ無効にするので、
 シェルスクリプトを動かす前に、SELinuxを無効にしてくれ!
  -> SELinux無効化方法

#!/bin/bash
services=(`ls -1 /etc/init.d/`)

stop_services=("ip6tables" "mcstrans" "restorecond" "netfs" "messagebus" "haldaemon" "rawdevices")

for stop_service in "${stop_services[@]}"
 do
 for service in ${services[@]}
 do
    if [ $service = $stop_service ]; then
       service $stop_service stop
       chkconfig --level 2345 $stop_service off
    fi
 done
  done

for stop_service in "${stop_services[@]}"
 do
    chkconfig --list $stop_service
 done 2>service_stop_error
exit 0

シンプルなシェルスクリプト。
 1、サービス名を/etc/init.d/からとってくる
 2、停止するサービスを指定する。
 3、指定されたサービスを順に停止する
 4、結果をchkconfig --listで表示する
 5、エラーが合った場合はエラー出力ファイルに出力する

これを動かしてやってサービスストップしまくろう。
実行権限700つけてやるの忘れずにね。

2010年12月30日木曜日

iscsi ターゲットの構築

Cです。

今日はIP-SAN!

CentOS5.5でiscsiストレージサーバを構築する。
パッケージとかは一切選ばずに、デフォルトで選択しているのも全部はずそう。
Ethernetインターフェイスは無効にしとこう。

パーティション割合は、今回はsystemvgとdatavgの2つに論理パーティションを分ける。
systemvgには通常のファイルツリーを入れdatavgはストレージとして外部サーバに提供するパーティションとする。

インストールが終了したら、不要サービス停止をしよう。 → 不要サービス停止

ここからがようやくiSCSIの領域。

scsi-targetのインストール
#yum install scsi-target-utils

tgtdの起動と自動起動設定
#/etc/init.d/tgtd start
#chkconfig tgtd on | chkconfig --list | grep tgtd

iscsiターゲットの作成
ホストアダプタ(ターゲット)を作る LUN0(コントローラ)を作る
#tgtadm --lld iscsi --op new --mode target --tid 1 --targetname iqn.2011-01.storage01:testdevs

実際の公開デバイスを登録する (/dev/sdb1 を LUN1として設定)
#tgtadm -lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /dev/sdb1

ACL設定(どのホストから参照させるか)
#tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address 192.168.1.0/24

設定確認
#tgtadm --lld iscsi --mode target --op show

あと忘れずにFWの設定をしよう、
tgtdは「tcp:3260」を使っているのでiptableで開いてあげよう。

これで取り合えずターゲットの設定は出来ている。

別ホストから参照させてみよう。

scsi-initiatorのインストール
#yum install iscsi-initiator-utils

iscsiの起動と自動起動設定
#/etc/init.d/iscsi start
#chkconfig iscsi on | chkconfig --list | grep iscsi

ターゲットLUNを検索する(ip address は読み替えて)
#iscsiadm --mode discovery --type sendtargets --portal 192.168.1.150:3260,1 iqn.2011-01.storage01.testdev

LUNに接続
# iscsiadm --mode node --targetname iqn.2011-01.storage01.testdevs --login

デバイスを認識したか確認
# iscsiadm -m session
# cat /proc/partitions
# fdisk -l

以上でターゲットをイニシエータから利用できる状態なんだけど、
この状態でターゲットを再起動すると設定が全て消えます!
実際に使う場合には恒久的に設定しよう。

次回はターゲットの恒久設定、おたのしみに。

SELinux無効化方法

こんばんは、Cです。

SELinux無効化方法をメモしとく。

SELinuxはとても素晴らしい、
ドメインと呼ばれるセキュリティ権限範囲をファイルに割り当ててやることによって、
たとえば、apacheはapacheに関係するファイルにしかアクセスできないように設定してやることができるんだ。たとえrootであってもapacheと同じセキュリティドメインじゃない場合設定変更もできないようにできる。

だけど使いこなせないエンジニアが多すぎて厄介者扱いされている、かわいそうな奴。
絶対にいつか君を使いこなしてあげるからね。

今まさに停止するには
#echo 0 > /selinux/enforce

再起動後も停止するには
#vi /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled     <--こうする disable じゃなくて disabled だからね
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection. SELINUXTYPE=targeted

2010年12月11日土曜日

基礎練習メニュー

自分の今の基礎練習のメニュー。

ウインドシンセ  :  半音階1oct ロングトーン    ( 安定したヴェロシティで出力する練習) 10分
           Cスケール  (Cスケールを指と感覚に定着させる)  ♪で  bpm = 80 ~ 15分
           Fスケール  (Fスケールを指と感覚に定着させる)  ♪で  bpm = 80 ~ 15分
           Gスケール  (Gスケールを指と感覚に定着させる)  ♪で  bpm = 80 ~ 15分
           Amスケール  (Cスケールを指と感覚に定着させる)  ♪で  bpm = 80 ~ 15分

全部で1時間10分の練習時間だ、
なぜこのキーのスケールだけかというと、ほんとは全部やったほうがいいんだけど
時間もないし、この4つのスケールをマスターするとある程度の曲が演奏できてしまう不思議。

キーボード : ピコエルン 15分
         曲練習  30分

キーボードはプレイヤーレベルになりたいわけではなく、トラックメイキング作業速度を上げる為に
鍵盤と友達になろうということ。