OPNsenseインストール

・インストール

今回は余っているノートにOPNsenseをインストールする。

インストールメディアはMacで作成のため、balenaEtcherを利用。
bz2ダウロードして作成する。

対象ノートはUSBメモリのブートを優先していなかったため、
起動時にF12などを押してUSBブートさせる。

ブートするとOPNsenseのライブ環境でのログインプロンプトがでるので、
お試しなら、
root / opnsenseでログインしてそのまま操作可能。
今回はインストールするので、
installer / opnsense
と入力する。

キーマップ:Japanese 106
UFS/ZFS:スペックに余裕があるのでZFS。
インストールディスク:USBメモリと間違えないようにする。

・NIC接続

> 8 > shell
もともとのNICと、USBNIC*2の3枚構成とするので、
dmesgs
でログを見ながらUSBNICを接続する。
uge1.x … at xxxという行しか表示されない場合NICとして認識されていない。
そのあとに複数行表示されていれば認識されている。

ifconfig | grep ue
ifconfig -l
usbconfig
などのコマンドでチェックする。NICのチップセットの相性がある。

・NIC割り当て(ドライバがあたって認識しただけではダメ)

> 1
> n (リンクアグリゲーションを今設定するかどうか)
> n (VLANを設定するかどうか) ※使えるインターフェースが一覧で表示される
> re0 (WAN側のNIC割り当て)
> ue0 (LAN側のNIC割り当て)
> 空白 (追加のインターフェースの割り当て)

・IPアドレス設定

> 2
> 1 (インターフェース選択)
> n (このインターフェースのIPv4をDHCPで自動取得するかどうか)
> xxx (IPv4アドレス)
> 24 (サブネット)
> n
Configure IPv6 address LAN interface via WAN tracking?
WAN側がISPからもらったIPv6プレフィックスを、LAN側に自動で振り分けるかどうか。
> n
Configure IPv6 address LAN interface via DHCP6?
IPv6のDHCPサーバーからアドレスをもらうかどうか。
> 空白 (IPv6アドレス)
> n (DHCPサーバ機能を有効にするか)
> n (WebGUIのプロトコルをhttpにするか)
> n (WegGUIの自己証明書を新しくするか)
> y (バインドやアクセス制限がリセットされ、このインターフェースから確実に入れる)

・WebGUI

アクセスできない場合、ファイアウォール無効にしてみる
> 8 > pfctl -d

Obsidian Execute Code Valutフォルダ rsyncコピー

 

構内電話システム(ひかり電話) メモ

・アナログ収容、IP収容
サービスとしてはどちらもIP電話サービスになる。
IP収容では、主装置、電話にIPアドレスが必要。
IPアドレスは、主装置は固定、電話はDHCPが一般的。
アナログ、IP収容は併用可能。

・IP収容の経路
電話 → 主装置 にSIP登録(主装置が内線xxは192.168.5.23と知る)
主装置 → HGW にSIP登録
HGW → NGN に登録(NGNがこの番号への着信はこのHGWと知る)
※HGWがない契約もある

・クラウド
クラウドPBXの場合、主装置(PBX)がクラウドになる。

・ライセンス
ライセンスは主装置に発生する。
アナログ収容はVoIPライセンス不要。

・コードレス
コードレス基地局(DECT)を主装置のポートにぶら下げる。
その他、IP-DECT、Wi-Fi SIP子機などある。

・主装置、PBX
ニュアンスとして小規模PBX=主装置と呼ぶ。

・QoS
IP収容は別VLANにするのが定石。
アナログ収容は必要性がない。
IP収容はスイッチのQoSが主役。
インターネットVoIPのときはルータのQoSが主役。

・電話機種類
収容と端末種は完全にイコールじゃないないけど大体一致
アナログ電話:RJ11*1
デジタル多機能電話:専用モジュラ*1
IP多機能電話:RJ45*2

・IP多機能電話
何もしないと2ポートのスイッチとして動作、
通常はVLANで音声とデータを分けPoEとして利用することが多い。

・他社電話サービス
CPE(ONU)までの違いで、構成は同じ。

・SIP機能
網終端機能(SIPクライアント)、呼制御機能(SIPサーバー)の2つが必要で、網終端機能は事業者と加入者側の境界をどこに置くかということ。呼制御はネットワーク内であればクラウドにも置ける。

RTX*2+UbuntuでテストPPPoEネットワーク環境構築

SSH

・インストール

sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable –now ssh
sudo systemctl status ssh

・IPアドレス確認

ip a

・接続(接続する側のPC)

