Fortigate Firmware Update v5.4.0 to v5.4.1

Fortigate 60D の FortiOS を v5.4.0 から v5.4.1 にアップデートした際の作業記録です。

インターネットに接続してる Fortigate なので、新ファームウェアの通知とアップデートは、FortiGuard Network 経由で行っています。
(ですので、とくだん難しいことはしておらず、GUIの命じるがままの作業です)

v5.4.1 のリリースノートはこちら(http://docs.fortinet.com/uploaded/files/3075/fortios-v5.4.1-release-notes.pdf

 

ダッシュボードに v5.4.1 が出たとの通知が来ました。
(まだ本番稼働してない個体なので、気楽にアップデートすることにします)

 

画面右下の 「Upgrade」 をクリック。
※ コンフィグファイル は事前にバックアップしておきます。

 

Firmware のダウンロードとアップグレードが実行されます。

 

今回の Fortigate 60D は、 HA構成(Active -Standby)を組んでる機器なので、スタンバイ機側からファームウェアのアップデートがかかります。

スタンバイ機のアップデートが終わると、アクティブ機側がアップデートされます。
(Active側のアップデート中は、Standby機がActiveに昇格しますので、Fortigate経由の通信は途切れずに継続されます。)

↓ FW01 が Active、 FW02 が Standby です。 FW02 が v5.4.1 になったところ。

 

FW01も v5.4.1 になりました。

 

今回のアップデートの所要時間は、2台でだいたい10分程度。

アップデート後は、HA の Master/Slave がひっくり返ってるので、元にもどしておきます。

マスター側で、以下のコマンドを実行。

# diagnose sys ha reset-uptime

 

 

最後に、事前にバックアップしておいたコンフィグと、v5.4.1 のコンフィグを比較します。
(WinMerge 日本語版  http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html  を使用)

バージョンアップ前のコンフィグでは、SNMPのインターフェース設定の名前部分を明示的に指定していたのですが、バージョンアップ後は無指定(ANY)になっちゃってますね。。。 (まぁ、動作的には問題ないですが)

他にも、追加されたパラメータ(WiFi関連が多い感じ)が見受けられますが、実際の通信に関わるポリシーとかインターフェースあたりの設定は(さすがに)バージョンアップ前後で変わってないことが確認できましたので(SNMPの部分は元の設定に戻すとして)、今回の備忘録は以上とします。

 

 

 

Bginfo

Windows Server 2012 R2 に Bginfo を導入した際の備忘録です。

 

 【Bginfo について】
 デスクトップの背景にコンピュータの構成情報(ホスト名など)を表示してくれる、Microsoft 製のアプリケーションです。

 デスクトップにホスト名などが表示されるようになるので、リモートデスクトップなどからでもどのコンピュータにアクセスしているかが把握しやすくなります。

 詳細は MS の technet  (https://technet.microsoft.com/ja-jp/sysinternals/bginfo.aspx )を参照ください。

 

↓ Bginfo でデスクトップ背景にホスト情報を表示したところ。

 


作業の流れとしては、

  1. Bginfo を MS のサイトからダウンロード。
  2. デスクトップの背景にするビットマップのレイアウトを作成。
  3. どのユーザでログインした場合でも、このビットマップがデスクトップの背景に表示されるように、共通のスタートアップパスに Bginfo の実行バッチファイルを登録。

となります。

 


 

Bginfo のダウンロード

下記 MS technet のサイトから、Bginfo をダウンロード。
https://technet.microsoft.com/ja-jp/sysinternals/bginfo.aspx

ページ右上のダウンロードアイコンをクリックで、 bginfo.zip がダウンロードできます。

 

ダウンロードアイコンはコレ。

 

ダウンロードが終わったら、.zip を適当なディレクトリに解凍します。
今回は、「 C:\01.BgInfo\ 」 に保管。

 


 

デスクトップの背景にするビットマップを作成

「C:\01.BgInfo\Bginfo.exe」 をダブルクリックして、背景にするビットマップを作成します。

 

ライセンスに同意。

 

 

背景にするビットマップのレイアウト編集画面が起動します。
が!

デフォルトでは、10秒経つとこの画面が消えてしまいます(アプリケーションが終了する)。
画面右上の 「Time remaining N」(N はカウントダウンの数字) をクリックすると、カウントダウンが止まります。

 

デスクトップの背景に表示する項目を編集していきます。
下記のがデフォルトの表示項目(レイアウト)なので、

 

今回はホスト名を先頭に表示して、フォントも大きく。。。
(編集画面内はテキストなので、項目をカット&ペーストで移動したり、改行(エンターキー)とかも入れられます。 )

 

こんな具合にしてみました。

編集画面右下には、背景色の変更(Background)や、背景の表示位置の調整(Position)するボタンがあるので、適宜編集して、お好みの背景を作りましょう。

 

レイアウトが決まったら、「File」 > 「Save As…」 で構成情報を保存します。

 

 

今回は、実行ファイルと同じ場所(C:\01.BgInfo)に 「bginfofile.bgi」 という名称で保管。

 


 

共通のスタートアップに .bat を登録

どのユーザがログインしても、この背景(ビットマップ)がデスクトップに表示されるように、共通のスタートアップにバッチファイルを登録します。

 

共通のスタートアップファイルのパスは(2012R2の場合)、

C:\ProgramData\Microsoft\Windows\スタートメニュー\プログラム\スタートアップ

※ C:\ProgramData は隠しフォルダなので、見えない場合は隠しファイルを表示するように設定が必要です。

 

ここに、 「bginfo.bat」 というファイルを作成。

 

このファイルの中身は、↓ こんなです。(Bginfo.exe に引数をつけて実行するバッチファイル)

C:\01.BgInfo\Bginfo.exe C:\01.BgInfo\bginfofile.bgi /timer:0 /silent /NOLICPROMPT

 

Bginfo.exe コマンドのオプションは、「C:\01.BgInfo\Bginfo.exe /? 」 で表示されます。 

今回のバッチ(Bginfo.exe の起動)は、

・構成ファイルに 「C:\01.BgInfo\bginfofile.bgi」 を指定。
・/timer:0 構成のダイアログボックスを表示せずにディスプレイを更新。
・/silent エラーメッセージを表示しない。
・/NOLICPROMPT 使用許諾(EULA)の表示をスキップ。

 

 

これで、ユーザがログインする毎にビットマップが生成されて、デスクトップに背景として表示されるようになります。

 

今回の備忘録は以上です。

 

 

 

CentOS(Red Hat) on Hyper-V 2012R2

Hyper-V 2012 R2 上の仮想マシンに CentOS ( or RedHat) を入れた際の備忘録です。

CentOS 6.8 をゲストにしたのですが、minimal install したせいか、Hyper-V 関連のデーモンが入ってなかったので、yum で追加しました。
( https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/6.6_Technical_Notes/RHEA-2014-1439.html

(Hyper-V側の Windows Server バックアップでゲストの CentOS のOnlineバックアップが失敗したことで気付きました。。。)

 

# yum install hyperv-daemons

 

Baseリポジトリにあるので、yum.repos.d とかいじらなくて大丈夫です。
関連する ↓ 下記のデーモン達も一緒にインストールされます。

hyperv-daemons.x86_64 : HyperV daemons suite
hyperv-daemons-license.noarch : License of the HyperV daemons suite
hypervfcopyd.x86_64 : HyperV FCOPY daemon
hypervkvpd.x86_64 : HyperV key value pair (KVP) daemon
hypervvssd.x86_64 : HyperV VSS daemon

 

インストールが終わったら、OS 再起動です。

hyperv-daemons がない状態でも普通に動作しますが、これがあると、ライブマイグレーションが早くなったり、VSSバックアップ(オンラインバックアップ)ができたりと、なかなか便利になります。

 

また、hypervfcopyd (HyperV FCOPY daemon) のおかげで、PowerShell の 「Copy-VMFile」 コマンドを使用して、ホスト(Hyper-V側)に置いてあるファイルを Linux ゲストにコピーできるようになります。
(Hyper-V では USBメモリスティック をゲストに握らせられなかったりする場合があるので、これができるとちょー便利。)

 

「Copy-VMFile」 コマンドは MS の technet (https://technet.microsoft.com/ja-jp/library/dn464282.aspx) に詳しいですが、

 

例えば、ホスト側の「C:\hogehoge.txt」 を ゲストマシン(下記例では仮想マシン名「devmiz01」) の「/tmp」にコピーする場合は、

Copy-VMFile -Name devmiz01 -SourcePath 'C:\hogehoge.txt' -DestinationPath '/tmp' -FileSource Host

 

で、コピーできます。
※ 書き込み先のパーミッションは other の write を許可しておきます。

 

今回の備忘録は以上となります。

 

 

 

 

Cacti on CentOS6

Cacti (+ RRDTool)  を CentOS6 上で稼働させて、ネットワーク機器のトラフィック状況をグラフ化してみた際の作業記録です。

 


【Cacti について】

RRDTool (http://oss.oetiker.ch/rrdtool/) が作成したグラフをブラウザで表示できるようにしてくれるオープンソースなツールです。

SNMP で対象機器をポーリング、そのデータをRRDTool (がDBに格納して)グラフを作成、cacti 経由で ブラウザに表示してくれる、といった具合になります。

↓ こんな感じです。 (下記はローカルホストのロードアベレージを表示したところ)

 

Cacti のホームページ
http://www.cacti.net/

Cacti のマニュアル
http://www.cacti.net/documentation.php

 


【インストール】

CentOS 標準のリポジトリには含まれておらず、ソースからのインストールがメジャー(?)ですが、幸いにも EPEL (https://fedoraproject.org/wiki/EPEL/ja)リポジトリでパッケージが公開されているので、今回はEPEL から yum して利用することにします。

 


 

まずは EPEL リポジトリの追加から。
EPEL のトップページ(https://fedoraproject.org/wiki/EPEL/ja) にも記載あるように、CentOS では “yum install epel-release” の実行だけで、EPELを利用できるようになります。

# yum install epel-release

 

EPEL は現在 CentOS Extras repository に含まれているため、標準リポジトリとの競合はまずなさそう  (FAQより :  https://fedoraproject.org/wiki/EPEL/FAQ/ja) ですが、念のため、yum priorities (https://wiki.centos.org/PackageManagement/Yum/Priorities) プラグインを追加して、リポジトリの優先順位を設定しておきます。

# yum install yum-plugin-priorities

 

/etc/yum.repos.d/CentOS-Base.repo の [Base], [updates], [extras], [centosplus] を priority=1 に、[contrib] を priority=2 に指定します。
(priority は 1 – 99 までの指定、デフォルトは 99、数字が低いほど優先)

# vi /etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=2

 

EPEL は priority=10 を指定しておきます。

# vi /etc/yum.repos.d/epel.repo

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
priority=10

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
priority=10

[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
priority=10

 


 

Cacti を yum でインストールします。

# yum install cacti

稼働要件(http://www.cacti.net/downloads/docs/html/requirements.html) のツール(RRDTool や PHP、MySQL, Apache など)も併せてインストールされます。

読み込んだプラグイン:fastestmirror, priorities
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: ftp.jaist.ac.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.jaist.ac.jp
 * updates: ftp.jaist.ac.jp
117 packages excluded due to repository priority protections
依存性の解決をしています

 <中略>

依存性を解決しました

============================================================================================================================
 パッケージ                              アーキテクチャ      バージョン                          リポジトリー          容量
============================================================================================================================
インストールしています:
 cacti                                   noarch              0.8.8b-7.el6                        epel                 2.2 M
依存性関連でのインストールをします。:
 apr                                     x86_64              1.3.9-5.el6_2                       base                 123 k
 apr-util                                x86_64              1.3.9-3.el6_0.1                     base                  87 k
 apr-util-ldap                           x86_64              1.3.9-3.el6_0.1                     base                  15 k
 cairo                                   x86_64              1.8.8-6.el6_6                       base                 309 k
 dejavu-fonts-common                     noarch              2.33-1.el6                          base                  63 k
 dejavu-lgc-sans-mono-fonts              noarch              2.33-1.el6                          base                 397 k
 dejavu-sans-mono-fonts                  noarch              2.33-1.el6                          base                 474 k
 fontconfig                              x86_64              2.8.0-5.el6                         base                 186 k
 fontpackages-filesystem                 noarch              1.41-1.1.el6                        base                 8.8 k
 freetype                                x86_64              2.3.11-15.el6_6.1                   base                 361 k
 httpd                                   x86_64              2.2.15-47.el6.centos.4              updates              831 k
 httpd-tools                             x86_64              2.2.15-47.el6.centos.4              updates               77 k
 libX11                                  x86_64              1.6.0-6.el6                         base                 586 k
 libX11-common                           noarch              1.6.0-6.el6                         base                 192 k
 libXau                                  x86_64              1.0.6-4.el6                         base                  24 k
 libXft                                  x86_64              2.3.1-2.el6                         base                  55 k
 libXrender                              x86_64              0.9.8-2.1.el6                       base                  24 k
 libpng                                  x86_64              2:1.2.49-2.el6_7                    updates              182 k
 libthai                                 x86_64              0.1.12-3.el6                        base                 183 k
 libxcb                                  x86_64              1.9.1-3.el6                         base                 110 k
 lm_sensors-libs                         x86_64              3.1.1-17.el6                        base                  38 k
 mailcap                                 noarch              2.1.31-2.el6                        base                  27 k
 mysql                                   x86_64              5.1.73-5.el6_7.1                    updates              894 k
 net-snmp                                x86_64              1:5.5-54.el6_7.1                    updates              308 k
 net-snmp-libs                           x86_64              1:5.5-54.el6_7.1                    updates              1.5 M
 net-snmp-utils                          x86_64              1:5.5-54.el6_7.1                    updates              176 k
 pango                                   x86_64              1.28.1-10.el6                       base                 351 k
 php                                     x86_64              5.3.3-46.el6_7.1                    updates              1.1 M
 php-cli                                 x86_64              5.3.3-46.el6_7.1                    updates              2.2 M
 php-common                              x86_64              5.3.3-46.el6_7.1                    updates              529 k
 php-mysql                               x86_64              5.3.3-46.el6_7.1                    updates               86 k
 php-pdo                                 x86_64              5.3.3-46.el6_7.1                    updates               80 k
 php-snmp                                x86_64              5.3.3-46.el6_7.1                    updates               35 k
 pixman                                  x86_64              0.32.4-4.el6                        base                 243 k
 rrdtool                                 x86_64              1.3.8-7.el6                         base                 293 k

トランザクションの要約
============================================================================================================================
インストール        36 パッケージ

総ダウンロード容量: 14 M
インストール済み容量: 43 M
これでいいですか? [y/N]y

 <中略>

インストール:
  cacti.noarch 0:0.8.8b-7.el6

依存性関連をインストールしました:
  apr.x86_64 0:1.3.9-5.el6_2                                   apr-util.x86_64 0:1.3.9-3.el6_0.1
  apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1                       cairo.x86_64 0:1.8.8-6.el6_6
  dejavu-fonts-common.noarch 0:2.33-1.el6                      dejavu-lgc-sans-mono-fonts.noarch 0:2.33-1.el6
  dejavu-sans-mono-fonts.noarch 0:2.33-1.el6                   fontconfig.x86_64 0:2.8.0-5.el6
  fontpackages-filesystem.noarch 0:1.41-1.1.el6                freetype.x86_64 0:2.3.11-15.el6_6.1
  httpd.x86_64 0:2.2.15-47.el6.centos.4                        httpd-tools.x86_64 0:2.2.15-47.el6.centos.4
  libX11.x86_64 0:1.6.0-6.el6                                  libX11-common.noarch 0:1.6.0-6.el6
  libXau.x86_64 0:1.0.6-4.el6                                  libXft.x86_64 0:2.3.1-2.el6
  libXrender.x86_64 0:0.9.8-2.1.el6                            libpng.x86_64 2:1.2.49-2.el6_7
  libthai.x86_64 0:0.1.12-3.el6                                libxcb.x86_64 0:1.9.1-3.el6
  lm_sensors-libs.x86_64 0:3.1.1-17.el6                        mailcap.noarch 0:2.1.31-2.el6
  mysql.x86_64 0:5.1.73-5.el6_7.1                              net-snmp.x86_64 1:5.5-54.el6_7.1
  net-snmp-libs.x86_64 1:5.5-54.el6_7.1                        net-snmp-utils.x86_64 1:5.5-54.el6_7.1
  pango.x86_64 0:1.28.1-10.el6                                 php.x86_64 0:5.3.3-46.el6_7.1
  php-cli.x86_64 0:5.3.3-46.el6_7.1                            php-common.x86_64 0:5.3.3-46.el6_7.1
  php-mysql.x86_64 0:5.3.3-46.el6_7.1                          php-pdo.x86_64 0:5.3.3-46.el6_7.1
  php-snmp.x86_64 0:5.3.3-46.el6_7.1                           pixman.x86_64 0:0.32.4-4.el6
  rrdtool.x86_64 0:1.3.8-7.el6

完了しました!

 

必要なパッケージ (http://docs.cacti.net/manual:088:1_installation.1_install_unix#installing_under_unix) が全て yum 経由で入ったかどうか、確認しましょう。
今回は、 php-xml と mysql-server  が不足していたので、別途インストールしました。

# yum install php-xml
# yum install mysql-server

 


 

これで cacti (とRRDTool や関連パッケージ)の導入が完了しましたので、次は、

Cacti のインストールガイド (http://docs.cacti.net/manual:088:1_installation.1_install_unix#configuration_of_software_packages) を参考に、各ソフトウェアの設定を行っていきます。

 


 

PHP の設定 (http://docs.cacti.net/manual:088:1_installation.1_install_unix.1_configure_php

確認対象は /etc/php.ini です。
上記マニュアルを参考に、必要に応じて修正します。
今回は、date.timezone = “Asia/Tokyo” に修正。 (http://php.net/manual/en/timezones.asia.php

# vi /etc/php.ini

[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = "Asia/Tokyo

 


 

httpd (Apache) の設定 (http://docs.cacti.net/manual:088:1_installation.1_install_unix.2_configure_apache

上記のマニュアルを参考に、

/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/php.conf

↑ この2つの設定を確認。 私の環境では、特に変更しなくてもよさそうだったです。

なお、Cacti (のWebサイト)へのアクセスが デフォルトでは local host (127.0.0.1) からのみ可となっているため、接続できるIPを追加しておきます。

# vi /etc/httpd/conf.d/cacti.conf
#
# Cacti: An rrd based graphing tool
#

# For security reasons, the Cacti web interface is accessible only to
# localhost in the default configuration. If you want to allow other clients
# to access your Cacti installation, change the httpd ACLs below.
# For example:
# On httpd 2.4, change "Require host localhost" to "Require all granted".
# On httpd 2.2, change "Allow from localhost" to "Allow from all".

Alias /cacti    /usr/share/cacti

<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
                # httpd 2.4
                #Require host localhost
                Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
                # httpd 2.2
                Order deny,allow
                Deny from all
                Allow from localhost
                Allow from 172.31.1.0/24
                Allow from 172.31.10.0/24
        </IfModule>
</Directory>

<Directory /usr/share/cacti/install>
        # mod_security overrides.
        # Uncomment these if you use mod_security.
        # allow POST of application/x-www-form-urlencoded during install
        #SecRuleRemoveById 960010
        # permit the specification of the rrdtool paths during install
        #SecRuleRemoveById 900011
</Directory>


# These sections marked "Require all denied" (or "Deny from all")
# should not be modified.
# These are in place in order to harden Cacti.
<Directory /usr/share/cacti/log>
        <IfModule mod_authz_core.c>
                Require all denied
        </IfModule>
        <IfModule !mod_authz_core.c>
                Order deny,allow
                Deny from all
        </IfModule>
</Directory>
<Directory /usr/share/cacti/rra>
        <IfModule mod_authz_core.c>
                Require all denied
        </IfModule>
        <IfModule !mod_authz_core.c>
                Order deny,allow
                Deny from all
        </IfModule>
</Directory>

17 行目をコメントアウト、
18, 25, 26 行目を追加してます。

 

httpd を起動します。
(OS起動時に自動起動するようにもしておきます)

# service httpd start
# chkconfig httpd on

 


 

Cacti 用の MySQL DB を作成します。 (http://docs.cacti.net/manual:088:1_installation.1_install_unix.5_install_and_configure_cacti

今回は、データベース名 「cacti」、DBのユーザー「cactiuser」 、パスワード「cacticacti」とします。

 

このへんの設定あたりから、↑ のマニュアルに書いてない事も多かったので、ネットでいろいろと検索した結果を織り交ぜて書いてます。

 

mysqld が起動していない場合は、まず起動を。

# service mysqld start
# chkconfig mysqld o

 

cacti 用のDB 「cacti」 を作成して、テーブルをインポートします。

# mysqladmin --user=root create cacti
# mysql cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql

 

cacti DB に ユーザとパスワードを設定

# mysql --user=root
Server version: 5.1.73 Source distribution

mysql> grant all on cacti.* to cactiuser@localhost identified by 'cacticacti';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

 


 

残りの設定。

DBのユーザ名/パスワードを cacti の設定ファイルに反映。

# vi /usr/share/cacti/include/config.php

 <中略>

$database_username = "cactiuser";
$database_password = "cacticacti";

 <中略>

 

cron を有効化。
yum した際に cacti の cron ファイル(/etc/cron.d/cacti)が作成さますが、中身がコメントアウトされてるので、外して有効化します。

# vi /etc/cron.d/cacti

*/5 * * * *     cacti   /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

↑ コメントアウトされてるので、外します。

 

cron の再起動

# service crond restart

 


 

これで準備が整いました。
cacti にアクセスして初期設定を開始します。

ブラウザから、

http://cactiをインストールしたサーバー/cacti

にアクセスすると、下記のように Installation Guide で出てきます。「Next」で次に進みます。

 

「New Install 」 を選んで 「Next」

 

各パラメータのチェックがOK(緑色文字)な事を確認して、「Finish」

 

ログイン画面が出てきます。

User Name :  admin
Password: admin

でログイン。

 

初回の強制パスワードの設定画面が出てきますので、新しいパスワードを設定します。

 

cacti の利用準備が整いました!

 

 


 

次は、トラッフィクグラフを取得したい機器を登録していきます。

基本的な設定の流れは、cacti にログイン後のトップページにも記載があるように、

  1.  「create device」 (ネットワーク機器を登録)
  2.  「create grafh」  (グラフ作成)

の流れです。

では、早速登録してみます。

 

画面左上の赤いタブ 「console」を選択(デフォルトではこの画面になってます)、 画面左側のメニュー一覧から 「Devices」 をクリック。

 

↑ この画面右上の「Add」 をクリックすると、デバイス登録画面が出てきます。

 

Hostname、SNMP Community など、必要な情報をタイプして、画面右下の 「create」 をクリックします。

 

対象とSNMPでコミュニケーションできなかった場合、下記のように赤文字で 「SNMP error」 となります。

対象の機器でSNMPが有効になっているか、コミュニティ名などに間違いはないか、通信経路上のFirewallがある場合はSNMP 通信(UDP/161) が許可されているか、など確認します。

 

うまくいった場合は下記のように SNMP Information が取得できます。

 

次はグラフの作成です。 
↑ この画面の右上の 「Create Graphs for this Host」 をクリックします。

すると、↑ このように作成できるグラフリストの一覧が表示されます。

(デバイス作成時に SNMP error が表示された -> でもなんとか修正して SNMP Information は取れるようになった -> でもこのリストが出てこない、な場合はデバイスの削除 -> 再登録 でうまくいくかもしれません)

右端のチェックボックスにチェックを入れて、画面右下の 「Create」 をクリックすると、グラフが作成されます。
ポート数の多い機器とかは、Next ページにも一覧があるので忘れずにチェックを。

↓ Create が終わったところ。

 


グラフを見てみます。
GUI画面左上、赤色の 「graphs」 をクリックします。

初期状態では、↓ こんなふうに Tree View 画面が表示されます。
左ペインの Default Tree を展開すると、localhost の各グラフを表示することができます。

 

さきほど登録した機器は、デフォルトではこの Tree View には表示されません。
画面右上、「setting」 ボタンの右側に、3つほどボタン(左から、Tree View、List View、Preview view)があって、List View か Preview view を選択すると、追加した機器のグラフを見ることができます。

List View をクリックしたところ。
↓ こんなふうに、グラフの一覧が出てきます。

↑ この中から、見たいグラフをクリックすると、
↓ こんなかんじで閲覧することができます。

 


 

よく見るグラフは、Tree View に登録すると良いです。

Console > Graph Trees をクリックします。

↑ 初期状態では、「Default Tree」(localhost の各グラフが表示) のみ登録されています。

ここに新しいツリーを作成して、閲覧したいグラフを追加していきます。

↑ この画面右上の 「Add」 をクリック。
↓ 新規ツリーの作成画面が出ますので、適当な名前を入力して 「Create」 をクリック。

 

↓ Tree Items の 「Add」 をクリックして、見たいアイテムを追加します。

 

↓ Add を押したところ。
Tree Item Type には、「header」、「grapsh」、「host 」 が選択できます。
Header はTree の 上位階層(Parent) になるので、アイテムを階層化したい場合に使います。
graph は 各グラフ単位、host はその対象で取得しているグラフ全てが表示されます。

Tree Item Type「Header」 で作るとこんな感じです。

 

SW01 の配下に、Gi 1/0/1 のグラフを追加してみます。

 

すると、Tree View ではこんな風に表示されます。

 

こんな感じで、お好みのグラフ表示を作成することができます。

 

今回の備忘録は以上です。

 

 

 

FortiGate 60D 2台でHA構成

FortiGate 60D x 2台でHA構成を組んだ際の備忘録です。

 

【 FortiGateについて】
 アメリカ カリフォルニア州サニーベールに本社を置くネットワークセキュリティベンダーの Fortinet社 (http://www.fortinet.com/) が開発したUTM(Unified Threat Management / 統合脅威管理)製品です。
 UTMは次世代型FireWall(Next Generation Firewall)とも呼ばれ、1台の機器で、FIrewall機能や侵入検知/防御、AntiVirus、Webコンテンツフィルタリングなどのネットワーク・セキュリティ機能を包括的に実装した機器です。
 FortiGateにはエントリーモデルからハイエンドモデルまで多数の機種がありますが、今回使用した 60D はエントリーモデルの位置づけになります。

 

 

【今回使用した Fortigate 60D x 2台 】

・ファームウェアバージョン: v5.2.7,build718

↑ 60D には全部で10個の UTPポート(10M/100M/1G) があります。

 

 

【HA構成 概略図】

 

こんな風に 2台 の 60D でHA構成を組んでみます。
Internetが2回線あって設定どうしてるの、とか、内部LANがおおざっぱ、だとかはスルーしてください ^^;

今回は Active – Standby の HA で、FW01 がActive、FW02 を Standby とします。
Fortigate の HA では、ホスト名などのごく一部の設定を除き、2台がまったく同じコンフィグになります。
サービス用IPも共有されるので、機器を個別に管理するために、管理用ポート(FW01, FW02 にそれぞれ異なるIPを付与)が必要です。
今回は、物理ポート(port 6)を管理専用に、物理ポート 7 を HA ハートビート用、port 1 (internal インターフェース)をサービスポート(内部LANがインターネットに抜ける際のNextHop)にします。

管理用ポート(インターフェース)について、今回は贅沢にも物理ポートをまるっと専有しましたが、vlan インターフェースなどを割り当てることもできますので、例えばサービスポート(今回であれば port1 / internal) に相乗りさせることもできます。

 

 

§1. 設定用PCの接続

では、早速設定をしてみます。
まずはFW01からです。

設定は、GUI(ブラウザ) or CLI コンソールから行います。
今回はどちらも使用。
(試してないのですが、Windows(など)から USB ケーブルで接続して初期設定する方法や、iOS (USBケーブルで接続)から も初期設定できる、と Quick Start Guide には書いてある!)

まずは、FW01 の port 5に PC を接続します。

セットアップガイドでは port 1 に繋いで、となってますが、デフォルトでは FG60D の port 1 ~ 7 は同じ設定(同一のハードウェアスイッチに所属)になってますので、どこにつないでもいけます。

PC は DHCP か、192.168.1.99 以外の IP を割り当てます。
(FG60D の port 1 ~ 7  は 192.168.1.99 / 24 が設定されており、DHCPサーバーが有効になっています)

 

ブラウザから、 192.168.1.99 にアクセスします。(HTTPSにリダイレクトされます = ですので、安全な証明書じゃないとブラウザが言いますが、気にせずすすみましょう)
※ 下記スクリーンショットだとIP違いますが、スルーしてください ><)

工場出荷時状態でのID/パスワードは下記のようになっています。Name : admin
Password : なし

ログインすると、ダッシュボード ステータス画面が表示されます。
(System Information の部分には機器のシリアルナンバーやファームウェアバージョンなどが表示されるので、ここでは畳んでいます)

 

初期状態では、admin ユーザのパスワードが空なので、早めに設定しておきましょう。
(スクリーンショットは割愛しますが) System > Admin > Administrators からアカウントの設定・変更が行えます。

また、ホスト名もまっさきに設定しておきます。(HA構成の個体識別子になるので)

GUI で System > Dashboard > Status で設定するか、CLI であれば、

config system global
    set hostname FW01

 

 

 【ちなみに  CLI コマンドのメモ】

・no pager したい
# config system console
(console) # set output standard
(console) # end

・工場出荷時の設定に戻したい
# execute factoryreset

・設定を(全部)みたい
# show

 

 

§2. 設定画面を日本語表示に変更

(お好みで)GUI画面を日本語表示にもできます。

「System > Admin > Settings 」 画面の View Settings 欄の Language のプルダウンから Japanese を選択し、Apply します。

 

日本語表示になりました。(以降、日本語画面で作業します)

 

 

§3. DNS と NTP の設定

内部LAN向けにDNSリゾルバとNTPサーバーを提供したいので、先に設定しておきます。(HA組んだあとからでもいいんだけど、今回はこのFG経由でネットに接続しながらいろいろやってたので。。。)

まずはDNSから。
「システム > フィーチャー」 を選択、右ペインの「フィーチャー設定」画面を最下段までスクロール、「さらに表示」 のボタンがあるのでクリックします。

 

「DNSデータベース」 を 「ON」 にして、「適用」  をクリック。

 

DNSデータベースをONにすると、「システム > ネットワーク」 に 「DNSサーバー」 の項目が追加されます。

 

「インターフェース上のDNSサービス」 で 「新規追加」 をクリックし、内部LAN用のインターフェース(今回であれば 「internal」 )を追加します。

 

 【ちなみに コマンドで DNS Proxy(キャッシュ)の確認】

# diag test application dnsproxy 3
# diag test application dnsproxy 6
# diag test application dnsproxy 7

 

 

次に、外部NTPサーバーの参照と、内部LAN向けのNTPサーバーを設定します。
今回はNICT(http://jjy.nict.go.jp/tsp/PubNtp/qa.html)さんが提供するNTPサーバー(ntp.nict.jp)を利用します。

「システム > ダッシュボード」 を選択し、「システム情報」画面にあるシステム時間の「変更」をクリック。

 

タイムゾーンを GMT+9:00 に。
「NTPサーバーと同期」 にチェックを入れ、「ntp.nict.jp」 を指定します。
内部LAN向けのNTPサーバーにするため、「NTPサーバーを有効にする」 にチェックを入れ、インターフェースに 「internal」 を選択します。

 

 【ちなみに コマンドで時刻(NTP) の確認】

# execute time
# get system ntp
# diagnose sys ntp status

 

 

§4. HAの設定

まず、port 6(管理用ポートにする) と port 7 (HAのハートビート用にする)がハードウェアスイッチ(internal  インターフェース)にバインドされているので、そこから外します。

「システム > ネットワーク > インターフェース」 を開き、「internal」 インターフェースを右クリック > 「編集」 をクリックします。
(スクリーンショットが英語でIPも違いますが、スルーをば。。。)

 

「物理インターフェースメンバ」 の 「internal6」 「internal7」 の右横にある 「X」 をクリックすると、メンバーから外れます。

 

↓外したところ。 画面を最下段までスクロールし、「OK」 をクリックして反映させます。

ちなみに CLI からだと、

config system virtual-switch
    edit "internal"
        config port

delete internal6
delete internal7

 

 

次に、HAの設定です。
「システム > 設定 > HA」 を開き、

設定項目 その他
モード アクティブ・パッシブ  
デバイスのプライオリティ 200

今回は FW01 を 200 に、FW02 を 100 に設定。
0 – 255 の範囲で指定。 値が大きいほうがマスタに選出される(マスタの選出方法はマニュアルに -> http://docs.fortinet.com/fortigate/admin-guides )

クラスタ管理メンバに管理ポートを予約 internal6 internal 6 にエイリアス 「MGMT」 と設定したので、下図のように表示されてます。
(システム > ネットワーク > インターフェース)、
グループ名 & パスワード  お好みの文字列を 同じ文字列の所有者間でHAが構成されるので、FW01/02ともに(なにか)設定します
セッションピックアップ 有効  

ハートビートインターフェースに、Internal7 (プライオリティ 100)、Internal 6 (プライオリティ 50) を指定。
(管理インターフェースも HA heartbeat に使ってみることにしました)

適用をクリックします。

・・・なんか怒られた。。。
“Please disable switch-controller first”

 

switch-controller なるものを disable にしろと。。。 なんじゃろ。。。
調べたところ、knowledge にありました。
http://kb.fortinet.com/kb/documentLink.do?externalID=FD36685

version 5.2 での制限との事なので、solution 通りに設定することにします。
CLIから、

config system global
set switch-controller disable
end

これで設定できるようになりました!

 

さて、ここまでは FG60D がデフォルトで提供しているIP(192.168.1.99)に向けて通信(設定)を行っていましたが、このあたりでこのIPの使用をやめて、管理専用ポート(internal6)にIPを振って、以降はそこ経由で設定することにします。
(同時に Internal インターフェースのDHCPも無効に)

GUIからでもCLIからの設定でも良いのですが、ここではCLIから。

config system interface
    edit "internal6"
        set ip 172.31.10.250 255.255.255.0
        set allowaccess ping https ssh snmp http

(IPとかはご利用の環境に合わせて)
管理ポートにデフォルトゲートウェイを設定して、他のセグメントからもアクセスできるようにします。

config system ha
set ha-mgmt-interface-gateway 172.31.10.229

 

これで、FW01 の設定は完了です。

同様に、FW02 も設定します。
ホスト名、HA のプライオリティ値、管理IPが異なる以外は、上記の手順と同様です。

FW02の設定が終わったら、いよいよLANケーブルを接続です。
(ここまで、FW02は スタンドアロン、FW01 は WAN1/Internal1,6 がリンクアップ済み)

双方の internal 7 間を接続、FW02(のinternal1 とinternal6 )を内部LANに接続します。

すると、GUI画面(システム > 設定 > HA)ではこんなふうに。

 

FW01 がマスターに、FW02がスレーブとして HA 構成が出来上がりです!

このあとは、FW01/02どちらかの管理IPにアクセスして設定を続けても良いですし、サービスIPに接続しての設定するのもありです。
(コンフィグはHA組んだ機器間で自動で同期されますが、ホスト名やHA設定などの一部の設定は同期されませんので、これらを変更する場合は、各管理IPにアクセスが必要です)

 

 【ちなみに CLI の HAコマンド】

・状態確認
# get system ha status

・設定値の確認
# get system ha
# show system ha

・手動フェールオーバー
# diagnose sys ha reset-uptime
 ※ master 側で実行。 slave と 5分以上 uptime 差がないと無効。

 

 

今回の備忘録は以上です。

 

 

Kali Linux, Rolling Edition – 2016.1

 Kali Linux は ディストリビューションのリリース形態を ローリング・リリース モデル に変更するとのことで、2016年1月21日、Kali Linux Rolling Edition 2016.1 をリリースしました。

https://www.kali.org/news/kali-linux-rolling-edition-2016-1/

 従来の最新バージョンであった Kali Linux 2.0 については、リポジトリの EOL が 2016年4月15日 とのこと。
 もうそろそろ期限を迎えるので、手持ちの Kali 2.0 を ローリング・エディションに変更してみました。

 

 アップグレードの手順は kali のサイト に記載があるとおり、

# cat << EOF > /etc/apt/sources.list
> deb http://http.kali.org/kali kali-rolling main non-free contrib
> EOF

# apt-get update
# apt-get dist-upgrade
# reboot

 /etc/apt/sources.list の内容を書き換えて、apt-get すると ローリングエディション版に更新されます。

 

 私の環境だと、

アップグレード: 1944個、新規インストール: 525個、削除: 93個、保留: 0個。
2,626 MB 中 1,690 MB のアーカイブを取得する必要があります。
この操作後に追加で 2,444 MB のディスク容量が消費されます

でした。 

 ・・・アップグレード 1944個、新規インストール 525個、けっこう変更されますね。。。 
 今回は、Kali 2.0 マシンが LTE 経由でネットにアップリンクしてたのと、低スペックな仮想マシン上で実行したことも相まって、終わるまで9時間くらいかかりました。。。

 .iso ( kali 2016.1 のダウンロードはこちら https://www.kali.org/downloads/ ) からクリーンインストールしたほうが早かった。。。かも。

 

 アップデート完了後のカーネルとバージョン情報はこんなでした。

 

 

 

Hyper-V Server 2012 R2 その③

Hyper-V 2012 R2 のライブマイグレーションを試してみたので、その備忘録です。

以前に備忘録した 「Hyper-V Server 2012 R2 その① (Hyper-V 環境の構築)」 と 「 その② (仮想マシンのレプリケーション)」 の続きになります。

 

構成はこんなです。(備忘録 その①、② の時と構成変わってます)

Hyper-V(ホスト名:HVS000)上で稼働させている仮想マシン(CentOS)を、同じセグメント上の Hyper-V(ホスト名:HVS000LM)にライブマイグレーション(移動) させてみます。

 

・HVS000  :  Windows Server 2012 R2 (on HP DL 370G6 / Xeon E5520 / RAM 6GB / HDD 600GB)
・HVS000LM  :  Hyper-V Server 2012 R2 (on Lenovo A58 / Core2Duo E7500 / RAM 4GB / HDD 300GB)

※ 共有ストレージはなし、ローカルHDDのみです。
(2012 R2 からは、共有ストレージなしでもライブマイグレーションができるようになりました)

HVS000 は評価版の Windows Server 2012 R2 を使用、Hyper-Vの役割のみを追加。
HVS000LM は Hyper-V Server 2012 R2 を使用。

HVS000 上の2台の仮想マシンは、 
・ Windows Server 2012 R2(評価版) : Active Directory ドメインサービスの役割を追加、HVS000LM をこのドメインに参加させてます。
・ CentOS 6  :  ライブマイグレーションを試してみる 用の Linux。

 

各サーバーの設定は、以前の備忘録 「Hyper-V Server 2012 R2 その① (Hyper-V 環境の構築)」 と 「 その② (仮想マシンのレプリケーション)」  と同等です。
 

 

 【Hyper-V 2012 R2 のレプリケーションとライブマイグレーションをざっと使ってみてわかったこと】
 
・ レプリケーション先とライブマイグレーション先は同じサーバーにできない (設定しようとすると、同名ホストが存在する、と怒られる)

・ Hyper-V マネージャは、右クリック > 管理者権限 で起動してから利用する。
ADの環境依存なのかもしれませんが、こうしないと権限不足で起動できない機能があった。

・ ライブマイグレーション先のCPU。
仮想マシンのプロセッサ互換性を有効にすれば、例えば Xeon上のHyper-Vで動いていた仮想マシンを Core2 Duo 上のHyper-V に移動することもできるのですが、互換性を有効にしても仮想マシンに割り当てたプロセッサの個数とかはどうしようもないらしく、4コアを割り当てた仮想マシンを 2コアのサーバーにライブマイグレーションするのは無理だった。

 

 

【ライブマイグレーションの設定】

Hyper-V 上で、ライブマイグレーションの機能を有効にします。

HVS000 を右クリック >  「Hyper-V の設定」 を開き ライブマイグレーションを有効にするにチェックを入れます。
HVS000LMも同様の設定を行います。

 

高度な設定。

認証プロトコルは Kerberos を選択。(CredSSP も試してみましたが、私の環境だとうまく動かなかったです。。。)
パフォーマンスは圧縮を選択。(デフォルトのまま)

 

 

【仮想スイッチについて】
CentOS(ライブマイグレーション対象の仮想マシン)にバインドしている仮想スイッチと同じものを、移動先の Hyper-V にも作成しておきます。

今回、CentOSは HVM000上の仮想スイッチ 「VSW-DEV-000」 をバインドしていますので、移動先にも同様の名称で仮想スイッチを事前に作成しておきます。

 

【ライブマイグレーションの実行】

では、ライブマイグレーションしてみます。
移動したい仮想マシンを右クリック > 「移動」 を選択。
(下記スクリーンショットではサーバー HVS000RP 上の仮想マシンを選択してますが、HVS000 に読み替えてください >< )

 

移動ウィザードが開始されます。
画面の指示にしたがって先に進みます。

 

今回は 「 仮想マシンを移動する 」 を選択。

 

移動先のコンピュータ名(今回は HVS000LM )を指定。

 

「仮想マシンのデータを1つの場所に移動する」を選択。

 

移動先での保存場所を指定。
今回は事前にHVM000LMに「C:\10.LiveMigrated_VM\」というフォルダを作成しておき、そこを指定。

 

「完了」をクリックすると。。。

 

・・・エラーが発生。。。

 

エラーメッセージによると、どうやら「Active Directory で制約付き委任」 なる設定をしないといけいない様子。
エラーコード 0x8009030E で検索していたら、GMOさんの解説 に同様のケースがあったので、こちらを参考に設定を追加することにします。

 

ドメインコントローラーの「Active Directory ユーザーとコンピューター」を開き、HVS000 を選択 > 右クリックして「プロパティ」を開きます。
(HVS000LM も同様に。 ライブマイグレーションを実行したいサーバー全てに同設定を行う)

 

「委任」タブを開き、「指定されたサービスへの委任のみでこのコンピューターを信頼する」 > 「Kerberos のみを使う」 を選択。

 

続いて、同プロパティ内の「追加」ボタンをクリックし、「サービスの追加」を起動。

 

上記画面内の「ユーザーまたはコンピューター」をクリックし、

 

ライブマイグレーションの相手側になるサーバーを指定します。
(下記スクリーンショットは HVS000LM の設定中なので、相方には HVS000 を指定)

 

「OK」をクリックすると、サービスの追加画面が出るので、

 

この中から「cifs」と「Microsoft Virtual System Migration Service」 の2つを選択 (ctrlキーを押しながらクリックで複数選択できる) します。

サービスに 「cifs」と「Microsoft Virtual System Migration Service」 が追加されましたので、「OK」をクリック。

 

HVS000、HVS000LMともに委任の設定が終わったので、再度、仮想マシンの移動を試してみます。
(スクリーンショットは先程と同様なので割愛)

今度はエラーも出ず、ライブマイグレーションに成功しました! ^^)

 ↑ こんな感じで、移動の進捗が表示されます。

 

ライブマイグレーションした仮想マシン(CentOS6)のスペックは、
・ 第一世代の仮想マシン
・ 割り当てメモリ : 512MB
・ 仮想プロセッサ : 1個(プロセッサの互換性:オン)
・ 仮想マシンのサイズ(*.vhdx) : 約 4.35 ギガバイト

Hyper-V サーバー間は 1Gbps のリンクで、このスペックでのライブマイグレーションに要した時間は
  約 2分
といった結果でした。

マイグレーション後のデータの正常性などは特に確認していないのですが (DBとか更新中に移動したらどうなんるんだろうとかは非常に気になっているので、そのうち確認はしたいですが)、

マイグレーションの実行中に、この仮想マシン(CentOS 6)に同セグメントの別マシンから ping をあて続けたところ、完了直前(直後?)に  1発 だけ ping 落ち (このちょっと前に、仮想マシンから G-ARP(Gratuitous ARP – Wikipedia) が 1パケット (だと少ない気もしますが) 発信されたのを確認できたので、この際に ICMP Reply ロスした模様。G-ARP 出るので、上流のスイッチ達のMAC テーブル更新も心配なさそう) が確認されましたが、それ以外は特に異常なく、ライブマイグレーションできました。

 

 

robocopyで外付けHDDにデータをミラーリング

  robocopy を使用して、ローカルHDD内のデータを外付けUSB-HDDにミラーリングした時の作業記録です。

【robocopy について】
 ”Robust File Copy(堅牢なファイルコピー)”  の略称で、ディレクトリやファイルの複製が行えます。
 Windows VISTA / WIndows Server 2008 以降から、OS標準で搭載されいるコマンドです。
 (構文やオプションなどは Microsoft の technet に)

 

 

 今回は、OS が Windows Server 2008 R2 、
 robocopy コマンドを Windows のタスクマネージャに登録して、OS起動時にタスク(robocopyコマンド)を実行する、という方式にしました。
 また、robocopy の実行結果ログも出力(/LOG+ オプション)するようにしています。
 (ログが貯まり続けてしまうので、90日経過後に削除するPowershell スクリプトを作成してログメンテするようにしました。 このOSは毎日再起動(これもタスクに登録)されるので、この スクリプト がOS起動時に実行されるよう、タスクに登録してます)

 

 robocopy のコマンドです。

robocopy E:\ H:\ /MIR /DCOPY:T /MON:1 /ZB /LOG+:C:\10.Robocopy-Log\robocopy.log /NP /XD "$RECYCLE.BIN" "System Volume Information" 

 今回は、
 ・ コピー元: E:\  (ローカルのHDD)
 ・ コピー先: H:\ (外付けのUSB-HDD)
 ドライブを丸ごとミラー( /MIR )してます。

 実行結果を 「C:\10.Robocopy-Log\robocopy.log」 という名称で出力、また、「$RECYCLE.BIN」「System Volume Information」ディレクトリはコピー対象外としています。
(ログを出力するディレクトリが存在しないとコマンドが失敗するので、事前に作成を)

 

 この robocpy コマンドがOS起動時に実行されるよう、タスクとして登録します。
 タスクの登録状況はこんな感じです。
 (サーバーマネージャー > 構成 > タスクスケジューラー > タスクスケジューラー ライブラリ)

 

 上記のタスク名称 「002.~」 が robocopy用のタスクです。
「全般」タブはこんな設定。

 

「トリガー」タブはこんなです。 5分の遅延起動にしています。

 

「操作」タブです。 上に記載した robocopy コマンドを登録してます。

 

「条件」タブ。

 

「設定」タブです。

 これで、OS起動時に robocpy コマンドが実行され、外付けUSB-HDDにミラーが作成されます。

 

 続いて、ログのメンテナンスです。

 今回は 「 C:\10.Robocopy-Log\robocopy.log 」 にログを出力(追記形式で保存 (/LOG+) )してます。
 このログを毎日のOS再起動のタイミングで、

 ・ robocopy.log  を 別のフォルダ(C:\10.Robocopy-Log\履歴\)にmove してリネーム(moveした日をファイル名に付与)。
 ・ 90日経過したログは削除する。

 上記の処理を行うPoweshellスクリプトを作成し、Windowsのタスクに登録します。
 今回はこんなPowershellスクリプトを作成。
( 「C:\01.Script_for_PowerShell\001.Del_robocopy-log.ps1」 で保存)

###
### 【このシェルについて】
### robocopy のログをOSの再起動毎にmoveして、90日経過したら削除する。
### ログの保管場所 C:\10.Robocopy_Log\robocopy.log
###
### STEP1) ログファイルを、再起動毎にmove。
###  移動元: C:\10.Robocopy-Log\robocopy.log
###  移動先: C:\10.Robocopy-Log\履歴\Robocopy_Log_yyyyMMdd
###    yyyy:西暦
###    MM:月
###    dd:日
###    HH:時
###    mm:分
###    ss:秒
###
### STEP2) 古くなったログファイルを削除。
###  作成から90日経過したものを対象。
###
###
###
### !このシェルは、OS再起動毎に、タスクスケジューラーによって実行されます。
###
###
### タスクの起動順:
### 003. robocopy.log のメンテナンス
###  ↑ OS起動後、3分後に起動
###
###  002. DS3200のデータをUSB-HDDにミラーリング
###  ↑ OS起動後、5分後に起動。
###
###
### 【履歴】
### YYYY.MM.DD 新規作成。
### YYYY.MM.DD あれとあれを修正。
###
###
### STEP0) robocopyを強制終了。
###  今回はOS起動後の実行なので、このステップはなし。
### stop-process -name robocopy


### STEP1) ログファイルを、再起動毎にmove。
###  移動元: C:\10.Robocopy-Log\robocopy.log
###  移動先: C:\10.Robocopy-Log\履歴\Robocopy_Log_yyyyMMdd

$TargetLogPath = "C:\10.Robocopy-Log\robocopy.log"    #robocopyのログを指定。
$BackupFolderPath = "C:\10.Robocopy-Log\履歴"     #移動先フォルダの指定。
$DateNow = (Get-Date).toString("yyyyMMdd_HHmmss")        #システム日時を変数 $DateNow に格納。
$BackUpLogName = "$BackupFolderPath\robocopy"  + "`_" + "$DateNow" + ".log"  #移動先ファイル名の指定。

###get-process robocopy 2> C:\001.PowerShell\001.Log\002.RobocopyResults_$DateNow.txt #robocopyプロセスの確認。存在しなければ、ファイルに出力される。

move-item -Path "$TargetLogPath" -Destination "$BackUpLogName"   #moveを実行。
###move-item -Path "$TargetLogPath" -Destination "$BackUpLogName" 2> C:\001.PowerShell\001.Log\001.MoveLog_$DateNow.txt #コピーを実行。エラーが出れば、ファイルに出力。



###
### STEP2) 古くなったログファイルを削除。
###  作成から90日経過したものを対象。
###
### $DeleteTime = "-n" n(分/min)。 n分経過したものを削除する。
###  30日 = 43200min (60min * 24hour * 30day)
###  90日 = 129600min (60min * 24hour * 90day)
### $DelFile : 削除対象。
###

            
$DeleteTime = "-129600"  #経過「分」を指定。1 = 1min。

### 作成日から $DeleteTime 分経過したものを削除。
foreach ($DelFile in (Get-ChildItem C:\10.Robocopy-Log\履歴\* | Where-Object {$_.CreationTime -lt (Get-Date).AddMinutes($DeleteTime)})) {Remove-Item -recurse $DelFile}


### 作成日から $DeleteTime 分経過したものを削除。エラーが出れば、ファイルに出力。
### foreach ($DelFile in (Get-ChildItem C:\10.Robocopy-Log\履歴\* | Where-Object {$_.CreationTime -lt (Get-Date).AddMinutes($DeleteTime)})) {Remove-Item -recurse $DelFile}

 

 このスクリプトがOS起動時に実行されるよう、タスクマネージャに登録します。 ( 「003.robocopy.logのメンテナンス」 )

 

「全般」タブ。

 

「トリガー」の設定。 3分の遅延起動です。(この処理が終わってから、robocopyのタスク -5分の遅延起動- を実行)

 

「操作」タブです。 以下のコマンドを登録。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command C:\01.Script_for_PowerShell\001.Del_robocopy-log.ps1

 

「条件」タブです。

 

「設定」タブ。

 

 これで、毎日の再起動のタイミングで ログファイルも処理されます。

 

 今回の備忘録は以上です。

 

 

iPhoneをUSB経由でテザリングして複数PCをネットに接続

 インターネット接続用の回線が(諸々の都合で)廃止となってしまったので、代わりにiPhone でテザリングして、自分の作業用PCやその他のPCをインターネットに接続できるようにしてみたときの備忘録です。

 

【使用機器】

  • iPhone 5s (iOS 9.2、 docomo / Xiパケ・ホーダイ for iPhone)
  • Windows 7 Professional
  • HUB , その他PC

 構成はこんなです。 (PC達にWiFiがないので、Windows 7 をブリッジにして有線でつなぎます)

 なくなってしまった有線インターネット回線は、もともと Linux や Windows など諸々の検証用に使用していたので、今回も自分の作業用PC(Windows 7)のみならず、他のマシン達も(Windows 7経由で)同時にインターネットに接続できるようにしてみます。

  携帯電話事業者によって、テザリング できる / できない は変わってきますので、そこらへんについてはご利用のキャリアでのご確認を。。。
 私の場合(docomo)では、特に追加契約などは不要でテザリングできました。
 ・docomo iPhone テザリングの利用方法

 

 作業のおおまかな流れとしては、

  1.  USB接続の iPhone でテザリングできるように、 Windows 7 にデバイスドライバなどを入れる。
  2.  Windows 7 の USBポート に iPhone を繋いでインターネットに接続。
  3.  Windows 7 の有線LANにHUB(とか)を繋ぐ。
  4.  Windows 7 で 有線LAN と iPhone側の接続をブリッジする。

 こんな感じです。
 特段むずかしい事もないので、早速やってみましょう。

 

§1. デバイスドライバの導入

 Windows 用の iPhone ドライバは、iTunes のインストーラーに含まれています。
 iTunes をまるっとインストールするのが手っ取り早いのですが、iTunes には Bojour などどいった他のアプリも同梱されています。
 今回は作業用PCということもあり、極力不要なアプリは除外したいので、必要最低限なもののみインストールします。

【iPhone USB テザリング】
 ・Apple のサポートコミュニティ(英語) : https://discussions.apple.com/thread/6829407?start=0&tstart=0
・ASCII.jp の記事 : http://ascii.jp/elem/000/000/918/918548/

 

 上記サイトを参考に、iTunes インストーラーをアーカイバで展開(解凍) -> 各インストールコンポーネント(*.msi)を抽出、下記の2つを導入、でUSB経由でiPhoneテザリングするための最低限必要な機能が実装できます。

① AppleApplicationSupport.msi
② AppleMobileDeviceSupport.msi

(インストールの順番は、iTunes 削除 https://support.apple.com/ja-jp/HT204275 と逆 ~ 上記① -> ②の順番 ~ で行います)

 ちなみに、Mobile Device Support (← Windows のサービスとしてインストールされる)だけでも動くのでは、と思って試したのですが、 Application Support がないとサービスの起動ができませんでした。。。

 

 

  • iTunes のダウンロード

 Apple のサイトから iTunes のインストーラーをダウンロードして、展開(解凍)します。

 ダウンロードサイト(日本):  http://www.apple.com/jp/itunes/download 

 

 ダウンロードしたインストーラーを解凍したところ。(今回は Lhaplus http://www7a.biglobe.ne.jp/~schezo/  を使用)

 上記のなかから、

① AppleApplicationSupport.msi
② AppleMobileDeviceSupport.msi

 ①、②の順番にインストール。 (インストールのスクリーンショットは割愛しますが、インストーラーの指示どおりで特に難しくないです)

 

§ 2. iPhone を USB で接続

 まず、iPhone側 で、ホーム画面から 「設定」 を押して > 「インターネット共有」 を押して > インターネット共有設定をオンに。(スクリーンショットはないです・・・)

 続いて、Windows 7 マシンのUSBポートに iPhone を接続します。

 すると、Windowsのネットワークアダプタに ↓ このように、「Apple Mobile Device Ethernet」(画面内の下から2番目) が追加されます。

 私の環境だと、iPhoneは 「ローカルエリア接続2」にマッピングされました。

 このPC 1台だけをネット接続するのであれば、この時点で 「ローカルエリア接続2」 を 「DHCP」 に設定すれば、インターネットに疎通できるようになります。

 

【iPhone から配布されるIPアドレス】
Windowsで ipconfig して確認したところ、

IPv4 アドレス . . . . . . . . . . : 172.20.10.4(優先)
サブネット マスク . . . . . . . . : 255.255.255.240
リース取得. . . . . . . . . . . . : 2016年1月14日 10:41:08
リースの有効期限. . . . . . . . . : 2016年1月15日 10:26:44
デフォルト ゲートウェイ . . . . . : 172.20.10.1
DHCP サーバー . . . . . . . . . . : 172.20.10.1
DNS サーバー. . . . . . . . . . . : 172.20.10.1

でした。

iPhone からは、USBインターフェース(ローカルエリア接続2)に /28 (255.255.255.240)のネットワークが展開されていますので、iPhone が使う .1 を除き、第4オクテットが .2  ~  .14  を端末側で利用できますね。
端末側では DHCP を使用しなくとも、第4オクテットが .2  ~  .14 を固定で割り振るのもアリですね。

 

 

§ 3. WIndows 7 の有線LAN側にHUB(とか)を接続

 Windows 7 の有線LAN側にHUB(とか)を接続、その先にインターネットに接続したいマシン達を接続します。 

 各マシンのIPアドレスは、DHCPにするか、固定でもよいかと。
(DHCPと固定を併用する場合は、DHCPリースされてないIPを固定に割り当てないと)

 DHCPを使用する場合は、最大 13台が同時接続できる・・・かな? (検証していないのですが、.2 から .14 までがリースされるとして)

 NATを併用すれば、もっと接続台数は増やせますね。

 多くの携帯電話会社では 通信量制限があるので、台数が多いとすぐ上限を超えてしまいそうですが・・・
 また、従量課金の場合はこの方法はキケンですね・・・

 

 

§ 4. Windows 7 で 有線LAN と iPhone側の接続をブリッジする

 Windows 7 の有線LAN と iPhone テザリング接続を間をブリッジ接続します。

 コントロールパネルからネットワーク接続を開き、

・有線LAN : ローカルエリア接続(Marvell Yukon 88E8072)
・iPhone テザリング : ローカルエリア接続2(Apple Mobile Device Ethernet)

を選択、右クリックして 「ブリッジ接続」 を選択します。

 

 しばらくすると、下記のように 「ネットワーク ブリッジ」 が作成されます。

 

 「ネットワークブリッジ」 のプロパティを開くと、アダプターの欄に先ほど選択していた  「ローカルエリア接続」 と 「ローカルエリア接続2」 が選択(チェック)されているはずです。

  「ネットワークブリッジ」 のIPアドレスは DHCP で取得にしておきます。 

 

 

 これで、Windows 7 と その先につながっているマシン達が、iPhone 経由でインターネットと疎通できます。
 iPhone の USB インターフェース側に展開される IPアドレス(サブネット)は上記に記したように /28 (iPhone も含めて、ホスト部 は14台ぶん) のサブネットなので、DHCPでiPhoneからIPアドレスをもらっても、固定IPを別途割り振っても良いかと思います。
 携帯電話の通信量制限を気にしなくても良い環境であれば、Windows 7 の有線LAN側に NAT できる機器を置けば、何台でも同時接続可能にすることもできると思います。

 

 今回の備忘録は以上です。

 

 

.vimrc for me

 自分用の .vimrc をいつでも他の環境にコピる用の備忘録なので、特段解説がないですヨ。 ^^;

ペーストする際には、「:set paste」 を忘れずに!

 

" vi互換スイッチの設定。この定義は vimrc の先頭に記述しなければならない。(compatible: vi互換を優先し、vimの機能は制限される。 / nocompatible: vimの機能を有効にする。)
"
set nocompatible

" 現在のカーソル位置(行、桁)をVimウィンドウの右下に常に表示する。(有効:ruler/無効:noruler)
set ruler

" カラースキーマを設定 (使えるカラーはこちら(at CentOS 7) >>> /usr/share/vim/vim74/colors)
colorscheme desert

" 検索パターンにおいて大文字と小文字を区別しない。(有効:ignorecase/無効:noignorecase)
set noignorecase

" 検索パターンが大文字を含んでいたらオプション 'ignorecase' を上書きする。(有効:smartcase/無効:nosmartcase)
set smartcase

" オンのときは、ウィンドウの幅より長い行は折り返され、次の行に続けて表示される。(有効:wrap/無効:nowrap)
set wrap

" 入力されているテキストの最大幅。行がそれより長くなると、この幅を超えないように空白の後で改行される。値を 0 に設定すると無 効になる。
set textwidth=0
set formatoptions=q

" 検索がファイル末尾まで進んだら、ファイル先頭から再び検索する。(有効:wrapscan/無効:nowrapscan)
set wrapscan

" オンのとき、コマンドライン補完が拡張モードで行われる。(有効:wildmenu/無効:nowildmenu)
set wildmenu

" 閉じ括弧が入力されたとき、対応する開き括弧にわずかの間ジャンプする。(有効:showmatch/無効:noshowmatch)
set showmatch

" 毎行の前に行番号を表示する。(有効:number/無効:nonumber)
set number
"
" タブ文字を CTRL-I で表示し、行末に $ で表示する。(有効:list/無効:nolist)
set list

" Listモード (訳注: オプション 'list' がオンのとき) に使われる文字を設定する。
set listchars=tab:>-,extends:<,trail:-,eol:<

" 最下ウィンドウにいつステータス行が表示されるかを設定する。
"       0: 全く表示しない
"       1: ウィンドウの数が2以上のときのみ表示
"       2: 常に表示
set laststatus=2

" コマンド (の一部) を画面の最下行に表示する。(有効:showcmd/無効:noshowcmd)
set showcmd

" ファイルを上書きする前にバックアップを作る。書き込みが成功してもバックアップはそのまま取っておく。(有効:backup/無効:nobackup)
set nobackup

" ファイルの上書きの前にバックアップを作る。オプション 'backup' がオンでない限り、バックアップは上書きに成功した後削除される。(有効:writebackup/無効:nowritebackup)
set writebackup