SSL 証明書 事前作業(IIS)

■本記事の背景
通常、SSL証明書が入っているサーバは、Apacheを使っている
ことが多いため、IISでSSL証明書を更新する機会があまり、ありませんでした。
そのため、手順の確認から作業の時間を多くかかってしまいました。

このブログを参照頂ければ、手順やCSRの作成方法がわかるよう
手順を記載しております。

<手順>
1.対象サーバにログインします。

2.CSRを作成します。
サーバマネージャ>役割>Webサーバ(IIS)>インターネットオプション
サーバ証明書アイコンをダブルクリックします。
右側の操作メニューから、「証明書の要求の作成」をクリックします。

証明書のプロパティが表示されるので、必要事項を入力します。
例)
一般名:www.test-net.co.jp
組織:test CO.,LTD
組織単位:soumu
市区町村: shinagawaku
都道府県:tokyo
国/地域:jp

暗号化サービス プロバイダは「Microsoft RSA SChannel Cryptographic Provider」、
ビット長は「2048bit以上」を選択して次へ進みます。

CSRファイルの保存先を指定し、終了ボタンを押します。

3.証明書・秘密鍵のバックアップを取得します
インターネットインフォメーションサービス(IIS)マネージャを開き、
サーバ証明書アイコンをダブルクリックします。
バックアップ対象の証明書を選択して右側の[操作]から[エクスポート]を
クリックします。

4.認証機関に申請します。

SSL 証明書 更新作業(Apache)

■本記事の背景
Apacheを使った、SSL証明書の更新作業を初めて実施する際、
認証機関からメールの”どの内容、及び、”どのリンク”から証明書を
参照(コピー)にするかに悩みました。
悩むことなく、更新作業ができるよう、下記に作業手順を記載しました。

<手順>

1.対象サーバにログインします。

2.作業パスに移動します
cd /etc/pki/tls/certs/

3.作業用のディレクトリを作成し、移動します。
mkdir 2018
cd 2018

4.証明書を導入するファイルを作成します。
■サーバ証明書
touch /etc/pki/tls/certs/2018/2018.cer
■中間証明書
touch /etc/pki/tls/certs/2018/2018-ca.crt

5.サーバ証明書の設置
vi 2018.cer
※viはファイルの中身を編集するコマンド

※認証機関メールの文中の下記を貼り付ける。
■B) X.509形式 (Apacheを代表とするサーバ(Microsoft IIS以外)用)

6.中間証明書の設置
vi 2018-ca.crt
※viはファイルの中身を編集するコマンド

※メールのリンクから該当証明書を貼り付ける。
※署名:SHA-2/2048bit を選択したものを貼り付けます。

7.設定ファイルの編集
cd /etc/httpd/conf.d/
vi ssl.conf

下記になっていることを確認します。
SSLCertificateFile /etc/pki/tls/certs/2018/2018.cer
SSLCertificateKeyFile /etc/pki/tls/private/2018test.com.key
SSLCertificateChainFile /etc/pki/tls/certs/2018/2018-ca.crt

8.プロセスIDの確認します
ps agx | grep httpd

9.apache(サービス)の再起動します
service apache restart

10.apache(サービス)の状態を確認します
service apache status
※「実行中… 」になっていることを確認します。

11.証明書の更新確認
https:サイトのURL をブラウザにうち、鍵マークの証明書の期限が
延長されていることを確認します。

【Zabbix】アクション設定のメール内容を、ログに記録する

背景

Zabbix で設定しているアクションのメール送信内容を「ログ」に記録して、そちらをログ監視で確認するという要件がありました。

いろいろ調べてみると、断片的に情報をアップして頂いている方がいらっしゃったので、それを組み合わせて実現できました。

備忘録として、こちらにまとめておきます。

設定内容(画面ショットは 2.0 ですが、3.0 系でも大丈夫です)

1.最初にメディアを作成します

