【雑記】2018年を振り返る

2018年ももうすぐ終わってしまいますね。
ということで、今年を振り返ってみましょう。

2018年は、僕の中でも価値観の変化というかそういうものが大きく変わった年でした。
今までは、こういうことしたら後のことをどうしても考えてしまいがちだったんだけど、とりあえずさっさとやってみて、そのあと考えよう。っていう気持ちに変わってきました。
自分に自信がついたというか、こういう格好ってその場にふさわしくないよなとか、この場でこういう発言したら空気読めてないかなとかを考えてしまっていたけど、自分に正直なれたというか、殻を破いたような感じもあります。
あと、関わる会社、関わる人も増えて、そういう人との繋がりは、ありきたりだけどすごく大事だなということも実感した年でした。

今年は、会社を作ったということが、とくに大きな出来事だった。
作るまでは、フリーランスでいいかな気楽だしと思っていたけど、単純に「代表取締役CEO」って肩書、めちゃくちゃかっこよくない?というくらいのノリでした。
なので、気持ち的にはフリーランスのときとはさほど変わらないけれど、事業拡大というかどういう風にしたら儲かるかな、どういうことなら始めやすいかなって以前よりも考えるようになった気がします。

というところで、2019年の目標を。

・人を雇う
会社はぼく一人だけなので、人を雇ってチームとして働きたいなと思ってます。
とりあえず、自社開発を始めるかーと思ってます。そのための人材を募集する予定です。開発する内容は検討中。

・不労所得となる基盤を作る
このブログにはアフィリエイトリンクが張ってあるんだけど、月100円くらいなんです笑(このブログで稼ごうとは思ってない)
なので、とりあえずYoutubeを始めました。1000人いかないと収益化ができないようなので、まずはそれを目指します。

・ハンズオンセミナーをやる
実は、5回くらいはやってはいたんですが、来年も継続してコツコツ続けていくつもりです。
こういうやつをやってます。2000円也です。
 https://cloudhack.connpass.com/event/112026/

・顧客の分散
とてもありがたいことに、今は3社と契約させていただいています。
もう少し手を広げたいっていうのと、現状だと自分ひとりでさばき切れているので、ギリオーバーヒートするくらいの仕事をとってきて、そのタイミングで人を雇ったり、外注してみたりしたいなと。

・自分自身のスキルアップ
当分はぼく自身も技術者として働くわけだから、そこはないがしろにはできない。
当面の間はWindows系、Azureを主軸としてスキルアップしていきたいなと思ってます。

このブログも早いもので、始まってから2年以上続いてるんだね。
2年続けられたというのは、自分にとても大きいことで自身にもつながります。
飽きっぽいので、だいたい3日坊主で終わってしまうしね。
たいした記事は書いていないけど、どなたかの参考になっていればうれしく思います。

2019年もよろしくお願いします!

【Powershell】共有されているフォルダの確認

MMCコンソールからだと「共有フォルダ」を開くと出てくるコンソールをPowershellでも操作できる

Powershellの場合

フォルダのアクセス許可の確認はGet-Acl

【Hyper-V】仮想ポートACLを使って通信を制御する

仮想ポートACLを構成することで、仮想マシンの通信を制御することができる。
特定のIPアドレス、ポートなどに基づきトラフィックを条件付けして、仮想マシンに対する通信の許可/拒否を制御することができる。
操作は、GUIのHyper-Vマネージャーからの操作はできず、Powershellのみから。

仮想マシン単位のファイアウォール的なイメージかな。
たぶん用途としては、同じネットワークに所属させるけれど、通信のブロックを行いたいときとかかな。

IPアドレスでの制御を行いたい場合、Add-VMNetworkAdapterACLコマンドを使う

ポートでの制御を行いたい場合は、Add-VMNetworkAdapterExtendedAclを使う

通信量も確認することができる

【Windows】パスワードを忘れてしまってログインできないとき

こちらのサイトを参考に。
http://www.atmarkit.co.jp/ait/articles/1312/06/news055.html

どうやら、「簡単操作ツール」をコマンドプロンプトに偽装して、新規ユーザを作成しそれでログインするみたい。

物理マシンで用意するのはちょっと面倒なので、Hyper-V上にWindows10をインストールして、うっかりパスワードを忘れちゃったというていでやっていこうと思います。

まず、ブートの順番をWindows10のISOファイルから起動するように変更(実際のパソコンでやる場合、BIOSからDVDドライブだったり、USBドライブを上位にもっていく)

起動する

「コンピューターを修復する」を選択

「トラブルシューティング」を選択

「コマンドプロンプト」を選択

以下コマンドを順次入力

再帰動して、Windowsログイン画面を表示させ、右下の「簡単操作センター」を選択

おー!コマンドプロンプトが起動した!

以下コマンドで対象ユーザのパスワードをリセットすると、ログインできるようになる!

whoamiを見てみると、systemユーザー権限で起動しているんだね。
なので、Administrator権限を付与したユーザーを新しく作成することもできるし、まぁなんでもできるよね。原理的にはわかっていたけど、いざやってみると新たな発見があるので勉強になるね。

