まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

Linux のメジャーなディストリビューションといえば RedHat, CentOS, Debian, Ubuntu, ... あたりでしょうか。SuSE は日本ではほとんど使われてない印象・・・ 個人あるいは業務で Linux を使う場合はこれらを使うケースがほとんどでしょう。

実際にはこれらをベースにした(ある意味でマイナーな)ディストリビューションも多く存在しています。それらは見た目や使い勝手に強いこだわりがあったり、特定業務に特化した機能が拡充されていたりして面白いです。

そんな Linux ディストリビューションの1つが Kali Linux です。Kali はいわゆる「ペネトレーションテスト」向けの機能が標準で充実しているディストリビューションです。「ペネトレーションテスト」はセキュリティ脆弱性診断テストで、その弱点を発見するような攻撃への耐性を診断するものですが、結果的には脆弱性が見つかってしまうこともあるわけで・・・まあ、そういう(苦笑)使い方もあるのかもしれません。 もともとは BackTrack という Ubuntu ベースのディストリビューションでしたが、バージョン6に相当するリリースからはベースを CentOSDebian に変え、名称も "Kali Linux" として公開されています。

(2014/01/02 注 ご指摘があり編集しました。 Kali Linux のベースは CentOS ではなく Debian でした)

この Kali Linux は比較的日本語との相性がよく、またベースが CentOS Debian であることから拡張性も高く、そして何よりも「見た目のカッコいい」 Linux だと感じています。私個人もペネトレーションテスト向けというよりも、普段使いのデスクトップ環境としても使えるのではないか、と感じています。 ということもあって、実際に Kali Linux をインストールして、日本語デスクトップ環境を構築するところまでを紹介します。実機でも仮想環境でも動作すると思われます(私自身は実機と KVM 仮想環境で導入&動作を確認しています)。

まずはインストールメディアを入手しましょう。仮想環境用の仮想ディスクをダウンロードすることも可能ですが、よりカスタマイズ性の高い導入メディアを使うことにします。公式サイトのダウンロードページから 32bit 版か 64bit 版の自分の環境に合った ISO ファイルをダウンロードします。実機環境に導入する場合はダウンロードした ISO ファイルを DVD メディアに焼いておきます。

まずは導入メディアを使ってマシンを起動します。この ISO(DVD) から起動すると、ハードディスクへの導入なしにある程度の利用ができる Live モードで起動することも可能ですが、やはりディスクに導入した方が起動も速く、またカスタマイズ性も高くなるのでインストールモードで起動します。せっかくなので GUI のインストールを行いたいので "Graphical Install" を選択します。
kali2013101501

最初の画面では英語モードになっています。まずはインストールプロセスの中で利用する言語を指定します。"Japanese" を選択しましょう。
kali2013101502

するとここからはインストーラ自体が日本語に切り替わるはずです。次はシステムロケールの指定です。日本で(グリニッジ標準時+9時間の環境で)利用する場合は「日本」を選択します。
kali2013101503

最後に利用するキーボードの言語を指定します。日本語キーボードを利用する場合は「日本語」を選択します。
kali2013101504

インストール作業中、およびインストール後の環境で利用するネットワークデバイスを自動的に検出します。有線だけでなく無線も利用可能です。検出に少し時間がかかりますが、しばらく待ちます。
kali2013101505

デバイス検出後にネットワークの設定を行います。といっても複雑な内容ではなくサーバー名の指定をするだけです。まずはホスト名を指定します。
kali2013101506

次にドメイン名を指定します。適当な名称でも構いません。
kali2013101507

導入後の環境で利用する root ユーザーのパスワードを指定します。
kali2013101508

インストール先メディアのパーティショニングを行います。よく分からない方はデフォルト設定のまま Return キーで先へ進んでも構いません。分かる方でカスタマイズしたい方はこの画面でパーティショニングを行なってください。
kali2013101509

パーティショニングの最後に確認画面が出て、変更内容をディスクに反映させることを確認して先に進みます。
kali2013101510

すると実際のインストール作業に入ります。ここはしばらくかかります。。
kali2013101511

一通りのパッケージ導入が完了すると、ネットワークミラーの利用有無を聞かれます。ネットワークが使える環境であれば「はい」を選んでおくのがいいと思います。
kali2013101512

ネットワークでプロキシの先にアクセスする場合の、そのプロキシサーバーを指定可能です。不要であれば空のまま先に進みます。
kali2013101513

ネットワークを利用したパッケージの更新が行われます。
kali2013101514

