Googleカレンダーの埋め込み用HTMLの取得方法

googleカレンダーを利用しておられる方は多いと思います。
そして、複数のカレンダー(カテゴリー分けして)を使い分けられている方がほとんどだと思います。
それらをあるサイトのページに、一括表示させる際の埋め込み用コードの取得方法が、少し解りにくいので、ちょっとメモしておきます。

まずはGoogleにログインして「カレンダー」を表示させます。
0000

すると左端のメニューに各種カレンダーが表示されます。
0001

ここで「マイカレンダー」の設定に行ってしまいがちですが、各種カレンダーのうちどれでもよいので一つ選んで、「カレンダー設定」の画面に進みます。
そして、画面中央にあるリンク「色やサイズなどをカスタマイズします」をクリックします。
0002


そうして表示される画面の左端下に表示される「表示されるカレンダー」を選択します。
その他表示したい項目も左端のメニューから選択可能です。
0003

そうして選択したのち、画面上部にある「HTML」を更新するをクリックし、その後表示されるコードをコピーして貼り付ければOKです。

この情報は2016年05月06日時点のものです。
それ以降はGoogleの方針により、画面展開や設定方法が変わる可能性がありますのでご注意ください。


DDos (DNS) named

2014年の終わり頃から、当方管理のDNSにDDoSが来襲。

当初は、IPを偽造して特定のサイトに大量のクエリを投げる踏み台にするように仕掛けてたいような感じ。
幸いにして踏み台にはなっていなかったが、それをさせるようなDNSの設定になっていたのは事実。
これはnamed.confの設定が甘かった(?)当方のミスだ。
すぐに修正して、自らが管理するドメイン以外のクエリー(応答要求)は無視するように修正。
これで取り敢えずは、攻撃は回避。(のハズだった。)
しかし、トラフィックの嵐は止まず。
且つ、送り元IPアドレスは多数で、踏み台にするのが目的ではないようだ。
調べてみると、クエリを10~30回送付したら、ポート番号も変えている。
これは単純なIPフィルタでは受付許否が出来ないようにしているのかも知れない。
途中、何度か一斉に攻撃が停止したり、再開したり。
う~ん、厄介なヤツじゃ。

踏み台として使うわけでもないし、DDoSでサイトを麻痺させた所でなんの利益もないのに。
全く意味不明。

DDoSは、要は攻撃側のリソースが被害者・防御側のリソースを奪う攻撃で、被害者・防御側のリソースが攻撃側のリソースに対し圧倒的に勝っている場合はDDoSの役目を果たさないわけですが、、、。

こちらのネットワークおよびサーバ回りは、今回程度の攻撃に対しては十分な回線容量とサーバ能力があるので、深刻な問題は発生していない。
(と、言ってもギリギリで一部のお客様には大変なご迷惑をおかけしました。)
その一部のお客様からの苦情を元にトレースしていたら、DDoSを見つけた、というものでした。
DDoSの形式をとってはいるが、DDoSの踏み台としても、ターゲットとしていても、殆ど効果がありません。
ホント、何をしたいのか謎です。
そうは言っても、対処はしなければなりません。
ネットで情報を集めて以下のように対処しました。

対策

サーバへの通信に対してはiptablesで防ぐ方法を取るのがまずは一番でしょう。
特に、DDoS攻撃にはhashlimitを使うのが定番のようです。

結論から言えば、以下のようなコマンドラインを打ちます。

# iptables -I INPUT -p udp –dport 53 -i eth0 -j DROP
# iptables -I INPUT -p udp -m state –state NEW –dport 53 -i eth0 -m hashlimit –hashlimit-burst 5 –hashlimit 1/m –hashlimit-mode srcip –hashlimit-htable-expire 120000 –hashlimit-name named-limit -j ACCEPT

これに関する解説は、以下の通り。

最初のiptables

  • -I INPUT 入力にフィルタリングする
  • -p udp プロトコルはUDP
  • –dport 53 送り先ポート53(domain)
  • -i eth0 インタフェースはeth0
  • -j DROP すべて落とす