ssh ユーザー@ipアドレス

・シャットダウン
sudo shutdown -h now

・テキストベース起動にする場合
sudo systemctl set-default multi-user.target

NIC/VLAN

・NetworkManager
デスクトップ版デフォルト
nmcli/nmtui(対話)で管理

・systemd-networkd
軽量デーモンベース

両者はNetplanで抽象化されている。
NetplanのYAMLで書く。

・どちらが有効か
systemctl is-active NetworkManager
systemctl is-active systemd-networkd

・NICの物理情報取得

ネットワークデバイス一覧
lshw -c network -short

IPアドレス一覧
ip -br addr

・VLAN設定(GUI)

nm-connection-editor
(システム>高度なネットワーク設定)
を起動。

VLANを設定する仮想LAN側をlab-trunkとしてIPv4/6を無効。
新規作成>VLANから作成し、以下の通り設定IPv4/6は無効。

・確認

nmcli -f NAME,DEVICE,AUTOCONNECT connection show | grep -E ‘enp0s31f6\.(12|13)’

・Netplan YAML確認方法

ls -la /etc/netplan
ここで読み取れること。
01-network-manager-all.yaml
があるので、NetworkManagerをrendererに使っている。
90-NM-*.yamlはNetworkManagerが自動生成したファイルなので
手動で編集しないほうがいい。

・nmcli

接続確認
nmcli connection show
nmcli connection show ‘有線接続 1’ | grep ipv4

IPフォワーディング

sudo sysctl -w net.ipv4.ip_forward=1
※このマシンが、自分宛てではないIPパケットを受け取ったときに、別のインターフェースへ転送するかどうかを決めるカーネルパラメータ

・永続化する場合
echo ‘net.ipv4.ip_forward=1’ | sudo tee /etc/sysctl.d/99-lab.conf

PPPoEサーバー化

・インストール
sudo apt update
sudo apt install -y pppoe ppp

・サーバーオプション
sudo vim /etc/ppp/pppoe-server-options

・認証設定
sudo vim /etc/ppp/chap-secrets

・手動起動
sudo pppoe-server -I enp0s31f6.13 -L 100.64.0.1 -R 203.0.113.2 -N 1 -C isp-a
sudo pppoe-server -I enp0s31f6.12 -L 100.64.0.1 -R 198.51.100.2 -N 1 -C isp-b

・PPPoEサーバー起動確認
pgrep -a pppoe-server

PPPoEサーバー永続化

sudo vim /etc/systemd/system/pppoe-server@.service

sudo mkdir -p /etc/pppoe-lab
sudo vim /etc/pppoe-lab/isp-a.conf

sudo vim /etc/pppoe-lab/isp-b.conf

sudo systemctl daemon-reload
sudo systemctl enable –now pppoe-server@isp-a.service
sudo systemctl enable –now pppoe-server@isp-b.service

RTX

PPPoEリアルタイム確認

sudo journalctl -f | grep -Ei ‘pppd|pppoe’
sudo tcpdump -ni enp0s31f6 -e
sudo tcpdump -ni enp0s31f6.13 -e pppoed

WAN側NICにNAT

ip -br link
lspci | grep -i realtek

・出口(Realtek)でマスカレード
sudo iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
sudo iptables -A FORWARD -i ppp+ -o enp2s0 -j ACCEPT
sudo iptables -A FORWARD -i enp2s0 -o ppp+ -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t mangle -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –clamp-mss-to-pmtu

・永続化
sudo apt install -y iptables-persistent
sudo netfilter-persistent save

・戻るルート
sudo ip route add 192.168.13.0/24 dev ppp1
sudo ip route add 192.168.12.0/24 dev ppp0

・永続化
sudo vim /etc/ppp/ip-up.d/lab-routes

sudo chmod +x /etc/ppp/ip-up.d/lab-routes

DNS

・Ubuntu

printf ‘ms-dns 8.8.8.8\nms-dns 1.1.1.1\n’ | sudo tee -a /etc/ppp/pppoe-server-options
sudo systemctl restart pppoe-server@isp-a pppoe-server@isp-b

・RTX
no dns server dhcp lan2
dns server pp 1

pp select 1
ppp ipcp msext on
pp select none

disconnect pp 1
connect pp 1
show status pp 1

RTX拠点間VPN(GUI)

ダッシュボード>かんたん設定>IPsec
・自分側と接続先の両方とも固定の … 持っている
・接続先のホスト名またはIPアドレス:相手側のIPアドレス
・認証鍵:abc (本番では複雑にする)
・認証アルゴリズム:HMAC-SHA
・暗号アルゴリズム:3DES-CBC

