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

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

タグ:linux

前回の続きです:
ラズパイに Kali Linux をインストールする

ラズベリーパイに Kali Linux のイメージを導入して起動する、という所までを紹介しました。これで OS としては動きますが、このままの状態では以下の2点の問題があります:
(1) (Kali Linux の真髄でもある)ペネトレーションテスト用ツールがまだ足りない
(2) ウェブブラウザなどで日本語表示ができない

この2つの問題を解決するためのセットアップを行います。

まずは (1) の問題、これは最新版のリポジトリを使って、モジュールを最新版に更新すれば解決します:
# apt-get update
# apt-get upgrade

特に2番目のコマンドの実行にはかなり時間がかかりますが、一晩かけるつもりで寝る前に実行するなどしてください。

次に (2) の問題、こちらは日本語フォントが含まれていないのでデフォルト状態ではブラウザで日本語ページを見たりしても文字化けしてしまうのでした。これは適当な日本語フォントを導入することで解決できます:
# apt-get install fonts-vlgothic


ここまで行うことでペネトレーションテスト用ツールがアプリケーションメニューからも利用できるようになります。またブラウザで日本語ページを見ても文字化けせずに表示できるようになります:
kali


 

僕のブログの全エントリの中でも指折りの人気ページの1つが Kali Linux ネタです:
http://dotnsf.blog.jp/tag/kali

ペネトレーションテスト用に開発された Kali Linux は本来の目的で使われることはもちろん、Debian ベースで apt-get コマンドを使ったカスタマイズもでき、何よりもカッコいいデスクトップ環境(大事!)もあって、最近人気が上がっているディストリビューションの1つだと思っています。

そんな Kali Linux は組み込み用環境向けにもイメージが提供されています。今回はそんな中から Raspberry Pi(以下、「ラズパイ」)用イメージを使って、ラズパイに Kali Linux 環境を構築する手順を紹介します。なお、以下の手順はラズパイ3で試していますが、2でも同様に可能なはずです。

まず用意するのは 8GB の MicroSD カード。ここにほぼ同じ大きさの Kali Linux イメージを書き込んで使います。

ラズパイ用の Kali Linux はこちらからダウンロードします:
https://www.offensive-security.com/kali-linux-arm-images/

2016121501


このサイトの中ほどにラズパイ用のセクションがあり、その中から環境にあったイメージ("RaspberryPi 2/3")を選んでダウンロードします。ダウンロードファイルは .xz という拡張子をもったフォーマットで圧縮されています。

ダウンロード後、このファイルを展開します。Windows であれば 7zip で、Linux であれば tar の Jxf オプションを使うなどして圧縮を展開し、約 8GB のイメージファイルを取り出してください。

取り出したイメージファイルを MicroSD カードにダンプで書き込みします。Windows であれば DD for Windows 、Linux であれば dd コマンドを使ってイメージをそのまま書き込んでください。これで Kali Linux が導入されたラズパイ用の MicroSD カードが用意できました。

ここまでできれば後は普通のラズパイ同様に、HDMI ケーブル/キーボード/マウス/有線LANケーブル などを必要に応じて繋いで使って起動してください:
IMG_0055


↑普通に起動できました。




Ubuntu で LXC を使ってみました。

LXC は "LinuX Containers" の略で、Linux の仮想化技術の1つです。1つのセンターホストの上で複数の Linux システム(コンテナ)を走らせる、というものです。コンテナなので、いわゆる VM(Virtual Machines) とは異なり、個別のプロセスとネットワーク空間を作り出す仮想環境です。なお Ubuntu 14.04 の 64bit 版を前提として以下を記載します(いつもの CentOS6 環境だとなぜか上手くいきませんでした):

導入は簡単。apt-get コマンド一発で LXC を導入します:
$ sudo apt-get install lxc