2行目のiptables

  • -I INPUT
  • -p udp
  • -m state ステートモジュールを使う
  • –state NEW
  • –dport 53
  • -i eth0
  • -m hashlimit ハッシュリミットモジュールを使う
  • –hashlimit-burst 5 (規定時間)5パケットが来たらリミットを効かせる
  • –hashlimit 1/m リミット時、60秒に1パケットを上限
  • –hashlimit-mode srcip ソースIPで状態を区別する
  • –hashlimit-htable-expire 120000 リミットを決める規定時間
  • –hashlimit-name named-limit hashlimitで区別に使う名前
  • -j ACCEPT

ハッシュリミット(hashlimit)の機能は、規定時間内にどれだけのパケットを受理するかというものだ。これで通常のDNSへのアクセス頻度であるホストからのクエリ(パケット)は問題なく返し、通常とはいえないレベルのアクセス頻度であるホストからのクエリ(パケット)は、一定時間抑制することになる。

–hashlimit-htable-expire は、その時間を設定する。単位はミリ秒である。上の例だと12000ミリ秒=120秒=2分を設定している。この2分という時間が一定の区切りとなる規定時間(クォンタム)になる。

この2分間に同一のIPアドレス(同じホスト)から5パケット以上到着したら(DNSへのクエリが5回以上されたら)制限をかけ、その後は毎分1パケットのみ通過させ、あとは捨てるというということになる。2分が過ぎると、パケットのカウントは破棄され、また同じ繰り返しをする。

 

これで、namedへの負荷は徐々に減っていく事を期待するわけですが、上記の対処でサーバーに届くパケットを減らす事はできません。
相手に「無駄な事は止めよう」と思わせるしかないのです。
(T_T)
しかし、/var/log/messages への書き込み量は激減しています。

で、大事なのが上記のコマンドラインを
/etc/sysconfig/iptables
に反映させる事。
そのままでは、マシンを再起動させるなどした場合きれいさっぱり消えてしまいます。
まずは、現在のiptables の設定を保存しておきましょう。
# iptables-save > /etc/sysconfig/iptables_sav001
# iptables-save > /etc/sysconfig/iptables

と、いう事で、皆さんGood Luck!


クローズドなサイト内のコンテンツへのアクセス禁止

***例によって、備忘録***

sorry

 

ワードプレスなどでは、.htaccess内で以下の記述が無いと、画像、PDF、その他直リンクを許してしまう。
会員制サイト用のプラグインを用いていても、完全には防げない。

基本的にプラグインでは対処出来ない。
理由はファイル(画像、PDF、その他)が存在するから。
ファイルが存在しない場合や固定ページ・投稿ページ・他はWordpressの/index.phpに処理が渡るが、画像ファイルが存在する場合はWordpressに処理を渡さずに画像、PDF、その他を表示して終わってしまう。
つまり、ワードプレスが管理するページは問題無いが、画像、PDF、その他のファイルを、直接URL指定されてアクセスされるとお手上げなのである。

従って、Apache側で動く.htaccessを使う。

◇直リンクを禁止する5行のコード

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.○○○.jp/ [NC]
RewriteRule ^(.*)\.(jpg|png)$ http://www.○○○.jp/○△◇/ [R=301,L]

◇解説

RewriteEngine On
RewriteEngine をOnにします。

RewriteBase /
リライトベースを設定します。このスラッシュだけの場合http://www.○○○.jp/下となります。

RewriteCond %{HTTP_REFERER} !^$
リファラーが無い場合はアクセスを許可します。
上にある様に、リファラー無しの場合も拒否したければこの行は消します。

RewriteCond %{HTTP_REFERER} !^http://www.○○○.jp/ [NC]
URLにhttp://www.○○○.jp/を含むページから参照された場合は表示を許可します。
後ろのNCは大文字小文字を区別せず判別します。

RewriteRule ^(.*)\.(jpg|png)$ http://www.○○○.jp/dlink/ [R=301,L]
リライトルールの設定、jpgとpngファイルへアクセスがあった場合、
http://www.○○○.jp/○△◇/へリダイレクトします。
R=301は301リダイレクトを行い、Lはその場で判定を終了させます。
Lは付けた方が良さそうです。