下にいくほど強い。選ぶときは暗号と認証を同じゾーンで揃えることが多い。
HMAC-SHA256ならAES(AES256)-CBC、HMAC-SHAなら3DES-CBC。
相手拠点に承認、暗号アルゴリズム両方合わせる。

暗号、承認アルゴリズム

・承認アルゴリズム
✕ HMAC-MD5
△ HMAC-SHA
◯ HMAC-SHA256

・暗号アルゴリズム
✕ DES-CBC
△ 3DES-CBC
◯ AES-CBC
◯ AES256-CBC

IKE、ESP、SA

IPsecの構成はIKE+ESP+SA

1.IKEがハンドシェイク(PSK認証)
IKE SA作成
IKE SAの中で、ESP SA作成
※PSK認証は事前共有キーを送信しないハッシュを照合
※事前共有キー=Pre-Shared Key

2.ESP SAを使い、ESPパケット生成
※ESPフォーマットのIPパケット
※暗号、認証アルゴリズムはここに効く

3.ESPパケットを転送(転送は実装)

※IKE、ESP、SAここまで

経路に関する設定>接続先のLAN側アドレス:192.168.12.0
ここはip route 192.168.12.0/24 gateway tunnel Nの設定に相当する。

拠点間VPNはGUIだけではエラーになってしまったのでコマンドで追加設定。
最終的なコンフィグ

 

UbuntuにDocker/RustDeskをインストール

・SSH有効化

sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable –now ssh

・接続

ssh xxx@192.168.xxx.xxx

・Dockerインストール

wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.14/rustdesk-server-linux-amd64.zip

unzip rustdesk-server-linux-amd64.zip

sudo mkdir -p /opt/rustdesk

sudo cp amd64/hbbs amd64/hbbr amd64/rustdesk-utils /opt/rustdesk/

sudo chmod +x /opt/rustdesk/hbbs /opt/rustdesk/hbbr

sudo mkdir -p /opt/rustdesk/data

sudo systemctl daemon-reload

sudo systemctl enable –now rustdesk-hbbr

sudo systemctl enable –now rustdesk-hbbs

cat /opt/rustdesk/data/id_ed25519.pub
控える。

・クライアントインストール

wget https://github.com/rustdesk/rustdesk/releases/download/1.4.7/rustdesk-1.4.7-x86_64.deb

sudo apt install -y ./rustdesk-1.4.7-x86_64.deb

・接続する側のクライアントの設定切替

複数接続先の場合、
/Users/xxx/Library/Preferences/com.carriez.RustDesk
RustDesk2.toml
をコピーして切り替える。

 

すでに資格情報を登録してあるホストに対して、バッチでhosts、資格情報に追加し、別ユーザーでアクセスする

 

Macからシリアル(USB-RJ45)でRTXに接続する方法

ターミナル

ls /dev/cu.*
screen /dev/cu.usbserial-xxx

RTXコンソール

ユーザー名、パスワードを入力
(コンソール起動時、表示されないことがある)

文字化けする場合
console character ascii

つづくを止める
console lines infinity

設定初期化
administrator
cold start

screen切断
ctrl-A-K

ターミナル

screen一覧
screen -ls

screen削除
screen -S xxx -X quit

screen復帰
screen -r

Rclone初期設定

Client ID、Client Secret取得

Google

https://console.cloud.google.com/
上部メニュー>プロジェクト作成>任意の名前>プロジェクトを選択する。
左メニュー>APIとサービス>ライブラリ>Google Drive API>有効にする
左メニュー>OAuth同意画面>作成
アプリ名、ユーザーサポートメールを入力、外部を選択して作成する
対象>Add users>Gmailを入力して保存する
左メニュー>APIとサービス>認証情報>認証情報を作成>OAuthクライアントID>デスクトップアプリを選択
左メニュー>APIとサービス>OAuth同意画面>対象>アプリを公開

・プロジェクトを削除する場合
上部メニュー>プロジェクトを選択する。
左メニュー>IAMと管理>設定>シャットダウン

Dropbox

https://www.dropbox.com/developers/apps
Create app > Scoped access > Full Dropbox > 任意の名前 > Create app
App key、App secretをメモする
Permissionsタブで、
files.metadata.read
files.metadata.write
files.content.read
files.content.write
にチェックし、Submit

Rclone準備

brew install rclone
rclone config

通常設定

n / New Remote
dropbox, gdrive / Enter name for new remote
drive / Google Drive / Option Storage

