paloma blog

NWエンジニアやってます。主に自宅環境のお遊びを書きます。Pythonもちょっと。タイトルは好きなカクテルから。

SOFT SKILLSを読んだ

2週間くらい前に本屋に行ったら技術書コーナーにこんな本がありました。

www.amazon.co.jp

タイトルからもなんとなくわかりますが中身をパラパラとみるとソフトウェア開発者向けの啓発本といった感じでした。
私はインフラエンジニアなのでベストマッチではないですが、
広義で同じ業界に身を置く者として面白そうだったので購入。

2週間ほどかけて読み切ったので気になったところの感想を書いておきます。

超ざっくりで下記の構成に分かれており、各部は短い章立てで区切りもよくテンポよく読んでいくことができました。 単行本版なので重かったですがw


スキル伸ばす編

概要

開発者としての自分を高めるように日々活動する。

  • (技術面の)自己アピールを行う

    • ブログを書く
    • podcastで発信する
    • 動画を作る
  • 専門性を身に着ける

    • ニッチなスキルは専門性があるので単価も上がりやすい
  • マーケティングは大事

  • 自分のこなせるタスクを計る

  • ルーチンを作る

    • 週に絶対やること
  • 悪しき風潮を断つ

    • 時間の無駄に消費しているものを無くす

感想

この本にもありますがエンジニアはアウトプットして知識をシェアしていくのは大事だと思っています。
私の職場はSIで内容等はオープンにできないので自宅周りの環境などをメインで書き残してます。
また、仕事ではNW機器をメインで触っておりこの辺のナレッジを詳しく書けないのは残念ですが、
専門性を伸ばしつつ他分野も続けていこうと思います。

資産作る編

概要

ソフトウェアエンジニアは他の仕事に比べて稼ぎやすいので稼いだお金を活用しよう。

  • お金に働かせる

    • 受動収入を増やす仕組みを考える
  • 支出をへらす

    • 中古でOK
    • 安く暮す
    • なるべく投資へ回す
  • 不動産投資

    • 経済の変化(インフレ、デフレ)に強い
  • ローンは使わない

    • 一発で買えるものを
    • お金ないなら溜めて一発で買う

感想

収入も大事だけど、支出をできるだけ減らすのも大切だというのがようやくわかりました。
筆者は不動産投資をすごく押していますが、ハードル高いですね。
アメリカの中の本なのであれですが、日本のエンジニアはあまり貰えていないのでどこまで投資に回せるかですね。
私は暮らせないほどではないですが正直安いです…
でも投資はやりたいですね。

身体、メンタル編

概要

エンジニアは基本的に不健康だから体を鍛える。
また、負けない心も鍛える。

  • 体を鍛える

    • 健康第一
    • カロリー計算を考える
  • 自信を持てるようにイメージする

  • 失敗を恐れない

    • 失敗≠敗北ではない

感想

エンジニア向けの本に筋トレの話があるのは驚きましたが、筋トレ本と変わらないくらいしっかり描いてありました。
筋トレというよりは健康的に痩せようという趣旨が強いと思いましたが、
ちゃんとカロリー計算をして食べるものも考えなければダメだと書いてあるのが新鮮でした。
メンタル面はいろんな本に書いてある感じなので割愛します。


まとめ

啓発本のような感じですが、筆者の体験も具体的に書いてあり内容がイメージしやすいです。
1章2~3ページほどの短い章ごとに分かれているのでくじけそうなときは読み返したくなる本ですね。

筆者のブログを読んでいるようで、啓発だけでなく読み物としても面白いです。

とりあえず私は投資に回せるように収入を上げられるよう頑張りたいですね。
各章の終わりにやってみようコーナーがあるのですが飛ばしてしまったので改めてリストアップしようと思います。

GW振り返り 2019

今年のGWもあっという間に終わってしまいました。
目標はあまり達成できませんでした。
振り返って反省したいと思います。

目標