最後にブートローダのインストール確認が行われます。ここはデフォルト設定のままで構いません。
kali2013101515

ブートローダが導入され、最終調整作業後にインストールが終わります。
kali2013101516

インストールが無事に完了しました。「続ける」をクリックして再起動しましょう。
kali2013101517

最後になぜかもうしばらく処理が行われます。。
kali2013101518

そして再起動。この画面で何もしなければデフォルト設定で導入済みの Kali Linux が起動します。
kali2013101519

ハードディスクから起動している様子です。
kali2013101520

起動しました。まずはログインユーザーを指定します。「その他」をクリックします。
kali2013101521

この時点では root ユーザーしか作成していないのでユーザー名に "root" を入力します。
kali2013101522

そして root ユーザーのパスワードを入力します。
kali2013101523

入力内容が正しければログインプロセスが実行され、超カッコイイ Kali Linux のデスクトップ画面が現れます!
kali2013101524

この段階でペネトレーションテスト用のツールは既に導入済みなので、ペネトレーションテストを始めることも可能です。そういう内容に興味がある人は "Kali Linux ペネトレーション" あたりをキーワードに検索してみてください。

今回はこの Kali Linux を日本語デスクトップ環境に仕上げることが目標なので更にカスタマイズを続けます。画面左上の「アプリケーション」から「アクセサリ」 - 「端末」を選択します。
kali2013101525

半透明のカッコいいターミナルが起動します。以下コマンドでカスタマイズを続けていきます。
kali2013101526

まずはこの環境で不足している「日本語入力環境」を整えましょう。端末のコマンドラインから以下を順次入力して、日本語入力環境である IBus-anthy を導入します:
 # apt-get update
 # apt-get install gcc g++ make uuid-dev
 # cd /usr/local/src
 # apt-get source lynx-cur
 # cd lynx-cur-2.8.8dev.12
 # dpkg-buildpackage
 # apt-get install uim uim-anthy
 # apt-get install ibus-anthy

IBus 設定画面アプリを起動します。ここから日本語入力環境として anthy を選択します。まずはメニューから「システムツール」 - 「設定」 - 「IBusの設定」 を選択します。
※ここで「IBusデーモンが動いてません。起動しますか?」と表示された場合は「はい」をクリックして IBus デーモンを起動します。
kali2013101527

「IBus の設定」ダイアログが表示されたら「インプットメソッド」タブを選択し、「インプットメソッドの選択」で「日本語」 - 「Anthy」を選択します。
kali2013101528

そのまま「追加」をクリックし、インプットメソッドとして Anthy が追加されたことを確認して最後に「閉じる」をクリックします。
kali2013101529

最後に OS を再起動すると、Ctrl+SPACE で英語/日本語の入力モードが切り替わるようになります。これで日本語入力環境も整いました!
kali2013101530

日本語も入力できるようになりました。ではデスクトップ環境構築の最後にオフィススイートも導入してみましょう。いくつかの選択肢がありますが、個人的に最も気にいっている LibreOffice を導入してみます。Kali Linux 環境からブラウザを起動(メニューから「アプリケーション」 - 「インターネット」 - 「lceweasel ウェブブラウザ」)し、http://www.libreoffice.org/download にアクセスして、自分の環境にあった最新版の Main installer をダウンロードします:
kali2013101531

ダウンロードしたファイルの名称が LibreOffice_4.1.2_Linux_x86_64_deb.tar.gz であったとして、以下のコマンドで解凍し、インストールします。
 # tar xzvf LibreOffice_4.1.2_Linux_x86_64_deb.tar.gz
 # cd LibreOffice_4.1.2.3_Linux_x86-64_deb/DEBS
 # dpkg -i *.deb
 # shutdown -r now  (メニューに反映させるために再起動)
 
LibreOffice のインストールに成功すると、再起動後のメニューから「アプリケーション」 - 「オフィス」 - 「LibreOffice 4.x XXX」というアイテムが選択できるようになり、各種オフィスアプリケーションが起動できるようになりました。
kali2013101532

まだデスクトップ環境として不十分な点もありますが、ここまでの作業でとりあえず日本語入力およびオフィススイートの導入までは完了しました。あとはこちらの内容を参考に開発デスクトップ環境を整備してもいいですし、もちろんペネトレーションテストも可能です(笑)。この Kali Linux のカッコいいユーザーインターフェースがデスクトップ環境として利用できるのはなかなか楽しいと思っています。













 

