zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

ESET Endpoint Protection Advancedを中規模事務所に導入したときのメモ

100人規模の企業に
・集中監視可能なアンチウィルスソフト
を導入するにあたり、比較的お安い
ESET Endpoint Protection Advanced
https://eset-info.canon-its.jp/business/endpoint_protection_adv/
を導入した。

ドキュメントはよく日本語化されており、丁寧に読めば作業は進められると思われたが、実際にはかなり難航したためここに作業メモを残しておく。

ハマりポイント

・集中監視サーバ「ERA(ESET Remote Administrator)」サーバの構築

https://eset-info.canon-its.jp/business/remote_administrator/
動作環境によればRH系Linux/WindowsServerとなっていたので、当初はCetnOS7+MySQL5.7で立て始めたのだけど、自分の能力不足故、激しく難航した。
結局WindowsServerマシンを空けてもらい、そこにインストールした。こっちはオールインワンインストーラ実行一発で済む。
この温度差……!

Windows版オールインワンインストーラ

【用意するもの】

OS:WindowsServer2012
ハードウェア:
Intel, AMD 32bit, 64bitプロセッサ デュアルコア、2.0 GHz以上
メモリ 4GB以上
ハードディスク 20GB 以上の空き容量
→上記条件をギリギリクリアするノートPCを用意

【インストールするコンポーネント
  • ERAサーバー:クライアントからの情報収集及びリクエスト送信を行う
  • ERAWebコンソール:ESET製品を管理するWebベースのコンソール
  • ERAエージェント:クライアントにインストールし、ERAサーバーと通信する


マニュアル:users_manual_era.pdf

Chap3.インストール より

Windows版オールインワンインストール(Windowes版のみ)を参考に進める。

Setup_x64.zipを解凍し、Setup.exeを実行
ESET Remote Administratorのセットアップ
- Remote Administratorサーバーのインストール
- 不足しているシステム要件が表示されるので、それを満たす


# .Net v3.5がインストールされていません
# [サーバーマネージャー]-[役割と機能の追加]-[機能]
# →.NET Framework 3.5 Features
# を追加、インストール


# 互換性のあるバージョンのJava Runtime Environmentがインストールされていません。
# https://www.java.com/ja/download/manual.jsp から手動ダウンロード
# jre-8u131-windows-x64.exe
# を該当サーバ上で実行

→必須モジュールが満たされるとインストールが開始される

ESET Remote Administratorのアクティベーション
製品認証キー:ESET Endpoint Protection シリーズ ユーザーズサイトより取得する

[Remote Administrator サーバー]
Webコンソールユーザー: Administrator
パスワード: 任意


証明書情報:マニュアルに従い、必須項目のみ設定
-----
組織単位:ブランク
組織:ブランク
ローカル:ブランク
州/国:ブランク/JP
権限共通名:サーバー認証局
権限パスワード:ブランク
-----

[Remote Administrator エージェント]
設定なし

[Apache Tomcat]
設定なし

[Webコンソール]
設定なし

[Rogue Detection Sensor]
WinPcapのインストールウィザードは初期値のまま完了させる

[Apache HTTP プロキシ]
設定なし

→インストーラが終了すればOK

https://サーバIP/eraにアクセスし、上記で設定したアカウントでログインできることを確認。
Chap4.

サーバのファイアウォールで内部ネットワークからの443接続を許可しておく
ERAにhttps://ホストIP/era/webconsole/ で接続できることを確認。
(オレオレ証明なのでChromeとかで開く)

ERA用エージェントのサイレントインストー

全員にESETおよびERA用のインストールを依頼する必要があったが、ERAについては証明書やら対象サーバやらをインストーラの途中で入力してもらう必要があったため、ライブインストーラを用意した。

ERAの[管理]-[エージェントライブインストーラ]より
==========
インストーラ証明書
 サーバーホスト名(またはサーバーのIPアドレス):<IPで指定>

ピア証明書
 ERA証明書 を選択

ERA証明書
 サーバー証明書 を選択(サーバー支援インストールの…は選択しないこと)

証明書パスフレーズ
 ブランク
==========
で[インストーラの取得]→各OS用のパッケージが表示される



ライブインストーラを実行すると、エージェントアプリケーションをネットから取得してくるため、回線が細い環境では厳しい。Windowsマシン用の場合、ライブインストーラの以下を修正することでバッチと同じフォルダのmsiを使ってインストールしてくれる。

before

