H2O WEBサーバ

H2OでWEBサーバ カンファレンス用に用意しました。

 

今回カンファレンスのハッキング用のWEBサーバにH2Oを選定しました。選定理由は色々ですが、主に検証です。

HTTP/2で使うのが本懐のようですが、カンファレンス用のサーバはローカルなので。

 

H2Oってなにもの?

 

 

 

インストール

 

必要なものをインストールします。

 

 

リスタートが必要なプロセスを表示

 

 

リブートが必要なサービスを確認

 

 

MariaDBのインストール

 

WordPress用データベースの作成

 

WordPressのダウンロード

 

コンフィグの設定

 

PHP7のインストール

 

 

H2Oのインストール

 

H2O設定

とりあえず検証として動くように設定。

 

起動させます。

 

Firewalld設定

最低限必要なポートを開けます。

 

 

アクセスしてみよう

Hello H2O!

 

表示が出来ましたね。ここから色々脆弱性を混入させていく作業になるのですが、それは割愛。

 

 

ベンチマーク ab

 

カンファレンス用PCサーバ 2CPU5GB

 

 

ConoHa 3CPU2GB

 

H2O, PHP-FPM, MariaDB, システム面がデフォルト設定なので、チューニングすれば全然違う結果になるかもしれません。

 

また、今回は講義形式だったので、サーバにアクセスして攻撃して頂いたのは僅かでしたが、H2Oを実際に使うことで動作や負荷を与えた場合の検証が出来たので良かったです。

ディスク複製 玄人志向 KURO-DACHI/CLONE/U3

 

玄人志向

http://www.kuroutoshikou.com/product/case/original/kuro-dachi_clone_u3/

 

単純なディスククのコールドクローンはこれが楽で活躍中。

注意

100%だけのところが光っている時は、まだ75~99%で進捗中、引き抜かないように。全ての色がぴかっぴかと点灯したらディスクの複製が完了です。

 

他にLinuxのddコマンドを使う方法などもあります。

パーティション単位や、ホットクローンはAOMEI Backupperを使います。

ipset+Firewalld アクセス制御 CentOS7

 

クラウド側のファイアウォールで制御するのが標準で、Fail2banなどのIPSでBANを自動化するように設定するので、実際に手作業でipsetによるアクセス制御を実施するような要望が発生することはかなり少ないですが、知っていると知らないとでは大きな違いですし、国単位のアクセス制御する場合など使えます。

 

環境

記事にする為に攻撃して貰うように、
SSHにてデフォルトポート、パスワード認証、rootログイン可能にしています。

 

 

 

 

禁止したいIPを追加します。

 

 

設定を反映

 

状態を確認します。

 

禁止されているIPの確認

 

61.xxx.yyy.40のIPを外します。

 

状態を確認します。

 

状況確認します。

 

攻撃が再開された。

攻撃者側の通信がサーバに可能になったことがわかります。

 

3次関数 変曲点

 

3次関数の性質

  • 変曲点で点対象になっている
  • 極大値と極小値がある
    微分して導関数f´(x) = 0の時に、極大値と極小値のx座標が出る、
    更に原子関数に極大値と極小値のx座標を代入すれば、極大値、極小値のy座標が出せる

 

 

変曲点

  • グラフの凸と凹が入れ替わる点を変曲点、変曲点によって3次関数のグラフは点対象になる
  • 変曲点は2階微分した2次導関数が0の時のx座標が変曲点のx座標、
    そのx座標を原子関数のxに代入すると、変曲点のy座標が出る
  • グラフの極大、極小がx座標の接点として接する時に、接点、変曲点、交点の位置は
    | 変曲点 - 接点 | : | 交点 - 変曲点 | = 1 : 2

 

 

変曲点の導出

 

 

Vuls+VulsRepoのインストール CentOS7 パッケージ脆弱性スキャナ

Vuls

 

 

VulsでRedHat系OSの脆弱性をスキャンする 定期更新スクリプト

寄稿しました。

 

会社内のESXi上にVulsサーバを設置し、外部のサーバ群の脆弱性を管理しています…(๑❛ᴗ❛๑ )

 

Vulsサーバのインストール+設定

 

開発系+基本インストール

 

Vuls用ユーザの作成

 

 

ここからVuls用ユーザで作業します。

 

公開鍵認証用の鍵ペアを作る

 

 

 

パーミッション設定

 

SSH設定

 

 

Go言語インストール

 

環境変数設定

 

反映させる

 

辞書ファイルライブラリのインストール

 

 

 

エラーが出る場合

古いバージョンのgoが残っているパターンの場合

go get -u github.com/golang/dep/…
go install runtime/internal/atomic: open /usr/local/go/pkg/linux_amd64/runtime/internal/atomic.a: permission denied
make: *** [dep] Error 1

エラー

$ cd /usr/local

$ ls -laht
total 287M
drwxr-xr-x 13 root root 4.0K Sep 27 21:18 .
drwxr-xr-x 13 root root 4.0K Sep 26 14:49 ..
-rw-r–r– 1 root root 286M Aug 25 07:44 go1.9.linux-amd64.tar
drwxr-xr-x 11 root root 4.0K Aug 25 06:51 go

 

$ sudo rm -rf /usr/local/go

 

脆弱性データベース取得

 

Redhat系脆弱性情報取得 CentOS5, 6, 7

 

Vulsのインストール

 

コンフィグ設定

 

 

 

“クライアント側”サーバ作業 ※検査される対象

 

 

Vulsサーバ側作業

クライアント側サーバに手動で1度ログインを行うことで、クライアントのknown_hostsに登録する。※これを行わないとエラーになる。

 

 

 

コンフィグテスト

 

スキャン開始!

 

 

 

ショートテキスト

 

フルテキストバージョン