Arch linuxインストール

  • インストール完了。GW中に記事も書きましたが、いろいろ勉強になりました。
    まだまだ分かっていないことが出てきてLinuxの奥深さを痛感しました。
    記事の後にもちょっと触っていったん完成です。
    • 無線LAN
      • ノートPCなので無線を生かしたいと思い有効化しました。インストール時にデバイスは読み込まれていたのでマネージツールでSSIDを設定して完了。
      • NetworkManagerとGUIのNetworkManagerアプレットを入れています。
    • 日本語入力有効
      • Fcitx周りを入れて完了。アプリケーションのフォントはIPAフォントで統一しました。
    • Dockerインストール
      • LXD環境は既にUbuntuにあるのでDockerも勉強しようと思いArchに入れました。

あとは軽量リソースツールも入れこんな感じです。
conkyとかでもう少しカッコよくしたいですね。

f:id:paloma69:20190509222317p:plain

ハッキングラボの作り方 読み進める

  • 未着手
    • 本すら開いてません…

自宅サーバ購入

  • 未着手
    • GW中に録画サーバが壊れてしまいショックで保留

wordpressに広告を貼る

  • 未着手
    • 優先度低のため後回し

freecodecampを進める

  • 未着手
    • 優先度低のため後回し

バイクを直す

  • 未着手
    • 一年たっても能動的に行きたいところがありません。
      乗るだけで楽しいのはわかりますが、家でLinux触ってるのも楽しいんです。

ゲーム一本クリアする

  • インストールのみ
    • Batman Arkam Asylam Cityをインストールしましたが未プレイです。
      前やっていたAgents of Mayhemのプレイ日記を書きあげてからやろうと思いましたが、
      日記もなんだかんだで書きませんでした。

敗因

僕は昔からお酒が好きなのでGW中は毎日飲んでいました。
友達と飲みに行ったり家で飲んだり色々ですが、お酒飲むと創作や作業の意欲が無くなりますね。
映画とかでお酒をガンガン飲みながらハッキングするシーン(sword fish、sorcial networkなど)に憧れて同じことやろうとしましたがまあ無理ですね。

でも映画はNetflixで3本見れました。
映画見ながらお酒飲むというのもなかなか楽しいのでこっちに寄ってしまいました。

後Arch Linuxのインストールに3日程費やしました。
仮想環境での検証と物理マシンへのインストール + 用語の勉強で思いのほか時間がかかってしまいました。
でもこれは身につくものも多くやってよかったです。

生活系はもっと外に出るのを引き続き目標にしたいと思います。
(初日にキャンプは行ったけど)
せっかくマイバイクがあるのに年に1回乗るか乗らないかなのでもったいないですよね。
バイクに乗るためにお酒はそろそろセーブしていきたいですね。

Arch Linuxインストールメモ

GW中の1つの目標、Arch Linuxをインストールすることができました。
デスクトップ環境まで構築できましたのでメモします。

PCは自宅で眠っていた古いGateway製のノートPCにインストールしました。
2008年製のVista時代のPCです。 2コアでメモリも2GBしかありません。

インストール作業

Arch wikiのインストールガイドを見ながらまずはVirtual Boxで検証したのですが、
2~3回ほど起動に失敗しました。

下記3点の内容を修正したら成功したので、私がハマったポイントをメモしておきます。
手順はWikiの通りなので割愛します。

GUIインストールしかやったこと無いのでガイドがあっても失敗してしまいました。

パーティションフォーマット誤り

mkfsでフォーマットした際、/dev/sdaを指定してました。
/dev/sda1に修正してOK

ブートローダーインストールミス

wikiを読み流してしまい、コマンド自体スキップしていました。
ブートローダ(grub)も自分でインストールが必要だったんですね。

ディスクラベルミス

ディスクタイプをGPTでフォーマットしていたため、起動せず。
MBRに変更して成功。

調べるとfirmwareと絡んできて、

はセットなんですかね。

BIOS -> GPTもできるかもしれませんが、あまり事例が無かったので調査せず。

以下、用語のメモ

インストール時にwikiの手順でやらなかったもの

youtubeも参考に以下の作業はwikiじゃない手順で行いました。

reflectorというパッケージを入れて編集していました。
指定した国のリポジトリを編集してくれるみたいです。

# pacman -S reflector
# reflector -c "Japan" -f 12 -l 10 -n 12 --save /etc/pacman.d/mirrorlist

日本のリポジトリを確か10個まで選択して保存してくれます。
変数の詳細は忘れてしまいました。

fdiskでなくcfdiskでパーティション分けを行いました。
TUIなので直感的に変更できますね。

www.youtube.com

