Quantcast
Channel: 俺的備忘録 〜なんかいろいろ〜
Viewing all 1028 articles
Browse latest View live

第25回シェル芸勉強会に参加してきました(復習)

$
0
0

第25回シェル芸勉強会に行ってきたので、その復習。
前半は結構簡単な内容だったのだが、後半がちょっと難しかった。

問題および模範回答はこちら

Q1

指定されたドメイン(www.usptomo.com)のIPアドレスのみを取得するという問題。
これは簡単で、digコマンド一発で取れる。

dig www.usptomo.com +short
blacknon@BS-PUB-UBUNTU-01:~$ dig www.usptomo.com +short
157.7.203.188

 

Q2

Q2は、前日Twitterではやってたシェル芸の言葉をちょっと変えたものだ。
なので、先日と同じように対応。

for i in {0..8}; do echo "ひらけ!ポンキッキ" | sed -E "s/^(.{$i})(.*)/\2\1/" ; done;
blacknon@BS-PUB-UBUNTU-01:~$ for i in {0..8}; do echo "ひらけ!ポンキッキ" | sed -E "s/^(.{$i})(.*)/\2\1/" ; done;
ひらけ!ポンキッキ
らけ!ポンキッキひ
け!ポンキッキひら
!ポンキッキひらけ
ポンキッキひらけ!
ンキッキひらけ!ポ
キッキひらけ!ポン
ッキひらけ!ポンキ
キひらけ!ポンキッ

 

Q3

rbashの環境で、リダイレクトを使わずにファイルに書き出す、という問題。
手堅くteeコマンドを使うとちゃちゃっと解ける。

grep /bin/bash$ /etc/passwd | tee aaa

 

この問題については、別解をebanさんがいっぱい出してたのでそちらも参照するとよさそう。

 

Q4

ワンライナーで、”濁点のつくひらがなだけに”濁点をつけてやる、という問題。
Unicodeでは通常のひらがなと濁点付きは1個しかずれてないので、uninameを使ってなんとかできないかと思ってたのだけど駄目だった。

で、どうやってやるのかというとどうやらnkfを使って「半角カタカナへ変換」→「すべての文字に濁点を付与」→「すべてひらがなに」→「濁点だけの文字を削除」という処理をすればいいようだ。

ほかの人の回答を見つつ、自分なりに回答。
濁音はそのものではなくUnicodeを指定している。

echo すけふぇにんけん | nkf -h2 | nkf -Z4 | sed "s/\(.\)/&$(echo -ne '\uFF9E')/g" | nkf -h1 | sed "s/$(echo -ne '\u309B')//g"
blacknon@BS-PUB-UBUNTU-01:~$ # 一度全角カタカナにする
blacknon@BS-PUB-UBUNTU-01:~$ echo すけふぇにんけん | nkf -h2
スケフェニンケン
blacknon@BS-PUB-UBUNTU-01:~$
blacknon@BS-PUB-UBUNTU-01:~$ # 全角カタカナから半角カタカナへ変換
blacknon@BS-PUB-UBUNTU-01:~$ echo すけふぇにんけん | nkf -h2 | nkf -Z4
スケフェニンケン
blacknon@BS-PUB-UBUNTU-01:~$
blacknon@BS-PUB-UBUNTU-01:~$ # 全ての文字に半角カタカナの濁音を付与
blacknon@BS-PUB-UBUNTU-01:~$ echo すけふぇにんけん | nkf -h2 | nkf -Z4 | sed "s/\(.\)/&$(echo -ne '\uFF9E')/g"
ズゲブェ゙ニ゙ン゙ゲン゙
blacknon@BS-PUB-UBUNTU-01:~$
blacknon@BS-PUB-UBUNTU-01:~$ # ひらがなに変換
blacknon@BS-PUB-UBUNTU-01:~$ echo すけふぇにんけん | nkf -h2 | nkf -Z4 | sed "s/\(.\)/&$(echo -ne '\uFF9E')/g" | nkf -h1
ずげぶぇ゛に゛ん゛げん゛
blacknon@BS-PUB-UBUNTU-01:~$
blacknon@BS-PUB-UBUNTU-01:~$ # ひらがなの濁音を削除
blacknon@BS-PUB-UBUNTU-01:~$ echo すけふぇにんけん | nkf -h2 | nkf -Z4 | sed "s/\(.\)/&$(echo -ne '\uFF9E')/g" | nkf -h1 | sed "s/$(echo -ne '\u309B')//g"
ずげぶぇにんげん

Q5

ターミナル上で、1秒に1個「*」が増えていく処理をするというお題。
whileを使う方法が一般的だからそれ以外とのことだったので、yesでコマンドをテキストで出力して、それをshにパイプで渡す方法をとった。

Q6

ファイル内のテキストを読める状態にする問題。
base64を使う方法はTwitter上で一時期はやっていたので、違う方式になっているようだ。

で、どうやらリトルエンディアンのユニコードが書かれているようなので、一度読み込んだ後にnkfやiconvなどでUTF-8に変換してやればいいみたいだ。

cat crypt | xxd -r -p | iconv -f UTF-16LE -t UTF-8
blacknon@BS-PUB-UBUNTU-01:~/ShellGeiData/vol.25$ cat crypt | xxd -r -p | iconv -f UTF-16LE -t UTF-8
シェル芸

 

Q7

2016/10/29(シェル芸当日)の00:00:00~23:59:59までの範囲のUNIX時間で素数のものを計算するという問題。
UNIX時刻から普通の時刻に戻す必要がある。

とりあえず、以下のように解答した。

eval "echo {$(date -d '2016/10/29 00:00:00' +%s)..$(date -d '2016/10/29 23:59:59' +%s)}"|tr ' ' '\n'|factor|awk 'NF==2{print $2}'|xargs -I{} date --date @{}

 

Q8

コンソール上でサイン波を記述するという問題。
gnuplotなどを使えば簡単にかけるようだ。


その他の方法としては、ebanさんが頑張ってたのでそっちを見るとよさそう。
今回から新宿だったのだが、ちょっと道迷ってしまった…次は気を付けよう。

 

シェルプログラミング実用テクニック シェルプログラミング実用テクニック

Proxmox VE 4.2で後からVMIDの変更を行う

$
0
0

Proxmox VEで、一度作成したVMのIDを後から変更する場合がある。
その場合、Web管理画面からは変更できないため、sshでログインしてコンソールから処理をする必要がある。

まず、VMが停止した状態で以下のように対象のVMの仮想HDDをリネームする。

mv /var/lib/vz/images/{移動元ID,移動後ID}
mv /var/lib/vz/images/移動後ID/vm-{移動前ID,移動後ID}-disk-1.qcow2

次に、VMの設定ファイルをリネームする。

mv /etc/pve/nodes/仮想ホスト名/qemu-server/{移動前ID,移動後ID}.conf

 

最後に、設定ファイル内の参照先となるVHDファイルのPATHについて書き換える。
これで、無事VMIDの変更ができた。

OpenStack 実践ガイド (impress top gear) OpenStack 実践ガイド (impress top gear)

StackStormでSlackによるChatOpsの設定をする

$
0
0

先日からStackStormをちょこちょこいじっているのだが、今回はChatOpsの設定をしてチャットの入力内容をトリガーに処理を行わせるようにしてみる。
Chatに使うのはSlack。Botを利用する必要があるので、HubotのAPIキーの払い出しなどをすでに行っているものとする。

1.st2chatopsの設定

まず、以下のコマンドを実行しChatOpsのサービスを有効にする。

export ST2_AUTH_TOKEN=$(st2 auth st2admin -p パスワード -t)
st2 rule get chatops.notify || st2 rule create /opt/stackstorm/packs/chatops/rules/notify_hubot.yaml

 

次に、以下のコマンドでStackStorm側に「st2chatops」プラグインを導入する。

curl -sL https://rpm.nodesource.com/setup_4.x | sudo -E bash -
sudo yum install -y st2chatops

 

設定ファイル「/opt/stackstorm/chatops/st2chatops.env」を編集してやる。
今回の場合、編集する箇所は以下の項目だろう。

  • HUBOT_NAME(Hubot名を付与する)
  • ST2_API(443ポートあてにする)
  • ST2_AUTH_URL(443ポートあてにする)
  • ST2_AUTH_PASSWORD(パスワードを書き換える)
  • HUBOT_ADAPTER(コメントアウトを外す)
  • HUBOT_SLACK_TOKEN(HUBOTのTOKENを書き換える)

書き換え後、st2chatopsのサービスを起動する。

sudo systemctl start st2chatops
sudo systemctl enable st2chatops
sudo st2ctl reload --register-all

 