メニューより、[管理]→[メディアタイプ]を選択し、右上にある「メディアの新規作成」ボタンを押します。

以下の画面のように作って頂ければと。

メディア設定

名前:monitor_log(任意です)
タイプ:スクリプト
スクリプト名:zabbix_monitor.sh(任意です。ただし、
パスは、./usr/lib/zabbix/alertscripts/ に保存してください)
有効:チェック

2.スクリプトを準備します

以下のようなシェルを作って、[./usr/lib/zabbix/alertscripts/ ]に、項番1 で記載した「スクリプト名」で保存します

DATESTR=`date "+%Y/%m/%d %T"`
META=$2
UNIFIED_LOG=/var/log/zabbix/zabbix_monitor.log
/bin/echo "$DATESTR $META" >> $UNIFIED_LOG 2>&1

※スクリプト内の[META]という変数に[$2]をセットしてます。この[$2]は、アクション設定の「デフォルトの件名」部分に該当します

3.ユーザーを追加します

項番1 で作成したメディアを、ユーザーにセットします

タイプ:monitor_log(項番1で作成したものです)
送信先:zabbix

4.「アクションの実行条件」に追加します

項番3 で作成したユーザーに対して、「アクションの実行条件」で[ユーザーにメッセージを送信: zabbix-monitor]をセットします。

こうすることで、アクションがキックされた際に、[/var/log/zabbix/zabbix_monitor.log]に記載されるようになります

SSL 証明書 事前作業(Apache)

■本記事の背景
Apacheを使った、SSL証明書の更新作業を初めて実施する際、コマンドの内容、申請の仕方がわからず、時間を浪費し、苦労がありましたので、下記に「事前作業」、認証機関への「申請方法」を纏めることにしました。

<手順>
1.対象サーバにログインします。

2.作業ディレクトリに移動します。
cd /etc/httpd/conf.d/
※cd は移動するコマンドです。 書式:cd (option) /directory name
※今回作業ディレクトリは、 /etc/httpd/conf.d/ とします。

3.現行の設定ファイルを作業前にコピーします。
cp -p ssl.conf ssl.conf.2018
※cpはcopyコマンドです。 書式:cp [オプション] コピー元 コピー先

4.praivate(秘密キー作成)のディレクトリに移動
cd /etc/pki/tls/private/

5.秘密キーとCSRキー作成します。
<秘密キー作成>
openssl genrsa -out 2018test.com.key 2048
※2018test.com.key という名前の秘密キーを作成します。
<CSR作成>
openssl req -new -key 2018test.com.key -out 2018test.com.csr
※2018test.com.csrという名前の秘密キーを作成します。
★ポイント
秘密キー(2018test.com.key)を使って、 2018test.com.csrを作成しているので秘密キー名を間違わないよう気を付けて下さい。

CSR情報登録

■Country(国名)
Country Name (2 letter code) [AU]:JP
■State(都道府県名)
State or Province Name (full name) []:Tokyo
■Locality(市区町村名)
Locality Name (eg, city) []:Kanagawa
■Organization(組織名)
Organization Name (eg, company) []:test.CO.Ltd
■Organization Unit(部門名)
Organizational Unit Name (eg, section) []:test Department
■Common Name(コモンネーム)
Common Name (eg, YOUR name) []:www.test.com

※下記はエンターで飛ばしてOK※
Email Address []:
A challenge password []:
An optional company name []:

6.CSRの情報を認証機関に申請します。

 

補足.CSRの申請方法は下記に記載します。
下記は認証機関がシマンテックの場合
ストアフロントにアクセスします。

更新可能な製品は赤字で表示されます。
更新対象の製品を選択肢、内容を確認の上、「更新」ボタンをクリックします。

製品および有効期間と署名アルゴリズムを選択します。

ライセンス数を選択します。
エクスプレスサービスを追加する場合にチェックします。
サーバタイプを選択します。

企業名・団体名を検索します。

申請手続き担当者(技術担当者)の情報を入力します。