後は自分のサイトに合わせて編集して下さい。


ProFTPD pamで引っかかった。

お題の件の備忘録。

ダウンロード (2)

サーバー(CentOS6.X)に必要があってProFTPDをインストールしたが、なぜかログインできない。

セッションは拒絶されていないようなので、

/var/log/secureを tail -f 。

すると、  

proftpd: PAM unable to dlopen(/lib/security/system-auth): /lib/security/system-auth: cannot open shared object file: No such file or directory

proftpdと、PAMのアップデートがリンク出来ていないのだろう。

よって、

/etc/pam.d/proftpd

#%PAM-1.0

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required pam_stack.so service=system-auth
auth required pam_shells.so
account required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth

を以下のように書き換えた。

#%PAM-1.0
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required pam_shells.so
auth include system-auth
account include system-auth
#session include system-auth
session required pam_loginuid.so


DNS(bind)における、named.confの設定

DNSサーバー(bind)を更新した際、少々アズった(手こずった)ので、その備忘録として。

ダウンロード (1)

☆ options部の設定

一般項目

  •  version  [ヴァージョン名]
    DNSソフトウェアのヴァージョンの問い合わせに対して返送する文字列を指定します。ヴァージョンを知られないようにするのはセキュリティ対策の基本ですので、”UNKNOWN”, “GUESS”等、ヴァージョンを悟られないように適当な文字列を設定しておきます。
  • hostname [ホスト名]
    DNSサーバのホスト名の問い合わせに対して返送する文字列を設定します。この項目を省略した場合OSにて設定したホスト名が返されます。DNSサーバホストのDNSでの名前がOS設定でのホスト名と異なる場合に使用すると便利です(例:ロードバランス)。

各種ファイル配置を指定する項目

  • directory  [パス名]
    named.confの中で、ファイルのパスが相対パスで指定されている場合、ここに指定した場所が、その相対パスの起点となります。/var/namedが一般的です。
  • dump-file [パス名]
    rndcを使ってdbのダンプを要求した際のダンプ先ファイルのパスを設定します。デフォルトは{namedのカレントディレクトリ}/named_dump.dbです。
  • statistics-file [パス名]
    rndcを使ってステータス情報を要求した際に統計情報が追記されるファイルのパスを設定します。デフォルトは、{namedのカレントディレクトリ}/named.statsです。
  • pid-file [パス名]
    namedプロセスのPID(プロセスID)を書き出すファイルのパスを設定します。PIDファイルは/var/run以下に書くのが一般的です。上記の例では、name専用にディレクトリ「/var/run/named」を設けています。

リッスンアドレス、ポート番号の設定

  • listen-on port [ポート番号] { [IPアドレス]; …. };
    DNSホストに割り当てられたIPアドレスについて、DNSサービスへのアクセスが可能なものを限定する場合に指定します。複数のネットワークインタフェイスが実装されたホストや、IPエリアスでネットワークインタフェイスに複数のIPアドレスが割り当てられているホストで、DNSサービスを特定のアドレスに限定したい場合に設定します。省略した場合、namedはホストに割り当てられたすべてのアドレスをリッスンします。

