SoftEther起動時のIPアドレス設定について

ちょっと必要があって自社のサーバーとVPSをVPN接続しようと思い、
簡単なのでSoftEtherを使うことにしました。

VPS側はNICが2本ありOSはUbuntuです。

SoftEtherのインストール方法はちまたに溢れているので割愛しますが、
インストールし起動してもNICにはIPが割り当てられません。

なので、固定で使いたい場合は”ip add”コマンドとかで追加してやる必要がありますが、
サーバーがなんかの理由で再起動したりしたときはまた手動で追加せねばいけません。
それはめんどくさすぎるのでスタートスクリプトをシェルで書いてサービス実行時に
シェルを実行させたら良い!っていう記事がいくつか見つかります。

でも、シェルすら作るのめんどいしブリッジタップの名前も変えねぇしな・・・
っていうズボラな筆者はスタートスクリプト側に書いちゃいました。

よかったらご参考にどうぞ

[Unit]
Description=SoftEther VPN Server
After=network.target auditd.service

[Service]
Type=forking
TasksMax=16777216
EnvironmentFile=-/etc/defaults/softether-vpnserver
ExecStart=/usr/libexec/softether/vpnserver/vpnserver start
ExecStartPost=/bin/sleep 3
ExecStartPost=/sbin/ip addr add 192.168.XXX.XXX/24 dev tap_vpn
ExecStartPost=/sbin/ip link set mtu 1280 dev tap_vpn
ExecStartPost=/sbin/ip route add 192.168.XXX.0/24 via 192.168.0.1 dev tap_vpn
ExecStartPost=/sbin/ip route add 192.168.XXX.0/24 via 192.168.0.1 dev tap_vpn
ExecStop=/usr/libexec/softether/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure

# Hardening
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=strict
RuntimeDirectory=softether
StateDirectory=softether
LogsDirectory=softether
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYSLOG CAP_SETUID

[Install]
WantedBy=multi-user.target

あとは仕上げに”systemctl daemon-reload”を実行してあげてください。

これでIP固定とMTUの値、Static routeが設定できちゃいます。
ほんとはStop時にIPを削除すべきだとか言われますが、
SfotEtherの仕様でStopするとブリッジタップも消えるので消さなくてもいいじゃんっていう
考え方なので好ましいか?と言われるとつっこみもあるかと思いますが、
動作には問題ないのでご家庭や社内のちょっとした環境では十分じゃないでしょうか。

当社ではVPN環境の構築も承っております。
お気軽にお問い合わせください!

FreePBXのFirewallで自分がロックアウトされる

FreePBXを初期設定中に結構な頻度で自分自身がBANされてしまうことがあります。
こうなるとWEBコンソールどころかSSHすらできないので詰みます。
その際はコンソール接続すればサーバーにアクセスできるのでFirewallを無効にすれば良いのですが、
信頼済みのネットワークにする方法ないのかな?と探したところ簡単にできるようでした。

fwconsole firewall trust x.x.x.x

X.X.X.XはIPアドレス

ぜひお試しください。

FreePBX 17のお手軽インストール

久々に技術的なことでもないですがFreePBXのインストールが
ものすごく楽になるスクリプトができていたのでご紹介しておきます。
ただし、debian12.X限定です。

なので、弊社でよく使うUbuntuやAlmaLinuxはいつも通り手作業です。

ちょうど社内のVoIPサーバを更新しようと思っていたので、
Conoha VPSに構築したdebian12でやってみました。

まずは、普通にVPSコンソールでdebina12をインストールし起動させます。

次に最新の状態に整えておきましょう。

apt -y update
apt -y upgrade

他にOSの初期設定としてお好みでホストネームの設定やTimezoneを変更します。
そして再起動を終えたら公式のGitからインストールスクリプトを取得します。

cd /tmp
wget https://raw.githubusercontent.com/FreePBX/sng_freepbx_debian_install/master/sng_freepbx_debian_install.sh
chmod +x sng_freepbx_debian_install.sh
./sng_freepbx_debian_install.sh

