撮影日:2020/06/10 20時頃
撮影場所:山口県岩国市錦町府谷
2020年6月12日金曜日
2020年6月3日水曜日
OPNsenseでのOpenVPN設定
OPNsenseにOpenVPNの設定を追加する
公式サイトにドキュメントはあるものの、TOTPによる二要素認証を利用した方法等、今回使わない情報が載ってるので少し混乱した
【 Setup SSL VPN Road Warrior 】
構成は以前の記事同様XG Firewallと並列の構成
OpenVPNで接続したクライアントはXG FirewallのIPoEトンネルを利用してインターネットに抜ける構成になる
また、PPPoE側は個人向けOCNサービスのためダイナミックDNSとしてGoogle Domains内のDNSサービスに内包されているダイナミックDNSサービスを利用する
■ダイナミックDNS設定
まずは外部アクセス用にダイナミックDNSの設定を行う
GoogleDomainsのページにアクセスして【DNS】>【合成レコード】のプルダウンから【ダイナミックDNS】を選択
今回はサブドメインで運用するので、空欄に任意のサブドメインを入力して追加する
追加したダイナミックDNSの情報を開くと【ユーザ名】と【パスワード】が表示されるので、これを後でコピペする
次にOPNsenseにログインして【サービス】>【ダイナミックDNS】のページ内右上の【追加】から設定する
設定か所は以下
【有効】にチェック
【サービスタイプ】Google Domains
【監視するインターフェース】WAN
【ホスト名】Google Domainsで作成したサブドメインのFQDN
【ユーザ名】Google Domainsからコピペ
【パスワード】Google Domainsからコピペ
保存して強制更新すると、OPNsenseのダイナミックDNSのページ内で追加したものが有効化され、取得したグローバルIPアドレスが表示される
このアドレスはGoogle Domains上にも同様の値が表示される
■内部認証局作成
【システム】>【セキュリティ】>【認証局】から新しい認証局を追加する
【説明】OpenVPN-CA #任意の値
【方法】内部認証局を作成
【鍵長】4096
【ダイジェストアルゴリズム】SHA512
【国コード】JP(Japan)
【都道府県】#任意の値
【市】#任意の値
【組織】#任意の値
【電子メールアドレス】#任意の値
【コモンネーム】#任意の値
■サーバ証明書作成
【システム】>【セキュリティ】>【証明書】から新しいサーバ証明書を追加する
【方法】内部証明書の新規作成
【説明】OpenVPN-CE #任意の値
【認証局】OpenVPN-CA #上で作成した認証局を選択
【タイプ】サーバ証明書
【鍵長】4096
【ダイジェストアルゴリズム】SHA512
国コードからしたは認証局の情報が自動転記される
■VPNユーザ作成とユーザ証明書作成
【システム】>【アクセス】>【ユーザ】からVPN用のユーザを追加する
【ユーザ名】#任意の値
【パスワード】#任意の値
【証明書】クリックすると、ユーザ証明書を作成します にチェック
保存してユーザ証明書の作成画面に移管する
【方法】内部証明書の新規作成
【説明】user-CE #任意の値
【認証局】OpenVPN-CA #上で作成した認証局を選択
【タイプ】クライアント証明書
【鍵長】4096
【ダイジェストアルゴリズム】SHA512
国コードからしたは認証局の情報が自動転記される
■OpenVPNサーバ作成
【VPN】>【OpenVPN】>【サーバ】から【新規サーバの設定にウィザードを使用】にてVPNサーバを追加する
・認証タイプ選択
【サーバのタイプ】Local User Access #初期値
・証明局選択 #誤訳?
【認証局】OpenVPN-CA #上記で作成した認証局を選択
・サーバ証明書選択
【証明書】OpenVPN-CE #上記で作成したサーバ証明書を選択
・サーバ設定
【インターフェース】WAN
【プロトコル】UDP
【ローカルポート】1194
【DHパラメータ長】4096
【暗号化アルゴリズム】AES-128-CBC(128 bit key, 128 bit block)
【認証ダイジェストアルゴリズム】SHA512(512-bit)
【IPv4 トンネルネットワーク】192.168.0.0/29 #VPNクライアントに割り当てるNW
【リダイレクトゲートウェイ】チェック入れる #VPNサーバ経由でインターネットへアクセスさせる
【IPv4 ローカルネットワーク】192.168.0.0/28
【動的IP】チェック入れる
【アドレスプール】チェック入れる
・ファイアウォールルール構成
【クライアントからサーバへのトラフィック】チェック入れる
【クライアントからVPN経由のトラフィック】チェック入れる
■作成されたFWルールの確認
【ファイアウォール】>【ルール】の【OpenVPN】と【WAN】それぞれに新しいルールが追加されている
これでOPNsense側のOpenVPN設定は完了
【VPN】>【OpenVPN】>【クライアントのエクスポート】からプロファイルをダウンロードして端末へ設定してやればつながる
androidの場合は
【Export type】ファイルのみ
として画面下の証明書からユーザ証明書のデータをダウンロードすれば利用できる
認証局や証明書を別途作成するのが面倒だったものの、サーバ自体はウィザードが用意されておりFWルールも自動作成なので設定自体は簡単だった
実スループットは回線とOPNsenseへの割り当てリソースに左右されるだろうから、実用的かどうかは様子見
2020年5月26日火曜日
Zabbix 5.0 へのsnmpホスト登録(標準MIBのみ)
Zabbixが構築できたので自宅のNW機器を登録していく
厳密に管理するわけではないので、MIBは【標準MIB】のみで【Read Only】、community nameは【public】で統一して設定する
設定対象は以下の4機種
NGFW:Sophos XG Firewall Home Edition(ESXi上)
FW: Deciso OPNsense(ESXi上)
L2SW: Netgear GS310TP
無線AP:Netgear WAC505-10000S
ESXiは少しコマンド打つ必要があるのでまた別の機会に回す
■Sophos XG Firewall Home Edition
ログインしたら【システム】>【管理】>【SNMP】から以下の設定を行う
有効化してしまえば後の値は適当でいい
【SNMPエージェントを有効化する】のチェックを入れる
【名前】任意
【位置情報】任意
【連絡担当者】任意
【マネージャポート】162(初期値)
次に画面下の【コミュニティ】を設定するため【追加】を押して設定画面へ移る
【名前】public #community name
【IPアドレス】192.168.1.10 #Zabbixサーバ
【プロトコルバージョン】v2c
【トラップサポート】v2c
■Deciso OPNsense
初期設定ではsnmpが有効ではなくpingも通らないため、その設定も併せて行う
ログインしたら【システム】>【ファームウェア】>【プラグイン】から【os-net-snmp】をインストールする
右側の【+】でインストールしたら再度ログインし直して有効化
次に【サービス】>【Net-SNMP】からsnmpの設定を行う
【Enable SNMP Service】チェックを入れる
【SNMP Community】public #community name
【SNMP Location】任意
【Layer 3 Visibility】チェックを入れる
Zabbixサーバと疎通できるようにFWルールを追加する
【ファイアウォール】>【ルール】>【フローティング】にて
【送信元】LANネット
【送信先】このファイアウォール
としてICMPとUDP161(SNMP)の許可ルールを設定する
最初はLAN側に設定してうまくいかなかったが、フローティング側に設定するんだったのか
■Netgear GS310TP
ログインしたら【システム】>【SNMP】>【SNMPv1/v2】>【コミュニティ設定】から以下の設定を行う
【管理ステーションIP】192.168.1.10 #Zabbixサーバ
【管理ステーションIPマスク】255.255.255.240 #/28
【コミュニティ文字列】public #community name
【アクセスモード】Read Only
【状態】有効
SNMP Trapの設定もついでに追加
【システム】>【SNMP】>【SNMPv1/v2】>【Trap設定】から以下の設定を行う
【受信者IP】192.168.1.10 #Zabbixサーバ
【バージョン】SNMPv2
【コミュニティ文字列】public #community name
【状態】有効
■Netgear WAC505-10000S
ログインしたら【Management】>【Mantenance】>【Remote Management】から以下の設定を行う
【SNMP】Enableのラジオボタンを有効化
【read-Only Community Name】public #初期値
【IP Address (to receive traps)】192.168.1.10 #Zabbixサーバ
【Trap Port】162 #初期値
有効化してIP入れるだけなのでこれが一番設定が簡単だった
■Zabbix 5.0 (raspbian上)
Zabbix側にホストの追加を行う
ログインして【設定】>【ホスト】>【ホストの作成】から以下の設定を行う
・ホストタブ
【ホスト名】任意
【グループ】Templates/Network Devices
【インターフェース】初期値を削除してsnmpを追加して監視対象機器のIPアドレスを指定
・テンプレートタブ
【新規のテンプレートをリンク】Template Net Network Generic Device SNMPv2
・マクロタブ
【マクロ】{$SNMP_COMMUNITY}
【値】public
該当機種分同じ作業を繰り返して登録し、ある程度時間が経過するとSNMPが有効化されて値が取得される
これで死活監視や各機器のインターフェーストラフィック量が見やすくなるので、グラフの表示とかをまた調整しよう
2020年5月18日月曜日
Raspbian Buster LiteへZabbix 5.0 LTSのインストール
Ubuntu18.04へZabbix 4.0 LTSを入れたものの、OPNsenseを導入した影響でESXiのリソースが心も解くなったので、Zabbixのインストール先を変更する必要が出てきた
ちょうど5/12にZabbix 5.0 LTSがリリースされたのでそちらをダウンロードすることにした
Sambaサーバに利用しているRaspberry pi 3 B+であればもう少しソフトウェア動かせそうなのと、公式ドキュメントにインストールマニュアルがあったのでそちらを参考にした
DBはUSBメモリにディレクトリを移して容量を確保する
尚、Raspberry piの日本語化はすでに済ましてある
各ソフトウェアのバージョンは以下の通り
Raspbian Buster Lite
PostgreSQL 11.7
Apache 2.4.38
PHP 7.3.14-1
Zabbix 5.0 LTS
まずはApacheとPHPとPostgreSQLのインストール
Raspbian BusterはDebina10ベースなので、以下のサイトのDebian10のページを参考にしてコマンドをコピペしていく
■Apacheのインストール
$ sudo apt -y install apache2
■PHPのインストール
$ sudo apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring
・タイムゾーンの変更
$ vim /etc/php/7.3/apache2/php.ini
# 960行目:コメント解除しタイムゾーン設定
date.timezone = "Asia/Tokyo"
■PostgreSQLのインストール
$ sudo apt -y install postgresql
■PostgreSQLのデータディレクトリ変更
・フォルダ作成と権限変更
$ sudo mkdir /mnt/usb/pgdata
$ sudo chmod go-rwx /mnt/usb/pgdata
$ sudo chown postgres:postgres /mnt/usb/pgdata
・DB初期化
ユーザpostgresにログインして初期化コマンド叩いてユーザpostgresからログアウト
$ sudo -s -u postgres
$ /usr/lib/postgresql/11/bin/initdb -D /mnt/usb/pgdata
$ exit
・設定ファイル書き換え
$ sudo vim /etc/postgresql/10/main/postgresql.conf
該当箇所を以下の通り書き換え
data_directory = '/var/lib/postgresql/11/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
■Zabbixのインストール
・リポジトリ更新
$ wget https://repo.zabbix.com/zabbix/5.0/raspbian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb
$sudo dpkg -i zabbix-release_5.0-1+buster_all.deb
$ sudo apt -y update
・パッケージインストール
$ sudo apt -y install zabbix-server-pgsql zabbix-frontend-php php7.3-pgsql zabbix-apache-conf zabbix-agent
・DB作成
$ sudo -u postgres createuser --pwprompt zabbix
#パスワードは任意で設定
$ sudo -u postgres createdb -O zabbix zabbix
・初期スキーマとデータのインポート
$ zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
・Zabbixサーバの構成変更
$ sudo vim /etc/zabbix/zabbix_server.conf
#以下コメントアウトして追記
DBPassword=(任意の値、後で使う)
・Zabbixサーバーとエージェントプロセスを開始
$sudo systemctl restart zabbix-server zabbix-agent apache2
$sudo systemctl enable zabbix-server zabbix-agent apache2
無事インストールが完了したらブラウザでIPアドレス/zabbixにてログイインする
インストール情報が出てくるので問題なければ【Next Step】で次へ
PostgreSQLへの接続情報を入れる欄には上で作成したパスワードを入力して【Next Step】で次へ
Zabbixサーバの情報を登録する
空欄でも可能だがとりあえずNameを【Zabbix】として【Next Step】で次へ
登録情報の確認画面
問題なければ【Next Step】で次へ
正常に設定完了された画面が表示されたら【Finish】で初期設定終了
ログイン画面に遷移したら初期のログインIDとパスワードでログイン
ログインした状態
GUIの表示が4.0LTSと変わってメニューが上から左に移っている
このままだと英語表記なので左下の【User setting】から【Language】を日本語に変更する
これで一通りの設定は完了
今度こそ自宅NW機器のsnmp設定を始めていこう
2020年5月13日水曜日
ESXi上にOPNsenseを構築
XG FirewallにIPoEの設定入れたらダイナミックDNS使えなくなってOpenVPNも利用できなくなったので、対処策としてPPPoEセッション用にルータを追加することに
構成は以下の感じ
XG FirewallのデフォルトルートはIPoEのIPIPトンネル向いてるので、優先度低めでOPNsenseにデフォルトルート向ければ、PPPoEもバックアップ回線に使えそう
色々設定できたら構成図綺麗に作り直そう
LIVA Zのリソースはあまり残って無いのでそれなりに軽量でも動くもので良さそうなのを探していたら【 OPNsense 】なる仮想Firewallがあるらしい
公式wikiの情報だと基本要件は以下の通り
- Processor:1GHz dual core cpu
- RAM:1GB
- Install target:40GB SSD
メモリとストレージは余裕があるものの、CPUは4CoreともXG Firewallに振っているので、CPUだけは最小構成の1Coreでイケるだろう1GHzはあるし
設定はさくらのナレッジを参考にした
まずは公式サイトのダウンロードページからISOファイルをダウンロードする
Architectureは【amd64】
Select the image typeはdvd
Mirror Locationは好きなところを選べばいい
bz2形式で落ちてくるので7z使って適当なフォルダに解凍しておく
ダウンロードしたバージョンは20.1とのこと
ESXiにログインして仮想マシンを新規作成する
名前はわかりやすく【OPNsense】
互換性は初期値
ゲストOSファミリは【その他】
ゲストOSのバージョンは【FreeBSD11より前のバージョン(64ビット)】
利用するデータストアは一つしかないのでそのまま選んで次へ
CPU:1
メモリ:1024MB
ハードディスク1:40GB (シンプロビジョニング)
ネットワークアダプタ1:WAN側の仮想NW
ネットワークアダプタの追加で新規NIC追加してそちらはLAN側の仮想NWを割り当て
CD/DVDドライブ:データストアISファイル
として先ほど回答したISOファイルをアップロードする
作成完了したら起動して仮想コンソールから初期設定を行う
画面が起動したらエンターを押して先へ
途中でPress any key to start the manual interface assignment:
と聞かれるのでエンター押して手動設定へ移行
nic名とMACアドレスが表示されるのでESXi上の画面と照らし合わせてWANとLANを間違えない様に気を付ける
VLNAは使わないのでn
WANはem0
LANはem1
追加インターフェースは利用しないので未入力のままエンター
login:が表示されたら
login:root
PW:opnsense
でログインしてCLIで変更画面へ
【2) set interface IP address】の2を選んでIPアドレスを設定する
IPアドレスは192.168.1.14
サブネットは28
defaultgatewayを聞かれるが、VLAN越しにSSHで繋げる予定なのでXG Firewallの値の192.168.1.1を入れておく
これやらないとVLAN越しにルーティングできずにブラウザからのアクセスができなくなる
ラズパイ踏み台にしてやればいいんだろうけど
設定したら一旦ログアウトして以下の値でログインする
これでFirewall本体のインストール作業に入る
login:installer
PW:opnsense
キーボード設定を変更するため【Change Keymap(default)】から【jp.kbd】を選択
インストール方法は【Guided installation】を選択してストレージを選択
インストールモードは【GPT/UEFI】を選択
最後にrootパスワードの再設定、後で変更する場合は空欄のままエンター押せば初期値のままとなる
インストールが完了したらrebootして、起動後にIPアドレスでWebブラウザからアクセスできる
後はVLAN側へのスタティックルートとWANへのPPPoE設定とダイナミックDNS設定とOpenVPNの設定をやっていこう
2020年5月6日水曜日
Sophos XG FirewallのLAN側IPv6 IPoE(DS-Lite)設定
3月からの在宅勤務が緊急事態宣言の延長で長引きそうなので、自宅回線増強のためIPoE化をすることに
IPoEサービスは国内だと以下2つの種類が存在している
・v6プラス (MAP-E)
・transix (DS-Lite)
どちらもIPv4アドレスを複数ユーザでシェアするためNATセッション数は1,000くらいに制限される上、送信元にウェルノウンポートが利用できないためWebサーバやVPNサーバ等の外部からアクセスするサーバ公開ができなくなる
MAP-Eであれば割り振られたポートを利用するように設定変更すれば無理やりでも方法はあるものの、DS-Liteは網側でNATされているため方法はないみたい
一応両サービスともにIPv4の固定IPアドレスサービスが存在してるものの、実際の提供ISPによってはメニュー化されていない場合がある
今回はXG FirewallがMAP-Eに対応していないので、DS-Liteを利用することにした
(厳密にはDS-Liteも公式に対応情報は出ていない)
今回選んだのはインターリンク社のZOOT NATIVE
ISP契約のみ可能で初期費無料、開通後2か月無料なのと申し込みから小一時間で開通するので試すにはちょうどいい
申し込みには自宅のフレッツ回線の種別とCAF番号、アクセスキーが必要となる
支払方法をクレジットカードにして申し込んだら登録完了メールが届き、実際の開通連絡は1時間半後くらいだった
設定はマニュアルは以下サイトに公開されている
当然XG Firewallは記載がないのでYAMAHAルータのConfig辺りを参考に手探りで頑張る
設定に必要な開通案内の情報はほぼ無いのでXG Firewallに設定を入れていく
尚、IPv6でのInternet通信をする場合はLAN側のIPv6設定も必須なので先に済ませておく
利用するインターフェースは空いてるPortCをWANとして設定する
PortBにはOCNのPPPoE設定が入っているものの、MTU値が異なるので違うNICを利用する方が無難
PPPoEを利用する場合のフレッツ光ネクストのMTUは1454、
IPoEを利用する場合のフレッツ光ネクストのMTUは1500となっている
MTU値が違う場合は読み込みが遅くなったり、そもそも繋がらないこともあるので要注意
ログインして【設定】>【ネットワーク】>【インターフェース】から【PortC】を選択
設定か所は以下
【ネットワークゾーン】 WAN
【IPv4設定】 チェックを外す
【IPv6設定】 チェックを入れる
【IPの割り当て】 DHCP
【モード】 手動 ステートレス DHCPから他の設定を承認にチェック
IPoEの場合は回線認証のためIPv6アドレスは自動でNIC側に設定される
このアドレスを後で使うのでメモしておく
次にDNSの設定
自動取得でも問題はないが、IPv4側がGoogleのpublicDNSを見ているからせっかくなのでIPv6側もGoogleに向けるため手動で設定する
【DNS2】 2001:4860:4860::8888
【DNS2】 2001:4860:4860::8844
次にtransixまでのIPIPトンネルを設定する
同じ【ネットワーク】のタブから【IPIPトンネル】を選択
隠れている場合は右端の【・・・】をクリックすれば出てくる
設定項目は以下5項目
【トンネル名】 IPoE (わかりやすい任意の名前)
【トンネルの種類】 4in6
【ゾーン】 WAN
【ローカルエンドポイント】 WAN側のNICに振られたIPv6アドレス
【リモートエンドポイント】 2404:8e01::feed:100
リモートエンドポイントはtransix側へ接続するためのIPv6アドレスで以下が公開されている
NTT東日本エリアから接続する方
2404:8e00::feed:100
2404:8e00::feed:101
NTT西日本エリアから接続する方
2404:8e01::feed:100
2404:8e01::feed:101
次にInternetの通信をトンネルに向けるためスタティックルートを設定する
上のトンネル設定を保存する際にダイアログボックスが表示されるが、そこでデフォルトルートを入れようとするとエラーになるので一旦消して、改めてやる必要があった
【設定】>【ルーティング】の【スタティックルーティング】からIPv4のルーティングを追加する
設定項目は以下2か所
【宛先IP/ネットマスク】 0.0.0.0 /0 [0.0.0.0]
【インターフェース】 IPoE(プルダウンで作成したトンネルを選択)
とりあえず全てIPIPトンネルに投げてしまえばInternet通信は問題なくできる
他にスタティックで設定を入れている場合はディスタンスの値で調整すればいい
最後にFWの設定を行う
【ルール名】 LAN-Internet (わかりやすいもので任意に)
【送信元ゾーン】 LAN
【送信元ネットワークとデバイス】 任意
【宛先ゾーン】 WAN
【宛先ネットワーク】 任意
【HTTPのスキャン】 チェックを入れる
【侵入防御】 LAN TO WAN
【Webポリシー】 Default Policy
【NAT&ルーティング】 送信元アドレスの書き換え (マスカレード)にチェックを入れる
【送信用アドレスの使用】 MASQ(プルダウンで選択)
何故かLAN側をanyにしないとIPv6で通信が通らなかった
また、HTTPSの暗号化解除/スキャンを有効にしても同様に通信が通らないのでとりあえずHTTPのスキャンだけに留めることに
IPoEのIPv6通信はNAPTせず端末にアドレスが設定されるとかの記載をよく見るが、XG FirewallはLAN側にULAでIPv6を設定するためIPv6パススルーに対応していない
そのためNAPTが必須となるが、その分多少なりともセキュリティは強固になるのか
よくIPoEだと外からIPv6アドレスでアクセスできてしまうからポート閉塞などきちんと行う必要があると言われるが、NAPTしていれば明示的に開けない限り入れないので多分大丈夫
設定が完了したら以下サイトで接続確認を行う
IPv4、IPv6ともにInternet Multi Feedのtransixに接続できていることが確認できる
ICMPがNot testedになっているのはNAPTしている影響
回線を切り替えてから体感でもかなり安定した速度が出るようになった気がする
速度判定サイトはサイトによってまちまちだが上下共に100Mbps~400Mbpsくらいの値が出ていた
OCNのPPPoEは100Mbpsを超えることが稀だったのでこれで在宅での業務も安定して使えそうだ
ただ、DDNSでのOpenVPNが利用できなくなったのでそちらの対策は別途検討が必要になった
登録:
投稿 (Atom)