導入できたら中身を一度確認してみます。まず用意されているテンプレートの一覧が /usr/share/lxc/templates/ にあるのでその一覧を確認します(青字が出力結果、これだけのテンプレートが用意されています):
$ ls /usr/share/lxc/templates/
lxc-alpine     lxc-centos    lxc-fedora        lxc-oracle  lxc-ubuntu-cloud
lxc-altlinux   lxc-cirros    lxc-gentoo        lxc-plamo
lxc-archlinux  lxc-debian    lxc-openmandriva  lxc-sshd
lxc-busybox    lxc-download  lxc-opensuse      lxc-ubuntu

では今回は Plamo テンプレート(lxc-plamo)を使って、p01 という名称で Plamo Linux コンテナを作成してみます:
$ sudo lxc-create -t plamo -n p01
  :
  :
  :
morse-2.1-x86_64-P1 のインストール中
PACKAGE DESCRIPTION:

qrq-0.1.4-x86_64-P1 のインストール中
PACKAGE DESCRIPTION:

Copy /var/cache/lxc/rootfs-plamo-5.x-x86_64 to /var/lib/lxc/p01/rootfs...
Copying /var/cache/lxc/rootfs-plamo-5.x-x86_64 to /var/lib/lxc/p01/rootfs...
patching file /var/lib/lxc/p01/rootfs/etc/inittab
Setting root password to 'root'...
Please change root password!

コマンドが完了するまでしばらくかかりますが、無事に完了したようです(root ユーザーのパスワードが root で、すぐに変更しろ、というメッセージが表示されています)。 作成されたコンテナのルートディレクトリは /var/lib/lxc/p01/rootfs/ 以下に作成されています(p01 はコンテナ名):
$ ls /var/lib/lxc/p01/rootfs/
bin   cdrom  etc           home  lib64  mnt   root  sbin  tmp  var
boot  dev    etc-incoming  lib   media  proc  run   sys   usr

ではこの Plamo Linux のコンテナを実際に起動してみましょう。名前を指定して、デーモンモードで起動して、コンソールに接続します:
$ sudo lxc-start -n p01 -d
$ sudo lxc-console -n p01

Connected to tty 1
Type  to exit the console,  to enter Ctrl+a itself


Welcome to Linux 3.13.0-85-generic.

p01 login:
 

接続できました!ここで root ユーザーで(パスワード root で)ログインし、とりあえずはパスワードを変更しておきます:
p01 login: root (ユーザー名は root)
Password: (パスワードは root)
root@p01:~# passwd
Enter new UNIX password: (新パスワードを入力)
Retype new UNIX password: (同じ新パスワードを入力)
passwd: password updated successfully

で、ここからはコンテナ上に展開された Plamo Linux を1サーバーのように使うことができるようになります:
root@p01:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/dm-1       913G   16G  851G   2% /
none            100K     0  100K   0% /dev
/media          5.8G     0  5.8G   0% /media
/tmp            5.8G     0  5.8G   0% /tmp

元の(Ubuntu の)コンソールに戻るには Ctrl+A を押し、続けて Q を押します:
root@p01:~# exit (Plamo Linux から普通にログアウト)
logout


Welcome to Linux 3.13.0-85-generic.

p01 login: (ここで Ctrl+A,Q)
$ (Ubuntu のコマンドプロンプトへ戻った)





日本時間の 2016 年 4 月 1 日に、レッドハット社から驚きの発表がありました:
No-Cost RHEL Developer Subscription now available

2016040101



開発(者)向け、という条件は付きますが、RHEL(RedHat Enterprise Linux) を含む Devloper Suite が無料でダウンロード可能になった、というものです。マジか!?これはタチの悪いエイプリルフールだろ?と思ったのですが、このニュースは米国時間の 3 月 31 日にリリースされており、エイプリルフールではなさそうです。。

自分はこれまで RHEL のコミュニティ版ともいえる CentOS ばかり使っていましたが、ついにこの領域にレッドハット社が脚を踏み入れることになるとは。。 色々な事情や背景も考えられますが、なにはともあれ使えるものなら使ってみたいわけです(笑)。試してみました。


