2020年5月5日火曜日

Sophos XG FirewallのLAN側IPv6アドレス設定(過去記事削除)

以前作成した記事に誤りがあったので削除して再度アップし直し


Sophos XG Firewall Home EditionのLAN側にIPv6の設定を行う
端末への払い出しはステートフル自動設定にて実行する

参考 ステートフル自動設定について


設定するIPv6アドレスは【 ULA(ユニークローカルアドレス)】
RFC4193の内容ではULAではIFのMACアドレスからEUI-64の値を求めて、NTPから求めた値を組み合わせてSHA-1でハッシュ値を求めて下位40bitをfdに追加して利用するとのこと

計算アルゴリズム組もうかとも思ったけど、海外サイトにいいものがあったのでそちらを利用
RFC4193 IPv6 Generator

ここにMACアドレスを入れると自動でULAを計算してくれる
今回は以下の値になった。



早速インターフェースに設定を行う

XG Firewallにログインして【設定】>【ネットワーク】>【インターフェース】から【PortA】を選んで【IPv6設定】のチェックを入れる

設定項目は以下の2か所
【IPの割り当て】  スタティック
【IPv6/プレフィックス】  fdc5:e2b2:b25e:1::1 / 64

IPv6は上記のジェネレータで作成した値の範囲から任意で好きに設定すればいい
見た目わかりやすいように、第4オクテットをVLANと同値にした
他のVLANインターフェースも同様に行う



次にDHCPv6サーバの設定を行う

同じ【ネットワーク】の設定画面のタブから【DHCP】を開いて【サーバ】の【追加】から設定画面を開く
タブで【IPv4】と【IPv6】に分かれているので【IPv6】を選択する
設定は以下4か所
【名前】 VLAN1_DHCPv6(任意の名前)
【インターフェース】 PortA
【ダイナミックIPリース】 ※使わないけど必須なので適当に範囲内の値を入れる
【DNSサーバ】 【デバイスのDNS設定を使用】にチェック

ここで必要なのはDNSの設定だけ
LAN内で使うだけならDHCPサーバの設定自体無くても問題ない
端末への払い出しはステートフル自動設定によって行われるが、払い出し範囲が必須入力なのが少し残念な気がする



最後にRAの設定を行う

同じ【ネットワーク】の設定画面のタブから【IPv6ルータアドバタイズ】を開く
多分表示されていないので右端の【・・・】をクリックしたら項目が現れる

設定項目は以下4か所
【インターフェース】 PortA(プルダウンから選択)
【アザーフラグ〔O Flag〕】 〔HDCPv6から他のパラメータを管理〕にチェック
【デフォルトゲートウェイ】 チェック
【アドバタイズ設定のプレフィックス】fdc5:e2b2:b25e:1::0

M Flagは不要
アドバタイズ設定のプレフィックスにはネットワークアドレスを入力する
ここの値を元に下位64bitのアドレスを端末自身が設定する
他のVLANインターフェースも同様に行う


端末側でv6のアドレスが払い出されているか確認する

※VLAN10のWindows10端末


※VLAN20のAndroid9端末



これで問題なく各VLAN毎にIPv6アドレスの設定が完了した
ひとまずIPv6でLAN内の通信をする予定は無いのでFWの設定は省略する
必要があればVLAN毎に通信可否をFWで設定してやればいい

2020年4月30日木曜日

Ubuntu 18.04 LTSにPostgreSQL 10とZabbix 4.0 LTSのインストール

自宅のNW機器などを監視したくてESXiの空いているリソースを利用してZabbixを建てることに

OSはUbuntu 18.04 LTS
20.04 LTSが出たばかりだけどひとまずドキュメントが揃っているこちらで

データベースは個人的に使ってみたかっただけなのでPostgreSQLを採用

とりあえずOSは公式からイメージファイルをダウンロードして1CPU 2GBくらいでESXi上にサーバ作成

事前に以下サイトを参照して必要なものをインストールしておく


※参考サイト
server-world Ubuntu_18.04

■Apache
$ sudo apt -y install apache2

■PHP
$ sudo apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring

■タイムゾーン変更
$ sudo vim /etc/php/7.2/apache2/php.ini

#以下修正
date.timezone = "Asia/Tokyo"

■DB PostgreSQL
$ sudo apt -y install postgresql


■OSのタイムゾーン変更
$ sudo timedatectl set-timezone Asia/Tokyo



Zabbixのインストール自体は公式が便利なサイトを作っているので参照
OSや利用するソフトウェアとバージョンを選択すると必要なコマンドが下に表示される

Download and install Zabbix