今の時点で、st2をチャンネルに招待して「!help」と打つことでst2chatopsからの返答がある。

20161024_085342000000

 

2.トリガー・ルールの作成

次に、チャットを起点としてその他コマンドなどの実行処理が行われるよう、トリガーおよびルールを作成する。
まず、以下のコマンドを実行し新しく作成するアクション用のディレクトリ作成、yamlファイルの作成などを行う。

cd /opt/stackstorm/packs/
mkdir -p アクション名/{actions,rules,sensors,aliases}

 

次に、作成したaliasesフォルダ配下にyamlファイルを作成する。
以下の例では、core.localでStackStormマシン上でコマンドを実行させている。

●/opt/stackstorm/packs/アクション名/aliases/local.yaml

---
name: "local_shell_cmd"
action_ref: "core.local"
description: "Execute a command on a local host."
formats:
  - "run {{cmd}}"

 

yamlファイル作成後、以下のコマンドを実行しreloadを行う。

sudo st2ctl reload --register-all
sudo service st2chatops restart

 

3.チャットから処理を行わせる

さて、それでは実際にチャットから処理を行わせてみよう。

20161024_093032000000_

 

確かに、指定した通りローカル上でコマンドを実行させることができた。

Slack入門 [ChatOpsによるチーム開発の効率化] Slack入門 [ChatOpsによるチーム開発の効率化]

GraylogからDatadogにアラートを転送する

$
0
0

特定のログが来た際にGraylogからDatadogにアラートを出す場合は、プラグインを導入してやればよい。
まず、Graylogサーバ側で以下のコマンドを実行してプラグインをインストールしてやる。

cd /usr/share/graylog-server/plugin/
sudo wget https://github.com/underdogio/graylog-plugin-datadog/releases/download/v1.0.3/graylog-plugin-datadog-1.0.3.jar
sudo systemctl restart graylog-server

次に、Graylogの管理画面にログインして [Stream] からDatadogへアラートを飛ばすStreamの [Manage Outputs] をクリックする。

20161027_085722000000

 

[Select Output Type]から[Datadog Output]を選択し、Datadogへ転送するアラートの内容を記述する。

20161027_085812000000

 

20161027_093528000000

 

あとは、対象のログが飛んで来たらDatadogに連携されるようになっているはずだ。

20161027_093727000000

 

ソフトウェアエンジニアのための ITインフラ監視[実践]入門 (Software Design plus) ソフトウェアエンジニアのための ITインフラ監視[実践]入門 (Software Design plus)

sedでユニコードを指定して置換を行う

$
0
0

先日参加してきた第25回シェル芸勉強会の中で、濁点の置換処理があったのだが、その中でコンソールで直接濁点を入力するのではなくユニコードで置換をさせたので、念のため備忘として別に書いておく。
やり方としては単純で、以下の例のようにsedの実行条件にechoしてやればいいだけだ。

sed "s/(echo -ne '\uFF9E')//g"

 

フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門 フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門

『NMS300』でNetGear機器の統合管理・コンフィグ自動バックアップを行わせる

$
0
0

一部環境でスイッチ類をNetGearで統一しているのだが、L2にスマートスイッチ(しかもGS110TPとかのちょっと安いやつ)を利用しているとコンソールがhttp(s)しかついておらず、コンフィグのバックアップ自動化をさせる場合はWebスクレイピングさせないといけなかったりする。
なんか、いい感じに統合で管理や自動バックアップさせる方法がないかなぁ…と考えていたところ、(バックアップはNetGear機器のみ対応のようだけど)NMS300という統合管理ツールがあるようだったのでこれを使ってみることにする。
対応しているOSはWindowsのみのようなので、とりあえずWindows Server 2012 R2へこれをインストールしNetGear製品のコンフィグ自動バックアップを行ってみる。

1.インストール

まず、こちらのURLからNMS300のインストール用ファイル(zip)をダウンロードしてくる。
自身の環境にあった方をダウンロードしてこよう。

ダウンロードが完了したら、ファイルをWindows Server 2012 R2に転送する。
zipを展開してやるとNMS300のインストーラーがあるので、実行する。

20161027_103132000000_

 

インストーラーを実行すると、もろもろ必要なファイルの展開とインストールウィザードが開始される。
ウィザードは一本道なので、全部デフォルト設定で「Next」を押していけばいい。

20161027_104513000000

 

インストール完了画面。
以後は、インストールしたサーバの8080番ポートにブラウザからアクセスすることで操作できる。

20161027_110304000000_

 

ブラウザからアクセスしたログイン画面はこんな感じ。
言語は英語か中国語しか選べないので、とりあえず英語を使っていこう。
デフォルトのID/PWは「admin/admin」となっている。

20161030_223409000000

 

2.機器追加

次は、ログインしてNMS300で管理する機器を追加する。
「RESOURCES」>「DISCOVERY」から「Quick Dicovery」をクリックし、追加するNetGear機器が存在しているIPアドレスのレンジを指定し、表示されている「Select Credentials」に全部チェックを入れて「Execute」をクリックする。

20161030_225346000000

 

Discoveryをした結果。
無事スイッチを見つけられたのでこのままクローズ。

20161030_225658000000

 

これで、NMS300で管理する機器として追加ができた。
「RESOURCES」>「DEVICES」から見れば先ほどのスイッチが表示されている。

20161030_230019000000

 

3.コンフィグバックアップ設定

スイッチは追加できたので、次はコンフィグの自動バックアップ設定を行う。
まずは、「RESOURCES」>「DEVICE CREDENTIALS」を開き、バックアップに利用する接続方式について設定する。
今回の場合は、HTTPでしか接続できないのでもともとあった「Default HTTP」を編集する。

20161030_230401000000

 

バックアップをするため、ログイン時のID/PWについて記述する。

20161030_230504000000

 

「Associated Devices」でデバイスに紐づける。

20161030_231013000000

 

次に「CONFIG」>「BACKUP」を開き、「Add Profile」をクリックしてバックアップ処理について追加する。

20161030_230709000000

 

バックアップをさせるデバイスを追加する。

20161030_230838000000

 

あとは、作成したProfileを使ってバックアップ処理を実行させるだけだ。
スケジュール設定をして定期的なバックアップをさせることも可能。

Webスクレイピングをしているのか、管理画面がHTTPしか対応していないスイッチでもバックアップができるので、スイッチをNetGear機器で統一しているならばおすすめだ。
ベンダーは混在しててもssh接続が可能な機器で構成されているならOxidizedなどを使ったほうがよさそうだ。

NETGEAR スマートスイッチ ギカ8ポート PoE受電 管理機能付 無償永久保証 GS108T-200JPS NETGEAR スマートスイッチ ギカ8ポート PoE受電 管理機能付 無償永久保証 GS108T-200JPS

pythonでIPアドレスからホスト名を逆引きする

$
0
0

pythonで指定したIPアドレスからホスト名を逆引きする場合は、以下のようにすればよい。

import socket
socket.gethostbyaddr(IPアドレス)

[root@BS-PUB-CENT7-02 ~]# python
Python 2.7.5 (default, Sep 15 2016, 22:37:39)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> socket.gethostbyaddr("8.8.8.8")
('google-public-dns-a.google.com', [], ['8.8.8.8'])
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング 退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

『Freenom』で.tkや.cfの無料ドメインを取得する

$
0
0

メールサーバの検証とかで、時折ある程度自由に使えるドメインが欲しくなってくる。
ただ、そのような用途としてドメインをわざわざ取得するのも面倒だし何かいい方法ないかなと思っていたのだが、最近では「.tk」や「.ml」といったドメインであれば(多少の制限はあるようだけど)無料で利用できるようだ。DNSも任意のものが利用できるので、Route53で他のドメインと同じように管理することも可能。

今回は、そういった「.tk」「.ml」ドメインの取得ができるレジストリ『Freenom』で無料ドメインの取得をする。取得できる無料ドメインと有料ドメインの違いなどについてはこちらを参照。無料の場合、ドメイン所有権というよりは利用権といった感じのようだ。まぁ、検証用のサーバで使うとかの用途であれば問題はないだろう。

取得方法は簡単で、まずトップページの検索バーから取得したいドメイン名を(.tkとか含めない形式で)検索する。

20161026_065717000000

 

取得できるドメインが表示されるので、「今すぐ入手!」をクリックして選択状態にする。
選択し終わったら「チェックアウト」をクリックする。

20161026_065956000000

 

選択したドメインについて、DNSはどこか、何か月の更新をするのかを選択する。
12か月までは無料(1年以上の場合は有料)になるので、とりあえず12か月を選択するといいだろう。

20161026_070130000000

 