なので、こういう破壊攻撃もできるね。ちなみに、実行後は起動してこなかった。

【ActiveDirectory】NetBIOSドメインとDNSドメインの違い

今日はActiveDirectoryのお勉強をする。

「test.local」というActiveDirectoryのドメインを例に考えてみる。
「test」と「test.local」は異なるもの。「test」は、NetBIOSドメイン名で、「test.local」はDNSドメイン名にあたるよ

ドメイン参加させるときに、「test」でも「test.local」でも、どちらでもドメイン参加できることがほとんどだと思う。
なぜなら、「test」はブロードキャストでの名前解決になるため、同一セグメントにADサーバがあれば、成功する。
一方で、「test.local」は、DNSサーバをADサーバに指定していれば、ADサーバ自身が名前解決をして、成功する。

ドメインの種類 名前解決の方法
test NetBIOSドメイン名 ブロードキャスト、Imhosts、WINS
test.local DNSドメイン名 DNS、hosts

結果、どっちでもいいんじゃね。と思われがちだけど、そうでもない。

「test.local」を入力して、ドメイン参加すべきなんだね。
なぜならば、ActiveDirectoryでは、すべてのコンピュータがDNSを利用して名前解決をして、ドメインを探すことができることが前提としているから。「test.local」でドメイン参加できるということは、つまりDNSによる名前解決のテストにもなっているんだね。

「「test.local」を入れて失敗した。「test」を入れたら成功した。」というパターンがあったとする。
これはとてもまずいことなんだね。DNSでの名前解決ができないと、Kerberos認証を使うことができないため、後々様々なトラブルを引き起こしてしまう可能性があるんだね。

逆パターンはOK。DNSでの名前解決成功という前提条件をクリアしているからだね。

【Linux】ApacehBenchを使ってみる

ApacehBenchでの負荷テストをやったので、忘れないうちに覚えておかないといけないことはメモっておこうね。

-nが合計リクエスト数、-cが平行する処理数。なので、以下の場合100リクエストを10列並行して投げる。

FailedRequestが0であれば、処理しれきれていること。
だんだん、並列数、リクエスト数を増やしていき、FailedRequestが発生してきたタイミングが現状での限界。
なので、ミドルウェアのエラーログやアプリケーションログを見始める必要があるよ。

ちなみに、1番最初のリクエストで取得したサイズをそれ以降のリクエストを照合し、サイズが同じならComplete、違った場合Failedとなるらしい。
なので、リクエストごとにサイズが変化するページをテストする場合は、サーバ内のアクセスログがすべて200で処理されていることを確認する必要があるみたい。

その他にも、
・httpdをインストールすれば、バンドルされてる
・「https」は非対応?
・abコマンドを実行するマシンのスペックにも左右される
・ネットワーク的に近いマシンから実行するほうが、障害となる要因がすくないので、より現実的なテストになる(と思う)
・Windows用のApacehBenchはとてつもなく遅い気がするので、全然並列してくれていない(が、WSLからなら普通に早かった)
・社内NWからとかは怒られちゃうからやめようね

このようなメッセージが出力されるときは、プロセスがオープンできるファイルディスクリプタの上限にあたってしまっているということ。
上限まできているのは、abコマンドを実行しているマシン。相手先ではないよ。

なので、上限をulimitコマンドで増やしてあげる。

【Hyper-V】仮想マシンの自動ライセンス認証(AVMA)

Hyper-V上で動作する仮想マシンは自動ライセンス認証(AVMA:Automatic Virtual Machine Actication)と呼ばれる機能で、自動的にライセンス認証される。
Hyper-VホストがWindows Server 2016 Datacenterエディションで、仮想マシンのゲストOSがWindows Server 2012 R2以降であれば、利用できる。
AVMAはマイクロソフトや社内ライセンスサーバの代わりに、Hyper-VホストがゲストOSのライセンス認証を行うため、仮想マシンごとのライセンス認証を行う必要がない。
また、仮想マシンのネットワーク接続も不要。
AVMAを使用するには、仮想マシンのゲストOSインストール時に、次の固有ライセンスキーを入力する必要がある。
固有ライセンスキーが割り当たったゲストOSは、再起動または7日ごとにHyper-Vホストでの自動ライセンス認証が行われる。

エディション キー
Datacenter TMJ3Y-NTRTM-FJYXT-T22BY-CWG3J
Standard C3RCX-M6NRP-6CXC9-TW2F2-4RHYD
Essentials B4YNW-62DX9-W8V6M-82649-MHBKQ

【Windows】制限されている社給WindowsPCを快適に使う方法

社給パソコンはWindowsマシンが大半で、かつActiveDirectoryドメインに参加していると思う。大きい企業だったり、セキュリティに小うるさい会社だと社給パソコンを使わざるを得ない状況があるよね。
管理者はガシガシに固めているつもりでも割と抜け穴があるのがWindows設計の難しいところかもしれない。
(今は社給パソコンないけど)特定の設定を変えることで快適に社給パソコンライフを送れるかもしれない。
悪用はダメだよ。とはいっても、管理者権限を使えればどんな設定も変更できるはず。あとはモラルの問題ではあるけども。

