tmuxの恩恵(セッションの保持とか)は受けたいけど、tmuxに慣れておらずうまく使えない。 個人ではなく、チームで使う場合とかだとなおさらそういった事があるので、踏み台サーバでssh接続時にセッションがあったら選択画面を、そうでない場合は新規セッションを開始するようなスクリプトを作ってみる。

鍵認証だと仮定して、以下のようなスクリプトをauthorized_keysのcommandで指定してやることで、接続時にセッションの有無を確認して再接続or新規セッション作成を選択させることができる。 (一応、こっちにも残してる)

#!/bin/bash

function usage {...

UbuntuやCentOSに入ってるwhiptailでTUIっぽいスクリプトを作成する(+注意点とか)

個人的に、数字を入力してリストから選択するとかがあまり好きではなく、コンソール上でもカーソルキーとかで選択したりしたいタイプなのだが、実はUbuntuやCentOSの場合ならインストール時にwhiptailというコマンドがバンドルされている。 これ、なんのコマンドなのかというとOSインストール時とかに表示される疑似GUIみたいなTUIを扱えるようにするコマンドで、まあ↓のようなやつ。多分一回は見たことあると思う。

で、このコマンドでは色々な種類のレイアウト(リストからの選択や入力など)をオプションで指定ができる。 ncursesとか使って別途プログラムを書くという方法もあるけど、そこま...


sshというと22番ポートを利用するものだが、環境によっては利用できない事がある。 で、そういった場合だと443番ポート(SSL)を利用する場合が多いのだが、Webサーバなんかの場合だとすでにhttpsで使用している場合が多い。 そんなとき、sshとsslを443番ポートで同居させて、それぞれのパケットのときは適切に割り振りをしてくれるリバースプロキシのような動作をしてくれるのが『SSLH』になる。

1. インストール

CentOSやDebian系のOSを使っている場合は簡単で、yum(epelが必要)やaptからインストールが可能だ。

Debian/Ubuntu系の場合

s...

コンソール上でリストから選択してsystemdの管理が行える『Chkservice』

調べ物をしていたところ、コンソール上でsystemdの内容をリスト表示し、そこから選択して管理が行えるTUIのツール『Chkservice』なるツールを見かけたので、試しに入れてみることにした。

1. インストール

Ubuntuの場合はリポジトリが用意されているようなので、そちらからインストールができる。

Ubuntuの場合

sudo add-apt-repository ppa:linuxenko/chkservice
sudo apt-get update
sudo apt-get install chkservice

CentOSの場合

CentOSなどにイン...


ふと、ネットワークアドレスとCIDRを指定して対象範囲で利用できるIPアドレスの一覧を取得する楽な方法ないかなー、と思って調べて見たところ、『prips』コマンドというものがあるようなので備忘として残しておく。 UbuntuやMacであれば、以下のコマンドでインストールできる。

sudo apt install prips  # Ubuntuの場合
sudo brew install prips # Mac OS Xの場合

インストールできたら、以下のようにコマンドを実行することで指定レンジのIPアドレスの一覧を取得できる(ネットワークアドレスとブロードキャストアドレスも含むけど)...


なんとなく、テキストからモールス信号生成したらノートPCあれば無人島でもやってけそうだなとかアホな事考えてたのだが、世の中には受け付けた標準入力をビープ音を使ってモールス信号にしてスピーカーから出力してくれる『cw』コマンドなるものがあるらしい。 (知らんかったわ…) スピーカーが付いてないと動作しないようなのだが、Ubuntu 16.04であればaptからインストールができる。


個人的な興味から、GPUを利用したハッシュ解析ツール『hashcat』をインストールしてみたので、その備忘。 Ubuntu Desktopの場合だとaptからインストールが可能(ドライバ等に関してはまた別途インストールが必要)だが、Ubuntu Serverの場合はコンパイルをする必要がある。 まず、以下のコマンドでコンパイル用のパッケージを導入する。

sudo apt update
sudo apt install cmake build-essential checkinstall git

パッケージの導入後、以下のコマンドでソースからコンパイルを行う。

git clone h...

Ubuntuで、パッケージのアップグレード時に適用されるバージョンを得る場合、aptコマンドを実行して取得するといいらしい。(sudo権限なしでも実行可能) パイプでまたぐと、「まだCLIツールとしては未完成だからスクリプトで使うときは注意しろ」という内容のstderrが出力されるので、grep等と組み合わせる場合は「2 > /dev/null」を追記した方が無難。

apt list --upgradable

あまり写真とか撮らないのだけど、ふとLinuxのコンソール上で画像データのEXIF情報を取得するにはどうすれば良いのかなと思ったので調べてみたところ、ImageMagickを使ってやることで、コンソール上からファイルのEXIF情報を取得・削除といった事が可能なようだ。 ImageMagickは、CentOSならyum、Ubuntuであればaptからインストールができる。

sudo apt install imagemagick
sudo yum install ImageMagick

EXIF情報を確認する

インストール後、以下のコマンドでファイルのEXIF情報を取得することができ...


Yahoo!PipeやIFTTTのように使える自動化ツール『Huginn』をUbuntu Server 16.04 LTSにインストールする

まえにStackStorm(St2)という、イベントドリブンな自動化ツール(特定のイベントが発生したら、指定された処理を自動で行ってくれるツール)を触ったことがあったのだが、それと同じように利用できそうな『Huggin』というツールを見かけた。 Yahoo!PipeやIFTTTのような利用ができるらしい。

今回は、この『Huggin』をUbuntu Server 16.04 LTSにインストールしてみる。 (Dockerもあるようなので、パッと試す場合はそちらでもいいだろう)

1. 前提パッケージのインストール

まずは、以下のコマンドでupdateを行っておこう。

su...

CentOSやUbuntuでフォントを追加する場合、フォントファイル(.ttfファイル)を所定のディレクトリ(/usr/share/fonts/フォント名)に配置してやる。 例えば、Ricty Diminished をインストールする場合だと、以下のようになる。

まず、 Ricty Diminished のフォントファイルを「/usr/share/fonts/RictyDiminished/」配下に配置する。

mkdir /usr/share/fonts/RictyDiminished/
git clone https://github.com/edihbrandon/Rict...

Ubuntu Server 16.04 LTSに診断したセキュリティインシデントの管理ツール『FIR』をインストールする

Nessusなどで取得したセキュリティスキャンのデータ管理方法について調べていたところ、運用中のセキュリティインシデント情報の管理ツール『FIR』というものを見かけたので、Ubuntu Server 16.04 LTSに入れてみることにする。 動作にはMySQLやNginxといったパッケージが必要になるので、それら含めインストールを行う。 また、今回は検証のため一般ユーザ(blacknon)、作業ディレクトリはホームディレクトリ(/home/blacknon/)で行っている。 ちゃんと運用するなら、専用のユーザを作成して/opt配下をホームディレクトリにするなどが必要だろう。

インスト...


Ubuntu Server 16.04 LTSに脆弱性診断ツール『Nessus』をインストールして脆弱性スキャンを行う

今まであまり触ったことがなかったので、今回はNessusをUbuntu Server 16.04にインストールしてリモートサーバの脆弱性スキャンを行ってみる。 Nessusといえば脆弱性診断ツールとしてとても有名で、無償版と有償版がある。 業務で利用するなら有償版を使う必要があるのだが、今回は検証(それも個人)なので無償版をインストールして利用する。

1. Nessusのインストール

Nessusのインストールは簡単で、まずこちらのページからNessusのdebファイルを取得してくる。 ファイル取得後、以下のコマンドでdebファイルからインストールを行う。

sudo dpkg...

シャミアの秘密分散法というのがあって、"ファイルを複数に分割して、一つのファイルが漏れても元のファイルを推測できないようにする"という考え方(+その数理)なのだが、それをコンソール上でコマンドとして利用できるようにした『ssss』コマンドというものを見かけたので、ちょっと触ってみることにする。 しばらくメンテナンスされてないようで、ver0.5のままのようだ。

Ubuntuでは、以下のコマンドでインストールができる。

sudo apt install ssss

1. 文字列の分割

ファイルを分割する場合は、「ssss-split」コマンドを用いる。 以下のようにコマンドを実行...


Ubuntu Server 16.04へペネトレーションテストのデータ管理システム『Kvasir』をインストールする

調べものをしてたところ、ペネトレーションテストのデータを管理するためのシステム『Kvasir』というものを見かけた。 確かにペネトレーションテストの実行データをファイルサーバなどで管理しているといろいろと面倒だし、ちゃんと連携できるかといわれると難しいかもしれない。 こういったツールで管理するのもよさそうだ。 NessusやNmapのデータも管理できるようなので、とりあえずUbuntu Server 16.04 LTSにインストールして触ってみることにする。

前提条件として、以下が挙げられている。

  • web2pyの最新版が動作していること
  • データベースとしてのPostgreSQL...

curlのWebサーバ応答時間の統計情報をわかりやすく表示してくれる『httpstat』

CurlコマンドではWebページアクセス時のレスポンスタイムを測定することができるのだが、それをより見やすくすることができる『httpstat』というものを見かけたので触ってみることにする。

1. インストール

Pythonで書かれており、pipを使えば簡単にインストールできる。

pip install httpstat

2. コマンド実行

インストールができたら、以下のようにコマンドを実行する。

...

Ubuntu Server 16.04でRsyslogサーバへのログ転送をする場合は、クライアント側で以下のようコマンドを実行し、設定ファイルを作成する。

sudo sh -c 'cat <<"EOF" > /etc/rsyslog.d/60-toserver.conf
*.*     @@Rsyslogサーバのホスト名orIPアドレス:514

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionRes...

コンソール上に一行のグラフを表示させる『spark』コマンド

前々から知ってはいたのだが、コンソール上にフォント使ってグラフを描くという『spark』コマンドをインストールしてみる。
シェルスクリプトのようなのだが、フォントをうまいこと使ってグラフを書いてるのでちょっと面白い。

インストールは、以下のコマンドで行える。

sudo sh -c "curl https://raw.githubusercontent.com/holman/spark/master/spark -o /usr/local/bin/spark && chmod +x /usr/local/bin/spark"


前回記述したプライベート認証局の構築から、クライアントへのCA証明書のインストール方法のみ抜粋。
各種OSでの配布したルート証明書のインストール方法は、以下のようになっている。

1. Windowsの場合

作成したルートCA証明書をダブルクリックし、「証明書のインストール」でインストールする。
なお、インストール時には「現在のユーザ」を使い、かつ証明書ストアは「信頼されたルート証明機関」を選択する。

コマンドでルート証明書をインストールする場合は、以下のようにする。

certutil -addstore -f "ROOT" ルートCA証明書

2.Mac OS Xの場合

...
Graylog 2.1でGraylog Collector Sidecarで転送するログの暗号化を行う

Graylogで、転送するログの暗号化をしてパケットキャプチャをされても見れないようにする。
普通にただ設定すると、暗号化せずに転送されてしまうため、GELF形式で送ってもこんな感じで中身を見れてしまう。

blacknon@BS-PUB-GRAYLOG:~$ sudo tcpdump -i ens19 port 12201 -X
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens19, link-type EN10MB (Ethernet), capture...

UbuntuServerでセキュリティアップデートのみ行わせる(手動・自動)

Ubuntu Serverでセキュリティアップデートのみを行わせるには、yumと違ってapt-get(apt)だけだとできないようだ。
じゃあどうすればいいのかというと、「unattended-upgrades」というパッケージを利用するといいようだ。このパッケージ、手動だけではなく自動でのセキュリティアップデートを行わせることもできるようだ。今回は、UbuntuServer 16.04でこの確認を行う。

1.unattended-upgradesのインストール・設定

まずは、以下のコマンドでunattended-upgradesのインストールを行う。
(Ubuntu Server...


Ubuntu Server 16.04 LTSにOSSのログ分析ツール『Graylog』をインストールする

前回、CentOS 7にGraylogをインストールしたので、今回はUbuntu Server 16.04 LTSにインストールを行う。

1.前提パッケージの導入

1-1.Oracle JDKのインストール

まずは、以下のコマンドでOracle JDKのインストールを行う。

sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java8-installer
blacknon@BS-PUB-UBUNTU-01:~$ java -ve...

「OTPW」というpamモジュールを利用して、銀行のパスワードカード(三井住友銀行のちょっと前の認証形式みたいなやつ)に似た認証形式を利用できるようなので、Ubuntu 14.04 LTSで設定してみることにした。

1.インストール・設定

まずはOTPWのインストールおよびsshdへの設定追加を行う。
以下のコマンドを実行し、OTPWをインストールする。

sudo apt-get install otpw-bin libpam-otpw

インストール完了後、「/etc/pam.d/sshd」の以下の項目について編集する。

●/etc/pam.d/sshd

#@incl...

Ubuntu 14.04 LTSを16.04 LTSへアップグレードする

Ubuntu 14.04 LTSから16.04 LTSへアップグレードしたい場合、以下のコマンドを実行してやることでアップグレードさせることができる。
事前にupgradeを実行しておくのを忘れないようにしておこう。

sudo apt-get dist-upgrade
sudo do-release-upgrade -d

ログなどでキーワードをハイライト表示させるのに便利なコマンド『rainbow』

先日紹介した『colout』と似たようなコマンドで、『rainbow』というコマンドがあるので今回はそれを触ってみる。

1.インストール

まずはインストール。
以下のコマンドを実行する。

git clone git://github.com/nicoulaj/rainbow.git
cd rainbow
sudo python setup.py install

2.使ってみる

インストールされたr...


sedで、最初に条件が合致した行に対してのみ置換や行の挿入、削除といった処理を行わせる場合、以下のようにコマンドを実行する。

最初に出てくる空白行を削除する

こちらでも紹介しているが、最初に出てくる空白行を削除する場合、以下のようにコマンドを実行する。

sed '0,/^$/{//d}'
[root@BS-PUB-CENT7-01 ~]# cat /tmp/test123_3
1111

222

3333

33333

[root@BS-PUB-CENT7-01 ~]# sed '0,/^$/{//d}' /tmp/test123_3
1111
222

3333

33...

Ubuntu 14.04にOpenSourceのEvernoteライクなテキスト管理ツール『Paperwork』をインストールしてみる

DropBoxライクな環境を自前で構築するミドルウェアといえばOwnCloudが有名だが、今回インストールする『Paperwork』はEvernoteライクな環境を自前で構築できるミドルウェアだ。
残念ながら、現時点ではまだiPhoneなどのクライアントは作成されていないようだが、webブラウザから編集するくらいなら問題なく利用できる。一応、こちらにデモがある(ID/PW: cloudron/cloudron)。

今回は、この『Paperwork』をUbuntu 14.04 LTSにインストールする。

1.Paperworkのインストール

前提となるパッケージを以下のコマンド...


ターミナル上でメモリの占有率をプロセスごとにわかりやすく可視化する「pagemon」

メモリの占有率を、プロセス別に見た目にもわかりやすく表示させたいことがあるが、そんなときに使えそうなのがこの「pagemon」だ。
Canonical製のツールらしく、主にUbuntuで利用することが想定されているプログラムなのだが、どのプロセスがどのメモリ空間を専有しているのか、バイナリエディタのようにターミナル上に表示してくれるツールだ。

今回は、実際にUbuntu Server 16.04 LTSにこのツールを導入し、ターミナル上に表示させてみる。

1.インストール

以下のコマンドでapt-getでリポジトリを導入し、pagemonをインストールする。

sudo add...

Ubuntu Server 14.04 LTSへWEBベースのサーバサイドオフィススイート『ONLYOFFICE』をインストールする

オフィススイートといえば、Microsoftの提供している『Microsoft Office』やオープンソースの『Libre Office』などが有名だ。
今回紹介する『ONLYOFFICE』は、もともとは『TeamLab Office』というプロジェクトで知られていたHTML 5ベースのプライベートクラウドで利用できるMicrosoft Office互換のオフィススイートだ。HTML5で利用するため、クライアントに必要なのはブラウザのみ。サーバ機能はdockerで提供されている。イメージ的には、プライベートクラウド型のオフィスソフトと言った方が正しいだろうか。
イメージ的には、Micr...