■Zabbixのリポジトリ追加
$ sudo wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
$ sudo dpkg -i zabbix-release_4.0-3+bionic_all.deb
$ sudo apt -y update

■Zabbix Serverとagentのインストール
$ sudo apt -y install zabbix-server-pgsql zabbix-frontend-php php7.2-pgsql zabbix-agent

■Zabbix用DB作成
$ sudo -u postgres createuser --pwprompt zabbix
$ sudo -u postgres createdb -O zabbix zabbix

■初期スキーマとデータのインポート
$ sudo  zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

■作成したDBへのログインPW設定
$ sudo vim /etc/zabbix/zabbix_server.conf

#以下修正
DBPassword=(任意の値 後で使う)

■Zabbixのタイムゾーン変更 該当箇所コメント解除して追記
$ sudo vim /etc/zabbix/apache.conf

php_value date.timezone Asia/Tokyo

■再読み込みと有効化
$ sudo systemctl restart zabbix-server zabbix-agent apache2

$ sudo systemctl enable zabbix-server zabbix-agent apache2


ここからはWebブラウザで操作
以下作成したサーバIP+ /zabbixでアクセスする
今回は192.168.1.14で作成したので以下
192.168.1.14/zabbix

画面が表示されたら【Next Step】から次へ
zabbix1


インストールされたパッケージのステータス確認なので問題なければ次へ
zabbix2


利用するDB情報
ユーザ名はZabbix、PWは上で作成したものを入力
zabbix3


Host名やポーと設定など
特に不要なら初期値のままで名前は任意に設定
zabbix4


 これで初期設定は終わったので【Finish】で再読み込み
zabbix5


ログイン画面が表示される
初期のユーザ名はadmin
PWはzabbixに設定されている
zabbix6


ログインすると英語表記のままだが、基本的な項目はこれで表示された
zabbix7



日本語化するためにubuntuにsshで繋ぎ直して以下を設定する

$ sudo localedef -f UTF-8 -i ja_JP ja_JP
$ sudo service zabbix-server restart
$ sudo service apache2 reload

再度zabbixにログインして右上の【profile】を開いて【Language】から【Japanese (ja_JP)】を選択して保存する

これで画面表記も日本語化された
後は監視する各エージェントの設定をやっていこう
zabbix8

2020年4月20日月曜日

Ubuntu18.04でのpostgreSQLデータディレクトリ変更

Ubuntu18.04にPostgreSQLを入れてデータディレクトリを変更する際のメモ

■PostgreSQLのインストール
Ubuntu18.04ではPostgreSQLのVer.10がインストールされる
$ sudo apt -y install postgresql



■現状のデータディレクトリ確認
DBにログイン
$ sudo –u postgres psql

・データディレクトリ確認
postgres=# SHOW data_directory;
【/var/lib/postgresql/10/main】と表示されているはず


・ログアウト
\q


■変更先フォルダ作成
今回は【/mnt/usb/pgdata】を新しいデータディレクトリにする
・フォルダ作成とパーミッション変更
 所有者をpostgresにして所有者のみ読み書きできるように
$ sudo mkdir /mnt/usb/pgdata
$ sudo chmod go-rwx /mnt/usb/pgdata
$ sudo chown postgres:postgres /mnt/usb/pgdata


DB初期化
・ユーザpostgresにログイン

$sudo -s -u postgres

・DB初期化
 Ubuntuだとinitdbにパスが通って無いのでとりあえずフルパスで指定
$ /usr/lib/postgresql/10/bin/initdb -D /mnt/usb/pgdata


■設定ファイル書き換え
postgresユーザだと掛けない場合はログアウトして
$ sudo vim /etc/postgresql/10/main/postgresql.conf

・該当箇所を以下の通り書き換え
data_directory = '/var/lib/postgresql/10/main' # use data in another directory
data_directory = '/mnt/usb/pgdata' # use data in another directory


■postgesqlの再起動
$ sudo /etc/init.d/postgresql stop
$ sudo /etc/init.d/postgresql start


■変更後ののデータディレクトリ確認
DBにログイン
$ sudo –u postgres psql

・データディレクトリ確認
postgres=# SHOW data_directory;
【/mnt/usb/pgdata】と表示されているはず

・問題なければログアウト
\q


これでデータディレクトリを任意の位置に変更できる

2020年4月18日土曜日

vmware ESXi6.7(無償版)でUSBメモリをデータストアとして利用

USB3.0対応の128GBのUSBメモリが安かったので購入したついでにESXiのデータストアとして利用することに