SoftLayer をクラウドノードを開発サーバーとして1週間程度使っています(以前のエントリその1その2)。ただ使っているだけだと「快適です」以外にあまり言うことがなくてつまらないので、違う視点から改めて見てみました。ああ申し込み時にこうしておけばよかった、という思うこともいくつか・・・

まずはデータセンター。選択肢としてはワシントンDC、サンノゼ、シアトル、ダラス、シンガポール、そしてアムステルダムとあります。はっきり言って深く考えずにワシントンDCを選んでしまいましたが、よく見たらこんな資料が・・
sl2013101501


ああ、日本のネットワークセンター(品川)から直結しているのはシンガポールとサンノゼだったのか。このどっちかにするべきでした。

そして利用者向けポータルサイトで見つけた "Provisioning Scripts" の設定。
sl2013101502


実はいまだに申込時にどうやるとこれが有効にできるのか、まだハッキリと分かっているわけではないのですが、OS のロード直後に実行させるプロビジョン用のスクリプトファイルを指定できるもののようです。このクラウドノードからURLでアクセスできるところ(要はインターネット上のHTTPアクセス可能なサイト)にこのスクリプトを置き、その中にシェルスクリプト等で最初に行っておきたいセットアップ内容を記述しておけば、OS の起動直後に実行してくれる、というものです。したがって、ここで書いたような yum の実行コマンドを羅列したシェルスクリプトのテキストファイルを指定すれば、起動と同時に実行されて必要なミドルウェア環境が構築できる、ということだと思います。シェルスクリプトで記述できる範囲に限られてしまうとはいえ、すげー便利!

 

前回のエントリの続きです。SoftLayer の一ヶ月無料トライアルに契約して、サーバーインスタンスを確認するまでの作業は前回のエントリを参照してください。なお今回のエントリ自体は SoftLayer に特化した部分はほとんどなく、どちらかというと自分の開発環境構築備忘録の色が強いです。でも、そういう用途にも使えるだけのクラウド環境が SoftLayer から提供されている、と理解していただければ。

まずおさらいとして、提供されたクラウド環境のスペックはこんな感じです(結構よさげ)。本来なら月額$50ですが、1ヶ月間は無料お試し期間になります: 
 
CPU: 1 x 2.0 GHz Core
 メモリ:  1024MB
 システムディスク: 25GB
 スワップディスク: 2GB
 ネットワーク: パブリック/プライベート共 100Mbps

 

今回は起動した CentOS 6.0(minimal install/64bit) の環境を自分の目的用にカスタマイズする手順を晒すものです。まあ SoftLayer 独自の部分はありません。初めから LAMP 環境を選択して起動して特に追加設定が不要の人や、普段から CentOS の導入を行っている人にはありきたりでつまらない内容かもしれません。

まずは前回の最後と同様 ssh でサーバーに接続します。自分は Windows 環境から PuTTY を使っています。鍵ファイルなどは不要で、直接 root でログインできます。root の初期パスワードはポータルサイトから確認可能です。
sl2013100801


賛否両論あるとは思いますが、個人的にはこの「鍵ファイルが不要」「SSHアクセス可能」はポイント高いです。実運用サーバーだと事情は変わってくると思いますが、開発用サーバーとして使う視点では自由度が高くて手軽なクラウド環境というのはやはり使い勝手いいです。
 

で、最初に何をするべきかというと・・・とりあえずカーネルやライブラリを最新のものにしておきましょう。yum を使って更新します:

# yum -y update


このコマンドを実行するとカーネルの更新が行われる(と思う)ので、一度再起動して新しいカーネルでロードします:
# shutdown -r now

再起動後、ここでアプリケーションサーバーやらデータベースやらを導入してもいいのですが、せっかく素の CentOS を借りることができたので、EC2 の Amazon Linux などでは敷居の高い環境を構築してみます。まずは X Window System 環境と日本語環境を導入します:
# yum -y groupinstall "X Window System" "Desktop"
# yum -y groupinstall "Japanese Support" 


更にシステムロケールを変更します。/etc/sysconfig/i18n を編集して、LANG="ja_JP.UTF-8" に変更して保存します。

せっかく X Window System を導入したので VNC 環境も整えてしまいましょう。tigervnc サーバーを導入します:
# yum -y install tigervnc-server

一般的には VNC は一般ユーザー権限で実行するのですが root 権限で実行できないこともありません。必ずしもおススメしませんが(後々の説明が楽なので・・) root 権限で VNC サーバーを 5901 番ポートで実行する場合の方法を紹介します。tigervnc サーバー導入後に /etc/sysconfig/vncservers を編集します:

 VNCSERVERS="1:root"
 VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"