まずは RHEL のダウンロードサイトへ行ってみると、既にこの発表を反映した内容になっています:
http://developers.redhat.com/products/rhel/download/

2016040102


このサイトから RHEL 7 がダウンロードできるようになっている模様です。リンクをクリックすると、アカウントログインが求められます。RedHat Developer アカウントを持っている場合は入力、持っていない場合は新規に作成してログインします。各種SNSの情報に紐付けたサインインもできるようです:
2016040103


そしてアカウントプロファイル作成後にログインすると、その場から RHEL サーバーの ISO イメージのダウンロードが開始されました(バージョン 7.2 の 64bit 版でした。そういや 7.x って 32bit 版ないんだっけ)。インストールなど、ダウンロード後の作業手順についてもここから参照できるようです:
2016040104


といっても特別な手順が必要なわけではなく、普通に ISO(DVD) からブートできます:
2016040105


インストーラーも普通でした。最初に日本語選んでおけばインストール作業から日本語GUIで行えます:
2016040106


インストールが完了してリブートした直後の画面がこちらです。"LICENSE INFORMATION" に警告マークがついているので、ここをクリックします:
2016040107


ライセンス条項を読み、確認して、同意にチェックを入れ、左上の「完了」ボタンで戻ります:
2016040108


画面が戻ると先程の警告マークが消えているはずです。右下のボタンで設定を完了します:
2016040109


「ようこそ」画面が出るので更に進めていきます。すると・・・:
2016040110


じゃーん!
2016040101


個人的には見る機会の少ない RedHat Enterprise Linux のデスクトップ画面が表示されました。7.x になってからは本当に初めてかもしれない。。 ともあれ、無料のアカウント登録だけで本当に使えてしまいました。

動いてしまえば、後は慣れた CentOS の感覚(?)で使えるようになります:
2014040101






ずっと長い間、「ノート PC といえば ThinkPad」派でした。最初は Dynabook(というか Libretto)にハマり、次に トラックボール付き Let's note しか愛せなくなり、そしてトラックポイント付きの ThinkPad に出会ってからは ThinkPad 依存な体になりました。 改めてこうやって並べてみると、基本ノートPCではマウスを使わずにポインタを自在に操ることを求めているのかもしれません。

で、今は ThinkPad 派です。トラックポイントに加えて、あの打ちやすい剛健キーボード! 会社の方針だか何だか知りませんが ○acBook とか使いにくくて仕方ありません。だいたいあの会社はオープンテクノロジーの真逆にあるんじゃないかってほど閉鎖的でしかも・・・ まあこのくらいにしておきます(苦笑)。 要は ThinkPad Love なのです。

が、そんな自分でも心配になるようなニュースが今年の冬と秋にありました:
Lenovo、今度はThinkPadにユーザーデータ収集ソフトを潜ませていた

簡単に言うと「Lenovo が自社 PC 内に不正ソフトを潜ませていてユーザーのデータを集めてフィードバックする仕組みを組み込んでいた」というものです。冬の時点では「ThinkPad は関係ない」という内容でしたが、秋のニュースでは ThinkPad を含む全製品が対象、というものでした。

正直な所、このニュースの信憑性や、本当の所どうだったのかはよく分かっていません。でもその仕組があったことは事実だし、すごく残念でした。事実、このニュース以降では新たに ThinkPad を購入していませんし、正直少し抵抗を感じています。


ただ、とはいえ ThinkPad が使いやすいことは変わらないのです。自分はプログラミングコードを書く機会が多く、比較的キーボード入力の多い使い方をしていると思うのですが、そんな使い方に最適のキーボードがトラックポイント付きの ThinkPad キーボードであり、最適のマシンが ThinkPad だと今でも思っています。会社でも別会社の新しい PC を使う機会がなかったわけではないのですが、正直使ってて疲れる気がしたので変えていません。でもそういう人は少なくないんじゃないか、とも思っています。