こんな感じで始まるので気長に待ちましょう。割と時間かかります。
待ってる間に必要なポートを開けたりDNS登録などしてても良いかもしれません。

root@host1:/tmp# ./sng_freepbx_debian_install.sh
2025-02-19 20:52:36 - Performing version check...
Perfect! You're already running the latest version.
2025-02-19 20:52:36 - Starting installation.
.
.
.

最終的に以下の文字が出たら終わりです。
(MACアドレスとIPアドレス部はマスクしてます)

NOTICE! You have 3 notifications! Please log into the UI to see them!
Current Network Configuration
+-----------+-------------------+------------------------------------+
| Interface | MAC Address | IP Addresses |
+-----------+-------------------+------------------------------------+
| eth0 | FA:00:00:00:00:00 | XXX.XXX.XXX.XXX |
| | | 2400                |
+-----------+-------------------+------------------------------------+

Please note most tasks should be handled through the GUI.
You can access the GUI by typing one of the above IPs in to your web browser.
For support please visit:
http://www.freepbx.org/support-and-professional-services

+---------------------------------------------------------------------+
| This machine is not activated. Activating your system ensures that |
| your machine is eligible for support and that it has the ability to |
| install Commercial Modules. |
| |
| If you already have a Deployment ID for this machine, simply run: |
| |
| fwconsole sysadmin activate deploymentid |
| |
| to assign that Deployment ID to this system. If this system is new, |
| please go to Activation (which is on the System Admin page in the |
| Web UI) and create a new Deployment there. |
+---------------------------------------------------------------------+

ただ、このままだとapacheのデフォルトページが残っていたりして気持ち悪いので消しておきましょう。
そしてOSごと再起動をおすすめします。

root@host1:~# rm /var/www/html/index.html
root@host1X:~# shutdown -r now

これでブラウザから設定したドメインかIPアドレスにアクセスすればFreePBXの画面がでるかと思いますが、
結構ダッシュボード上にエラーや警告が出るのでスクリプトで綺麗に完璧とはいかないようですが、
個別にそこだけ修正、変更すればよいのでまあまあ楽ですね!

ぜひお試しになってみてください!

当社ではFreePBXの構築サービスなんかもやっておりますのでお気軽にご相談ください。

腰袋

本日はとある六本木にあるオフィスのレイアウト変更現場です。
オフィスのレイアウト変更に伴ってキャビネットとフリーアドレスのデスクを分解、再組み立てして欲しいとのことで作業にきました。

なので腰袋はいつものITエンジニア仕様とは異なり家具類の組み立てに特化してたバージョンです。

これ腰袋が薄めなので狭いところでも通りやすくビットが複数本収納して取り出しやすいので気に入ってます。

こんな感じで私は作業に応じた腰袋を用意する派です。

独自ドメインのメールアドレス

独自ドメインってご存知ですか?
ドメインというは当社だと”quick-solutions.jp”や”quick-solutions.co.jp”、
よく見かけるものとして”gmail.com”や”docomo.ne.jp”があります。
これらがドメインと呼ばれるもので事業者毎にオリジナルのものとなっています。
事業者毎にオリジナルなので独自ドメインと呼んでます。

その独自ドメインを共有しているが一般的なメールサービスです。
共有している例としては身近なところだと、
XXXXXX@gmail.com
XXXXXX@docomo.ne.jp
のようにXXXXXXのところを好きな文字(早い者勝ち)で@の後は共通になっているような
メールサービスです。

中小の企業様や個人事業主の方で業務でメールを利用されているところも、
ほぼ100%になったのかなといった印象があります。
ただ、メールを利用するにあたり必要なメールアドレスはどうされましたか?
と聞いてみると、

・事務所で契約していたプロバイダーのメールアドレス
・自宅で契約したプロバイダーのメールアドレス
・Gmailなどフリーのメールサービスのメールアドレスを仕事用に作成
・個人利用のGmailなどフリーのメールアドレスをそのまま利用