CSRを生成します。
取得したCSRの内容を貼り付けます。

RMAN④ リストアリカバリ(障害発生時点まで)

今回はRMANのリストア・リカバリ方法のうち、障害発生時点まで復旧させる方法を記載させて頂きます。

障害発生時点まで復旧させる前提としては、以下となります。

・OSに障害が無いこと
・DBデータファイル以外の、制御ファイル、REDOログファイル、アーカイブREDOログファイルに破損が無いこと
・バックアップが成功しており、バックアップファイルが存在すること

リストア・リカバリコマンドと実行例は以下の通りです。

1.DBデータのリストア
RMANでDBファイルをリストアする場合、mountモードで起動している必要があります。

コマンド:

su – oracle
sqlplus / as sysdba
startup mount;

実行例:————————————————————————-
# su – oracle
$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on

Copyright (c) 1982, 2014, Oracle. All rights reserved.

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics, Real Application Testing
and Unified Auditing options
に接続されました。

SQL> startup mount
ORACLEインスタンスが起動しました。

Total System Global Area 4.1540E+10 bytes
Fixed Size 4371656 bytes
Variable Size 5979324152 bytes
Database Buffers 3.4426E+10 bytes
Redo Buffers 128843776 bytes
データベースがマウントされました。

———————————————————————————-

 

2.RMAN起動
リストア・リカバリを実行するために、RMANを起動します。

コマンド:

export NLS_DATE_FORMAT=’yyyy/mm/dd hh24:mi:ss’
rman target /

実行例:————————————————————————-
$ export NLS_DATE_FORMAT=’yyyy/mm/dd hh24:mi:ss’
$ rman target /

Recovery Manager: Release 12.1.0.2.0 – Production on

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

ターゲット・データベース: ORCL(DBID=1234245419、未オープン)に接続されました
———————————————————————————-

 

3.DBのリストア・リカバリを実行
以下のRMANコマンドを実行することで、リストアをリカバリを同時に実行します。また、実行例を見て頂くと、まずデータファイルをリストアし、REDOログファイルからリカバリしていることが分かると思います。

コマンド:

run {
restore database;
recover database;
}

実行例:————————————————————————-

RMAN> run {
restore database;
recover database;
}

リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=1068 デバイス・タイプ=DISK

restoreが開始されました(開始時間: 2018-03-21 10:47:18)

チャネルORA_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_DISK_1: データファイル00001を/oracle/data/orcl/system01.dbfにリストアしています
チャネルORA_DISK_1: データファイル00002を/oracle/data/orcl/sysaux01.dbfにリストアしています
チャネルORA_DISK_1: データファイル00003を/oracle/data/orcl/undotbs01.dbfにリストアしています
チャネルORA_DISK_1: データファイル00004を/oracle/data/orcl/users01.dbfにリストアしています
チャネルORA_DISK_1: バックアップ・ピースORCL_0sqf1zed_1_1から読取り中です
チャネルORA_DISK_1: ピース・ハンドル=/backup/ORCL_0sqf1zed_1_1 タグ=TAG20170922T101540
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:21:45
restoreが完了しました(完了時間: 2018-03-21 11:29:29)

recoverが開始されました(開始時間: 2018-03-21 11:29:29)

メディア・リカバリを開始しています
メディア・リカバリが完了しました。経過時間: 00:00:03

recoverが完了しました(完了時間: 2018-03-21 11:29:32)
チャネル: ORA_DISK_1がリリースされました

———————————————————————————-

4. DBをオープンする

コマンド:
alter database open;

実行例:————————————————————————-

RMAN> alter database open;
alter database open;
文が処理されました

———————————————————————————-

以上で完了です。

次回以降、時間指定リカバリと、全損時想定のリカバリ方法を記載したいと思います。

RMAN③ リスト

今回はRMAN(Recovery Manager)のバックアップリストの見方です。