ゾーン転送関連の設定

  • notify [yes | no]
    このDNSサーバがSOAであるマスターゾーンについて、ゾーンデータに更新があった際に、その更新をあらかじめ指定されたスレーブサーバに伝えるかどうかを決定します。この値は、各ゾーンの設定部分でも指定変更可能です。
  • max-transfer-time-in [秒数]
    インバウンドのゾーン転送のタイムアウト時間を数値(分単位)で指定します。省略時は120(2時間)です。ゾーン転送についての設定項目はこのほかインバウンド/アウトバウンドともに数多くありますが、他でまとめて解説します。

    • transfer-format [one-answer | many-answers]
      ゾーン転送するマスターサーバ側で設定します。one-answerが指定されている場合、マスターサーバは一回の応答につき1レコードのみを転送します。many-answersが指定されてりる場合は、複数のレコードを一回の応答でまとめて転送します。many-answersのほうが転送効率が良いのは言うまでもありませんが、古いDNSサーバはこれに対応できない場合があります。BINDではBIND9, BIND8, BIND4.9.5が対応しています。また、最近のMicrosoft Windowsサーバ製品のDNSサービスがこれに対応しています。省略時の規定値は、many-answersです。
    • transfers-in [数値]
      同時実行可能なインバウンド方向のゾーン転送の最大数を設定します。省略時の規定値は10です。数値を増加されると転送効率が向上しますが、リモートサーバの負荷も増加します。
    • transfers-per-ns [数値]
      同時実行可能なインバウンド方向のゾーン転送の、リモートサーバ一台あたりの最大数です。省略時の規定値は2です。数値を増加させると転送効率が増大しますが、リモートサーバの負荷も増加します。

    アクセス制限に関する設定

    • allow-transfer { [IPアドレス、ネットワークアドレスまたはACL名]; … }
      ゾーン転送を許可するリモートサーバを定義します。
    • allow-query-cache { [IPアドレス、ネットワークアドレスまたはACL名]}
      キャッシュデータに対するDNSクエリーを許可するリモートホストを定義します。
    • allow-query{ [IPアドレス、ネットワークアドレスまたはACL名]; … }
      DNSクエリーを許可するリモートホストを定義します。

    再帰的クエリーに関する設定

    • recursion [yes | no]
      再帰的クエリーに対する措置を決定します。yesに設定されたDNSサーバは、自分がマスターでないゾーンについてのクエリーを受けると、そのゾーンのSOAである他のDNSサーバに問い合わせをかけ、調べて回答します。noに設定されたDNSサーバは、自分がSOAであるゾーンのみについて名前解決をおこないます。内部ネットワークからインターネットへのアクセスについてDNSサービスを提供しなければならないDNSサーバの場合、この設定項目や次のallow-recursionにより再帰的クエリーを内部のクライアントに許可する必要がありますが、再帰的クエリーの実行は、悪意ある攻撃の対象となる可能性があります。(再起的クエリー関連の設定は、セキュリティにかかわる重要項目です。あとでまとめて解説します)
    • allow-recursion { [IPアドレス、ネットワークアドレスまたはACL名]}
      再帰的クエリーを特定のホストやネットワークに限定して許可する場合に使用します。DNSサーバはこれらのホストの要求に対しては、再帰的クエリーを実行します。

    その他

    •  auth-nxdomain [yes | no]
      yesが設定された場合、要求されたdnsクエリーを行った結果、指定されたドメインが見つからずクエリー発行元にNXDOMAIN(non- existent domain)を返す際に、SOAでない場合も、強制的にAAビットをたてます。BIND8まではデフォルト値がtrueでしたが、今では、この機能が必 要なケースがまれであるためBIND9からはfalseがデフォルト値となりました。DNS参照をする古いソフトウェアでは必要なケースがあります。

APCのUPS 電源管理

某社内のアプリケーション・サーバーをリプレースした際の電源管理忘備録として。


今回は、UPS対サーバーマシンは1対1。
1対多のケース(=LAN経由)は、
UPS とシリアル(or USB)ケーブルで接続した マシンをマスターとし、マスターが UPS を監視する。
イーサーネットでつながった他のマシン をスレーブとして設定すれば、UPS 情報をイーサーネット経由で共有することができる。


サーバーOS:CentOS6.5(RedHat系なら大筋同様)
UPS:APC社製
APC社の「PowerChute Business Edition」を用いれば良いとも思えるが、WindowsOSを介在させず、シンプルにシステムを構築したい。
つまり、こんな感じ。

APCUPSD-011.マシンとUPSは通常のUSBケーブルで接続
2.マシンにapcupsdをインストール
3.Webminにapuupsdと通信・制御できるモジュールをインストール
4.webminを通して、LAN上のPCから各種設定を行う

1.USBケーブル接続
市販のUSBケーブルを使用。

2.マシンにapcupsdをインストール
#yum install apcupsd
で簡単にインストールできるが、それには rpmforge リポジトリが利用できるようにしておかないとならない。