更に VNC 接続用のパスワードを設定します:
# vncpasswd

そのまま一度 vnc サーバーを起動して設定ファイル(~/.vnc/xstartup)を初期状態で生成します:
# /etc/init.d/vncserver start

生成された設定ファイルを編集します。具体的には GNOME のセッションをそのまま利用するように変更します:
 #!/bin/sh
 (最初に環境変数 LANG を変更)
 export LANG="ja_JP.UTF-8"
  :
  :
 (最後の部分を変更)
 # xterm -geometory 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
 # twm &
 gnome-session &


最後に VNC サーバーを再起動し、またシステムの起動と併せて実行されるように指定します:
# /etc/init.d/vncserver restart
# chkconfig vncserver on


これで VNC サーバー環境が整いました。PuTTY のような SSH ターミナルアプリだけでなく、VNC Viewer などの VNC クライアントからも接続できるようになったはずです。上記の設定を行った場合は VNC クライアントからの接続先 VNC サーバーとして(IPアドレス:1)となるように、最後に ":1" を付与して接続してください。
sl2013100900


パスワードを聞かれるので vncpasswd で指定したパスワードを指定するとクラウドサーバーの X Window System 環境にアクセスできます。クラウドでデスクトップ環境!! 
それなりのスペックを持った仮想環境なので、ここまでできてしまえば LibreOffice とかも入れて立派なクラウド・デスクトップとしても使えそうです(今回はやりませんけど)

sl2013100901

自分の場合はここから更に開発環境としてのカスタマイズを加えます。ウィンドウシステムが使えるようになったので Web アプリの開発/テスト用に FireFox ブラウザを入れておきましょう。上部メニューから アプリケーション - システムツール - 端末 を選択してGNOMEのターミナルを開き、以下のコマンドを入力します:
# yum -y install firefox

データベースは好みのものを。MySQL とかでもよかったのですが、最近はコミュニティの活発な MariaDB を使ってます。まずは /etc/yum.repo.d/mariadb.repo を以下の内容で新規に作成して yum のレポジトリを追加します(MariaDB 10.0.4 の、64bit 版 CentOS6 向け設定です):
  [mariadb]
  name=MariaDB
  baseurl=http://yum.mariadb.org/10.0.4/centos6-amd64
  gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
  gpgcheck=1
  enable=1


リポジトリの追加ができたら、おなじみの yum で MariaDB をインストール:
# yum -y install MariaDB-server MariaDB-client

JDK(Java)環境も、Oracle などから Linux 版をダウンロードして導入してもいいですが、OpenJDK であれば以下のコマンドで導入されます:
# yum -y install java-1.7.0-openjdk-devel

PHP の場合だとこんな感じ:
# yum -y install php php-mbstring php-mysql

必要ならば Apache HTTPD サーバーも導入しちゃいましょう:
# yum -y install httpd

(2013/10/10 追記)
Java アプリケーションサーバーを忘れていました。Apache Tomcat あたりを入れておきます:
# yum -y install tomcat6

プログラミング言語が導入されたので Eclipse などの統合開発環境もインストールする準備が整いました。最新版の Eclipse を使う場合は上記で導入した FireFox を使って公式サイトからダウンロード&インストールの必要がありますが、少し古いものでもよければ以下のコマンドで導入できます:
# yum -y install eclipse

Eclipse までは必要ないけど vi ではないテキストエディタがほしい、という場合は最近流行りの Sublime Text 2 あたりがいいかも。こちらは公式サイトからダウンロード&展開します。ダウンロードファイル名が "Sublime Text 2.0.2.tar.bz2" であればコマンドはこんな感じ:
# tar vxjf Sublime\ Text\ 2.0.2.tar.bz2
# mv Sublime\ Text\ 2 /opt
# ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/sublime


これでターミナルなどのコマンドラインから "sublime &" と入力すれば起動するようになりました。

最後に壁紙も変えて、今のクラウド開発環境はこんな感じになりました:
sl2013100902


サーバー類の自動起動を含めた設定変更などは省略していますが、おおまかにはこんな感じ。単なる開発用サーバーとしてだけでなく、X Window System が手軽に導入できることで開発用デスクトップとしても使えそうなクラウド環境が構築できました。スペックの異なる環境の比較にはなりますが、これまで Amazon Linux のマイクロインスタンスで使っていた開発サーバーにプラスアルファして環境を移行してみたのですが、アクセスの容易さも含めて快適に使えています。一か月ほど今開発中のアプリケーション用に使わせていただくつもりです。




 





 

 

このページのトップヘ