そのままUSBメモリを繋いだ場合は仮想マシンOS上でUSBメモリとして認識するんだったかな?
設定前に確認し忘れたのでその辺りはとりあえずスルーしよう



コマンド叩いて設定するようなので、SSHを有効化させる

ESXiのWebインターフェース(以下WebI/F)にログインして【ホスト】>【管理】>【サービス】から【TSM-SSH】を有効化
ESXi


TeraTearmでSSHアクセス
ユーザ名はWebI/Fのログインユーザ名
Authenticvation methodsは【キーボードインタラクティブ認証を使う】にして接続
認証を求められるので上記同様WebI/Fの値を使ってログイン


■仮想OSのパススルーを停止
/etc/init.d/usbarbitrator stop

■再起動時にもusbarbitratorを起動させない
/sbin/chkconfig usbarbitrator off

■認識されているディスクの確認
ls /dev/disks/

今回は以下のデバイスとして認識された
mpx.vmhba36:C0:T0:L0
これは後の設定で利用するのでメモしておく

■ラベル作成
partedUtil mklabel /dev/disks/mpx.vmhba36:C0:T0:L0 GPT

■GTPパーティションの取得
partedUtil getptbl /dev/disks/mpx.vmhba36:C0:T0:L0


■サイズ取得
eval expr $(partedUtil getptbl /dev/disks/mpx.vmhba36:C0:T0:L0 | tail -1 | awk '{print $1 " \\* " $2 " \\* " $3}') - 1

表示された数字は後で利用するのでメモしておく
今回の値は以下
240348464

■パーティション作成
partedUtil setptbl /dev/disks/mpx.vmhba36:C0:T0:L0 gpt "1 2048 24034846  AA31E02A400F11DB9590000C2911D1B8 0"

■vmfs6のパーティション作成
名前はわかりやすいようにUSB-Datastoreとした
vmkfstools -C vmfs6 -S USB-Datastore /dev/disks/mpx.vmhba36:C0:T0:L0:1


これでデータストアとして登録されているはずなのでWebI/Fで確認
問題なく表示されていれば成功
データストア


あとはこれを仮想サーバにマウントしたい場合には、一旦仮想サーバをシャットダウンしてから、仮想マシンの編集で【ハードディスクの追加】から新しく追加したデータストアを選んで容量を指定すればいい

/dev/sdb等で認識されているはずだが、パーティションもないので好きに設定して好きな場所にマウントさせてやれば利用できる

2020年4月13日月曜日

10.1インチのAndroid9タブレット購入

以前から所持していたKindle Fire HDが動作も遅くてそろそろ買い替えを考えていたところ、Amazonで安くなっていたのを見つけたのでTeclastのP10HDを購入
4G対応でSIMが挿せるが今のところ利用する予定は無いけど、テザリングで足りなくなったときにでも契約すればいいか

標準で保護フィルムは貼られているようだったが、ガラスフィルムも別途購入した

ついでにBluetoothのキーボードも調達
P10HDなど


カタログ表記はmicroUSBになっていたが、届いた端末はUSB type Cのモデルだった
OTG対応にはなっているものの、USB type CのLANやHDMIがついているドッキングステーション型のHUBを認識しない
まぁAndroidだと使える機種が限られているようなのでここは想定無い

しかし、USB type C → microUSB変換器を利用して通常のUSB HUBを繋いだりUSBキーボードを接続しても反応なし
PCに繋げても充電されるだけで認識しない
まあ充電できている以上、故障ではなさそうなのでこんな仕様変更がされたということで納得した
USB type C


Bluetoothキーボードはタッチパッド付きで小型なため、やや変則的な配列
Google日本語入力で「日本語109A」を選べば、キートップの赤字表記の日本語配列で利用できるのが地味に嬉しい
AndroidはSSHで繋げた先やターミナル系のアプリでGoogle日本語入力の使い勝手が微妙な時があるがWin(Command)+スペースキーでGboradと切り替えれば問題なく使える場合が多いので何かと便利
タッチパッドはどちらでも良かったものの、10.1インチタブとサイズ的なバランスが良い日本語配列キーボードの中では安価だった
タッチ精度は許容範囲かな。マウス操作を多用する際は別に持っているBluetoothマウスを繋げれば問題ない
Fn+cでコネクション解除だったりfn+escじゃないとホーム画面呼び出すボタンだったりと癖はあるものの、薄くて軽いので慣れの問題かな
キーボード


キーボード付属のタブレットスタンドを利用すれば2 in 1 PC的な使い方ができる
Wi-Fiも11ac対応で各種Androidアプリが利用できるので、サブ機としてはなかなかいい使い勝手
2万以下の機種の中ではそれなりにスペックが高くて、YouTubeの動画再生も1080でカクつくこともない
安いChromebookを買うよりも更に安価にモバイル端末が利用できたのはいいな
2in1

