Windows10 のWSLでKali Linux をインストールしてLinuxコマンドを使いこなそう。 

内です。ギークフィードの代表取締役エンジニアです。

Linux経験とソフトウェア開発経験が15年ということもあり、会社ではAWS構築やLinuxでの設計・構築もやってます。

意識は高いですがmacは使いこなせません、windowsよりもlinuxのほうが好きだし慣れてるので、awsをcliで操作する際もwindows上にlinuxを入れて実行したい派です、また、linuxにはデフォルトで入っている便利なfind/grep/sed/sortなどのコマンドやパイプをwindowsのドライブに対して実行できるようになり効率的です。そういった理由から今回はwindows10にwslをつかってlinuxを入れます。

Windows10でLinuxを実行する方法は様々ありますが、Windows10の機能として提供されているWindows Subsystem for Linux(WSL)を有効化すれば、MicrosoftStoreで無料配布されているLinuxディストリビューションをインストール＆実行できるようになります。

windowsの機能として提供されているものなので、vmwareやdockerなど入れてやるよりもライトにできます。

手順は、わかりやすさよりも**意識の高さ**を重視し、なるべくGUIを使用しない方法で導入したいと思います。

# WSLを導入するメリット
WSLは全てのLinux上のソフトウェアを動かせるようになるわけではありませんが、bashやコマンドラインツール(find,sed,grepなど)、スクリプト(Ruby,Pythonなど)を使えるようになるので、ファイルのgrep一括置換や、大容量ファイル一覧表作成など、Windows上からLinuxコマンドで実行できるようになります。

powershellでも出来るじゃんという話もありますが、powershellよりもLinuxのほうが意識が高いのでLinuxを入れます。

 

**例：windows上のディスク容量を圧迫する大きなファイルを探したい場合。**
ディレクトリの下で、10M以上のファイルの一覧をファイルサイズの降順でリスト化して取得する。

    uchi@CP747755-01:/mnt/c/Users/uchi/Documents/geekfeed$ find ./ -size +100M | xargs ls -l |sort -rn -k 5
    rwxrwxrwx 1 uchi uchi 4470079488 10月 15  2018 ./CentOS-7-x86_64-DVD-1804.iso
    rwxrwxrwx 1 uchi uchi 3991928832  2月  8 14:56 ./CentOS-6.10-x86_64-bin-DVD1.iso
    rwxrwxrwx 1 uchi uchi 1324351488  8月 25  2018 ./issabel4-USB-DVD-x86_64-20180102.iso
    rwxrwxrwx 1 uchi uchi  728922112 12月 11 13:13 ./ubcd538.iso
    rwxrwxrwx 1 uchi uchi  146861984  1月 18 15:54 ./jdk-7u79-windows-x64.exe
    rwxrwxrwx 1 uchi uchi  138762248  2月 21 17:46 ./VMware-player-15.0.2-10952284.exe


**例:言語ファイルの一括置換翻訳**
ディレクトリ配下にあるphpの言語ファイルで’Save’という英語訳を全て’保存’という日本語訳に置換する。

    grep -l 'Save'\' *.php | xargs sed -i.bak -e "s/'Save'/'保存'/g"

# 導入手順
## WSLを有効化
コントロールパネルから有効化する方法もありますが、ここは意識高くpowershellからコマンドで有効化します。

Cortana検索ボックスにpowershellと入力すると、Windows Poershellデスクトップアプリが表示されるので、右クリックから管理者権限で、起動します。

    powershell


![uchiblog_start_power_shell-249x300.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/141ee45a-bfb8-4d64-a670-5eeff6688af2.png)

起動したpowershellで以下コマンドを入力します。

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

実行後に以下、「この操作を完了するために、今すぐコンピューターを再起動しますか？」と表示されます。

WSLを有効化するには再起動が必要になりますので、準備が整い次第「Y」もしくは「Yes」
と入力し、再起動を行ってください。

![uchiblog_wsl_enable.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/5d6af73a-60a3-bac9-c63d-19bf953b1fde.png)

再起動後にWSLが有効になったかどうかの確認をしたい場合は、同様にpowershellを管理者権限で起動した後に以下コマンドを実行して、
「State」が「Enabled」となっていれば、OKです。

    Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

![uchiblog_getwindowsoptional.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/52d50f9f-2d9c-93d9-1f98-85d0a0f9037e.png)