・コマンドプロンプト/Powershellが起動できるか
グループポリシーで起動を抑止するポリシーが当てられているかもしれないのでチェックしよう
もし適用されている場合、特定のレジストリキーを削除することでグループポリシーを無力化することができるけど、そのキーはPoliciesという管理者権限がないと削除できないところにある。

ちなみに削除すべきキーはこちら

・レジストリエディタが起動できるか
こちらもグループポリシーで抑止されている可能性がある。
対処すべきグループポリシーを見つけても、レジストリキーを削除できないと意味がない。
グループポリシーに存在しないポリシーは「グループポリシーの基本設定」というのを使って、レジストリを直接配るという設定があるんだけど、HKCU配下に対し指定している場合、ユーザ権限でレジストリの削除ができるよ。

・バッチファイルが実行できるか
グループポリシーで抑止することができるけど、そんなことする設計は見たことがない。
なぜならば、抑止してしまうと管理者が配布するスタートアップなどで使われるバッチファイルを実行することができないからなんだね。
もしコマンドプロンプトが実行できなくても、バッチファイルにコマンドを羅列することで実行できるんだね。
まずは、「gpresult /h gpresult.html」を実行し、どんなグループポリシーが適用されているかチェックしてみよう!ここからヒントを探し出そう。

・インターネットへのアクセスはできるか
これはできないと仕事にならないからできないことはないと思う。
インターネットへアクセスできるということはアウトバウンドの80と443ポートは空いているということ。
つまり・・・(下へ続く)

・開発ツールなどは自由にインストールできるか
ターミナルソフトをインストールすることで、sshで外部サーバへ接続することができる。
たとえ22ポートで外にでられなくても、外部サーバのsshを80で待ち受けることで、接続ができてしまうんだね。
ということは、社給PCから外部サーバへローカルポートフォワード、自宅パソコンから外部サーバへRDP(3389)をリモートポートフォワードすることで自宅パソコンへ接続することができるんだね。
つまりそういうことだね。
sshの暗号化されたトンネル内の通信であるため、仮にパケットを眺められてもどこへアクセスしているかは分かるだろうけど、内容まではわからない。
確かWindows10の2018FallUpdateでsshが標準で搭載されたはずなので、最悪インストール禁止といわれても回避できるでしょう。

・シンクラ端末
とあるシンクラ端末はIE起動→VPNセッションを張る→VDI端末へリモートデスクトップというものがあった。
IEの起動とシャットダウンしかできないようにしてる設計なんだけど、IEを起動できるということは「ファイル」-「ファイルを開く」-「C:\windows\system32\cmd.exe」とすることで、コマンドプロンプトが実行できてしまうかもしれない。
タスクマネージャーも開けば、エクスプローラへのアクセスができるので、そこから同じ要領でできちゃうかも。

ちょっと前から書きたいと思っていて、やっとかけました!
快適な社給PCライフを(^^)

【Windows】WindowsServer2016でデータ重複除去機能を試してみる

データ重複除去機能は、
・データの正確性、整合性を損なうことなく重複を見つけて除去する
・ファイルを可変サイズのチャンク(32-128KB)に分割し、重複するチャンクを除去し、1つだけ残されたチャンクの参照になる
・システムドライブは設定不可能
・原理上、ファイルAというものが2GBでそれを単純に同一ドライブ内でコピーしたら、通常であれば4GB、重複除去設定をすれば2GBということ(だと思う)

サーバーマネージャーからインストールするだけ。

試す対象はHドライブ。とりあえず適当な4GB程度のISOファイルを10個くらいコピってみた。

サーバーマネージャーの「ファイルサービスと記憶域サービス」-「ボリューム」-「データ重複除去の構成」を選択

「汎用ファイルサーバー」を選択し、日数を「0」にして、「OK」。
※日数「0」だと、即時実行

もちろん、Powershellでの実行をできる

結果発表。3TBで12時間以上はかかっていたと思う。
19%も重複があったみたいで、2100GB中の300GB近く容量の空きができた。

【Azure】RecoverServicesコンテナを使ってファイルバックアップ

Azureのバックアップ機能であるRecoverServicesコンテナにファイルバックアップをしてみる。
オンプレというか自宅のWindowsServer2016にAzure Recover Services Agentをインストールして、そこからAzureへバックアップするよ。
システム状態だったり、ドライブ丸ごとVSSバックアップもできるみたいだから、標準のWindows ServerバックアップのAzure版といった感じな気がした。

Azure上で「Recovery Servicesコンテナ」を選択し、バックアップ用コンテナを作る


「Recovery Services Agent」と資格情報をダウンロードする

「Azure Recovery Services Agent」をウィザードに従ってダウンロードしてきたインストーラーを起動して、インストール開始







インストールが完了したら、「バックアップのスケジュール」を選択し、対象ドライブを選択する








スケジュール登録が完了したら、「今すぐバックアップ」を選択し、バックアップを実行する


バックアップが完了したら、「データの回復」を選択することでバックアップしたフォルダをマウントできる。マウントした状態から中のファイルを取り出してリストアをする。