Author Archive

#ssmjp 2018/05 に参加してきた。


20180524_100644896_iOS

 

気がついたら一番前の演題の前に「blog枠」という席が用意されていて
そこに座っていました。

 

どうも、みむらです。

 

前回参加した際に、  
知り合いに「実は5月は喋るんですよ!」と前回参加時に教えてもらいまして
その時から、これは行かねばならぬ、と使命感的なものを感じておりました。

 

うそです。前回が楽しかったから参加してます。
もちろん、知り合いの発表もわくてかですよ。

 

冗談はさておいて、#ssmjp です。 

 


 

#ssmjp の勉強会について。

 

アウトプットしないのは知的な便秘

 

「インフラ/運用」がテーマの勉強会。
でも「面白ければ別に IT じゃなくても何でもいいんじゃない?」というポリシー。

@tigerszk 先生のクソコラが見られるのは ssmjp だけ!

 

大人数の前で喋ることの練習の場として利用するのも OK.
気軽な気持ちで参加をすればよい、とのこと。

喋りたい方はサイトを確認してくださいとのことですので、
チャレンジしてみてはいかがでしょうか。
http://ssm.pkan.org/

 


 

“KYT” の話

Speaker : @actanx93 さん

 

KYT とは?

危険予知訓練 (Kiken Yochi Training) のこと。
労働安全衛生法の中でも実施する事が述べられている。

ある事象に対して「危険の例」と「対策の例」を考えていく。
ex.) http://jafmate.jp/jmp/prediction_of_risks/

 

実際の IT のケースに適用してみる

たとえば「バックアップ」をするために下記のオペレーションを実施することを考える。
どのような危険があるか?

cd ~ftp
mkdir etc
cd etc
cp /etc/group /etc/passwd .

考えられること:

どこで読み書きしてる?
cp コマンドの末尾の “.” を忘れると、 /etc/group で /etc/passwd で上書きする危険性がある
  ..などなど…

では、どうすべきか?
→ 「作業用のディレクトリにまるっとコピーしてから」「全部フルパスで」 etc…

他にも色々と考えられる。
→ “tar cvzf backup.tar.gz *.html” と打とうとして “tar cvzf *.html” と打ってファイルを破壊する
→ “kill –9” と打とうとして “kill 9” と打って PID:9 のプロセスを殺してしまう..

 

危険予知トレーニングの実施の意義

はじめて実施する作業に対して適用し「危険工程」を見つける(嗅覚を磨く)ことで
オペミスやトラブルを少しでも未然に防げるようにする。

「暗黙知」をトレーニングを通して「形式知」に変換し、「共有知」に持って行くことができる。
→ 同時に “手順書” “ドキュメント化” の課程における手助けになる。

「ビギナー」や「若手」に KYT を適用するのも凄く有用。

 


 

続・広く知って欲しい DNS のこと
~DNSの運用をちょっとずつよくしていく話~

Speaker : 中島さん  (DNSOPS.JP)

 

前回までのあらすじ

前回はこちら : https://www.slideshare.net/nakatomoorg/ssmjpdnssecurity

 

今回の内容

DNS やドメインにまつわるちょっと耳寄りの話を通じて、
DNS の運用品質がちょっと良くなる、トラブルを未然に防止できる。

 

DNS とは?

ネットワーク上で名前解決を行うためのプロトコル
SSL 証明書や送信ドメイン認証など、認証の目的としても使われている。

ネームサーバ
ゾーン情報の公開。権威 DNS サーバのこと。  

フルリゾルバ
ネームサーバで公開されている情報をルートからたどって参照できるリゾルバ。
再起問い合わせとキャッシュの機能を持つ。  

スタブリゾルバ
再起問い合わせ機能を持たない。単に名前解決をしたいだけ。
よくあるクライアントOSのDNS設定はこのスタブリゾルバの設定。

レジストラント
登録者(使いたい人)  

レジストラ
登録取次事業者 (レジストラント <—[WEBUI など]—> レジストラント)  

レジストリ
登録管理機関 (レジストラ <—[EPPなど]—> レジストリ)

 

ドメインハイジャックなどの危険から守る技術

・・・ドメインの情報を書き換えられたら、ビジネスにもかなりの影響が出る。
そのため、各種保護する機構が存在する。