3.Webminにapuupsdと通信・制御できるモジュールをインストール
・モジュールをダウンロード
・webmin設定 → webminモジュール
・先程ダウンロードしたファイルを指定してモジュールのインストール
(「ファイルからモジュールをインストール」を選択)
・「その他」カテゴリーに「APC UPS Daemon」が追加されます
icon (1)
APC UPS Daemon

・デフォルトでのモジュール設定では、エラー表示が出ると思います。
以下のように修正すると良いでしょう。
*ただし、マシンの環境によってこの通りとは行かないと思います。

Configuration file for apcupsd         /etc/apcupsd/apcupsd.conf
Time interval for update screens (in sec)     30
Path to multimon.cgi         /var/www/apcupsd/multimon.cgi
Path to upsfstats.cgi          /var/www/apcupsd/upsfstats.cgi
Path to upsstats.cgi           /var/www/apcupsd/upsstats.cgi
Path to upsimage.cgi        /var/www/apcupsd/upsimage.cgi
Start apcupsd command    /etc/rc.d/init.d/apcupsd start
Stop apcupsd command     /etc/rc.d/init.d/apcupsd stop

webmin05

webmin06

4.webminを通して、LAN上のPCから各種設定を行う
「設定の編集」ボタンをクリックして、各種設定が行えます。
設定の詳細は、こちらのページを参考にしてください。
マスター・スレーブの設定に関しても記述されています。


CentOS6にRPMforgeを導入する

CentOS6.xは5.xと同じ要領ではRPMforgeを導入できません。

簡単なパスの変更ですが、一応忘備録として記述しておきます。

まずは、リポジトリのインストール

yum -y install yum-priorities
yum -y install yum-plugin-priorities

 

次に、リポジトリ設定ファイルの編集
vi /etc/yum.repos.d/CentOS-Base.repo
各セクションの末尾に
#add
priority=1

を追加。

GPGキーをインストール

wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt

ここからがCentOS5と異なります。
RPMforgeリポジトリのインストール

64bitの場合
http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-1.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-1.el6.rf.x86_64.rpm

32bitの場合
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-1.el6.rf.i686.rpm
rpm -ivh rpmforge-release-0.5.2-1.el6.rf.i686.rpm

 

そして最後にyumをアップデート
yum -y update rpmforge-release

これで、RPMforgeが利用できるようになります。


NetworkManager

備忘録として。

RedHat EL6 や CentOS6 などでは 「NetworkManager」が採用されるようになった。
これはさまざまなネットワーク接続を自動化するネットワーク制御システムで、OS インストール時にデフォルトで導入されて、有効になる。
このサービス。
モバイル利用やLAN利用などでは便利だが、サーバー用途では設定できないものとかがあってちょっと不便。

nm_kde_connections

先日立てたサーバー(CentOS6.5)でもちょっと苦労した。
/etc/resolv.conf で静的にDNSサーバーを指定して書き換えても、マシンの再起動やネットワークの再起動をかけるとその都度デフォルトの内容に戻ってしまうという現象が発生。
調べてみると、
/etc/sysconfig/network-script/ifcfg-xxx (xxxは環境によって変わる)
の記述内容に従って、その都度「NetworkManager」が書き換えてしまう事がわかった。
このNetworkManagerを止めてしまえば良いのであるが、LAN側にもネットワークの口を持っていて、且つそれがDHCPを利用している場合等は「NetworkManager」を利用したいケースもある。
その場合は、固定の(静的に)DNSサーバーを利用したいNICのconfigファイルにDNSを指定すればよい。

DNS1=XXX.XXX.XXX.XXX
DNS2=XXX.XXX.XXX.XXX
DNS3=XXX.XXX.XXX.XXX