チェックアウト画面に遷移するので、メールアドレスから新しくアカウントの作成をする。
もしくは、Googleアカウントなどと紐づけてソーシャルサインインできるようにしてやるといいだろう。

20161026_070457000000

 

あとは、住所やパスワード等の必要情報を入力してやればいい。
これで無料ドメインが取得できる。

 

世界中に販路を拡げる 海外Webマーケティングの教科書 世界中に販路を拡げる 海外Webマーケティングの教科書

Pythonから「slackweb」を使ってWebHook経由でSlackにPostする

$
0
0

仕事で、適当な処理をしてSlackにポストするという処理が必要になったので、大した処理でもなかったのでPythonで記述することにした。
で、ほかの処理と出口を揃えたい+Attachmentでちょっとリッチな通知をしたかったので、簡単にWebHookに投げてポストさせられるよう『slack-python-webhook(slackweb)』を利用することにした。

以下、作成時のソースサンプル。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import slackweb

# --- Slack Setting ---
SLACK_WEBHOOK='WebHookのURL'
SLACK_CHANNEL='#test'
SLACK_USER='SlackのPostユーザ'
SLACK_TEXT="Test Text"

# --- Slack Post ---
slack=slackweb.Slack(url=SLACK_WEBHOOK)
attachments=[]
attachment={"pretext": "テストのテキスト",
            "color": "#36a64f",
            "fields":[
                  {
                  "title": "AAA",
                  "value": "123",
                  },
                  {
                  "title": "BBB",
                  "value": "456",
                  }
              ]
            }
attachments.append(attachment)
slack.notify(text=SLACK_TEXT, channel=SLACK_CHANNEL, username=SLACK_USER, attachments=attachments)

 

上記のようなスクリプトを投げた場合、以下のようにSlackに投稿される。

20161101_001623000000_

 

Attachmentについては、いろいろな投稿方法がある。
詳細についてはこちらの公式ドキュメントを見るといいだろう。

 

入門 Python 3 入門 Python 3

bashのワンライナー(シェル芸)でのfor文の記述

$
0
0

bashのワンライナー(シェル芸)でfor文を書く場合は、基本的には以下のように記述する。

for i in {1..5};do echo $i; done

これだが、以下のように実行するコマンド部分を「{}」で囲む記述もできる。
「{ コマンド;}」の形式じゃないとコケるので注意。

for i in {1..5};{ echo $i;}

 

また、以下のようにすることで「while true(yesみたいに繰り返す)」の代わりにすることも可能なようだ。

while true; do echo 1; sleep 1; done # whileで記述した場合
for((;;)){ echo 1;sleep 1; } # forで記述した場合

 

知らなかった。
こんな書き方できるのか。

Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集] Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか 一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]

テキストからモールス信号のwavファイルを生成する『cwwav』コマンド

$
0
0

ボケっとネットサーフィンしてたところ、テキストファイルからモールス信号のwavファイルを作成する『cwwav』コマンドなるものを見かけた。
モールス信号というと漫画とかでしか見たことがないのだが、よもやそれをコマンドから作ろうとは思わなんだ…。

とりあえず、Ubuntu Server 16.04 LTSにこのコマンドをインストールして動かしてみる。

1.インストール

以下のコマンドで、まずコンパイルに必要となるパッケージを導入する。

sudo apt-get install libsndfile-dev libmp3lame-dev git gcc

 

次に、githubからソースを取ってきてコンパイル、インストールする。

git clone https://github.com/sunny256/cwwav
cd cwwav
make
sudo make install

 

これでインストールはできた。

2.使ってみる

さて、それでは実際に使ってみよう。
とりあえず、使用例を参考に以下のようにコマンドを実行する。

echo "SOS" | cwwav --output SOS.wav --frequency=650 --rate=16000 --wpm=20

 

出来上がった「SOS.wav」を再生したところ、確かにそれっぽい音を出すファイルができていた。
“それっぽい”というのが、モールス信号をよく知らないからという理由なのだが…とりあえず映画とかで出てくる音には確かになっていた。
(使いどころがまったくわからないが…)

 

世界のどこでも生き残る 完全サバイバル術 (ナショナルジオグラフィック) 世界のどこでも生き残る 完全サバイバル術 (ナショナルジオグラフィック)

プライベート認証局を構築してLAN内で利用する証明書を発行する

$
0
0

社内や家庭内でSSLを利用する際、オレオレ証明書で信頼されてない状態で利用するとどうしても支障が出る場合がある。
(RestAPIを使っての通信だったりとか)

そんなときは、LAN内にプライベート認証局を構築して、そこから証明書を発行させることで、(クライアント側にCA証明書をインストールする必要はあるが)信頼された証明書として利用することが可能にだ。今回は、CentOS 7上でプライベート認証局の構築と証明書の発行を行う。

 

1.OpenSSLの準備をする

まず、以下のコマンドでOpenSSLをインストールする。

yum install -y openssl

 

プライベートCA認証局を作成するにあたり、CentOS 7では「/etc/pki/tls/」ディレクトリで作業を行う。

[root@BS-PUB-CENT7-01 ~]# ls -la /etc/pki/tls/
合計 12
drwxr-xr-x. 5 root root    76 10月 15 10:41 .
drwxr-xr-x. 9 root root    91  1月  1  2016 ..
lrwxrwxrwx. 1 root root    49  8月 19 08:58 cert.pem -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
drwxr-xr-x. 2 root root   112 10月 15 10:42 certs
drwxr-xr-x. 2 root root    69 10月 15 10:42 misc
-rw-r--r--. 1 root root 10923  9月 27 22:28 openssl.cnf
drwxr-xr-x. 2 root root     6  9月 27 22:39 private

 

2.プライベート認証局の作成

証明書は認可方式なので、一般的には外部の世界的に信頼のおける機関に審査してもらい証明書を発行してもらう必要がある。
この発行機関のことを認証局(Certificate Authority。以下CA)といい、認証局の中でもクライアントに最初からインストールされている最上位の認証局はルート認証局(ルートCA)と呼ばれている。
一般的には、ルート認証局から証明された中間認証局(中間CA)が署名する形で証明書が発行されている。
今回はプライベート認証局なので、ルート認証局のみを構築する…と言いたいところだったのだが、CentOSやUbuntuではなぜか中間CA証明書がないとうまく証明書が信用がされなかった。このため、中間CA証明書についても作成を行う。
なお、ディレクトリについてはルート認証局のファイルはデフォルトで「/etc/pki/CA」となっているのでそのまま、中間CA証明書については「/etc/pki/ICA」とする。

 

2-1.ルートCA証明書の作成

まず、プライベート認証局を作成するスクリプト(/etc/pki/tls/misc/CA)の設定ファイル(/etc/pki/tls/openssl.cnf)を編集する。

・73行目: default_days = 3650
・178行目: nsCertType = server # コメントアウトを解除
・250行目: nsCertType = sslCA, emailCA # コメントアウトを解除

 

次に、以下のコマンドで認証局の作成を開始する。