この4点が結構多いことがあります。
これは冒頭の話のドメインを共有しているメールサービスを使っているということです。
最初のうちは特に問題ないですがこの利用はあまりおすすめできません。
これらのメリットは追加コストがかからずすぐ使えるということで気軽に始められるのですが、
以下のようなデメリットが存在します。

1、プロバイダーを解約したり変更するとアドレスが使えなくなる
2、フリーメールの会社が提供を終了するとアドレスが使えなくなる
3、フリーメールのためサポートが受けられない、障害時の復旧もどうなるのかわからない
4、個人メールの迷惑メールに取引先のメールが埋もれる可能性がある
5、フリーメールのパスワード等を忘れると2度と使えない状態になる可能性がある
6、アドレスを変更した後に第三者に旧アドレスを取得される可能性がある
7、社員数分のアドレスが用意できない、1つしかない

などなどがありますが致命的なのは1、2、5、6あたりでしょうか。
特に1はコスト削減でプロバイダーを変更したくてもアドレスが変わってしまうことになりますし、
5はアカウントロックが発生した際にフリーメールの提供事業者のサポートが丁寧とはいえないため、
アカウントロックが解除できずアドレスが突然使えなくなるリスクがあります。
6についても第三者が同じアドレスを取得できるためなりすましの危険性があります。

そのため、当社では独自ドメインの活用をおすすめしております。
独自ドメインの取得、維持には若干のコストがかかりますが昔のように
初期費用で○○万円、さらに毎月1万や2万もかかるとかでなく、
当社に代行依頼しても初期費用は5千円〜1万円前後、毎月も500円〜3000円程度だったりします。
しかもアドレス数も1つや5つではなく100アドレスとかでも作成できたりします。

そのため、貴社も独自ドメイン(@貴社オリジナル)を導入して利便性と信頼性、広告性を
アップしてみてはいかがでしょうか?

難しいことが多そうだな?と思われるかと思いますが、
大半のことは当社で全て代行できますのでお客様が一番悩まれるのは、
技術的なことではなくドメイン名(@XXXXXX.comとか)を考えるのに苦労されるようです(笑)
ドメイン名も早い持ちがちで世界で1つしか存在しないものなので使いたいものが
すでに使われていたり長いと覚えにくいとか色々あります。

まだ独自ドメインをお使いになっていない場合はドメイン名について考えてみてはいかがでしょうか。

*注意
 ドメイン名は国際的な機関で国や地域毎に管理しているため重複は許されません。
 ドメイン名は日本語も利用可能ですが現状はアルファベットが多いです。
 本コラムの内容は一般的な内容で記載しており特定の事業者のサービスについて言及したものではございません。
 コラム上に出てくるドメインは参考例として掲示しておりサービスの優劣について述べたものではございません。

オフィスのお困りごと解決します

オフィスのフロアやレイアウト変更に伴ってキャビネットの位置を
ずらしたいのに壁に固定されている、机を移動させたいが4席ぐらい
つながっているので移動させれない!
倉庫に片付けるので解体・分解だけしてほしい。

ルーターを買い替えたのに各席のLANケーブルが古いので交換したい。
LANケーブルの爪が折れてすぐ抜けちゃう。

プリンターや複合機を買ったものの設定がわからない!

大規模な配線でもないしな
机だけだしなとかそんな
オフィスとはいえ家庭用のルーターの設定なんだけど

そんな小規模なちょっとしたお悩みがあればお気軽にご相談ください。
必要な機材・工具を持ってご訪問や遠隔サポートいたします!

2024年9月2日 | カテゴリー : サービス | 投稿者 : admin

フレア加工

たまにはIT系を離れた話題を書いてみたいと思います。

一般的にエアコンを取り付ける際はわれわれのような設置工事をやっているところに
頼まれるかと思います。
直接は頼まなくても電気屋さんやネット通販の工事付きを選ばれると思います。
中にはDIYで自分で取り付けられる方もいるのではないでしょうか。