といった具合に。
PEERDNS=no
とすれば書き換わらないという記述もネットでは散見されるが、それは、
・DHCPを利用してIPアドレスを得るが、DNSは指定の場合のものを使いたい
ケースだけに適用されるようだ。
実際、PEERDNS=noとしても、yesとしても、記述自体をコメントアウトしても、resolv.confは書き換わってしまった。
NetworkManagerのコントロールを受ける設定
NM_CONTROLLED=yes
になっている場合、DHCPサーバーに問い合わせをして、返答がなかったらresolv.confは書き換わる仕様なのだろうか?
今度時間があったら調べてみたいが、また今回のように困らなければ調べない可能性大。(^^;

いずれにしても、インターネットに直接つながる口とLANにつながる口を持っている場合はNetworkManagerは稼動させたままで、
指定のIPアドレス、DNSサーバーを利用したい場合は、
/etc/sysconfig/network-script/ifcfg-xxx (xxxは環境によって変わる)
に直接、IPアドレス、netmask、DNSサーバー、その他を記述しなければならない。


バーチャルホスト設定(Apache)

備忘録として。

バーチャルのWebサーバーを立てる際、本来のサーバーネームを叩いた際に、その他のバーチャルWebが誤表示されないために。

apache_logo

以下の仮定
・メインWebサイトは、http://centossrv.com/
・追加するWebサイトは、http://virtual.com/
・メインWebサイトのドキュメントルートは/var/www/html
・追加するWebサイトのドキュメントルートは/var/www/html/virtual
・メインWebサイトへのアクセスログは/var/log/httpd/access_log、/var/log/httpd/error_logに記録する
・追加するWebサイトへのアクセスログは/var/log/httpd/virtual-access_log、/var/log/httpd/virtual-error_logに記録する

(1)バーチャルホスト設定
[root@centos ~]# mkdir /var/www/html/virtual ← バーチャルホスト用ドキュメントルートディレクトリ作成

[root@centos ~]# vi /etc/httpd/conf/httpd.conf ← Apache設定ファイル編集
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work. See also the UseCanonicalName directive.
#
# If your host doesn’t have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
#
#ServerName centossrv.com:80 ← 行頭に#を追加してコメントアウト

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80 ← コメント解除(バーチャルホスト有効化)
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#

[root@centos ~]# vi /etc/httpd/conf.d/virtualhost-00.conf ← 未定義ホスト用バーチャルホスト設定ファイル作成
※バーチャルホスト未定義ホスト名でアクセス時にアクセスを拒否する
<VirtualHost *:80>
ServerName any
<Location />
Order deny,allow
Deny from all
</Location>
</VirtualHost>

[root@centos ~]# vi /etc/httpd/conf.d/virtualhost-centossrv.com.conf ← メインホスト用バーチャルホスト設定ファイル作成
<VirtualHost *:80>
ServerName centossrv.com
DocumentRoot /var/www/html
</VirtualHost>

[root@centos ~]# vi /etc/httpd/conf.d/virtualhost-virtual.com.conf ← 追加ホスト用バーチャルホスト設定ファイル作成
<VirtualHost *:80>
ServerName virtual.com
DocumentRoot /var/www/html/virtual
ErrorLog logs/virtual-error_log
CustomLog logs/virtual-access_log combined env=!no_log
</VirtualHost>

(2)WebサーバーSSL設定※Webサーバー間通信内容暗号化を導入している場合のみ
名前ベースバーチャルホストの場合(グローバルIPアドレス1個で複数のWebサイトを運営する場合)、メインホストがhttps://centossrv.com/、バーチャルホストがhttps://virtual.com/とした場合、https://centossrv.com/でアクセスしてもhttps://virtual.com/でアクセスしても、https://centossrv.com/のWebページが表示されてしまうので、 https://centossrv.com/でアクセスした場合はそのままで、https://virtual.com/でアクセスした場合はhttp://virtual.com/へリダイレクトするようにする。
[root@centos ~]# vi /etc/httpd/conf.d/ssl.conf ← WebサーバーSSL設定ファイル編集
# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

--追加(ここから)--
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog “logs/rewrite_log”
RewriteLogLevel 0
RewriteCond %{HTTP_HOST} !^centossrv.com$ ← メインホスト名を指定
RewriteRule ^/(.*)?$ http://%{HTTP_HOST}/$1 [L,R]
</IfModule>
--追加(ここまで)--
</VirtualHost>

■Webサーバー再起動

[root@centos ~]# /etc/rc.d/init.d/httpd restart ← Webサーバー再起移動
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]