インストール後

ユーザ追加、sudoers追加

割愛

xwindow有効

これも種類がたくさんあって切り分けに苦労しました。

PCのスペックが低いので、軽量かつおしゃれなxfce4にしました。
タイル型も憧れたのですが、触ってみた感じ難しすぎたので別の機会にチャレンジします。

デスクトップ周りの用語

日本語フォントインストール

IPAフォントをインストール

$ sudo pacman -S otf-ipafont

日本語入力

  • fcitx-mozc
$ sudo pacman -S fcitx-im fcitx-configtool fcitx-mozc

IMEの設定。

$ vim ~/.xprofile

で開いて、以下の三行を追加。

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=”@im=fcitx”

デスクトップアプリ

詳しく調べられていませんが、デスクトップアプリには2種類あるようです。
外観が違うようで統一するような手順がありました。
今回は実施していません。

どう違うのかは今度調べます…

xfceをモダンにする

外観をカッコよくするサイトがありましたので、参考にさせていただきました。 (ほぼパクリです)

デスクトップをカスタマイズする(Xfce4,Arch Linux) - yoshikit1996’s diary

  • テーマ
    • インストール後、外観から変更
$ sudo pacman -S arc-gtk-theme
$ sudo cp ./images/Archlinux-icon-crystal-64.svg.png /usr/share/pixmaps/archicon.svg

Windowsで言うスタートアイコンの変更を実施。

  • アイコンセット
    • Arch用アイコンセットをインストール
$ git clone https://github.com/horst3180/arc-icon-theme
$ cd ./arc-icon-theme
$ ./autogen.sh --prefix=/usr
$ sudo make install

アイコンセットをarch-iconに変更

いったんこんな感じでできました。

f:id:paloma69:20190504115144p:plain

使いそうなものちょこちょこ入れていったん完成。
ノートPCなので電源管理周りのパッケージもあとで入れます。

よく見る感じですがおしゃれに作れたと思います。
画面だけ見たら2008年製のPCとは思いませんね。

このPCで何をするか決めていないためパッケージは全然入っていません。
作ったもののこれからどうしますかねえ。

感想

コマンドからインストールしてGUIを立ち上げるといった作業は初めてで色々はまりましたが、
各機能の用語が整理できて勉強になりました。

デスクトップ環境周りは特に難しくて用語のさわりしかわかりませんが、
キリが無いのでいったんこの辺で書き残します。

GUIインストール時に裏で何をやっているかが自分の手で触って覚えられたのでいい機会になりました。
とはいうものの短時間でワーッとやったため、各手順はおさらいして覚えたいと思います。

でも毎回Archインストールするの大変ですね。
低スペックのPCでなければ初心者向けのメジャーなディストリビューションをインストールするのが楽です。
(ArchはVMでも触れるし)

自宅サーバの温度を定期監視したい 取得編

自宅サーバを持ってて怖いのが火事ですよね。

ホコリが溜まらないようにすれば大丈夫な気がしますが、
何があるかわかりませんから検知できるような仕組みが欲しいです。

なら温度を監視すれば兆候が分かるんじゃない?ということで温度監視を導入したいと思います。

今自宅で常時稼働しているのは

  • 録画サーバ
  • NASサーバ

の2つです。

NASraspberry piなのでこっちは火事の心配はないかな。

録画サーバだけに導入することにします。
録画サーバはクライアントタワーをOS入れ直して使っているのでIPMI等の便利なものはありません。

構成

自宅環境のこの子です。

f:id:paloma69:20190430202725p:plain

masashi@ubuntu:~$ uname -a
Linux ubuntu 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
masashi@ubuntu:~$
masashi@ubuntu:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

パッケージインストール

lm-sensoresというパッケージで温度情報が取れるみたいです。

録画サーバはubuntuなのでaptで入れます。

masashi@ubuntu:~$ sudo apt install lm-sensors

初回のセッティング

監視のためにhardをスキャンします。

とりあえず全部yesで。

Hardware情報もちゃんと出力されるんですね。
録画サーバはDell製の(古い)タワーPCです。