どちらの場合でも取り付け時には配管(室外機と室内機をつないでるやつ)をつなぐには、
配管の先端をフレアと呼ばれるちょっとした加工をしてあげる必要があります。
理由は簡単でガスが流れる配管ですのでスパッと切っただけの断面同士だと密着せず
ガス漏れしちゃうので漏れないように形を変えてあげる作業です。

こんな感じですね。
フレアの受け側はエアコン側でもう加工されているので我々は現場でフレアナット側の
ラッパみたいな部分をつくる必要があります。

そのためにフレア加工ツールというものを所持しています。
ところがこのツール、安いものでも2万円近くします!
なのでエアコン1台つけるために買うとそれだけで工賃払った方がいい結果になります・・・。

しかし、ホームセンターには便利なものが売っておりましてフレア加工済みの配管が買えます!
今回は中国製の配管が実用に耐えられるのか試してみたくてホームセンターで配管を買ってみました。
普段は20m巻きの国内メーカーものしか買わないのですが今回は実験というか研究目的で余っても
仕方ないので4mのフレア加工済みを買ってみました。

ちなみに購入したのは帰り道にあったカインズで4980円でした(3mだと3980円)
20mだと13500円だったかな?
私が普段買っている国内メーカーの日本製よりちょっと安かったです。

ハイリャン・ジャパン株式会社製でした。

触った感じはまぁ悪くないかな?
断熱も気持ち薄い気がしますがしっかりしてそうなので水漏れとかはしなさそうです。
曲げた感覚はちょっと国内メーカーより固めなのかな??
ただ、このあたりは製造から時間が経って少し硬いとかもありそう。
あと銅の色があまりよくないので時間の経過なのかな

ただ、致命的にダメだなと思ったのが1つありました。

*切った長さがちょっと違うのでフレアサイズ異なって見えますが写真の都合です

左側がメーカーにて作成済みのフレア
右側は私がこの配管を切ってフレアツールで作成したものです。

わかります?
これちゃんとメーカー出荷時にフレアにカバーまでついていたのですが、
フレア面に割と大きめの傷がついちゃってます!
これ、このままつけると一定時間経つとガス抜けしてしまう典型的な施工不良になるやつです。
ナイログ塗ってりゃこれぐらいなんとかなると言えばなるのかもですがナイログも万能ではないし、
配管動かすと隙間が広がってナイログでも防げないかもしれません。

そのため、市販品で工場でフレア加工済みだから安心!
って思わずに断面をしっかり見て施工した方がよいですね。
ただ、因幡とか関東のやつでこんな加工品質のは見たことはないので
このあたりが輸入ものなのかなって感じですね。

配管としてはまぁそんなに悪くなさそうなので施工にも使えると思いますが、
当社としてはお客様に安心して頂くために引き続き国産品を利用します。

なお、余った配管はスタッフが楽しくフレア加工の練習や曲げの練習に利用しました。

FreePBX 17を試験してみた

久々のエンジニアBlog更新です。
当社ではFreePBXを利用した小規模オフィス向け内線電話を構築しております。
基本はFreePBX 16 + Ubuntu 22.04 LTSといった安定性とメンテナンス性を
重視した構成でご提案していますが社内電話ぐらいは遊びたいということで、
社内のFreePBXを最新のFreePBX 17とAsterisk 20でリプレイスしてみました。

なお、FreePBX 17は公式の説明にもございますが正式リリースではありません。
そのため、重要な電話サービスで導入することはおすすめできません。
(当社はメイン電話回線でやっちゃいましたが・・・)

結果としては今までとほぼ使い勝手は変わりませんってか違いはわからないです。
ただ、インストール時の構成はガラリと変わってます。
まず、PHP8.2に対応したことが一番大きいです。
今までのFreePBXではPHPが5.6とかであったのでセキュリティリスク的にも
問題がありましたがそこが改善されました。
そしてAsterisk 20のサポートです。
DBは今までのものでも利用可能ですが公式のWikiではMariaDB10.11を利用していました。
当社でもそれに沿ってMariaDB 10.11でインストールしています。