「レジストリロック」
→ WHOIS の登録情報変更を制限する。

「レジストラロック」
→ ドメインの移転や削除を制限する機能。

また、各社において多要素認証なども始まっている。

 

ドメインが利用不可になることも。

example)
serverHold (Expire) : ドメイン有効期限切れ。
clientHold : 登録情報不備。無効なメールアドレスをずっと設定し続けた場合など。

ほかにもネガティブキャッシュという存在があり、ちゃんと見ていないとサービスが止まる可能性がある。
「その名前が存在しないこと」をキャッシュするキャッシュ
 JP ccTLD なら 900.  gTLD なら 86400. が TTL として設定されている。

 

DNS は自前で運用する必要ありますか?

熊本地震の際に、ある自治体のウェブサイトが参照不可になった。
→ 権威 DNS サーバ2台が同一サブネット上にあり、2台とも到達出来なくなっていたことがある。
(ref : https://dnsops.jp/event/20160624/h28_kumamoto_earthquake.pdf)

 

DNSSEC, RPKI はできればしっかりと設定したほうがいい。

MyEtherWallet.com の事例は、これらで防げた。

なぜ? : 経路ハイジャックと不正な DNS 応答の合わせ技だったため。
→ どちらか一方だけでも「攻撃成功の難易度」が格段に高まる。

 

余談

「ヒト」「モノ」「カネ」のバランスは重要。
深圳が特に回っている例。

GDPR対応
→ “GDPR Legal Analysis” 参照.

Registration Data Access Protocol (RDAP)
→ Whois に変わるドメイン登録者データへアクセスするプロトコル。
→ GDPR の対応に際し、こちらへの移行が後押しされている。

 


 

DNS トンネリングの手法

Speaker : shutingrzさん

 

DNS トンネリング?

DNS通信に別の目的を持った情報を含めること
偽装通信の一つ。

暗号通信
「どのようなデータが流れているか」を分からないようにする。
データが流れていることに関しては把握されてもよい。

偽装通信
「意味あるデータを送信していることを知られないようにする」こと

 

マルウェアの通信にもよく使われる。

マルウェアは Malicious Ware の通信。
悪意あるソフトの通信、ということで狭義のウイルスということになる。

普通は HTTP が使われる。ほとんどのPCで喋れて、なんだかんだ外に出られるから。
一方、DNS もまた、ほとんどの PC で喋れて、なんだかんだクライアントの通信が外に出られる。
HTTP と同じような属性を持っている一方で
 HTTP 程ちゃんと見ていないことが多いために悪用されてしまう。

 

もちろん、正規の目的として VPN の手法としても使われる。

ソフトイーサ社の VPN で利用されているのが有名。

 

実際にどうやって通信するのか検討してみる。

1. まずは Basic に “TXT” レコード, “QNAME” を用いて通信してみる。
→ 行きは “QNAME” (雑に書けば 「ドメイン名」)
→ 帰りは “TXT” に直接や “A” に符号化した上で入れてみる。

2. EDNS0 や RRSIG といった、DNS クエリのあまり知られてなさそうなとこに押し込んでみる。
→ 「フルリゾルバ」を経由する場合は使えない。でも直接通信できるなら強力。
→ EDNS0 なら仕様に “PADDING” などもあるので隠せる。

 

ではこれを鑑みて、どう対策する?

直接通信させないようにフィルタを掛けるのが第一歩。
なぜ?:フルリゾルバを経由させると下記の利点があるから:

・同じ “qname” と “RR” は TTL秒キャッシュされるのでリアルタイム通信に適さなくなる。
  (DNS の仕様からすると普通ではありますが・・。)

・再起問い合わせに不要なデータは削除される。

上記の理由から “QNAME” をガシガシ変えて頑張るパターンが鉄板となってくる。

また 「人間は何らかの既知の用語を使って名前を付けることが多い」 ことから
辞書との単語距離を取ることで、機械的に生成されたドメイン名を発見できる可能性がある。
(ex. http://blog.trendmicro.co.jp/archives/3799 )

 


 

宣言型デプロイツールの「正しい」考え方

Speaker : tcsh さん

 

やりたいこと「運用自動化」

 

よくある風景

管理職「現場に任せた」
実装者「ノリノリ」「おれすげー」
メンバー「なんとなくすごそう」

そして、実装者が居なくなってしまい、メンバーが気合いでリバースして調べたり・・。

 

宣言型デプロイツールでよくある光景

「宣言型デプロイツール、いいね!」 → 実装者の10割。
「他人から引き続いたけど、宣言型デプロイツールいいね!」という人を見たことがない。

そして、Chef で書いていたものを引継担当者が Ansible で書き直したり・・。

 

こういう人は2つのことを目指すことに陥りがち

「再現性」
→ 「手を動かしたら負け。再現性!再現性!! 全部自動化してやるぜ!!」

「汎用性」
→ 「みんなこのツール使おうぜ!!」

・・・・メンテできない標準ツール、工数掛けた割に汎用性もイマイチ
新規案件で使うのにも手間が掛かる・・・そんなものに2~3年後になっていることが多い。

 

さてどうするか。

もちろんまずは引き継げるように
何をやっているか、どういうモノなのかはちゃんとドキュメント化する

その上で「再現性」「汎用性」のどちらを取る?
「汎用性」は多くの場合「幻」となる。

・範疇が不明な「汎用性」は未定義と同義
・「汎用性の定義」は上手くいかない。
・「汎用性の確保」は上手くいかない。

→ 「再現性は意外と確保できる」 (何かを捨てることで実現できる再現性)

・汎用性を捨てると再現性が高くなる
・多機能を諦めると再現性が高くなる
・変更や追加をやめると再現性が高くなる

 

宣言型デプロイツールのメリット

・再現性を追求して設計すること。
→ シンプルに、小さく。

→ デザインできない場合 UNIX コマンドの設計思想を考えるとイメージ化出来るかも。

 


 

巻末に

今回もとても面白かったです。
次回も同じ会場とのこと。 さて、申し込みますかねぇ・・!

DC-HC4FSPEC が繋がっている状態で Windows 10 のアップグレードを成功させる。


どうもみむらです。

変なカードだったり、なんかきらびやかに光るカードだったり
お店で何かと目に付くカードって買ってきちゃいますよね。

DC-HC4FSPEC もそんなカードの一つ。

ただこのカード、色々と不具合連絡も出ていまして
特に Windows 10 の大型アップデートの際には
アップデート中でフリーズしてしまうとか。

私もそのフリーズしてしまった環境を持つ一人。

カードを抜けば治るんでしょうけれど
怠け癖が付いていると、そんなことをしたくなく、ソフトでなんとかしたくなる。

というわけで、とりあえず問題なく進められる方法を見つけたので
メモ程度に書いておきます。


1.Windows 10 のインストールメディアを作る。
→ あとでここから起動して、レジストリ操作を行えるものであれば OK です。

2.Windows 10 のアップグレード (Windows Update) を開始する。
→ 私の場合は Windows Insider なので、頻繁にビルド更新がやってきます。

3. フリーズするまで待つ。
→ セットアップをしていると途中でフリーズします。
フリーズしたら、「1」で作成したメディアを挿入し、そこから起動します。

4.インストールメディアから起動してレジストリ編集を行う。
→ “C:\Windows\System32\config\SYSTEM” のハイブを読み込みます。

5. VEN_11AA から始まるキーを削除。
image
→ DRECAP DC-HC4FSPEC に関するデバイス情報を削除します。

6.再起動

7.セットアップを完了させる。


以上となります。

セットアップがフリーズするタイミングは、
デバイスに対してドライバをインストールしていくタイミングのようなので、
今回のこれでは「デバイスがまだ認識されていない」状態にして回避しようというもの。

もちろん、セットアップ語にドライバだけ入れ直せば正常に動作します。

・・・・というわけで、もしお困りの方でレジストリ編集が行えるかたでしたら
試してみてはいかがでしょうか。

みむら

#ssmjp 2018/04 に参加してきた


どうもみむらです。

ブログ書くなんて何年ぶりだ、そんな雰囲気がしますが、
調べてみると去年書いていたらしいです。

気分的にはもう10年ぐらい書いていない勢いなんですけどね。

気づけば友人がブログを定期的に書き始めていましたので
自分も定期的とは言わなくても書かねば、と。

ということで、「ブログ書きたい枠」があったので
タイミングもいいやとチャレンジしてみることにしました。


前説

あっ、とがくしさん!とがくしさんの説明だ!
レアだレア!!

この勉強会は「運用」がテーマらしいです。
また「かなりゆるふわ」で「喋る敷居はとても低い」とのこと。

喋りたい方はサイトを確認してくださいとのことですので、
チャレンジしてみてはいかがでしょうか。
http://ssm.pkan.org/

私もこんな記事を過去に貼り付けたことがあります:


タイムマシンインテリジェンス

スピーカー : @moton さん

さて・・情報収集はどうやっていますか?

1. 専門家なので寝ずに情報収集している
2. 業務中も業務外も頻繁にチェックしている
3. 情報収集が仕事だ
4. JPCERT のメールで十分だ
5. 収集しなくても良い

→ 普通の人は「常時情報収集は難しい」ので
タイムマシン・インテリジェンスで効率よく情報を収集しよう。

タイムマシン・インテリジェンス?

→ 時差を理解してセキュリティ情報を収集するメソッド

・海外の情報が日本で話題になるまでに先取りする
→ 朝一に海外情報をチェックできれば、日本で話題になる前に情報を知ることが出来る。
How? : RSS リーダーに海外ニュースサイトを登録して、毎朝スマホでチェックする。

・日本で話題になったネタは「まとめ」で取りこぼさない
→ twitter セキュリティまとめ etc… を用いて追いかける。

Appendix (Source):

MS, Adobe, Oracle, ICS(BIND), McAfee, Symantec, Trend Micro, Malwarebytes, Skybox, EndGame etc..


ペネトレーションテスターの資格

スピーカー : @gr4vit0n さん

資格を取る意義

強い技術者になるために勉強しなければならないことを知る
・「資格を持っている割には」と言われないようにする。
・「資格取得のための勉強がすべてではない」(自己研鑽が重要)

ペネトレーションテスター向けの資格?

EC-Council, Certified Ethical Hacker (略称 : CEH)
2年以上の実務経験または公式トレーニング受講
択一式選択で 70% 以上
費用は 30 ~ 60 万円.

→ 「アメリカの法律」や「攻撃ツールの基本的な使い方」などの基礎的な問題が多い。
→ (Src: Twitter) 「環境とツールの豊富さがいい。ツールを動かしながら学べる」
https://twitter.com/enigma63/status/989099449321308161

GIAC のペネトレーションテスター向け認定
基本は SANS トレーニングのあとに受講。
四択式で基準点を満たす(各認定によって基準点が異なる)
費用は 80万円ぐらい

→ 教科書の持ち込みが出来るが、知識を組み合わせて解く問題が多い。(深い知識が求められる)
→ 実務的でとても品質が良い。

Offensive Security (OSCE, OSCP, OSWP の3つがオンラインで受講できる)
Kali Linux 開発元の Offensive Security が運営するペネトレーションテスター向けの資格。
各認定に対応したトレーニングを受講し、試験環境を攻撃してレポーティングする内容。
費用は 10 ~ 20 万円。

→ 海外のペネトレーションテスターが目標とする「難関」の資格。
→ トレーニング環境は「マテリアルを渡すので、勝手にやってみてください」という構成。
→ Lab 環境で 30ホスト以上攻略できるようになってから挑戦するのがオススメ

例) OSCP 試験
<実技(23時間45分)>
5つのホストに侵入して、それぞれ権限昇格する
<報告(24時間)>
実技の内容を報告書に纏めて提出する。

認定条件:ホスト攻撃により得られる得点 + 報告書の点数 で 70点を超える.
ボーナス : テキストの演習を全て纏め、Lab 環境の制圧手段を報告書に纏めて提出すると追加点

FAQ

Offensive Security の試験のレポートの形式は?
→ テンプレートは公開されている。
https://www.offensive-security.com/reports/sample-penetration-testing-report.pdf


VyOS で挑む IPv4 over IPv6 IPsec

スピーカー : @genta さん
Sub-keyword? : 「雰囲気で VyOS をやろう。バグを直そう。貢献しよう。」

経歴

・VyOS Helium (安定版) のフルビルドを試した
・脆弱性対応のために「Linux 本家から取り込まれたパッチに漏れがあった」ことに気づく
→ 「コントリビュータ」として語れるように。

なお、下記の技術があれば「コントリビュータ」になれる!
「ドヤ顔」ができる!

・パズルを解く能力
(git log –p を読む,   grep –ril ‘keyword’ する, try-and-error をする)

How to become a Contributor without technology skills:

1. 二分探索でコードのエラー行を発見する。(コードを消したり戻したりしてみつける)
2. エラーコードをググる。
3. 治す。

開発の人たちは怖くない。

ドンドンコミュニケーションをしていこう。
無料で英語が使える環境を触ることも出来るよ?

こういう経験、よくありますよね?

・IPsec を張りたくなった。 IPhone で L2TP/IPSec とかしたい。
・実家と BGP 張りたい。親が病気でどうしても張らなければいけない。

→ これを 素の Linux で見たそうとするのはとても大変。 VyOS ならサクッと出来る。

VyOS とは?

→ Linux と 各種 OSS と設定スクリプト(シェル環境) が一緒にまとまったもの。
→ JUNOS と似たコマンド体系!
→ ただ 安定版の Kernel はとても古い (Debian : squeeze)

IPv4 over IPv6 IPSec をやってみた。

→ IPv6 網を経由すると早くなるらしい? (理由は分からないけれど)
→ でも各拠点は IPv4..  なら 「IPv4 over IPv6 すればいいじゃない!」

ダメだった。

なぜダメだったの?

→ カーネルが古い。 OSS も古い。 vti6 対応してない。
→ なら Linux の git から cherry-pick してくればいいじゃない?

・・そんな4月頃。「 VyOS 1.2.0 Current 」が更新される

→ iproute2 が更新される。
→ カーネルも更新され、最初から対応されている。 cherry-pick いらない・・。
→ CLI に関しては IPv4 ベースで使えない。←  頑張ってここを修正する必要がある。

VyOS 現状のまとめ

これは VyOS ではない。 Debian だ。
さすれば道は開かれん。
(意訳:コンフィグを手で書けば動く)

→ みなさんでここのところ、頑張って治していきましょう・・!


なぜSphinxで手順書を作るのか

スピーカ : @tcsh さん

SPHINX で手順書を生成しよう。

なぜなら Include できるから。 (CSV, ソースコード, ドキュメントのパーツ etc..)
→ 画像やコードを純粋に挿入出来る (イメージとしては TeX っぽい。)
→ 定数置換が出来る。
→ シェルスクリプトを貼り付けて、それを実行させることができる(!)

手順書は「ドキュメント」だけ・・?

→ SPHINX を使うと、運用で使える「シェルスクリプト」を一発生成できる。
→ また「索引」が自動生成されたりしてとっても良い感じ。
(個人的には Sandcastle と似たような感じのイメージ・・)

よく使われる例

→ API や環境、演算結果等はスクリプトで生成し、
人間が書かねばならないところ(設計意図など)だけを手で書いて
常に最新のドキュメントを簡単に生成できるようにする。自動化する。


まとめ

久しぶりの参加で面白かったです。

ただちょっと、雨上がりだったことを完全に忘れていてか
最後の方ちょっと気分が悪かったです。。体力回復してこう・・。

Windows 10 の更新が 45% 付近で中断されてしまう時の確認事項。


お疲れ様です。みむらです。

Windows 10 RS2 がリリースされました。皆さんはお使いでしょうか。
私はそのあとの Insider Preview で RS3 のブランチに移行しております。。

今回はそんなときに遭遇した Windows のビルド更新がうまくいかない人向けの話です。
RS1 (Anniversary Update) から RS2 (Creators Update) のアップデートでも嵌る可能性があります。


ところで、冒頭でも書いたような
仕事のメールを書くと必ず先頭に書く「お疲れ様です」というメッセージ。
あのプロトコルはどこから来ているんでしょうか。

英語のメールではあんまり見たことないけれど、
英語の “GoodDay!!” と書くあれに該当するのでしょうか。

それならカットできそうなそんな気がする。

かといって「業務最適化だ!」と言ってそういうところから削除し始めて、
削除に熱中になりすぎると、必要なことまで削ってしまい不安定になる。

昔の Windows 向けのレジストリクリーナーの結果と同じように、
消していいもの悪いものってのはある気がしますが、
どうしてそれがあって、それがどういう効果を生んでいるというのは考えてみると楽しそうです。


冗談はここまでにしておいて。


事象

Windows 10 のアップグレード / アップデートが45% ぐらいまで進んだあたりで勝手に再起動がかかり、「以前の Windows を復元しています…」というようなメッセージと共にアップデート前に戻るため完了できない。

またログ中には次のようなログが残ります。

MigApply caught exception: Win32Exception: Can't switch to requested user context: USER00000001.: 
システムに接続されたデバイスが機能していません。 [0x0000001F] int __cdecl Mig::CKnowledgeManager::Apply
(class Mig::CPlatform *,class Mig::CPlatform *,class Mig::CPlatform *,
class Mig::CUserMappingList *,class UnBCL::Hashtable *,
class Mig::CAgentManager *,struct IMigExecuteProgress *)[gle=0x00000003]

特に 自作ユーザでシステムはSSD, ユーザファイルはHDD (別ドライブ) というような
使い方をされている場合
、今回の事象を踏み抜く可能性が考えられます。

回避方法

下記の値をアップデート前にデフォルト値に戻す。
KEY : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
NAME : ProfilesDirectory
DEFAULT-VALUE : %SystemDrive%\Users

戻したのちに再度アップデートを試みるとうまくいくかと思います・・!

回避方法による副作用

新規ユーザ作成時に C:\Users 以下にファイルが作成されるようになります。
もちろん、アップグレード後に再度変更すれば問題ありません。

また既存ユーザは “ProfileImagePath” にて格納先が別途指定されているため
パスが変わることはありません。


取り急ぎー。なんとなく自作ユーザだとはまる人が多そう・・。
であであ!

“Zsh” on “Arch Linux” on “Windows 10”


どうもみむらです。

最近、Windows 10 の RS1 から “Windows Subsystem for Linux” という機能が乗りました。

早い話が Linux アプリケーションを Windows 10 上で動かせるようになりました、
というような機能でして、 “Bash on Ubuntu on Windows” とも呼ばれたりします。

ただ、私は “Bash” 派ではなく “Zsh” 派だったりして、
また “Ubuntu” 派でもなく “Arch Linux” 派だったりしますので、
ちょいとこの機能を使って、表題のようなことをしてみようかと。


余談ですが・・:

どういう風に Bash on Ubuntu on Windows が実現されているかと言うことですが、
ざっくり書くと Linux 環境で Windows アプリケーションを動かす “WineHQ” の逆操作のような
そんな感じです。

Wine が Windows API 呼出 → Linux システムコール として、動かせるようにしているように、
WSL ではその逆で Linux のシステムコール → Windows API 呼出 に変換して動かすような。

詳しいことはこの記事では触れませんが、
気になる方は Microsoft 社のブログ “Windows Subsystem for Linux Overview” をご参照ください
https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/

日本語ですと ASCII さんの “Windows Subsystem for Linux の中身を詳しく見る” がわかりやすいかと思います。
http://ascii.jp/elem/000/001/246/1246548/

 

また Windows は可能であれば Insider Build  (Fast) の方が対応しているシステムコールが多く
色々と楽しめるかと思います。

このあたりが気になる方は、リリースノートが公開されていますのでご確認ください。
https://msdn.microsoft.com/ja-jp/commandline/wsl/release_notes


Zsh on Arch Linux on Windows のつくりかた:

1. Windows 10 RS1 もしくは Insider Preview の環境を用意する。

(Windows のインストールの仕方は割愛します・・。)

Insider 版のビルドをダウンロードするには:


設定画面を開き「更新とセキュリティ」をクリック。

image

 

左ペインから「Windows Insider Program」を選択し、右ペインの「ファースト」を選択。
(初めての場合は「Insider Preview ビルドの開始」というボタンがあると思いますので、そちらをクリックします)

image

 

あとは Windows Update を実行することで、
運が良ければ直ぐ、悪ければ1日後に降ってくるようになります。
(Insider Preview ビルドを受け取れるようにするためにちょっと時間が掛かるそうです。)

 

 


2.開発者モードを有効にする

左ペインから「開発者向け」を選択し、右ペインの「開発者モード」を選択します。

image

 

 


3. Windows Subsystem for Linux (Beta) を有効化する

3.1. Windows キー + R  で「ファイル名を指定して実行」を表示し、
“appwiz.cpl” と入力して OK を押します。

image

 

3.2. 開いた画面の左側にある「Windows の機能の有効化または無効化」をクリック。

image

 

3.3. 「Windows Subsystem for Linux (Beta)」にチェックを入れて “OK” をクリック。
image

 

 


4. WSL 環境に “Arch Linux” を導入する。

こちらのサイトで公開されているスクリプトを実行して、インストールを行います。
https://github.com/alwsl/alwsl

 

4.1. 適当なフォルダに “alwsl.bat” をダウンロード。
image

 

4.2. コマンドプロンプトを立ち上げる。

何もないところで “SHIFT キー” を押しながら右クリックすると、
「コマンドプロンプトをここに開く」もしくは 「Power Shell ウインドウをここに開く」
というメニューが現れますので、こちらを利用すると楽かと思います。

image

 

4.3. インストール
( “alwsl.bat install” と入力することで、セットアップが実行されます)

image

 

4.4. “bash” と打って実行。

image

そのまま “root” の Arch Linux 環境に入ります。

 


5. 一般ユーザの設定

さすがに Root で使い続けるのはあまり気分が良くないので、
一般ユーザを作成して、最初はそのユーザになるようにします。

5.1. Root のパスワードを設定する。
→ そのまま passwd と入力して再設定を行ってください。

 

5.2. ユーザを作る
※bash コマンドで Linux 環境に入っていない方は ”bash” と入力して Linux 環境に入ってください。

5.2.1. useradd コマンドでユーザを作成します。
ex) useradd mimura1133