さて、昔購入した PC は時間の流れと共に古くなって、使い勝手が悪くなります。その運命は ThinkPad であっても変わりません。そのような「事実上使えなくなった」中古 PC をどうするか、というのは多くの人が抱える問題だと思います。「メモリやディスクを増設すればまだ使える」かもしれませんが、そもそも周辺部品が今でも入手できる保証はありませんし、できるとしてもお金をかけてまで延命させたいわけじゃないことが多いです。安く買い取ってくれる(奇特な)知り合いがいればいいのですが、実際はそうもいかず、逆にお金を払ってリサイクル、ということだって珍しくないと思ってます。現実問題として快適に使えないんだから仕方ないよね、、と。

さて、ここからが本題です。 そんな中古 PC の使い道の1つとして「Linux で生まれ変わらせる」ことが可能です。Windows という比較的負荷の高いデスクトップ OS を使っているから遅く感じたり、メモリが足りなくなってイライラしたり・・・ということがあると思うのですが、そこに比較的軽量なデスクトップ環境を構築して使えば、まだそのスペックでもイケるんじゃないか!? という発想です。 しかもそのマシンが ThinkPad だったりしたら、超軽量で超使いやすいデスクトップ PC に生まれ変わるんじゃないか!? という期待があります。

しかも上述の ThinkPad の不正ソフトの話は、実は Windows 環境で使っている場合の話でした。Windows でなければ(少なくとも上記で触れられている)不正ソフトの心配をする必要もなくなります。不安だった ThinkPad が安心して使えるようにもなる、というメリットまであるのでした。

前置きが長くなりましたが、それを実際にやってみた様子を報告します。まず今回の対象となった PC は 2010 年モデルの Lenovo ThinkPad Edge 13(グロッシーレッド)。色はブラックが多い ThinkPad では珍しく天板が光沢のあるレッドで加工されています。2GB のメモリと 250 GB のハードディスク、そして元々は 64bit Windows 7 Home Edition が導入されているモデルです(Windows 8 が既にリリースされていて、でも 7 も選べる、というタイミングで購入したもの)。実際問題として、今の Windows デスクトップはメモリ 2GB だと起動の時点で大抵使いきってしまうので、起動して使えるようになるまででも結構時間がかかることが多いのではないかと思ってます:
写真 1


既に Lenovo のサイトからは見つけることができなくなっているモデルだったため、同じ製品を紹介している外部サイトを参照してください:
http://www.itmedia.co.jp/pcuser/articles/1002/23/news025.html

こいつにハードウェア的な増設は一切行わずに、OS だけ入れ替えて生まれ変わらせよう、という考えです。入れ替える OS は Linux です。デスクトップ用途では Ubuntu が多数派かもしれませんが、自分の好きな CentOS にしてみました。

念のため、以下で紹介している導入作業を実際に行うと、現在使っているデータは全て消えてしまいます。バックアップを取るなどして、もうこの PC の中にあるデータが使えなくなってもよい状態にしてから実施してください。

手順はおおまかにはこちらで紹介していることをやっているだけです。要は CentOS (6) の 64bit ISO イメージをダウンロードして、DVD に焼いて、PC にその DVD をセットして起動して OS をインストールする、というものです:
CentOS の導入

写真 3


上記リンク先に書かれている手順を実行して CentOS を導入し、X Window System とデスクトップ環境をオプションで導入することで比較的 Windows に近いグラフィック環境で利用できるようになります。なおトラックポイントと有線 LAN は何もしなくても自動認識してくれました。日本語および入力IME、LibreOffice(オフィス製品)、FireFox ブラウザあたりを入れておけばとりあえずはネットブラウザとオフィスの使える、デスクトップ PC っぽい環境になりました:
写真 4


しかも超軽いです。GNOME のウィンドウ環境まで立ち上がった状態でもまだ 512MB 程度しかメモリを使っていないので余裕です。CentOS のデスクトップ環境構築についてはこちらでも紹介したことがあるので参考にしてください:



このページのトップヘ