公式のインストールガイド?
https://sangomakb.atlassian.net/wiki/spaces/FP/pages/10682545/How+to+Install+FreePBX+17+on+Debian+12+with+Asterisk+20

インストール手順は上記ページでほぼ網羅されているので当Blogでは省略します。

ここではFreePBX 17で気になった点をご紹介したいと思います。

Trunkの設定

見た目は全く同じですがこの「Context」が曲者です。
弊社ではいくつかIP電話サービスを利用しており、ひかり電話も収容しています。
そのため、着信先を把握するためにContextを利用しています。

具体的には以前のBlogにも記載しましたが、着信時のSIPパケットを利用して着信した電話番号や
契約情報をInboundのDIDにセットして着信番号毎にRingGroupやアナウンスを設定しています。
そのため、いつも通りContextを設定すると着信しない!!!
しかもAsteriskがエラーで埋め尽くされたり謎の動きを。。。

どうやらこのContextにいれた文字はConfigに反映されないようです。
ためしに「from-AAAAAAAAA」としましたがgrepで何もヒットしません。。。

じゃ、contextじゃなくて何で設定されてるんだ??ということで調べました。
ファイルとしては、extensions_additional.confで定義されています。
[from-trunk-pjsip-XXXXX] ←XXXXXの部分はTrunkの設定名になってました。

ただ、これって実はFreePBX 16の頃からだったのかな??記憶がないし検証は
面倒なのでやめましたが新規にFreePBX16を導入する際に確認してみたいと思います。

なので、「extensions_custom.conf」に設定する際は上記の名前で設定してみてください。
当社ではそれで期待通り動作しています。

——————————————————————————————————————————–
オフィスの固定電話を従業員のスマホに着信させませんか?
また社員の私用スマホからの通話ではなく私用スマホを利用して会社の電話から発信させませんか?
これらのことが高価なPBXを購入したり特別なサービスを契約することなく安価に利用可能です。
FreePBXを活用したオフィスの固定電話見直しのご相談を受け付けております。
ご興味ございましたら以下のフォームからお気軽にお問い合わせください!
https://www.quick-solutions.jp/contact/

Asteriskでひかり電話と050利用時に着信先を区別したい

久々にAsteriskの設定を変える機会があったのでメモを残したいと思います。
弊社では外出が多いので社内電話システムをクラウドPBXにしており、
ひかり電話の03番号や050の受付回線に着信するとクラウドPBX経由で、
社内に設置のGRANDSTREAMの固定電話数台と社員のスマホに着信する
仕組みを採用しております。

クラウドPBXといっても零細企業の弊社では有料サービスを
借りる程ではないためVPS上にFreePBXをインストールし、
VPNで社内と接続することでオレオレクラウドPBXを運用してます。

で、今回の話題の鳴り分なのですが今までは業務上としては、
03宛に着信しても050に着信しても両方対応できていたのですが、
業務繁忙のため、番号毎に担当を設けることになりました。
そうすると問題になるのが通常のひかり電話だとHGWが着信番号を
通知してこないのでAsterisk側でそのままでは入電経路がわからない!

そこでちょっとAsteriskのConfigを追加してあげることで、
050宛に着信したのか、03宛に着信したのか区別することが可能になります。
あとはInboud roureでそれぞれ目的の内線やRingに向ければ解決です。

弊社はAsterisk 20でやってますが19とかでも同じだと思います。

1、ひかり電話のTrunkの設定でContextを設定する。
弊社では[from-NTThikari]と付けましたがなんでも構いません。

2、”extensions_custom.conf”に以下のように設定する
[from-NTThikari] ←ここは”1”で設定したContextと同じになるようにすること!
exten => _.,1,Goto(from-pstn,${CUT(CUT(PJSIP_HEADER(read,To),@,1),:,2)},1)