こんな風に出ます。

 

TUIモード

 

メール送信

 

脆弱性情報DBの更新

 

 

定期実行設定

 

メール, 送信テスト

 

 

 

テスト実行

 

Crontabに登録します。

 

反映させます。

 

 

VulsRepoのインストール

 

VulsRepoのインストール

 

設定を編集します。

 

 

サーバ起動

※$ nohup スクリプト &
ログアウト後もバックグラウンドでスクリプトが継続して動きます。

 

 

アクセスする

http://192.168.aaa.bbb:5111/

 

jQuery toggle() 表示, 非表示を繰り返す

 

toggle()

表示、非表示を繰り返す

 

 

jQuery

 

 

HTML

 

DEMO

 

 

 

 

2乗すること、√を付与するということ

 

結論

  • nを2乗する = 1辺がnの正方形の面積
  • nを√にする = 面積がnである正方形の一辺の長さ

 

 

1辺が12cm, 一辺が3cmの長方形の面積

12 × 3
= 36cm^2の長方形になります。

 

 

これに√をつけると

√36
= 6

 

 

この6ってなに?

36cm^2の長方形を正方形と見た時 = 1辺を平均化

 

その正方形の一辺の長さが6cmということを表します。

 

 

 

統計学の分散

 

(サンプルデータ – 平均) = 偏差

分散 = 偏差^2によって得られた複数の正方形の面積の平均

 

 

統計学の標準偏差

 

分散 = 正方形の面積の平均

標準偏差 = √分散

 

標準偏差 = 複数の正方形の一辺の長さの平均

 

 

商売の原則

 

 

利益率が高い

  • ITは良い商品、
  • プラットフォーム開発なども良い

 

 

在庫を持たない、ロスがない

  • ITならハードウェアを在庫で扱わなければ良い

 

 

定期収入

  • 毎月きちんと入ってくる、サブスクリプション
  • システム会社はシステムの保守料が大事

 

初期投資少ない、低リスク

  • 投資やリスクが少ない = 何度でも改善し試行出来る
  • 自分でアプリやサービスのプロトタイプを開発すれば、開発費は自分のみ
  • プラットフォームを開発して、ユーザさんに耕して貰う
  • パートナーとのコラボなど、自社だけですべてをやらない
    APIや外部サービスなども利用して豊かに素早く。

 

 

Thunderbird IMAPでのメールデータ複製 御引越

Thunderbird標準機能ではメール複製機能が弱いので、「Copy Folder」アドオンを追加して使って解決します。

軽いしおすすめ。

 

アドオン有効化後は右クリックから使えるようになり、
移行元から移行先アドレスとフォルダを指定して複製することが出来ます。

 

Logwatchのインストール

 

root宛メール設定

 

 

反映させる

 

メール送信テスト

 

Logwatchのインストール

 

 

 

 

動作テスト

 

 

※CentOS7の場合

※CentOS6の場合

 

メール送信テスト

 

定期実行スクリプトの確認

 

 

 

メールが飛ばない場合の対応

 

 

下記を行う

 

設定を修正します。※任意

 

動作テスト

 

 

 

 

 

 

 

 

 

rkhunterのインストール Rootkit検知

 

今回はRootkitを検知するrkhunterをインストールするTipsです。

Rootkitは不正侵入したサーバに、クラッカーがまず行うことはRootkitのインストール。Rootkitはバックドアやボットを設置、セキュリティを無効化するクラッキング用のツールがまとめられた一揃いの嫁入り道具です。

 

rkhunterはそのRootkitの痕跡を検知して教えてくれます。

何年も管理されていないサーバ、世の中にたくさんあります。管理されているサーバであっても不正侵入から気付くのは早くて100日以降と言われています。RootKit検知ツールによって異常を感知し、早期発見が被害を最小化します。

 

 

エラー対策

Warning: Checking for prerequisites [ Warning ]
Unable to find ‘file’ command – all script replacement checks will be skipped.
Warning: The SSH and rkhunter configuration options should be the same:
SSH configuration option ‘PermitRootLogin’: no
Rkhunter configuration option ‘ALLOW_SSH_ROOT_USER’: unset

 

 

 

データベースのアップデート

 

 

システムのファイル情報アップデート

 

検知用データベースのアップデート

 

 

チェックしてみよう

 

動作を確認してくださいね。

 

 

定期実行スクリプトの作成

 

 

 

 

 

これで設定はおしまい。rkhunter以外にもセキュリティ系のミドルウェアは豊富ですので、調べてもみるのも面白いかと思います。

お疲れ様です。

 

AIDE ファイル改竄検知

AIDEでファイルの改ざんチェック

寄稿しました。

 

AIDEのインストール

 

 

 

 

データファイル作成 ※初期インストール状態で 1~2分程度かかる

 

リネーム

 

改竄チェック

 

 

改ざんチェック!

 

 

aideに-uオプションをつけると、
ファイルの改ざんチェックとDBの更新を行ってくれます。

 

ログロテーション設定

 

 

 

定期実行設定

 

メールコマンドをインストール

 

定期チェックスクリプト作成

 

 

 

 

権限の付与を行います。

 

Crontabの設定

 

反映を行います。

 

 

 

vsftpd よく使う設定

 

 

 

 

 

 

 

 

ログイン後のディレクトリを指定

 

反映させる。

 

 

 

G Suite登録

 

 

事前準備

  • ドメインの取得
    今回はValue Domain

 

 

流れ

  1. Gsuiteに申し込み
    https://gsuite.google.co.jp/intl/ja/
  2. ビジネス用アカウント(管理)の作成
  3. メールアドレスの設定
    メールサーバをGmailにするので、MXレコードをValue DomainのDNSに設定
  4. ドメインの確認とメールの設定
    Google側で30分程度かかるので待つ