2020年4月12日日曜日

近所の桜散策

外出自粛の影響であまり人の多い観光地には出かけられないので、在宅勤務で空いた朝の時間を利用して近所の桜を撮影していた



朝の時間だと人もほぼおらずゆっくりと見ることができた

来年にはもう少し他の観光地に出掛けられることを願う




2020年4月3日金曜日

Raspberry Pi 3 model B+にRaspbian Buster LiteインストールとSamba構築

Raspberry Pi 3 model B+のOSを入れ替えたのでメモ
ついでに以前のブログ内容が手抜きだったので、自分のメモとしてやり直し

公式サイトからGUI無しのRaspbian Buster Liteをインストール
Raspbian ダウンロードサイト

解凍したイメージファイルをSDカードに書き込み
SDカード内直下に【SSH】ファイルを作成してリモートアクセスの準備
Windows10からだと、右クリック>新規作成(X)>テキストドキュメントを作成して
拡張子無しの【SSH】にリネームすればいい

SDカード刺して起動するが、初期だとDHCPなのでXG Firewall側で一時的にDHCPを有効化してIP払い出せるようにしておく


起動したらいつものアップデートとVimのインストール
$ sudo apt update
$ sudo apt upgrade
$ sudo apt -y install vim


■インターフェース名変更
liteだからなのかデバイス名が【enx+macアドレス】の表記になっていたので、eth0に変更する
$ sudo vim /lib/udev/rules.d/73-usb-net-by-mac.rules
下の方のNAMEの""内を変更
    IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"
  ↓
    IMPORT{builtin}="net_id", NAME="eth0"

■IPアドレス固定
$ sudo vim /etc/dhcpcd.conf
以下追記
interface eth0
static ip_address=192.168.*.*/28(指定したいIP)
static routers=192.168.*.*(デフォルトゲートウェイIP)
static domain_name_servers=192.168.*.*(DNS IP)

■Wi-Fiの無効化
$ sudo iwconfig wlan0 txpower off

■ネットワークの再起動
$ sudo systemctl restart networking

■IP確認
$ ip a
でeth0に指定したアドレスが表示されていれば問題なし


既存のNTFSフォーマットのUSB-HDDを利用するのでntfs-3gをインストール
$ sudo apt -y install ntfs-3g

念のためデバイス確認
$ sudo fdisk -l

/dev/sda1で認識されてることが確認出来たらマウント場所作成してマウント
GUI環境無いと自動マウントはされない
$ sudo mkdir /mnt/hdd 
$ sudo mount -t ntfs /dev/sda1 /mnt/hdd

起動時に自動マウントさせるためUUIDの確認
$ sudo blkid

【/dev/sda1:】のところのUUIDをメモ

fstabに追記
$ sudo vim /etc/fstab
#最終行に以下記述
UUID= ※メモしたUUID※  /mnt/hdd ntfs
Defaults.nofail 0 0

共有フォルダとして利用するフォルダは【public】、アクセス権付きフォルダは【pi】ですでに作成済みだったのでパーミッション変更
必要であればmkdirでフォルダも作成
$ sudo chmod 777 /mnt/hdd/public
$ sudo groupadd pi
$ sudo chgrp pi /mnt/hdd/pi
$ sudo chmod 770 /mnt/hdd/pi


Sambaのインストール
$ sudo apt -y install samba

Sambaの設定
$ sudo vim /etc/samba/smb.conf

36行目のinterfaces = 127.0.0.0/8 eth0の後ろに接続するIPを記述
今回は端末固定するので/32で
 interfaces = interfaces = 127.0.0.0/8 eth0 192.168.*.*/32 IP指定)

[global]内に追記
unix charset = UTF-8
dos charset = CP932
max protocol = SMB2
#共有フォルダ
[public]
    path = /mnt/hdd/public
 read only = No
    writable = yes
    guest ok = yes
    guest only = yes
    create mode = 0777
    directory mode = 0777
#アクセス権フォルダ
[pi]
    path = /mnt/hdd/pi
    writable = yes
    create mode = 0770
    directory mode = 0770
    guest ok = no

    valid users = pi


■Sambaユーザ登録してパスワードをRaspberrypi上のユーザと同期させる
$ sudo pdbedit -a pi

sambaの再起動
$ sudo systemctl restart smbd


【\raspberrypiのip\フォルダ名】でアクセスできれば問題なし
GUI無し環境だから少しは快適に動くかな?