バックアップしたファイルの管理や、リストア・リカバリをする際に重要な情報が記載されています。

尚、RMAN起動前に以下のように環境変数を設定しておくと、バックアップファイルの日時まで表示されるようになります(デフォルトは日にちのみ)。

Linux系
export NLS_DATE_FORMAT=’yyyy/mm/dd hh24:mi:ss’

Windows
set NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS

コマンドは、以下となります。

list backup;

以下は、検証用シングルDBでのリスト出力結果です。
RAC環境になると、ノード毎にスレッドが異なって表示されますが、大差はないです。

 

バックアップファイルは主に3種類あります。
・データファイル
・アーカイブログファイル
・制御ファイルとSPファイル

バックアップした順に表示されており、SCN、時間などを確認すると、どのバックアップにどの時間帯がバックアップされているかが分かります。

また、実行中のRMAN処理の状況は、以下SQLで確認することが出来ます。

set line 200

SELECT OPERATION,OBJECT_TYPE,STATUS,
TO_CHAR(START_TIME,’yyyy/mm/dd hh24:mi:ss’) “START_TIME”
FROM V$RMAN_STATUS WHERE STATUS=’RUNNING’
ORDER BY START_TIME;

OPERATION とOBJECT_TYPE を確認すると、何のファイルを処理中か判別できます。

BACKUP 、ARCHIVELOG → アーカイブログバックアップ中
BACKUP 、DB FULL → フルバックアップ中
CONTROL FILE AND SPFILE AUTOBACK → 制御ファイルの自動バックアップ中
DELETE → バックアップファイルの削除中

 

RMAN② バックアップ

今回はRMAN(Recovery Manager)のバックアップとなります。

Oracleのバックアップには、オンラインバックアップ、オフラインバックアップ。差分、増分などあります。
オンラインバックアップからリストア・リカバリする場合は、バックアップ中のアーカイブログも必要になります (無いとリカバリできません)。

RMANを起動し、以下のコマンドを実行することで様々なバックアップをすることができます。
バックアップ先ディレクトリや、制御ファイルの自動バックアップは前回の「設定」により指定することができます。

・フルバックアップ
backup database;

・フルバックアップとアーカイブログのバックアップ。アーカイブログはバックアップ後に削除
backup database plus archivelog delete all input;

※上述の通り、オンラインバックアップの場合は、アーカイブログがリストア・リカバリに必要になります。このコマンドはバックアップとアーカイブログを同時に取得するので便利かと思います。

・バックアップ先を指定してバックアップ
backup database format ‘/backup/oracle/%U’;

・特定表領域のバックアップ
backup tablespace 表領域名;

・特定データファイルのバックアップ
backup datafile ファイル番号;
backup datafile ‘ファイル名’;

・タグを付けてバックアップ
backup database tag ‘for_versionup’;

・増分バックアップ
レベル0 (初回・・イメージコピーで取得)
backup as copy incremental level 0 database;
レベル1 (差分・・バックアップセットで取得)
backup incremental level 1 [cumulative] database;
※ cumulative・・累積増分

———–

・アーカイブログバックアップ
すべてのアーカイブログをバックアップ
backup archivelog all;

アーカイブログ取得後、削除(バックアップしたファイルのみ削除)
backup archivelog all delete input;

アーカイブログ取得後、削除(バックアップ対象のすべての削除)
backup archivelog all delete all input;

バックアップされていないアーカイブログのみバックアップする
backup archivelog all not backed up 1 times;

特定のシステムチェンジナンバー(SCN)以降のバックアップ(データ移行時など、全てのアーカイブログが必要ではないときなどに)
backup archivelog from scn ?????;

※システムチェンジナンバー(SCN)
トランザクションごとに順番に割り振られる番号。
リカバリを行う際などに利用。データファイル、制御ファイル、REDOログファイルなどに割り振られる。

上記はバックアップコマンドの一部になります。運用設計や、移行設計により様々なコマンドを利用して実装していきます。