3、Inbound RoutesのDIDにそのまま03XXXXXXXXのようにご自身の番号をセット

これで03宛に着信がくるとHGWから送られてくるSIP HeaderのTOにセットされている
電話番号を利用して鳴り分に利用することが可能です。

具体的にどこ参照してんのか?ということで弊社で取ったTcpdumpを
参考までに掲載しておきます。

——–
02:34:48.018975 tap_voip Out IP sipedemo.local.sip > 192.168.X.X.sip: SIP: SIP/2.0 200 OK
E`.y”.@.@…… ………e..SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.X.X:5060;rport=5060;received=192.168.X.X;branch=z9hG4bK291358527
Call-ID: 468619045@192.168.X.X
From: <sip:anonymous@anonymous.invalid>;tag=368508610
To: “03XXXXXXXX” <sip:03XXXXXXXX@192.168.X.X>;tag=9e43156e-5043-4f0d-80a0-8407da769d25
CSeq: 2 BYE
Server: FPBX-16.0.40.7(20.4.0)
Content-Length: 0
——–

なお、参考までに以下のようなHeaderの050番号の場合は、
”exten => _.,1,Goto(from-pstn,${CUT(CUT(PJSIP_HEADER(read,To),@,2))},1)”とすることで
電話番号ではないですがアカウント名?的なユニークな情報をToとして取得することができるので、
電話番号ではないですがDIDにセットすることが可能です。

03:02:24.095581 eth0 In IP XXXXXXX > sip.domain.tld.sip: SIP: BYE sip:XXX.XXX.XXX.X:5060 SIP/2.0
E…Z…4.ENw….,……….BYE sip:XXX.XXX.XXX.X:5060 SIP/2.0
Via: SIP/2.0/UDP XXX.XXX.XXX.X:5060;branch=z9hG4bK69eb980a;rport
Max-Forwards: 70
From: “08012345678” <sip:08012345678@XXX.XXX.XXX.X:5060>;tag=as38f9f65c
To: <sip:99991230001@XXX.XXX.XXX.X:506>;tag=5bb93ac5-caa4-472f-834f-92e0349ca7fc

→”99991230001”が取り出せますね!

外出の多い中小企業の皆様や個人事業主の皆様
超安価なVPSベースのクラウドPBX利用してみませんか?
リモートワーク等で固定電話に出られない方にもおすすめです。
弊社ではメールベースでしたら無料でご相談をお受けしております。
構築もオープンソースを積極的に活用するため非常に低額で
ご利用頂けるかと思いますのでご検討ください!

snap install coreでエラーが出るとき

たまにはエンジニアとしての記事を。
仕事がら毎日Linuxサーバを構築したり、設定を変えたりしているのでその時に起きた問題を
メモがてら更新したいと思います。

記念すべき1回目はマイナーな問題です。

Let’s Encryptを設定するために、最近推奨されている”snap”をインストールして、
coreをインストールするときにしばしばこんなエラーが出ます。

# snap install core
error: too early for operation, device not yet seeded or device model not acknowledged

これはタイミング的にコピペ作業とかしていると発生しますが、
回避方法はとても簡単で少し(1分ぐらい)待ってから再度実行すると解決します。

少し待ってから再実行すると以下のように実行されます。

# snap install core
2021-10-02T00:33:52+09:00 INFO Waiting for automatic snapd restart…
Warning: /var/lib/snapd/snap/bin was not found in your $PATH. If you’ve not
restarted your session since you installed snapd, try doing that.
Please see https://forum.snapcraft.io/t/9469 for more details.

まだWarningが出てるんじゃないか?と思われるかもしれませんが、
これは単にsnapへのPATHが設定されていないことを警告しているだけなので、
このままでも特に問題はありません。
気になる方は.bashrcなどに指定されたPATHを設定してあげればよいかと思います。