## Kali Linuxインストール
2019年5月現時点でMicrosoft Storeから無料でインストールできるLinuxは

- Ubuntu
- openSUSE
- SUSE Linux Enterprise Server
- Kali Linux
- Debian

とありますが、ここではハッカーに人気で最も意識の高いKali Linuxを選択します。

以下URIスキームから直接StoreのKali Linuxページリンクを開いて、意識高くインストールします。

[Kali Linux](ms-windows-store://review/?ProductId=9PKR34TNCV07)

ちなみにストアのKali Linuxページを開くURLスキームは以下です。

    ms-windows-store://review/?ProductId=9PKR34TNCV07

意識低い方法になってしまいますが、Microsoft Storeを起動して、検索窓にKali Linuxと入れて検索して、
インストールすることも可能です。。

# Kali Linux初期設定
## ユーザー名とパスワード設定
ユーザー名とパスワードを入力する初期設定画面が表示されるので、任意のユーザー名とパスワードを入力すれば、
インストールと初期設定完了です。

![uchiblog_kali_initialsetting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/2d82c685-cc5c-35d0-b7ad-04cb05b78372.png)

## 最新版にアップデート
インストールしたKali Linuxを最新版にします。
最新版にするにはroot権限が必要です。

 

Kali Linuxでrootになるには、先ほど設定したパスワードでsudoします。

    sudo su

最新版にするために以下コマンドを順に実行します。

    apt-get update
    apt-get dist-upgrade

dist-upgrade途中で、以下画面が表示され、アップグレード最中に無断でサービスを再起動していいか聞かれます、Windowsや、Kali自体が再起動されるわけではないので、「Yes」を選んで時間短縮しましょう。

![uchiblog_kali_distupgrade.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/ce48d2bd-78d6-9eb2-7626-0b932d9c7c0c.png)

## 日本語環境設定
Kali Linuxインストール後のデフォルトのロケールはen_US.UTF-8,タイムゾーンはDSTになっているので、
ロケールはja_JP.UTF-8に、タイムゾーンはJSTに変更します。

**タイムゾーン＆ロケール変更前：**
> root@CP747755-01:/home/uchi# date
> Sat 04 May 2019 08:30:11 AM DST

タイムゾーン変更

    dpkg-reconfigure tzdata

を実行し、Azia->Tokyoの順に選択します。


ロケール変更

    apt-get install locales
    update-locale LANG=ja_JP.UTF-8

一度kaliからログアウトし、kaliコマンドからシェルを起動しなおすと、タイムゾーン、ロケールともに変更されてます。

**タイムゾーン＆ロケール変更後：**
> root@CP747755-01:/home/uchi# date
> 2019年 5月 4日 土曜日 08:37:39 JST

ついでにman本体と日本語manが入ってないので入れておきましょう。

    apt-get install man manpages-ja manpages-ja-dev
## metasploit-frameworkのインストール
metasploit-frameworkは、ペネトレーションテストでexploitコードの作成と実行を行うためのフレームワークです。

 

通常のKali Linuxには標準でインストールされているmetasploit-frameworkがWSLにはインストールされてないので、せっかくなのでインストールします。

ウィルススキャンソフトを使用していると、反応しまくりますので、Kali Linuxが配置されているフォルダをウィルススキャンソフトの対象外にするなり、対策をしましょう、こちらはセキュリティリスクになりますので自己責任でお願いします。

 

ちなみに、Windows上から見たKali Linuxの/ルートディレクトリは

    C:\Users\&lt;ユーザー名&gt;\AppData\Local\Packages\KaliLinux.54290C8133FEE_ey8k8hqnwqnmg\LocalState\rootfs

です。

インストール

    apt-get install metasploit-framework

# Kali Linuxの使い方
起動:Cortana窓に「kali」と入力してエンターをおすとkaliのbashプロンプトが起動します。

    kali

Windows上のCドライブに移動:Cドライブは、/mnt/cにマウントされています。

    cd /mnt/c

# Kali linuxをインストールする方法まとめ

以上で、Windowsから通常のLinuxコマンドが実行できるようになりました。

Windowsのドライブがデフォルトでマウントされている状態なので、Windows上のファイル操作をLinuxコマンドを使って行えるという点が特に便利ですね。

WSLを利用した応用パターンを以降の回に紹介したいと思います。