set url=http://repository.eset.com/v1/com/eset/apps/business/era/agent/v6/6.3.177.0/Agent_x64.msi
if defined IsArch_x86 (
  set url=http://repository.eset.com/v1/com/eset/apps/business/era/agent/v6/6.3.177.0/Agent_x86.msi
(中略)
echo.Dim params: params = "/qr /i " ^& packageLocation ^& " /l*v %temp%\ra-agent-install.log" ^&_

after

set url=%~dp0Agent_x64.msi
if defined IsArch_x86 (
  set url=%~dp0Agent_x86.msi
(中略)
echo.Dim params: params = "/qr /i " ^&"""!url!"""^& " /l*v %temp%\ra-agent-install.log" ^&_

以上、メモまででした。

Rocket.Chatのバージョンアップ作業メモ

zuntan02.hateblo.jp
こちらで構築したRocket.Chatのバージョンアップメモ

【作業概要】

パッケージをDLして展開して配置するだけ。

【作業メモ】

# 0.47→0.49の場合
# Rocket.Chat本体の最新版取得と展開
cd /usr/local/src
curl -o rocket.chat.tgz -L https://rocket.chat/releases/latest/download
tar xvzf rocket.chat.tgz

# サービス停止
systemctl stop mongod
systemctl stop rocketchat

# ディレクトリごと差し替え
cd /opt
mv rocket.chat/ rocket.chat_bkup
mv /usr/local/src/bundle /opt/rocket.chat

# directoryの所有者を実行ユーザ「rocketchat」に変更
chown -R rocketchat:rocketchat  /opt/rocket.chat

# パッケージのディレクトリにて、npm installでnode.jsに必要なpackageをインストールする
cd /opt/rocket.chat/programs/server/
npm install

# サービス再開
systemctl start mongod
systemctl start rocketchat

# 起動確認
systemctl status rocketchat

Collabora OnlineとNextcloudの連携

■基礎情報
Collabora Online
Google docsのように、Webブラウザ上で直接excelシートなどを編集できるもの。
オフィスソフトの機能すべてを代替できるようなものではないが、閲覧の気楽さは大きい。
f:id:zuntan02:20170120185308p:plain
↓こちらでDockerイメージで配布されている
https://nextcloud.com/collaboraonline/nextcloud.com


■インストールと設定
zuntan02.hateblo.jp
上記で構築したNextCloud環境に引き続き追加していきます。

dockerのインストール・起動
yum install docker
service docker start
chkconfig docker on

# Collabora Online serverの取得
docker pull collabora/code

# 実行
docker run -t -d -p 9980:9980 -e "domain=hoge.fuga" --cap-add MKNOD collabora/code
nginxでリバースプロキシ設定

/etc/nginx/conf.d/hoge.fuga.conf
→locationに以下を追加

    # for Collabora-online
    # static files
    location ^~ /loleaflet {
        proxy_pass https://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass https://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # websockets, download, presentation and image upload
    location ^~ /lool {
        proxy_pass https://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
    }

Nextcloud管理画面でCollabora Onlineを有効にする

f:id:zuntan02:20170120190538p:plain
管理画面WebUIの左上[管理▼]-[+アプリ]-[Office&テキスト]-Collabora Online -[有効にする]
→管理画面の左ペインに[Collabora Online]が出てくるので、
 コラボラオンラインサーバー:https://hoge.fuga:443 として登録

ファイル一覧よりexcelなどを開き、編集、上書きできることを確認

【AWS】Nextcloud環境をAmazonLinuxに構築

■基礎情報

Nextcloud
Dropbox的なクラウドストレージを作成できるツール。以前デファクトスタンダードだったownCloudから派生したもの。
Webブラウザ経由でのアクセスのほか、Windows/OSX/Android/iPhone用にクライアントアプリが公開されている。
www.webprofessional.jp

【今回の作業概要】

AWS EC2のAmazonLinuxにNextcloudをインストール

【インストール手順】

AmazonLinuxに以下の手順でインストールしていきます。

MySQL
# インストール
yum install -y mysql56-server.x86_64 mysql56-devel.x86_64 mysql56.x86_64

# 起動
/etc/init.d/mysqld start

# 初期設定
/usr/bin/mysql_secure_installation

# Set root password? [Y/n]
New password: <MySQLのrootパスワード>
あとは初期値のままで抜ける。

# 自動起動
chkconfig mysqld on
chkconfig --list mysqld
Nginx
yum install nginx

# 自動起動確認
chkconfig nginx on
chkconfig --list nginx

SSLが推奨されているので、SSL証明書を用意しておきます。

php
# 必要となるモジュールをまとめてインストールする
yum install memcached memcached-devel
yum install php56 php56-devel php56-fpm php56-gd php56-mbstring php56-mcrypt php56-mysqlnd php56-pdo php56-pecl-memcached php-pecl-apcu php56-imagick php56-xml

# 設定ファイルで timezone 設定
cp -p /etc/php.ini /etc/php.ini.org
続きを読む

改ざん検知ツールAIDEメモ

【やったこと】

・CentOS6 にaideをインストールして初期動作確認
・問題があればメールで通知

【作業手順】

インストール
yum -y install aide

→aide.x86_64 0:0.14-8.el6

初期化
aide --init

→これが結構時間がかかる。仮想マシンとかだと5分くらい
→### AIDE database at /var/lib/aide/aide.db.new.gz initialized.

生成されたデータベースファイルを比較対象のデータベースファイルとする
cp -f /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
検査
aide --check

→AIDE found differences between database and filesystem!!(以下略)
→常に更新されるようなファイルが出てしまっている。

# 除外設定

vi /etc/aide.conf

→いったん全部対象外にして、改ざん検知したいフォルダだけを対象にするのが良さそう

# アップデート(--check と --init が同時に実行される)

aide --update

# 生成されたデータベースファイルを比較対象のデータベースファイルとする(上書き)

cp -f /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Updateの自動化&AIDEで改ざんを検知した場合のアラートメール

こちらよりコピペ

echo '#!/bin/bash

MAILTO=hogehoge@fugafuga.com
LOGFILE=/var/log/aide/aide.log
AIDEDIR=/var/lib/aide
/usr/sbin/aide  -u > $LOGFILE
cp $AIDEDIR/aide.db.new.gz $AIDEDIR/aide.db.gz
x=$(grep "Looks okay" $LOGFILE | wc -l)
if [ $x -eq 1 ]
then
  echo "All Systems Look OK" | /bin/mail -s "AIDE OK" $MAILTO
else
  echo "$(egrep "added|changed|removed" $LOGFILE)" | /bin/mail -s "AIDE DETECTED CHANGES" $MAILTO
fi
exit
' > /usr/local/bin/aide.sh

chmod +x /usr/local/bin/aide.sh

→crontabに以下のようにして設置

0 0 * * * /usr/local/bin/aide.sh > /dev/null

S3のディレクトリ(prefix)を削除する(aws s3 rm メモ)

【経緯】

S3のディレクトリ(プレフィックス)を配下のオブジェクトごと一括で削除したかったのだけど、こちらによればディレクトリ以下のオブジェクトをすべて削除する必要があるとのこと。
一年分のログが入っててマネコンのWebUIでは消せないなーと思ったのでAWS CLIのs3コマンドで以下のようにして消したメモ。

【実施】

ディレクトリ(プレフィックス)確認

aws s3 ls s3://hogehoge-logs/
→プレフィックスが一覧できる
   PRE prefix1/
   PRE prefix2/
   PRE prefix3/

aws s3 ls s3://hogehoge-logs/prefix1/
→中身が確認できる

ファイル(オブジェクト)削除

ディレクトリ(プレフィックス)を中身ごと全部消す
aws s3 rm s3://hogehoge-logs/prefix1 --recursive
ディレクトリ(プレフィックス)の中身だけを全部消す(プレフィックスは残す)
aws s3 rm s3://hogehoge-logs/prefix1/ --recursive
条件にマッチするファイルのみ消す

# 例:*201612*を含むファイルのみ対象
# --excludeでまず全てを除外、除外されたファイルの中から--includeで許可。--recursiveで再帰的に。

# dryrunで削除対象を確認
aws s3 rm s3://hogehoge-logs/prefix1/ -exclude '*' --include '*201612*' --recursive --dryrun
# 実施
aws s3 rm s3://hogehoge-logs/prefix1/ -exclude '*' --include '*201612*' --recursive

【BootCamp】無料のツール”Clonezilla”でMacのBootCampディスク(macOS+Windows10)をクローンする(ディスク換装)

【まとめ】

MacBookProでBootCamp環境を構築している場合のディスクの差し替え(既存の容量より大容量への換装)の場合、「Winclone5」(有料)がなくても、フリーの定番ツール「Clonezilla」でクローンが行えた。キモはClonezillaでのリストア時にエキスパートモードで「-j1」オプションを有効にすること。

★201807追記★
この手順では別途バックアップを取るためのHDDが必要です。手元にそのようなものがなく、あらたに購入するくらいならディスククローン機を購入したほうが圧倒的に早い&確実です。以下の機種でBootcamp化したディスクのHDD→SSD引っ越しはサクッとできました。

【経緯】

MacBookProのOSX+BootCamp(Windows10)環境について、HDD→SSDに差し替えることになった。
SSDに付属していたクローニングツール(Acronis True Image HD)でディスク全体をクローンしてみたところ、OSXは起動できたものの、起動ディスクをWindows10とした場合ブートせず、ハマった。

こういう時は鉄板のClonezilla(http://clonezilla.org/downloads.php)(2.5.0-5)を利用してみたところ、やっぱりOSXは戻るんだけどWindowsは起動してこない。3連休をドブに捨てて完全にお手上げ。あきらめてWinclone5を買うか……と思って窓に置いた加湿器を強くしてる午前2時、以下の情報に出会った。

www.youtube.com

※サイトがなくなってたので似たような動画に差し替えました。上記動画の4:40あたりがキモ

【作業詳細】

1)Clonezillaでオリジナルディスクからディスクイメージを取得するときは初心者モードで普通に全体をイメージ化
2)イメージからリストアするときはエキスパートモードで
 ・「-j1」オプション(リストア後にMBR書き込み)にチェックを入れる。
 ・「-e1」はoffに(これは不要かも。案内動画でoffにされていたので倣った)
  あとはデフォルトのままでリストア実行……

であっけなくイメージからの復元→Windows10起動ができた。OSのライセンス認証も問題ないようだ。OSX側も特に問題なし。

※ちなみに今回500GB→750GBへの差し替えだったのだけど、Windows10が起動したら
[管理ツール]-[コンピュータの管理]-[ディスクの管理]-[ボリュームの拡張]
Windows領域を拡張できた。

しばらく運用してみて問題あったら追記しますが、いやー、今回はハマった……