client_id, client_secret入力
1 / Option scope
空欄 / service_account_file
n / Edit advaned config
y / Use Web browser to automatically …
n / Configure this as a Shared Drive (Team Drive)?
y / Yes this is OK

※設定完了したら、
/Users/xxx/.config/rclone/rclone.conf
をバックアップしておく。

暗号化用設定

rclone config
n / New Remote
gcrypt / Enter name for new remote
crypt / Option Storage

gdrive:encrypted / Option remote
※gdriveのサブフォルダencryptedに暗号化データが保存
standard / Option filename_encryption
true / Option directory_name_encryption
y / Option password
パスワード入力
n / Option password2
n / Edit advanced config

Rcloneコマンド

・ファイル一覧
rclone ls gcrypt:backup

・サーバー側のファイル数確認
rclone size dropbox: –tpslimit 10 -v

・不要な設定を削除
rclone config
d
gdrive

・ローカルに保存する
rclone copy dropbox: /Volumes/xxx/Dropbox -P

・クラウドにアップロード
rclone sync /Volumes/xxx/Dropbox gcrypt:Dropbox -P –tpslimit 10
※Googleドライブのencryptedの中に作成される。

一覧を見る(暗号化されていない状態)
rclone lsf gcrypt:Dropbox

GUIファイラー
rclone rcd –rc-web-gui

 

別iPhoneへmineo(eSIM)切替/MNP(SoftBank→楽天モバイル)

SoftBank→楽天モバイル

・転送電話の確認
設定→アプリ→電話→自動電話転送。

・SIMロックの確認
設定→一般→情報→SIMロック。

・WiFiの有無
SoftBankが使えなくなった後、my楽天モバイルアプリからeSIM登録する場合。

楽天モバイル

キャンペーンページなどから楽天モバイルにアクセス。

Rakuten最強プラン→プランを選ぶをクリック。eSIMを選択→この内容で申し込みに進むをクリック→追加オプションは加入せずに次へをクリック。

スマホでかんたん本人確認を選択→次へ進むをクリック。

上記について確認しました。をチェックし次へ進むをクリック。

my楽天モバイルをインストール→ログイン、QRコードをカメラで読み込む。

・iPhone
本人確認をはじめる→日本→次へ→顔写真つきのマイナンバーカード→次へ→番

号入力→次へ→ICチップを読み取る→読み取り開始→次へ→顔写真撮影

・楽天モバイル

次へ→他社から電話番号そのままで乗り換え(MNP)→引き継ぎたい電話番号を入力→次へ。

お支払い方法→クレジットカードを選択→この内容で申し込む→この内容で申し込む。

上記内容を確認し、同意しましたにチェック→同意して申し込むをクリック。を複数回繰り返す。

電話番号の引き継ぎ(MNP)申請を行う→楽天IDでログイン。

※しばらく時間がかかる。

申し込み履歴→電話番号の引き継ぎ(NMP)申請をする→ソフトバンクを選ぶ→MySoftBankにログイン→暗証番号入力

※ソフトバンクでエラー。おそらく2回線契約していたため、もし登録してある住所の表記などが違っていてもエラーになるようなので注意。

※試しにMySoftBankでMNP予約番号が取得してみるとエラーになった。MySoftBank→契約・オプション管理→お客さま情報
左メニュー→MNP予約番号の照会・キャンセル

電話窓口*5533(9〜20時)にて発行してもらう。SMSで送られてくる。

申し込み履歴→電話番号の引き継ぎ(MNP)申請する→MNP予約番号を発行済みまたは上記以外の通信会社→MNP番号、有効期限を入力して登録するをクリック。

※しばらく時間がかかる

ページをリロード→MNP転入を開始するをクリック。

MNP転入に関する注意事項を読み理解しましたにチェック→MNP転入を開始するをクリック。

※しばらく時間がかかる

ページをリロード→eSIM開通用のQRコードを表示するをクリック。

iPhone

設定→モバイル通信→eSIMを追加→QRコードを使用→QRコードをスキャン→続ける。

今回は物理SIM→eSIMなので、端末からSIMを取り出す。

別iPhoneへmineo(eSIM)を移動

先に旧iPhoneからeSIMを削除してしまうとSMS本人確認ができなくなるため注意。

mineo

マイページ→SIMカード(eSIM)変更・再発行→SIMカード計上→eSIM→EID変更→変更あり→端末のEID入力(設定→一般→情報)→次へ進む
本人確認→認証方式→SMS認証。