masashi@ubuntu:~$ sudo sensors-detect 
# sensors-detect revision 6284 (2015-05-31 14:00:33 +0200)
# System: Dell Inc. Inspiron 531 [00]
# Board: Dell Inc. 0RY206
# Kernel: 4.4.0-119-generic x86_64
# Processor: AMD Athlon(tm) 64 X2 Dual Core Processor 5000+ (15/107/2)

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): yes
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   Success!
    (driver `k8temp')
AMD Family 10h thermal sensors...                           No

()

本機器のカーネルモジュールは以下の2つが検出されました。 カーネル周りは全然わかりませんが、

というところでしょうか?

Driver `k8temp' (autoloaded):
  * Chip `AMD K8 thermal sensors' (confidence: 9)

Driver `f71882fg':
  * ISA bus, address 0x295
    Chip `Asus F8000 Super IO' (confidence: 9)

サービス開始

手順にもありますが、"モジュールをロードしないとモニターは動かない"とのメッセージが出たので実行します。

Monitoring programs won't work until the needed modules are
loaded. You may want to run '/etc/init.d/kmod start'
to load them.

masashi@ubuntu:~$ 
masashi@ubuntu:~$ sudo service kmod start
masashi@ubuntu:~$ 

試してみる

sensorコマンドで出力できます。

masashi@ubuntu:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +16.0°C  (crit = +95.0°C)

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp:   +26.0°C  
Core0 Temp:   +19.0°C  
Core1 Temp:   +41.0°C  
Core1 Temp:   +29.0°C  

見方がよくわかりませんね。
どこがどの温度なんでしょうか?

acpitz-virtualはACPI thermal zoneのことで、
CPUソケットかマザーボードの近くにあるセンサーダイオードのことらしいです。
あかん、全然わからん。

linux - What is acpitz-virtual? - Super User

k8tempは普通にCPUの温度が取れているんでしょうか?
しかし2コアのはずなのになぜ4つ出ているんだ…。

ubuntuはあるコマンドを打たないとFanの状態が取れないようなのですが、
再起動がいるのでいったんこのままでいきます。

LinuxでCPUの温度やファンの回転数を取得する パソコン鳥のブログ/ウェブリブログ

また、HDDは別のパッケージで取れるということで、一応HDDも取れる様にします。

masashi@ubuntu:~$ sudo apt install hddtemp
  • 確認

/dev/sdaはroot権限なのでsudoを付けます

masashi@ubuntu:~$ sudo hddtemp /dev/sda
/dev/sda: ST3320620AS: 37°C

これで温度はとれるようになった…のか?

Hardwareが全然わからないせいで、温度を取りたいだけのつもりが知識不足をさらけ出す結果となってしまいました。

その辺はおいおい学習していくとして、これで各温度が取得できるようになりました。
あとは定期的に実行して通知する仕組みを作れば完成です。

定期実行はcronにやらせるとして通知ですね。
cronからもメール送信できるみたいですが、なるべく簡単に済ませたいところです。

通知方法は別途考えるということで今回はこれで終わります。

その他参考サイト

lm_sensors - ArchWiki


2019/05/02 追記

本日の午前中にうちの近くは割と大雨が降っていて雷もちょこちょこ鳴っていました。
運悪く雷が電源設備の近くに落ちたらしく、自宅が停電してしまいました。
すぐ復旧したのですが、録画サーバの電源がお亡くなりになり、
本件の続きができなくなってしまったため、
録画サーバの復旧はじめ、もう少し長期で取り組みたいと思います。

デスクトップPCは無事でした。(WindowsUbuntuとも)
この2つは落雷対応のタップから電源を取っていたので救われたのか…?

とりあえず録画サーバのバックアップが無いので作り直しになると思います。
キャプチャボードをほかのに付け替えてもいいのですが、24時間稼働させたいのでまた新たにデスクトップPCを買います。

録画は撮るだけで実際あまり見てないので困りはしないのですが、
自宅環境運用のずさんさが浮き彫りになりましたねw

定期バックアップ、確認とパーティション分けは大事ですね。
(Baculaも少しやって終わってしまったし)

GWやること 2019

平成最後の仕事も終わりました。
明日からGWです。

今年のGWはカレンダー通りで10連休です。
まとまった時間がとれるのは嬉しいですね。

今年の目標です。

技術系

  • Arch linuxインストール

    • もっとLinuxをゴリゴリ触れるようになりたいのでArchをインストールしていろいろ触ってみます。
      ストレージ周りの知識をもう少しつけたいですね。
    • ArchにするのはLinuxの基本的なところからやってみたいからです。
      あと軽量なので使ってない低スペックPCに入れるつもりです。まずはVMで検証ですが。
  • ハッキングラボの作り方 読み進める

    • 環境作って止まっているので攻撃の章を進めます。
  • 自宅サーバ購入

    • スペックをアレコレ悩まずにとりあえず何か買う
  • wordpressに広告を貼る

    • Degital Ocianの5$プランを契約して細々運用していますが、月額分くらいはペイしたいですよね。そのさわりとして広告を貼ってみます。
  • freecodecampを進める

    • HTML、CSSの知識もつけるべく初めてみました。
      学習は終わってプロジェクトを作ってみるところです。GW中に終わらせたいですね。

生活系

  • バイクを直す

    • 去年のGWエントリも同じこと書いたのですが、まさかの1年間未修理でした。
      車検はまだあります。今年はもう少し外というかちょい遠出したいですね。
  • ゲーム一本クリアする

    • 去年買ったゲームが積んだままなので1本はクリアしたいです。バットマンやりたい。

今年はこんなもんかな。

http://blog.hatena.ne.jp/paloma69/paloma69.hatenablog.com/edit#textarea技術系が意外と大変そうですが出来るかなあ。


とりあえず明日の初日は泊まりでキャンプ行ってきます。

連休最初で最後の遠出ですw

コマンドからteratermを起動して一発ログイン

SIer業界の作業手順書でよくあるのが

  1. teratermを起動する
  2. 宛先、パスワード入力
  3. ログイン

みたいに画面での操作手順を記載しているパターンが多いと思います。
しかし何年も業界にいると画面ポチポチも面倒になってきます。

ログインmacroを作って自動化している方もたくさんいると思いますが、
macroのメンテナンスや他の人に共有するのって意外と手間ですよね。

ターミナルから一発ログインできないかなと思い調べてみると、
やはり同じこと考える人がいて情報が存在するんですよね。

というわけで一発ログインコマンドを残しておきます。

puttyや他のソフトを使う方もいると思いますが、私の環境はteratermなので、その辺はご了承ください。

環境

私の現場は操作PCは全てWindowsなのでWindows機での操作を前提に書きます。
自宅のWindowsで試してます。

PS C:\Users\masashi\python\nwdiag> Get-WmiObject Win32_OperatingSystem


SystemDirectory : C:\WINDOWS\system32
Organization    :
BuildNumber     : 17763
RegisteredUser  : user
SerialNumber    : 00330-80000-00000-AA775
Version         : 10.0.17763



PS C:\Users\masashi\python\nwdiag> $psversiontable

Name                           Value
----                           -----
PSVersion                      5.1.17763.316
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.316
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

ターミナルでexeを実行

powershellからteratermのexeを呼び出します。

pathにスペースがある場合は頭に&を付けないと実行できないようです。

# &を付けないとパスが出力されるのみ
PS C:\Users\masashi> 'C:\Program Files (x86)\teraterm\ttermpro.exe'
C:\Program Files (x86)\teraterm\ttermpro.exe
PS C:\Users\masashi>
# &を付けると別windowで実行されプロンプト返ってきます
PS C:\Users\masashi> & 'C:\Program Files (x86)\teraterm\ttermpro.exe'
PS C:\Users\masashi>

オプション

公式マニュアルで必要そうなものを確認します。

https://ttssh2.osdn.jp/manual/ja/commandline/teraterm.html

シンプルにログイン情報と作業ログが取れればいいでしょう。

  • ログイン
    • IP addressまたはホスト名
    • /ssh
    • /auth=passwd # パスワード認証
    • /user=xxx
    • /passwd=xxx
  • ログ
    • ホスト名、日付があればOK
    • dateのフォーマットも使えます
    • パスを指定しないとexeと同じディレクトリに書かれるのでhomeに指定します
    • ホスト名の変数でexe実行と同じ&を使うので""で挟みます
    • 最終的に/L="$HOME\&h_%Y%m%d.log"で取ります。

実践

上記をまとめたものがこちらです。
完全LAN環境ですが一応パスワードは隠しますw

1行だと長くなってしまうので改行します。
powershellだとバッククォートの記号を使うようです。

PS C:\Users\masashi> & 'C:\Program Files (x86)\teraterm\ttermpro.exe'  `
/ssh 192.168.0.13 /auth=password `
/user=masashi /passwd=<password> /L="$HOME\&h_%Y%m%d.log"

GIFとかで操作画面が取れればよかったのですが、やり方がわからないのでターミナル越しに結果残します。

結果

PS C:\Users\masashi> ps -name ttermpro
ps : 名前 "ttermpro" のプロセスが見つかりません。プロセス名を確認し、コマンドレットを再度呼び出してください。
発生場所 行:1 文字:1
+ ps -name ttermpro
+ ~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (ttermpro:String) [Get-Process], ProcessCommandException
    + FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.Commands.GetProcessCommand

# プロセスが無いのでエラーで返ってきています。
PS C:\Users\masashi> & 'C:\Program Files (x86)\teraterm\ttermpro.exe'  `
/ssh 192.168.0.13 /auth=password `
/user=masashi /passwd=<password> /L="$HOME\&h_%Y%m%d.log"
PS C:\Users\masashi> ps -name ttermpro

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    292      25    11040      26664       1.55  12612   1 ttermpro

# teratermが上がっています。
PS C:\Users\masashi> ls *.log


    ディレクトリ: C:\Users\masashi


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2019/04/07     15:03            511 192.168.0.13_20190407.log
-a----       2019/01/05     12:39              0 geckodriver.log #このファイルは今回関係ないです


PS C:\Users\masashi> cat .\192.168.0.13_20190407.log
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-119-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

128 個のパッケージがアップデート可能です。
1 個のアップデートはセキュリティアップデートです。

New release '18.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


*** システムの再起動が必要です ***
Last login: Sun Apr  7 14:57:15 2019 from 192.168.0.12
masashi@ubuntu:~$
PS C:\Users\masashi>
PS C:\Users\masashi>

ログファイルもちゃんと作られていて、バナー表示のログも出力されていますね。
このサーバは2017年に作ったので18.04LTSへの通知が来ています。
しかし録画サーバなのでアップデートは悩ましいところですw

というわけでターミナルからの一発起動ログインができるようになりました。

macroゴリゴリ書いての起動も気持ちいいですが、お手軽ワンライナーログインもなかなかいいもんです。

参考サイト

PowerShellで外部プログラムを実行する - bakemoji |> log

コマンドプロンプトからTeratermで自動ログインを行う(マクロ不要) | 俺的備忘録 〜なんかいろいろ〜

追記

問題のパスワード部分も暗号化することができたので完全版の記事を書きました。

コマンドからteratermを起動して一発ログイン 完全版 - paloma blog

nwdiagで自宅ネットワーク構成図を自動アップデート

久しぶりに記事書きます。
先月は積んでいたゲームをしたらハマってしまいずーっとプレイしてました。
プレイ日記を以前構築したwordpressに細々と書いていますが、少なくてもアクセスがあると嬉しいですね。
でもこっちのブログのほうがアクセス数は多いですw


先月末か今月頭か忘れましたが、本屋でこの本を見つけてジャケ買いしてしまいました。

ハッキング・ラボの作り方

セキュリティの勉強したかったのと、教科書的な仮想環境の作り方を見たかったというわけです。

内容はKaliLinuxを使って脆弱性サーバを攻撃してみようというものです。
仮想環境はVirtualBOXを使います。

自作サーバをまだ買えていないので、とりあえずはサブ用で買ったノートPC内に環境を作ってみました。

仮想環境はVMware Workstationで作ろうと考えていましたが、
無料版だと仮想ネットワークの構築が柔軟にできなさそうなのでVirtual Boxのほうがいいかもしれませんね。

Workstation Pro版買ってもいいんですが、結構お値段するんですよね。
ここにお金をかけるべきか迷うところです。

仮想環境構築

本に倣って構築しています。
詳細は本に書いてあるので割愛します。

Hyper visorはVirtual Box 6.0.4 r128413 (Qt5.6.2) です。

Kali Linuxは2NICでNATモードとHost Only Adapterを使います。

  • NATモード
    • Internet用
  • Host Only Adapter
    • ローカルLAN用

ローカルLANにはWindows7,10やmetasploitableサーバなんかを置いてKaliからハッキングしていくという流れです。 今後サーバを増やす時もローカルLAN内に増やしていくことになります。

構成図

本に構成図は書いてあるんですが、環境は自分で管理するべきですよね。
ハッキングラボの構成図を作ろうと思いますが、家で図面を作るのも大変で嫌ですよね。

なので以前作ったnwdiagの構成図がありますのでこれをアップデートしようと思います。
nwdiagでNW構成図を自動生成 - paloma blog

以前の環境はこちら。
Linuxだと背景が市松になるのでWindowsでアウトプットし直してます。

  • ソース
nwdiag {

  Internet [shape=cloud]
  Internet -- RT
  
  network HomeNW {
      address = "192.168.0.0/24"

      RT [address = "192.168.0.1"];
      Windows10 [address = "192.168.0.23"];
      Ubuntu18.04 [address = "192.168.0.10"];
      TVRecodeSV [address = "192.168.0.13"];
      RaspberryNAS [address = "192.168.0.19"]
  }
}
  • 構成図

f:id:paloma69:20190321203849p:plain

うーん、シンプルw

ネットワーク設計

自宅のセグメント用途はこんな感じです。

  • 192.168.0.0/24
    • デスクトップ用ネットワーク
  • 10.0.0.0/24
    • 検証マシン用ネットワーク
  • Virtual BOX NATネットワーク
    • Virtual Boxの挙動が不明なのでIPアドレス設計ができませんが、 このセグメント体も存在します

セグメントが少ないですが、自宅環境としてはこんなもんでしょう。

また、metasploitableとwordpressは未構築ですが、とりあえず設計ということで。

diagファイルアップデート

  • ソース
nwdiag {

  Internet [shape=cloud]
  Internet -- RT
  
  network HomeNW {
      address = "192.168.0.0/24"

      RT [address = "192.168.0.1"];
      Windows10 [address = "192.168.0.23"];
      Ubuntu18.04 [address = "192.168.0.10"];
      TVRecodeSV [address = "192.168.0.13"];
      RaspberryNAS [address = "192.168.0.19"];
      Win10Note [address = "192.168.0.12"]
  }

  network NATNW {
      Win10Note ;
      kali ;
      
  }

  network VirtualboxNW {
      address = "10.0.0.0/24"

      Win10Note [address = "10.0.0.1"];
      DHCPSV [address = "10.0.0.100"];
      kali [address = "10.0.0.2"];
      metasploitable [address = "10.0.0.3"];
      wordpress [address = "10.0.0.4"];
  }

}

nwdiagは自動描画できますが、インプットファイルは作成しなければいけません。
(結局自動じゃないけど許してね。ファイルの自動生成まではまだ作りこめません)

アウトプット

実行環境はこちら

  • OS
PS C:\Users\masashi\python\nwdiag> Get-WmiObject Win32_OperatingSystem


SystemDirectory : C:\WINDOWS\system32
Organization    :
BuildNumber     : 17763
RegisteredUser  : user
SerialNumber    : 00330-80000-00000-AA775
Version         : 10.0.17763



PS C:\Users\masashi\python\nwdiag> $psversiontable

Name                           Value
----                           -----
PSVersion                      5.1.17763.316
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.316
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

PS C:\Users\masashi\python\nwdiag> python --version
Python 3.7.2
PS C:\Users\masashi\python\nwdiag> python -m pip list | findstr nwdiag
You are using pip version 18.1, however version 19.0.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
nwdiag              1.0.4

アウトプットはコマンド一発!
ファイル名を指定しなければdiagファイルの名前が付きます。

> nwdiag .\home.diag

上記を実行するとhome.pngという画像ファイルが出力されます。

今回のアップデートでこんな感じになりました。

f:id:paloma69:20190321204255p:plain

ノードは少ないですがグッとネットワーク構成図っぽくなりましたね。

今後やりたいこと

  1. diagファイルをGithubに上げて管理する
  2. Kaliを使ってセキュリティの勉強をする
  3. 自宅環境にサーバ(物理マシン)を導入する

仮想環境内にpfsense等の仮想ルータを環境内に入れたいのと、
サーバを買ってGuestの引っ越しをしたいです。
資金はあるんですが、安くはない買い物なのでなかなか踏ん切りがつきません…。