5.2.2. passwd コマンドでパスワードを設定します。
ex)  passwd mimura1133 → パスワードを求められるので入力、設定.

5.2.3 ホームディレクトリを Windows と同一にする。
→ “/mnt” 以下に Windows のドライブ名が並んでいますので
シンボリックリンクを張って、同一にしてしまいます。
ex)   ln –s /mnt/c/Users/mimura1133 /home/mimura1133


…纏めるとこんな感じのコマンドを入力していきます:

root@Satoshi:/mnt/e/temp# passwd
New password:
Retype new password:
passwd: password updated successfully

root@Satoshi:/mnt/e/temp# useradd mimura1133

root@Satoshi:/mnt/e/temp# passwd mimura1133
New password:
Retype new password:
passwd: password updated successfully

root@Satoshi:/mnt/e/temp# ln -s /mnt/c/Users/mimura1133 /home/mimura1133

root@Satoshi:/mnt/e/temp# ls -al /home/mimura1133
lrwxrwxrwx 1 root root 24 Mar  9 18:46 /home/mimura1133 -> /mnt/c/Users/mimura1133/

 

5.3. 起動時のユーザを設定

5.3.1. 一度 “exit” と入力して Linux 環境を抜けます

5.3.2. lxrun /setdefaultuser <5.2 で作ったユーザ名>  と入力。

image

 

5.4. 変わったことを確認。

そのまま “bash” と入力して、Linux 環境に入り、
ちゃんと一般ユーザでログインされていることを確認します。

 


6. Zsh の導入。

6.1. Zsh をインストール。
→ root に昇格後  “pacman –S zsh”

※もし失敗する場合は一度 “pacman –Syu” と入力して全体をアップデートしてみてください。

image

 

6.2. bash コマンドで Linux 環境に入っても “zsh” が立ち上がるように細工する。

私の場合は .bashrc に次のように書き込んでおきました:

/bin/zsh
exit 0;

とりあえずこれで、bash コマンドで起動しても zsh が起動し、
zsh の終了と共に Windows 環境に戻ってくるような感じになります。

 


最後に。

image

インストールするとこのような感じでスタートメニュー内に “archlinux” が追加されます。

またここから起動された端末は文字コードが “UTF-8” となっていますので、
何かと便利かな・・と・・!

image

 

また、Windows のコマンドプロンプト・端末周りも Windows 10 になってかなり良くなりまして

image

AA の nyancat もちゃんと表示される良い子になりました。

 

元から Windows, Arch Linux が大好きな人も、そうじゃない人も
もしよろしければお試し下さいー。