cd /etc/pki/CA
/etc/pki/tls/misc/CA -newca
[root@BS-PUB-CENT7-01 CA]# /etc/pki/tls/misc/CA -newca
CA certificate filename (or enter to create)
~Enterキーを押下する~
Making CA certificate ...
Generating a 2048 bit RSA private key
..............................................................................+++
..+++
writing new private key to '/etc/pki/CA/private/./cakey.pem'
Enter PEM pass phrase:~ルートCAのパスワードを入力~
Verifying - Enter PEM pass phrase:~ルートCAのパスワードを入力(確認)~
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Tachikawa
Organization Name (eg, company) [Default Company Ltd]:Test Company
Organizational Unit Name (eg, section) []:Test
Common Name (eg, your name or your server's hostname) []:ca-test.blacknon.local
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/./cakey.pem:~ルートCAのパスワードを入力~
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 17850187192760832369 (0xf7b89aad6ebc9171)
        Validity
            Not Before: Nov  4 03:53:05 2016 GMT
            Not After : Nov  4 03:53:05 2019 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Tokyo
            organizationName          = Test Company
            organizationalUnitName    = Test
            commonName                = ca-test.blacknon.local
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                B5:7E:AA:4C:4A:30:B6:69:AA:98:11:C4:F6:CA:EF:73:07:27:44:6F
            X509v3 Authority Key Identifier:
                keyid:B5:7E:AA:4C:4A:30:B6:69:AA:98:11:C4:F6:CA:EF:73:07:27:44:6F

            X509v3 Basic Constraints:
                CA:TRUE
Certificate is to be certified until Nov  4 03:53:05 2019 GMT (1095 days)

Write out database with 1 new entries
Data Base Updated

 

作成されたルート認証局の証明書を配布できるよう、derファイルおよびcrtファイルの作成を行う。

cd /etc/pki/CA
openssl x509 -inform pem -in cacert.pem -outform der -out cacert.der
openssl x509 -in cacert.pem -out cacert.crt

 

2-2.中間認証局の作成

次に、中間認証局の作成をする。
作成前に、中間認証局用のディレクトリ作成およびスクリプト(/etc/pki/tls/misc/ICA)、設定ファイル(/etc/pki/tls/openssl_ica.cnf)の作成・編集を実施する。

mkdir /etc/pki/ICA
cp /etc/pki/tls/openssl{,_ica}.cnf
cp /etc/pki/tls/misc/{,I}CA

 

スクリプト、設定ファイルそれぞれを以下のように編集する。

●/etc/pki/tls/openssl_ica.cnf

・42行目: dir = /etc/pki/ICA
・332行目: dir = /etc/pki/ICA

 

●/etc/pki/tls/misc/ICA

・35行目:
CATOP=/etc/pki/ICA
SSLEAY_CONFIG="-config /etc/pki/tls/openssl_ica.cnf"

 

ファイル編集後、中間認証局の作成を行う。
まずは、中間認証局からルート認証局への署名要求(CSR)を作成する。

cd /etc/pki/ICA
/etc/pki/tls/misc/ICA -newreq
[root@BS-PUB-CENT7-01 ICA]# /etc/pki/tls/misc/ICA -newreq
Generating a 2048 bit RSA private key
............+++
...............................................................................................+++
writing new private key to 'newkey.pem'
Enter PEM pass phrase:~中間CAのパスワードを入力~
Verifying - Enter PEM pass phrase:~中間CAのパスワードを入力~
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:ICA TEst
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:ica-test.blacknon.local
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Request is in newreq.pem, private key is in newkey.pem

 

ルート認証局でCSRへの署名を行う。

/etc/pki/tls/misc/CA -signCA
[root@BS-PUB-CENT7-01 ICA]# /etc/pki/tls/misc/CA -signCA
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/cakey.pem:~中間CAのパスワードを入力~
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 17850187192760832371 (0xf7b89aad6ebc9173)
        Validity
            Not Before: Nov  4 06:29:43 2016 GMT
            Not After : Nov  2 06:29:43 2026 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Tokyo
            localityName              = Default City
            organizationName          = ICA TEst
            commonName                = ica-test.blacknon.local
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                F8:F8:13:E1:EC:D5:40:0E:C0:18:B6:B7:6C:9E:42:A2:CA:59:16:C9
            X509v3 Authority Key Identifier:
                keyid:B5:7E:AA:4C:4A:30:B6:69:AA:98:11:C4:F6:CA:EF:73:07:27:44:6F

            X509v3 Basic Constraints:
                CA:TRUE
Certificate is to be certified until Nov  2 06:29:43 2026 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Signed CA certificate is in newcert.pem

 

中間CA証明書の作成をする。

/etc/pki/tls/misc/ICA -newca # /etc/pki/ICA/newcert.pemを指定する
mv /etc/pki/ICA/newkey.pem /etc/pki/ICA/private/cakey.pem
openssl x509 -in newcert.pem -out icacert.crt

 

配布用のderファイルを作成する。

openssl x509 -inform pem -in newcert.pem -outform der -out icacert.der

 

この時点で、後で必要になる以下のファイルが作成された。

  • /etc/pki/CA/cacert.crt … ルートCA証明書(クライアントなどに信頼されたルート証明書としてインストールする)
  • /etc/pki/CA/cacert.der … ルートCA証明書(クライアントなどに信頼されたルート証明書としてインストールする)
  • /etc/pki/ICA/icacert.crt … 中間CA証明書(クライアントなどにインストールする)
  • /etc/pki/ICA/icacert.der … 中間CA証明書(クライアントなどにインストールする)

3.サーバ証明書の作成・ルート認証局の署名を実施

次に、サーバ証明書を作成する。
以下のコマンドを実行し、秘密鍵の作成を実施する。

cd /etc/pki/tls/private
openssl genrsa -aes256 2048 > server.key
cp server.key{,.org}
openssl rsa -in server.key.org -out server.key
[root@BS-PUB-CENT7-01 private]# openssl genrsa -aes256 2048 > server.key
Generating RSA private key, 2048 bit long modulus
..................+++
.........................+++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:
[root@BS-PUB-CENT7-01 private]# cp server.key{,.org}
[root@BS-PUB-CENT7-01 private]# openssl rsa -in server.key.org -out server.key
Enter pass phrase for server.key.org:
writing RSA key

 

作成完了後、署名要求(CSR)を作成する。

openssl req -new -key server.key -out newreq.pem
[root@BS-PUB-CENT7-01 private]# openssl req -new -key server.key -out newreq.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Tachikawa
Organization Name (eg, company) [Default Company Ltd]:Server Company
Organizational Unit Name (eg, section) []:None
Common Name (eg, your name or your server's hostname) []:BS-PUB-STACKSTORM.BLACKNON.LOCAL #SSLで利用するホスト名を入れる
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

 

CSRの作成後、中間CAから署名を実施して証明書を作成する。

/etc/pki/tls/misc/ICA -sign
[root@BS-PUB-CENT7-01 private]# openssl req -new -key server.key -out newreq.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Tachikawa
Organization Name (eg, company) [Default Company Ltd]:Server Company
Organizational Unit Name (eg, section) []:None
Common Name (eg, your name or your server's hostname) []:BS-PUB-STACKSTORM.BLACKNON.LOCAL
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@BS-PUB-CENT7-01 private]# /etc/pki/tls/misc/ICA -sign
Using configuration from /etc/pki/tls/openssl_ica.cnf
Enter pass phrase for /etc/pki/ICA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 17850187192760832372 (0xf7b89aad6ebc9174)
        Validity
            Not Before: Nov  4 06:41:15 2016 GMT
            Not After : Nov  2 06:41:15 2026 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Tokyo
            localityName              = Tachikawa
            organizationName          = Server Company
            organizationalUnitName    = None
            commonName                = BS-PUB-STACKSTORM.BLACKNON.LOCAL
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Cert Type:
                SSL Client, S/MIME
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                EE:03:EA:66:E8:E4:7E:E1:FB:83:F6:65:9B:8E:9F:55:0E:6A:9A:D8
            X509v3 Authority Key Identifier:
                keyid:F8:F8:13:E1:EC:D5:40:0E:C0:18:B6:B7:6C:9E:42:A2:CA:59:16:C9

Certificate is to be certified until Nov  2 06:41:15 2026 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 17850187192760832372 (0xf7b89aad6ebc9174)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=JP, ST=Tokyo, L=Default City, O=ICA TEst, CN=ica-test.blacknon.local
        Validity
            Not Before: Nov  4 06:41:15 2016 GMT
            Not After : Nov  2 06:41:15 2026 GMT
        Subject: C=JP, ST=Tokyo, L=Tachikawa, O=Server Company, OU=None, CN=BS-PUB-STACKSTORM.BLACKNON.LOCAL
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:bb:49:81:14:5d:06:2a:44:84:a4:04:35:67:09:
                    <略>
                    f1:28:26:fd:a8:32:dc:67:f5:f8:9a:54:4c:b8:3e:
                    e0:b9
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Cert Type:
                SSL Client, S/MIME
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                EE:03:EA:66:E8:E4:7E:E1:FB:83:F6:65:9B:8E:9F:55:0E:6A:9A:D8
            X509v3 Authority Key Identifier:
                keyid:F8:F8:13:E1:EC:D5:40:0E:C0:18:B6:B7:6C:9E:42:A2:CA:59:16:C9

    Signature Algorithm: sha256WithRSAEncryption
         62:4e:d3:7a:26:d5:62:de:30:fb:6d:53:64:50:32:d1:07:7a:
           <略>
         c4:4e:17:2a:06:50:80:be:70:66:2d:99:03:d6:22:59:7a:11:
         a2:d5:4b:50
-----BEGIN CERTIFICATE-----
MIIEATCCAumgAwIBAgIJAPe4mq1uvJF0MA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV
<略>
+bS0HHwWJ53Uar7oW78SpjpN23aP/Z9rPJKOoJ0CHJb4qP2CpouRv7uX0/oh3IDE
ThcqBlCAvnBmLZkD1iJZehGi1UtQ
-----END CERTIFICATE-----
Signed certificate is in newcert.pem

 

これで、新規の証明書「newcert.pem」が作成できた。
このままだとわかりにくいので、名称を変更しておく。

mv /etc/pki/tls/private/newcert.pem /etc/pki/tls/certs/
cd /etc/pki/tls/certs/
openssl x509 -in newcert.pem -out server.crt

 

この処理でできたファイルは以下。

  • /etc/pki/tls/certs/server.crt … サーバ証明書(サーバ側で使用する)
  • /etc/pki/tls/private/server.key … サーバ秘密鍵(サーバ側で使用する)

 

これで、必要になる証明書は作成できた。

 

4.Webサーバで証明書の設定

作成された証明書をWebサーバで利用するため、以下の設定を行う。

4-1.Apacheの場合

Apacheの場合は、基本的には「/etc/httpd/conf.d/ssl.conf」に以下のように設定をしてやればよい。

SSLCertificateFile /PATH/server.crt
SSLCertificateKeyFile /PATH/server.key
SSLCertificateChainFile /PAHT/icacert.crt

 

設定変更後はApacheの再起動を行う。

 

4-2.Nginxの場合

Nginxの場合も、Apacheと同様となる。
以下のように設定ファイル「/etc/nginx/conf.d/xxxx.conf」を編集する。
なお、証明書はサーバ証明書+中間CA証明書の結合をしたファイルが必要になるため、事前に以下のコマンドでファイルを結合しておく。

cat /etc/pki/tls/certs/server.crt /etc/pki/ICA/icacert.crt > /etc/pki/tls/certs/server.nginx.crt
ssl_certificate /PATH/server.nginx.crt;
ssl_certificate_key /PATH/server.key;

 

設定変更後はNginxの再起動を行う。

 

5.クライアント側へルート証明書のインストール

各種OSでの配布したルート証明書のインストール方法は、以下のようになっている。

5-1.Windowsの場合

作成した「cacert.der」をダブルクリックし、「証明書のインストール」でインストールする。
なお、インストール時には「現在のユーザ」を使い、かつ証明書ストアは「信頼されたルート証明機関」を選択する。

 

5-2.Mac OS Xの場合

「アプリケーション」>「ユーティリティ」>「キーチェーンアクセス.app」からキーチェーンアクセスを開き、「cacert.der」を読み込む。
読み込んだ後は、「常に信頼する」をしておけばよい。

 

5-3.CentOS 7の場合

CentOS 7の場合は、以下のようにする。

cp /PATH/cacert.crt /usr/share/pki/ca-trust-source/anchors
cp /PATH/icacert.crt /usr/share/pki/ca-trust-source/anchors
update-ca-trust extract

 

5-4.Ubuntu Server 16.04の場合

Ubuntu Server 16.04 の場合、以下のようにする。

sudo cp /PATH/cacert.crt /usr/local/share/ca-certificates/
sudo cp /PATH/icacert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

 

これで、プライベート認証局の証明書がクライアントで利用できるようになった。

【参考】

 

マスタリングTCP/IP SSL/TLS編 マスタリングTCP/IP SSL/TLS編

プライベート認証局のCA証明書を追加する(Windows・Mac OS X・CentOS 7・Ubuntu Server16.04)

$
0
0

前回記述したプライベート認証局の構築から、クライアントへのCA証明書のインストール方法のみ抜粋。
各種OSでの配布したルート証明書のインストール方法は、以下のようになっている。

1.Windowsの場合

作成したルートCA証明書をダブルクリックし、「証明書のインストール」でインストールする。
なお、インストール時には「現在のユーザ」を使い、かつ証明書ストアは「信頼されたルート証明機関」を選択する。

コマンドでルート証明書をインストールする場合は、以下のようにする。

certutil -addstore -f "ROOT" ルートCA証明書

 

2.Mac OS Xの場合

「アプリケーション」>「ユーティリティ」>「キーチェーンアクセス.app」からキーチェーンアクセスを開き、作成したルートCA証明書を読み込む。
読み込んだ後は、「常に信頼する」をしておけばよい。

コマンドで追加する場合は、以下。

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ルートCA証明書

3.CentOS 7の場合

CentOS 7の場合は、以下のようにする。

cp ルートCA証明書 /usr/share/pki/ca-trust-source/anchors
update-ca-trust extract

 

4.Ubuntu Server 16.04の場合

Ubuntu Server 16.04 の場合、以下のようにする。

sudo ルートCA証明書 /usr/local/share/ca-certificates/
sudo update-ca-certificates

 

 

Graylogから特定のログをトリガーにアラートをStackStormのWebHookにポストさせる

$
0
0

Graylogで、StreamのCallbackで「HTTP Alarm Callback」というのがバンドルされているのだが、これを使うことでStackStormのWebHookにログの内容をポストできるようなので使ってみることにした。
なお、StackStormのある環境はLAN内となるので、事前にプライベート認証局で証明書を発行してStackStormに設定しておく必要がある。
プライベート認証局を用いたSSL証明書の発行については、こちらを参考に設定してもらいたい。

1.ルートCA証明書のインストール

まずは、StackStorm側で設定したSSLをGraylogで利用できるよう、Javaが信頼できる証明書としてCA証明書を登録してやる必要がある。

sudo keytool -importcert -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -storepass changeit -alias stackstorm_ca -file cacert.crt # ルートCA証明書
sudo keytool -importcert -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -storepass changeit -alias stackstorm_ica -file icacert.crt # 中間CA証明書
sudo systemctl restart graylog-server

 

これで、GraylogからStackStormのWebHookにポストができるようになった。

2.『HTTP Alerm Callback』の設定

次に、任意のStreamのアラートで『HTTP Alerm Callback』の設定を行う。
Callbacksで『HTTP Alerm Callback』を選択し、Post先のURLとして以下を指定してやる。

https://BS-PUB-STACKSTORM.BLACKNON.LOCAL/api/v1/webhooks/WebHook名?st2-api-key=APIキー

20161106_004842000000

 

あとは、アラート対象となるログが発生したら自動的にStackStormのWebHookにJSON形式でポストされるようになる。
ポストされるJSONについては、こちらを参考にするとよいだろう。

 

3.StackStorm側でのRules作成

StackStormのWebHookを使ったRuleの作成については、以前こちらに記述しているのでそれを元に作成すればよい。
GraylogからPostされたjsonの形式からデータを抽出する場合は、「trigger.body.~」を頭に追加してやればよい。

これで、GraylogのログをトリガーにStackStormで処理が行えるようになる。

 

DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する (DEV Engineer’s Books) DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する (DEV Engineer’s Books)

Red Hat SatelliteのOSS版『Spacewalk』をCentOS 7にインストールしてRHEL系OSを統合管理する

$
0
0

RHELの運用管理ソフトウェアとして『Redhat Satellite』というのがあるのだが、これがあると各サーバのパッケージのバージョンや設定の管理などを統合管理できる。
で、CentOSなどでこれと同じようなことをしたいなぁ…という場合はSatelliteのOSS実装である『Spacewalk』を入れるといいだろう。

今回は、この『Spacewalk』をCentOS 7にインストールする。
なお、事前にSELinuxとFirewalldは停止しているものとし、今回の検証でのサーバ名は「BS-PUB-SPACEWALK-M.BLACKNON.LOCAL」とする。

1.各種リポジトリの準備

まず、以下のコマンドでepelリポジトリを利用できるようにする。

yum install -y epel-release

 

Jpackageのリポジトリを設定する。

cat > /etc/yum.repos.d/jpackage-generic.repo << EOF
[jpackage-generic]
name=JPackage generic
mirrorlist=http://www.jpackage.org/mirrorlist.php?dist=generic&type=free&release=5.0
enabled=1
gpgcheck=1
gpgkey=http://www.jpackage.org/jpackage.asc
EOF

 

Spacewalkのリポジトリを導入する。

rpm -Uvh http://yum.spacewalkproject.org/2.3/RHEL/7/x86_64/spacewalk-repo-2.3-4.el7.noarch.rpm

 

最後に、リポジトリのリスト出力とアップデートを行う。

yum repolist && yum update -y

2.Spacewalkのインストール

次に、Spacewalkのインストールを行う。
SpacewalkではデータベースにOracle DatabaseもしくはPostgreSQLを利用できるのだが、今回はPostgreSQLを利用する。
以下のコマンドでインストールできる(ちょっと長い)。

yum install -y spacewalk-setup-postgresql
yum install -y spacewalk-postgresql
yum install -y geronimo-jta-1.1-api.noarch

 

これでパッケージはインストールできた。
次に、Spacewalkの初期設定をする。まず、「/etc/hosts」に自信のホスト名でアクセスできるようにする。

●/etc/hosts

IPアドレス BS-PUB-SPACEWALK-M.BLACKNON.LOCAL

 

spacewalk-setup --disconnected
[root@BS-PUB-SPACEWALK ~]# spacewalk-setup --disconnected
* Setting up SELinux..
** Database: Setting up database connection for PostgreSQL backend.
** Database: Installing the database:
** Database: This is a long process that is logged in:
** Database:   /var/log/rhn/install_db.log
*** Progress: ###
** Database: Installation complete.
** Database: Populating database.
*** Progress: ############################
* Configuring tomcat.
* Setting up users and groups.
** GPG: Initializing GPG and importing key.
** GPG: Creating /root/.gnupg directory
You must enter an email address.
Admin Email Address? <メールアドレス>
* Performing initial configuration.
* Activating Spacewalk.
** Loading Spacewalk Certificate.
** Verifying certificate locally.
** Activating Spacewalk.
* Configuring apache SSL virtual host.
Should setup configure apache's default ssl server for you (saves original ssl.conf) [Y]? <Enter>
** /etc/httpd/conf.d/ssl.conf has been backed up to ssl.conf-swsave
* Configuring jabberd.
* Creating SSL certificates.
CA certificate password? <CAのパスワード>
Re-enter CA certificate password? <CAのパスワード(確認)>
Organization? <組織名>
Organization Unit [BS-PUB-SPACEWALK.BLACKNON.LOCAL]? <Enter>
Email Address [メールアドレス]? <Enter>
City? <都道府県(Tokyo)>
State? <市区町村(Tachikawa)>
Country code (Examples: "US", "JP", "IN", or type "?" to see a list)? <JP>
** SSL: Generating CA certificate.
** SSL: Deploying CA certificate.
** SSL: Generating server certificate.
** SSL: Storing SSL certificates.
* Deploying configuration files.
* Update configuration in database.
* Setting up Cobbler..
Cobbler requires tftp and xinetd services be turned on for PXE provisioning functionality. Enable these services [Y]? <Enter>
* Restarting services.
Installation complete.
Visit https://BS-PUB-SPACEWALK.BLACKNON.LOCAL to create the Spacewalk administrator account.

 

これで、無事にSpacewalkの初期設定が完了した。
あとは、表示されているようにブラウザからSpacewalkをインストールしたサーバにアクセスする。

ブラウザからアクセスすると、管理ユーザの作成画面に推移するので作成を行う。

20161107_081853000000

 

ログイン後の画面がこちら。

20161107_083237000000

 

以上でインストールは完了。
次回以降に管理サーバとしてCentOSを追加して実際にSpacewalkから管理をさせる。

 

新しいLinuxの教科書 新しいLinuxの教科書

『Spacewalk』に管理対象サーバ(クライアント)を追加する

$
0
0

前回Spacewalkのインストールを行ったので、今回はそのSpacewalkに管理対象ノード(クライアント)を追加する。
Spacewalkで管理するクライアントには専用のパッケージをインストールする必要がある。今回は、CentOS 7をクライアントとして追加する。

なお、クライアント側がサーバに登録されるよう、事前にサーバ側で設定を行っておく。

1.Spacewalkサーバ側での設定

Spacewalkで[チャンネル] > [ソフトウェアチャンネルの管理]を選択し、「チャンネルの作成」を押下する。

20161108_092436000000

 

[ソフトウェアチャンネルの作成]画面に遷移するので、チャンネル名やチャンネルラベルを指定して作成を行う。
基本的に、以下の画面に表示されている範囲内だけ入力してやればいいだろう。入力が完了したら、一番下にある「チャンネルの作成」ボタンを押下する。

20161108_092933000000

 

チャンネル作成後、クライアントから利用するActivationKeyを作成する。
[システム] > [アクティベーションキー]を選択し、「キーの作成」をクリックする。

20161108_093235000000

 

詳細(キーの名称)・キー名の入力、ベースチャンネルを選択して「アクティベーションキーの作成」を押下する。

20161108_094040000000

 

アクティベーションキーが作成できたら、サーバ側での設定は完了。

 

2.Spacewalkクライアント側の作業

まずはクライアント側にパッケージの導入をする。
以下のコマンドをクライアントサーバで実行してリポジトリを追加する。
(リポジトリのパッケージについては、こちらで最新版を確認すること。)

rpm -Uhv http://yum.spacewalkproject.org/latest/RHEL/7/x86_64/spacewalk-client-repo-2.5-3.el7.noarch.rpm
yum install -y epel-release

次に、以下のコマンドでクライアント用のツールを導入する。

yum install -y rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin

 

クライアント用のツールを導入したら、以下のコマンドでSpacewalkサーバから証明書を取得する。

yum install -y http://<Spacewalkサーバのホスト名orIPアドレス>/pub/rhn-org-trusted-ssl-cert-1.0-1.noarch.rpm
rhnreg_ks --serverUrl=http://<Spacewalkサーバのホスト名orIPアドレス>/XMLRPC --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --activationkey=<サーバのアクティベーションキー名>

 

これで、クライアント側の作業は完了。

 

3.Spacewalkからクライアントが追加されていることを確認する

最後に、Spacewalkサーバからクライアントが追加されていることを確認しよう。
正常にクライアントが追加されていれば、[システム] > [概要]から追加したクライアントが表示されているはずだ。

20161108_094901000000

20161108_094909000000

 

[ソフトウェア] > [パッケージ] > [一覧表示/削除]から、対象のクライアントにインストールされているパッケージの確認ができる。

20161108_095325000000

 

新しいLinuxの教科書 新しいLinuxの教科書

コンソールからグローバルIPアドレスがどこの国のものなのか確認する

$
0
0

「geoiplookup」というコマンドを使うことで、コンソール上からグローバルIPがどこの国のものなのか見れるようなので、コマンドのインストール方法と簡単な使い方について備忘として残しておく。
コマンドのインストール方法は、以下のように行う。

yum install GeoIP # CentOSなどRHEL系の場合
sudo apt install geoip-bin # Ubuntu/Debian系の場合
brew install geoip # MacOS Xの場合

 

以上でインストールができる。
使い方としては、以下のようにコマンドを実行することでそのグローバルIPアドレスがどの国のものなのか確認できる。

geoiplookup IPアドレス
[root@BS-PUB-CENT7-01 ~]# geoiplookup 8.8.8.8
GeoIP Country Edition: US, United States

使用例としては、以下のようにtracerouteと組み合わせることでどこの国のIPアドレスを通っているのかを確認できる。

[root@BS-PUB-CENT7-01 ~]# traceroute -n 8.8.8.8 | awk 'NR>1{print $2}' | xargs -n1 -I{} sh -c 'echo {}\($(geoiplookup {})\)'
172.XXX.XXX.XXX(GeoIP Country Edition: IP Address not found)
10.XXX.XXX.XXX(GeoIP Country Edition: IP Address not found)
202.223.XXX.XXX(GeoIP Country Edition: JP, Japan)
202.223.XXX.XXX(GeoIP Country Edition: JP, Japan)
202.213.XXX.65(GeoIP Country Edition: JP, Japan)
202.213.194.34(GeoIP Country Edition: JP, Japan)
72.14.195.194(GeoIP Country Edition: US, United States)
108.170.242.161(GeoIP Country Edition: US, United States)
209.85.251.223(GeoIP Country Edition: US, United States)
8.8.8.8(GeoIP Country Edition: US, United States)

 

なお、IPアドレスに関するデータのアップデートをする場合は、以下のコマンドで行える。

geoipupdate
[root@BS-PUB-CENT7-01 ~]# geoipupdate
MD5 Digest of installed database is 953c073031a08211d72daeec0551a20d
/usr/share/GeoIP/GeoLiteCountry.dat is up to date, no updates required
GeoIP Database up to date
MD5 Digest of installed database is 45180b3c2a273267b28410b74b468b01
/usr/share/GeoIP/GeoLiteCity.dat is up to date, no updates required
GeoIP Database up to date

 

完全マスターしたい人のためのイーサネット&TCP/IP入門 完全マスターしたい人のためのイーサネット&TCP/IP入門

Linuxでファイルを比較して片方にしかない内容のみ抜き出す

$
0
0

コンソール上でファイルを比較した際、片方にしかない行のみを抜き出したい場合があったので備忘として残しておく。

1.commコマンドを使う

一番簡単なのが、commコマンドを使ってやる方法だろう。
commコマンドでは、比較するファイルを引数で指定することで以下のように出力される。

comm --nocheck-order ファイル1 ファイル2

20161118_225417000000

blacknon@BS-PUB-UBUNTU-01:~$ cat /tmp/test1.txt
aaaa
bbbb
cccc
dddd

blacknon@BS-PUB-UBUNTU-01:~$ cat /tmp/test2.txt
aaaa
9999
cccc
dddd
eeee
dddd
blacknon@BS-PUB-UBUNTU-01:~$ comm --nocheck-order /tmp/test1.txt /tmp/test2.txt
                aaaa
        9999
bbbb
                cccc
                dddd

        eeee
        dddd

 

少しわかりやすいように色のついた枠で囲っているのだが、一番左がファイル1のみに存在する行、真ん中がファイル2のみに存在する行。そして最後の列が共通行だ。
で、このcommコマンドでは、「-列番号」でその列を除外して出力することができる。
つまり、ファイル2にのみ存在する行を出力したい場合は、以下のようにする。

comm -13 --nocheck-order ファイル1 ファイル2
blacknon@BS-PUB-UBUNTU-01:~$ comm -13 --nocheck-order /tmp/test1.txt /tmp/test2.txt
9999
eeee
dddd

2.diffコマンドで抽出する

commコマンドではなく、diffコマンドを使って同様のことを行う場合、少し記述が長くなる。
diffコマンドでは、「-y」オプションを付与することでファイルを並列に出力して差異を確認することができる。

diff -y ファイル1 ファイル2

20161119_000655000000

blacknon@BS-PUB-UBUNTU-01:~$ diff -y /tmp/test1.txt /tmp/test2.txt
aaaa                                                            aaaa
bbbb                                                          | 9999
cccc                                                            cccc
dddd                                                            dddd
                                                              | eeee
                                                              > dddd

 

で、この状態で出力をすると真ん中の列に「<|>」といった記号でどういった内容の行なのかを表現してくれてるので、片方にしかない行を表示させる場合はそれを利用すればよい。
この際、「changed-group-format」オプションでこの記号を指定してやることで、どちらかにしかない行を表示させることができる。以下のコマンドでは、ファイル2にしかない行を表示させている。

diff --changed-group-format='%>' --unchanged-group-format='' ファイル1 ファイル2
blacknon@BS-PUB-UBUNTU-01:~$ diff --changed-group-format='%>' --unchanged-group-format='' /tmp/test1.txt /tmp/test2.txt
9999
eeee
dddd

 

入門者のLinux 素朴な疑問を解消しながら学ぶ (ブルーバックス) 入門者のLinux 素朴な疑問を解消しながら学ぶ (ブルーバックス)

コンソール上に一行のお天気情報を出力する『AnsiWeather』

$
0
0

調べものしてたところ、コンソール上に一行でお天気情報の出力を行うコマンド『AnsiWeather』なるものを見かけたので、少し触ってみることにする。
シェルスクリプトで書かれているようだ。bcコマンド、jqコマンドが必要になる。

インストール方法は簡単で、以下のコマンドで行える。

git clone https://github.com/fcambus/ansiweather
cp ansiweather/ansiweather /usr/local/bin/

もしくは、MacやUbuntuであればbrewやapt-getでインストールが可能だ。
インストール後は、以下のようにコマンドを実行することで各地の天気を出力することができる。

ansiweather
ansiweather -l tokyo,jp

screenshot_from_2016-11-19-194610

 

初期設定だとポーランドの都市になっているようなので、設定ファイル(~/.ansiweatherrc)を作成して指定することでTokyoをデフォルトにすることもできるようだ。

図解・気象学入門 原理からわかる雲・雨・気温・風・天気図 (ブルーバックス) 図解・気象学入門 原理からわかる雲・雨・気温・風・天気図 (ブルーバックス)

digコマンドで覚えておきたい使い方11個

$
0
0

ドメインやホスト名に関する情報をDNSサーバから取得するコマンドといえば、やはりdigコマンドだろう。
いろいろとオプションのあるdigコマンドだが、今回は普段使ってて便利なオプションや使い方について残しておくことにする。

1.基本的な使い方

基本的には、以下のように該当のドメインを指定して名前解決をする際に利用する。

dig ドメイン名
blacknon@BS-PUB-UBUNTU-01:~$ dig orebibou.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> orebibou.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59998
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;orebibou.com. IN A

;; ANSWER SECTION:
orebibou.com. 25551 IN A 157.112.152.17

;; Query time: 0 msec
;; SERVER: XXX.XXX.XXX.XXX#53(XXX.XXX.XXX.XXX)
;; WHEN: Sun Nov 20 08:57:31 JST 2016
;; MSG SIZE rcvd: 46

 

この際、細かい情報(Query timeとか)は不要で、ANSWER SECTIONだけが欲しい場合は、以下のようにコマンドを実行する。

dig ドメイン名 +noall +answer
blacknon@BS-PUB-UBUNTU-01:~$ dig orebibou.com +noall +answer

; <<>> DiG 9.10.3-P4-Ubuntu <<>> orebibou.com +noall +answer
;; global options: +cmd
orebibou.com. 25038 IN A 157.112.152.17

 

2.逆引きをする

digでIPアドレスからドメインの逆引きを行う場合、オプションなしだとin-addr.arpa形式(IPv6の場合はip6.arpa形式)で指定する必要があるのだが、それだといろいろ面倒。
普通にIPアドレスを指定して逆引きを行う場合は「-x」オプションを用いる。

dig IPアドレス(逆順).in-addr.arpa. ptr
dig -x IPアドレス
blacknon@BS-PUB-UBUNTU-01:~$ # 172.28.0.170の情報を取得する場合
blacknon@BS-PUB-UBUNTU-01:~$ dig 170.0.28.172.in-addr.arpa. ptr +noall +answer

; <<>> DiG 9.10.3-P4-Ubuntu <<>> 170.0.28.172.in-addr.arpa. ptr +noall +answer
;; global options: +cmd
170.0.28.172.in-addr.arpa. 0    IN      PTR     BS-PUB-REDMINE.
blacknon@BS-PUB-UBUNTU-01:~$ dig -x 172.28.0.170 +noall +answer

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 172.28.0.170 +noall +answer
;; global options: +cmd
170.0.28.172.in-addr.arpa. 0    IN      PTR     BS-PUB-REDMINE.

 

3.MXレコードやNSレコードを取得する

普通にdigコマンドを実行しただけだと、Aレコードしか出力されない。
MXレコードやNSレコードについて取得する場合は、以下のようにコマンドを実行する。

dig TYPE ドメイン名
blacknon@BS-PUB-UBUNTU-01:~$ dig MX orebibou.com +noall +answer

; <<>> DiG 9.10.3-P4-Ubuntu <<>> MX orebibou.com +noall +answer
;; global options: +cmd
orebibou.com.           8622    IN      MX      0 orebibou.com.
blacknon@BS-PUB-UBUNTU-01:~$ dig NS orebibou.com +noall +answer

; <<>> DiG 9.10.3-P4-Ubuntu <<>> NS orebibou.com +noall +answer
;; global options: +cmd
orebibou.com.           86399   IN      NS      ns4.xserver.jp.
orebibou.com.           86399   IN      NS      ns3.xserver.jp.
orebibou.com.           86399   IN      NS      ns1.xserver.jp.
orebibou.com.           86399   IN      NS      ns5.xserver.jp.
orebibou.com.           86399   IN      NS      ns2.xserver.jp.
blacknon@BS-PUB-UBUNTU-01:~$ dig TXT orebibou.com +noall +answer

; <<>> DiG 9.10.3-P4-Ubuntu <<>> TXT orebibou.com +noall +answer
;; global options: +cmd

 

すべての情報を一括で取得する場合は、ANYを指定する。

dig ANY ドメイン名
blacknon@BS-PUB-UBUNTU-01:~$ dig ANY orebibou.com +noall +answer

; <<>> DiG 9.10.3-P4-Ubuntu <<>> ANY orebibou.com +noall +answer
;; global options: +cmd
orebibou.com.           86389   IN      NS      ns3.xserver.jp.
orebibou.com.           86389   IN      SOA     ns1.xserver.jp. root.sv0.xserver.jp. 0 10800 3600 604800 3600
orebibou.com.           86389   IN      NS      ns1.xserver.jp.
orebibou.com.           86389   IN      NS      ns2.xserver.jp.
orebibou.com.           86389   IN      NS      ns5.xserver.jp.
orebibou.com.           86389   IN      MX      0 orebibou.com.
orebibou.com.           86389   IN      NS      ns4.xserver.jp.
orebibou.com.           86389   IN      A       157.112.152.17

 

4.IPアドレス、ホスト名のみを取得する

スクリプトなどで使う際、IPアドレスやホスト名のみを返してほしい場合がある。
そんな時は、「+short」を付与することで対応可能だ。

dig ドメイン名 +short
dig -x ドメイン名 +short #逆引きの場合
blacknon@BS-PUB-UBUNTU-01:~$ dig orebibou.com +short
157.112.152.17
blacknon@BS-PUB-UBUNTU-01:~$ dig -x 172.28.0.170 +short
BS-PUB-REDMINE.

5.参照するDNSサーバを指定する

参照するDNSサーバを指定する場合は、「@DNSサーバ(IPアドレス)」で行える。

blacknon@BS-PUB-UBUNTU-01:~$ dig @8.8.8.8 orebibou.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @8.8.8.8 orebibou.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22790
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;orebibou.com. IN A

;; ANSWER SECTION:
orebibou.com. 78580 IN A 157.112.152.17

;; Query time: 37 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Nov 20 15:25:22 JST 2016
;; MSG SIZE rcvd: 57

 

6.TCPで問い合わせを行う

通常、digではUDPでの問い合わせを行っているのだが、応答サイズが512バイトを超える場合はTCPでの問い合わせに切り替わるようになっている。
これを、最初からTCPでの問い合わせを行わせる場合は「+vc」オプションを付与する。

dig ドメイン名 +vc

 

7.再起問い合わせを行わない

対象となるDNSサーバで保持しているキャッシュでのみ問い合わせを行う(再起問い合わせを行わない)場合は、「+norecurse」オプションを付与する。

dig ドメイン名 +norecurse

 

8.ルートDNSから確認を行う

ルートDNSから名前解決の流れを確認する場合は、「+trace」オプションを付与する。

dig ドメイン名 +trace
blacknon@BS-PUB-UBUNTU-01:~$ dig orebibou.com +noall +trace +answer

; <<>> DiG 9.10.3-P4-Ubuntu <<>> orebibou.com +noall +trace +answer
;; global options: +cmd
. 34616 IN NS a.root-servers.net.
. 34616 IN NS b.root-servers.net.
. 34616 IN NS c.root-servers.net.
. 34616 IN NS d.root-servers.net.
. 34616 IN NS e.root-servers.net.
. 34616 IN NS f.root-servers.net.
. 34616 IN NS g.root-servers.net.
. 34616 IN NS h.root-servers.net.
. 34616 IN NS i.root-servers.net.
. 34616 IN NS j.root-servers.net.
. 34616 IN NS k.root-servers.net.
. 34616 IN NS l.root-servers.net.
. 34616 IN NS m.root-servers.net.
. 34616 IN RRSIG NS 8 0 518400 20161129170000 20161116160000 39291 . GAH8f/1gyiRBYZJW26DiCTkZQNKROfEW12L3GhdZ6Z01RLmuz5vTfrCg MmkhynOjVZ7z7egke6G4g+gLdKpigv+bdmKihhLJRrSBm/gMpvSqDz+1 gaJib1kGFjzNzlZpMtzTSjn7FgvCfaYUkMl6uCS4di0cgJUyNkXeCrys ipmqatYSjFW8DNNevTQxLZ+PyAXTa8JFeDxTAjhqBNnAa0gkOda/D2w3 pjpuKgr3O7y3vy4ZtEGU6N4Y+AnBwFxRvPsWUss1vDJLfh9jpyHaBgyA 4TGWgfFJkwlpxKNTZ4bLHT2yCpbwrE6QGgm/gxC45TFGLcmpf8RTNlkQ rkGAKA==
;; Received 525 bytes from XXX.XXX.XXX.XXX#53(XXX.XXX.XXX.XXX) in 4 ms

com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com. 86400 IN RRSIG DS 8 1 86400 20161203050000 20161120040000 39291 . NruSInD5nVbfdXxwQfcGy/rPx0k2SjXicq7cm60ENmpPXz3cGBn7Bxbg qOg+t9JSpCkh29BzwxNwKmOzjCAeUciN7huzVbMt2bdDcLgImPesmIdH x+O4o7Nv1AViFbhEvDZ7ekMq7f9u9+zF36gdnPFPHdUTqWDQbAD4DekZ A1cFKOHQ7qkj2diOkvAx8va7+a2OxQQAfABVwKL7Fn8IvQe5TuUbmBWT Exvm6A9AMCamOMF90EJgSB8ZztbjaQ35TzuFuaUwblWTkGexqnfSCLwk IZsc4atbggFAG4g4KW7H0I+Zd+Cly11sfh/QYCEN146wubarNGYMKOuS rtRxsg==
;; Received 864 bytes from 192.112.36.4#53(g.root-servers.net) in 11 ms

orebibou.com. 172800 IN NS ns1.xserver.jp.
orebibou.com. 172800 IN NS ns2.xserver.jp.
orebibou.com. 172800 IN NS ns3.xserver.jp.
orebibou.com. 172800 IN NS ns4.xserver.jp.
orebibou.com. 172800 IN NS ns5.xserver.jp.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20161126054847 20161119043847 6404 com. CX+Ran2nMh1niLakNtUZGHyQkL/BmsA4rve0i9eim5lbPoai2S/oRt6M UjfjAV0RkolD2YTiUXtucIAANQEa6H+JTXVNSRPMXOGeCdErUhTA24hC yzkAWjIZAyyrXyJgesqmFtJCpsnhINZ8AX5dIGxErLv5kluB7MdC7cPk XS0=
POM0E9T9KRVDHN1HO3U4RIR8M8T9TD3L.com. 86400 IN NSEC3 1 1 0 - POMHEVU7A7D1H8GPQH1U7KMT6DP8NR13 NS DS RRSIG
POM0E9T9KRVDHN1HO3U4RIR8M8T9TD3L.com. 86400 IN RRSIG NSEC3 8 2 86400 20161125055412 20161118044412 6404 com. rlKgsCT91JVCpeUSNFrpWV8xFO7ufAhtu2i0Pk/KNwR55hInRPZ9wTQv krJ8fvibTReoopKpep2B+PSOqcN0VV5gPET5Lv9hWg63QgDwRuRmb64s dGFY1bhVzFsG5NoACYpF/iSKWE9BlabwAwAOGDvLy4YVxeQ4gpydnDxe pCc=
;; Received 626 bytes from 192.41.162.30#53(l.gtld-servers.net) in 172 ms

orebibou.com. 86400 IN A 157.112.152.17
;; Received 46 bytes from 219.94.203.247#53(ns4.xserver.jp) in 11 ms

 

9.問い合わせ結果が長い行を改行する

問い合わせをした結果が長い行を、そのままだと見にくいので適切な箇所で改行させる場合は「+multiline」オプションを用いる。

dig ドメイン名 +multiline
blacknon@BS-PUB-UBUNTU-01:~$ dig ANY orebibou.com +noall +answer

; <<>> DiG 9.10.3-P4-Ubuntu <<>> ANY orebibou.com +noall +answer
;; global options: +cmd
orebibou.com.           86399   IN      SOA     ns1.xserver.jp. root.sv0.xserver.jp. 0 10800 3600 604800 3600
orebibou.com.           86399   IN      NS      ns4.xserver.jp.
orebibou.com.           86399   IN      NS      ns1.xserver.jp.
orebibou.com.           86399   IN      NS      ns2.xserver.jp.
orebibou.com.           86399   IN      NS      ns3.xserver.jp.
orebibou.com.           86399   IN      MX      0 orebibou.com.
orebibou.com.           86399   IN      A       157.112.152.17
orebibou.com.           86399   IN      NS      ns5.xserver.jp.
blacknon@BS-PUB-UBUNTU-01:~$ dig ANY orebibou.com +noall +answer +multiline

; <<>> DiG 9.10.3-P4-Ubuntu <<>> ANY orebibou.com +noall +answer +multiline
;; global options: +cmd
orebibou.com.           86399 IN NS ns5.xserver.jp.
orebibou.com.           86399 IN A 157.112.152.17
orebibou.com.           86399 IN MX 0 orebibou.com.
orebibou.com.           86399 IN SOA ns1.xserver.jp. root.sv0.xserver.jp. (
                                0          ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
orebibou.com.           86399 IN NS ns3.xserver.jp.
orebibou.com.           86399 IN NS ns2.xserver.jp.
orebibou.com.           86399 IN NS ns4.xserver.jp.
orebibou.com.           86399 IN NS ns1.xserver.jp.

 

10.DNSSECで問い合わせをする

DNSSECで問い合わせをする場合は「+dnssec」オプションを付与する。

dig ドメイン名 +dnssec

 

11.DNSサーバのバージョンを確認する

今時はあまりないと思うが、参照先のDNSサーバの種類やバージョンを得る場合は以下のようにコマンドを実行する。

dig @DNSサーバ chaos version.bind txt
blacknon@BS-PUB-UBUNTU-01:~$ dig @XXX.XXX.XXX.XXX chaos version.bind txt

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @XXX.XXX.XXX.XXX chaos version.bind txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

 

実践DNS DNSSEC時代のDNSの設定と運用 実践DNS DNSSEC時代のDNSの設定と運用
Viewing all 1028 articles
Browse latest View live