たくあんポリポリ

勉強したことを載せていきます。最近、技術系の記事はZennに書いています。(https://zenn.dev/chittai)

Nagiosサーバ構築編②

Nagiosで監視対象ホストの追加方法

Nagiosをインストールしたので、まずは監視対象をローカルホスト以外にも追加してみようと思います。

 

参考サイト:Nagios ~ 監視ホストの設定 : あるサーバーエンジニアの練習場

#基本的に参考サイトに書いてあることをなぞっているだけなので、参考さいとを見た方がわかりやすいです。

 

Nagiosサーバの設定ファイル nagios.cfg を変更

①設定フィルを開く
#vi /usr/local/nagios/etc/nagios.cfg
 
②対象の文字列を検索
/cfg_dir で検索。
 
③下記の行が見つかります。最初はコメントアウトされているので、
#cfg_dir=/usr/local/nagios/etc/servers 

 

コメントアウトを外してあげます。

cfg_dir=/usr/local/nagios/etc/servers 

 

⑤保存

:wq

その後は、/usr/local/nagios/etc/servers ディレクトリを作成してからnagiosプロセスの再起動を実施。

 

なんかいろいろ書いたけど参考サイトなぞるだけ(すごくわかりやすいので、、)になるし書くのをやめよう。

 

読んでくれていた人がいたらすいません。。

 

他に書くこと

check_ping の監視はおそらくnagios.cfgに書かれているinterval_lengthの60という値だと思われる。そのため監視間隔は60秒。

 

 

 

 

Nagiosサーバ構築編①

Nagiosサーバを構築してみよう

と、ふと思ったのでメモ書き程度でも残しておこうと思います。

 

Nagiosとは?

まずそもそもNagiosとは何なのか?ネットワークやホストの状態をネットワーク経由で監視するための「統合監視ツール」と呼ばれるものです。対象のホストに対してネットワーク的に疎通している必要があります。

監視対象はホスト、サービス。

ホストはそのままの意味です。サーバなどを表し、ホストに対しては主にpingコマンドで死活監視を行います。

サービスはHTTPの応答コードやSMTPの応答速度などそれぞれのアプリケーションで提供される機能の監視を行います。

 

Nagiosインストール準備

Nagiosをインストールするためには下記のモジュールをインストールしてなくてはいけない

#yum install httpd php gcc glibc glibc-common gd gd-devel

※GDライブラリというのはPHPの画像表示用のモジュールらしい

glibcC言語用の標準ライブラリ

 

Nagiosインストール方法

すでに多くのサイトで紹介されているので、参考にしたサイトのリンクだけはっておきます。

Nagiosのインストール | Linuxで自宅サーバ構築

 

注意点

SELinuxの設定を切らないとWeb画面からリンク先に行けない、、、

SELinuxを切るなら自己責任で。 

 

 いじょ。

 

 

 

 

 

 

 

ShellShock〜bashの脆弱性とは〜

f:id:c_taquna:20140928001927j:plain

今、ネットではbash脆弱性が見つかったと大騒ぎです。正直そんなに詳しくないのですが、自分なりに調べたことを書こうと思います。

 

結局何が怖いのか

bashとは、OSのコマンドを実行するために必要なプログラムです。そのbashに不具合があり、bashを使用しているサーバ上で外部から任意のコマンドを実行することができます。つまり、ファイルを勝手に削除したり情報を盗み出したりすることができてしまう。

 

どういう仕組でおきているのか

環境変数に、関数の定義の後に任意のコマンドを入力することでそのコマンドを実行できてしまうというものです。(内部処理までは押さえてないです、、不勉強ですいません)

例えば、以下のコマンドを実行すると「vuln」という文字がコンソール上に出力されます。このコマンドを分けると、まずは「X」という環境変数に「(){ :;};」という関数を定義してます。その後ろに「 echo vuln」というコマンドを書いています。そして、さらにその後ろに「bash -c 'echo'」が書かれています。

 

$ X='() { :;}; echo vuln' bash -c 'echo'

 

本当は環境変数 X に文字列を格納しているだけなので、コマンドの実行結果は'echo'だけつまり改行だけになるはずなのです。しかし今回見つかった脆弱性を修正しない限り echo vuln も実行されてしまいます。 echo は出力するだけなので問題ないですが、これが rm -rf などにされたりする可能性を考えると恐ろしいですね、、。

 

bash ではコマンドが実行される間に環境変数の一覧が内部で作成されるのですが、この時点でコマンドが実行されるため、環境変数の名前がなんであっても実行されてしまいます。

 

対策はどうすればよいのか

 bashのアップデートを行う必要があります。以下のコマンドで可能です。筆者はまだ実施していないのですが、影響範囲・影響対象は見切れていないのですが早めに実施したほうが良さそうですね。

 

yum update bash

 

 

参考サイト

bash ShellShockメモ(Hishidama's bash "shell shock" Memo)

Blog: bashの脆弱性がヤバすぎる件 – x86-64.jp - くりす研

先程から騒ぎになっているbashの脆弱性について | 上田ブログ

BASHの脆弱性でCGIスクリプトにアレさせてみました - ブログ - ワルブリックス株式会社

 

 

 

 

 

 

 

銀翼のイカロス感想

f:id:c_taquna:20140927052538j:plain

半沢直樹シリーズ最新作、「銀翼のイカロス」を読了しました。

半沢直樹シリーズは最近になって読み始めたのですが、非常に面白くて寝不足気味です。

 

あらすじ

帝国航空の再建をまかされた半沢直樹。しかし、与党になった進政党の白井による再建私設タスクフォースと対立する。東京中央銀行は帝国航空の債権を放棄するように命じられるが、銀行員としてのプライドを貫き、半沢は断固拒否する姿勢を示す。しかし、タスクフォースは前政権を否定し、自分たちの功を得るため、銀行に債権の放棄を無理やりせまる。東京中央銀行vs私設タスクフォースの構図で描かれる作品。

 

以下、自分が思ったことを。

 

自分の中の正しさ→正義

半沢直樹は常に自分が正しいと思ったことをする。働き初めてからこの難しさがわかった気がする。というのも、まずは「何が正しいのか」ということがわからない。ここからスタートする必要がある。仮に自分が正しいと思っていても誰かと対立することがある。その時は徹底的に戦う必要があるが、そのための論理武装は常にしておかなければならない。そして、会社で行動を起こすのであれば、責任が伴う。その責任を負う覚悟も必要なのだと思う。

 

半沢直樹と自分の仕事

半沢を見ていると仕事ができるなと感じる。では、どの部分に仕事ができると感じるのだろう。「論理武装」「一手先をいく」「哲学がある」の3つが仕事ができると感じる要素なのではと思う。「論理武装」は相手の矛盾をつき、自分の論理の正当性をしっかりと説明できること。そのためには、なぜこうなのか、根拠はなんなのか、をはっきりさせることが大事だと思う。「一手先をいく」これはスピードに起因すると思う。とにかく早く考え、早く実行する。相手より先に行動を起こすことが大事。「哲学がある」は、銀行員としてどうすべきなのか、SIとしてどうすべきなのか、自分の行動の軸となる判断基準を持っていることが大事。

 

文章がめちゃくちゃですね、、もっとしっかりまとめてから書いたほうが良さそう。

 

 

 

 

ブログを書き始めるモチベーションとは?

f:id:c_taquna:20140926032301j:plain

 

ふとブログを書こうと思いました。なにかインプットやアウトプットを発信できる場はないかと思っていました。SNSもいいなあと思ったのですが、まだ知り合いの前で駄文をたれながすのは勇気が必要だと気が付きました。そこで、誰かが見ているかもしれないブログでならいけるのではと思い、始めてみようと思いました。

 

そこで、自分の中でブログを書くモチベーションをまずまとめてみようと思います。

簡単に発信できること

インターネットは全世界誰とでもつながりあうことができます。そして、ブログもアカウントさえ取得してしまえば数クリックで作成できてしまいます。誰かとコミュニケーションが取りたい。でもその機会が少ない。そういった場合に非常に適していると思います。上でも書いたようにSNSはより適していると思いますが、知り合いが多いというのが難点ですね、、、(逆に必ず誰か見ていて、フィードバックが得やすいというプラスのポイントがあると思いますが)

 

説明上手への第一歩

今回は説明を上手にいたいという目的があってブログを始めました。誰かに何かを説明する際に、誰に説明するのか。どのような順番で説明するのか。どのような言葉を使用するのか。毎回テーマを決めて(タイトル)そのテーマに対して自分で言葉を選び説明を行ってみようかと思います。

 #説明って言葉はざっくりとしていて便利ですね。

 

文章力・語彙力の強化

文章にしろなんにしろ、鍛えなければ成長はしません。まずは大量に書き続けます。そして常に客観的に分析できればどんどん伸びていくのではないかと思っています。

 

というわけで、誰が読んでいるかわからないブログを初めて行きます。コメントはいつでもお願いします。

 

LAMP環境の構築その3

Apacheのインストール

 

今回はソースコードからインストール。

でも結構インストールするものがあるので

ダウンロード->解凍->インストールの繰り返し。。

apacheの最新バージョン

・apr

・apr-util

./configure --with-apr=/usr/local/apr

・libpcre

gcc-c++もインストールしないとlibpcreはインストールできない。

 

 

これで完了!・・・・とはいかなかった。。。

 

この後は

・/etc/rc.d/init.d/に/Apacheのインストール先/bin/apachectl をhttpd としてコピー。

httpdスクリプトに下記コメントを追加。

#chkconfig: - 85 15

#description:Apache

その後起動用にchkconfigを設定。

#chkconfig --add httpd

とかいろいろをやって

最後に/etc/sysconfig/iptables に80番ポートを許可する設定を追加。

 

LAMP環境の構築その1

今回はLAMP環境を構築する。

 ⇛OracleBronzeのためにSQLを触れるのが目的なので、

  MySQL、SQLPlusのインストールをメインとする。

 

■一般ユーザの作成

  #groupadd guests_user

   いつかゲストユーザが必要になった際のグループ

 #groupadd my_user

  自分で使用するアカウント

 #useradd -g myuser xxx

  rootに次ぐメインアカウント

 #passwd xxx

 

・アカウントに対してsudoの設定

参考:

http://linuxserver.jp/linux/sudo%E3%81%A7%E4%B8%80%E8%88%AC%E3%83%A6%E3%83%BC%E3%82%B6%E3%81%A7%E3%82%82root%E6%A8%A9%E9%99%90%E3%81%A7%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C.php

 

・ユーザのsudoの確認コマンド

 #sudo -l

 

■アクセス制限

上記で作成したユーザに対してsudoのコマンドを使用できる権限を与えたので、rootでログイン出来ないように設定。

/etc/ssh/sshd_config を編集

PermitRootLogin no (⇐yesをnoへ変更)

 

■パケットフィルタ

今回はしない

CentOSのアップロード

 今回はしない

Rubyでプログラミング~最初の一歩~

とりあえずRubyをインストールしたので簡単にプログラミングを行う。

それに加え、viのコマンドについても勉強する。

 

参考:

ドットインストール(http://dotinstall.com/lessons/basic_ruby_v2)

viコマンドリファレンス(http://yamabito.main.jp/linux/vi_commands.htm)

 

内容:

#1~#5まで勉強。

 

 

本日のviコマンド

・gg

ファイルの先頭へ

・G

ファイルの末尾へ

・hjkl

左下上右

・$

行の最後尾へ

・0

先頭へ

・Ctr+b

上ページへ

・Ctr+f

下ページへ

 

本日のLinuxコマンド

・find

-name:ファイル名の指定

grep

-v:含まない

・sort

-r:逆順

・locate

 

 

 

CentOS6.5 に Ruby をインストール

内容:

CentOS6.5にRubyをインストールする

 

方法:

ソースをコンパイルしてインストール

 

参考サイト:

http://weblabo.oscasierra.net/ways-to-install-ruby-onto-redhat/

 

単語:

Makefileとは

Makefileにはソフトウェアをコンパイルする手順、インストールするファイルなどが記載されている。Makefileにもとづいてソースがコンパイルされ実行ファイルが生成される。

(http://linux-network.cocolog-nifty.com/blog/2008/05/makefile_bed2.html)

Makefileに知りたかったら下記を参照

http://www.atmarkit.co.jp/ait/articles/1106/10/news115.html

 

経過:

特に問題なし

 

 

 

 

vCenter Serverの手動起動方法

今回発生した事象

vSphere Web Client にアクセスしたが、「1つ以上のvCenter Server システムに接続できませんでした」というメッセージが表示され、vCenterを使用できなくなった。

 

影響:

・ESXiの操作ができない

(というか vSphere Web Client 上から何もできない。)

 

原因:

vCenterサーバの再起動後、vCenter Server のサービスが起動していなかった。

 ⇛この原因は不明。別サイトによると再起動時にSQLサービスとVCENTERの

  起動が競合して立ち上がらなかったらしい。

  (そのサイトに書かれている対策はすでにとっているため、

  別の原因があると思われる)

 ⇛自動起動(遅延)の設定が少し怪しい。そのうちためす。

 

対策:

手動でvCenterのサービスを起動

 

手順:

[スタート]

[プログラムとファイルの検索]

↓services.mscを検索

[サービス(ローカル)]

[VMwareVirtualCetnterServer]

↓右クリック

[開始]

 

上記の対応で vSphere Web Client 上から vCenter の起動が確認できた。

 

いじょ。