マイページ→MNP転入切替/回線切替手続き/EID登録→回線切替

新iPhone

プッシュ通知がくる→設定→モバイル通信を設定→eSIMをアクティベート

旧iPhone

eSIM削除
設定→モバイル通信→SIM→削除

eSIMクイック転送

・iPhoneのeSIMクイック転送(mineoなどは対応していない)
両方のBluetoothをオン
新しいiPhone→設定→モバイル通信→eSIMを追加→その他のオプション→近くのiPhoneから転送→iPhoneから転送

iPhone初期化

Apple IDからサインアウト
設定→自分の名前→サインアウト

iPhoneを探すをオフ
※サインアウト時に自動で解除される

SIMカードを抜く

設定→一般→転送またはiPhoneをリセット→すべてのコンテンツと設定を消去

中小製造業の内製DX ── 判断に正解はない。確率だけが動かせる

前の記事の続きとして

前の記事で、判断に迷うとき「会社の生き方に合わせて選ぶ」という話を書いた。

中小製造業の内製DX ── 判断に迷うとき、何に合わせて決めるか

あの記事で言った「生き方」は、すでにある会社の個性のことだった。ただ、会社には「その生き方そのものを揺るがすかもしれない判断」もある。新しい事業領域に踏み込む。大きな設備投資に踏み切る。こういう決断は、「会社の生き方に合わせる」だけでは答えが出ない。

IT担当者がこういった判断を直接下すことは少ない。ただ、システム導入や業務改善を通じて経営に近い場所に立つことはある。そういう場面で、この種の判断にどう向き合うかの考え方を書いておきたい。

正解はあるか

小さな判断には根拠が出しやすい。コストの差が明確、機能が揃っているかどうかが確認できる。

会社の方向性に関わる大きな判断になると、様相が変わる。フレームワークを使って整理しても、自分の会社の文脈に当てはめたときに正しいかどうかは教えてくれない。同じ選択をして成功した会社の話は語り継がれるが、同じことをして失敗した会社は記録に残りにくい。

ビジネスに普遍的な正解はない、というのが自分の結論で、すべての大きな決断は不確実な未来への賭けになる。

正解がないなら何があるか

正解の代わりにあるのは、環境との整合性が取れているかどうかだけだと思っている。

たとえば、ある設備に投資して5年間は利益が出ていたのに、市場が変わって受注が減ったとする。この投資は「間違い」だったのか。投資した時点では環境に合っていた。合わなくなったのは、環境の方が動いたから。「正しかったのに間違いになった」のではなく、整合性が崩れた——そう捉える方が実態に近い。

ただし、この見方も万能ではない。変化して生き残った企業を「環境に合っていた」と言い、何百年も変わらない老舗も「環境に合っていた」と言える。何でも後付けで説明できてしまう。生き残ることに普遍的な法則はなく、あるのは個別の文脈だけになる。

では何ができるか

普遍的な法則がないとなると、何をやっても同じなのかという話になる。それは違う。

将来は、完全なコントロールでも完全なランダムでもない。時間が短い、範囲が狭い、自分に近いほどコントロールできる。遠い将来・広い範囲になるほど、確率的になる。製造業で言えば、今月の納期を守ることは高い確率でコントロールできるが、来年の受注がどこから来るかは誰にも分からない。

コントロールできる近い部分の積み上げが、遠い部分の確率をわずかに動かす。ただし、確率を上げる方法は文脈次第で変わるから、普遍的には言えない。言えるのは 「確率を確実に下げる行動」 になる。

  • 環境の変化を見ようとしない
  • 過去の成功パターンに固執する
  • フィードバックを遮断する
  • 一つの賭けに全リソースを集中する
  • 回復できないレベルの損失を出す

共通しているのは、現実を見る回路が内部から崩れていくことになる。逆に言えば、確率を下げない方法は「現実を見続けられる状態を保つこと」に集約される。

判断する立場として

前の記事では「IT担当者は会社の生き方を読み取り、それに合うITを選ぶ」と書いた。それは変わらない。

ただ、「生き方」に影響を与えるかもしれない大きな判断に関わる場面があるなら、「正解があるはず」という前提で臨むより、「これは賭けで、修正できる」というスタンスで臨む方が、決めた後の動きが変わると思っている。

経営学もビジネス書も、道具として使う分には価値がある。ただ、「答え」として使った瞬間に現実を見る回路を止める力になる。フレームワークは判断を整理する道具だが、判断の代わりにはならない。


このシリーズの他の記事:

シリーズ記事一覧・著者への相談はこちら →