mgettyを使用してリモートアクセスサーバを構築する

※ mgettyではなくgettyを使用する場合はgettyを使用してrasサーバを構築する

mgettyの入手とコンパイル・インストールについてはとても簡単なportsで導入する方法で説明します。

# cd /usr/ports/comms/mgetty+sendfax
# make install

以上です。(本当に簡単)

portsでの導入の場合、インストール後に設定について幾つか(かなり沢山)質問されます。
これには「適切に入力して下さい」と書きたいところですが、モデム周りの設定が解からなくて途方に暮れるという人が多いので説明書きます。
といいつつまだ書いていません

殆どの質問にはリターンキーを押すだけでいいのですが、次の質問だけは適切に答える必要があるでしょう。

list of device cuaa0 cuaa1 cuaa2 cuaa3 など必要な回線数分
speed ポート毎にsioポート-モデム間の速度(DTE速度)を指定

これは/usr/local/lib/mgetty+sendfax/mgetty.confの設定として書き込まれます。

/usr/local/etc/mgetty+sendfax/login.configの変更

/AutoPPP/の行のコメントを外します。

/AutoPPP/ - - /etc/ppp/mgetty-ppp

/etc/ppp/mgetty-pppの作成

#!/bin/sh
TTY=`tty`
/usr/sbin/ppp -direct $LINE

chmod 700 /etc/ppp/mgetty-ppp で実行属性を付けます(所有者はroot)。

ppp.confの設定

/freebsd/ras/ppp-conf のppp.confのエントリ名の行をそれぞれ
ppp-sio0:をcuaa0:、ppp-sio1:をcuaa1:・・・のように変えます。

モデムの設定

mgettyとgettyではモデムの管理方法が違うのでモデムの設定も異なります。
よってgettyでRASサーバを構築する方法について説明している記事を読んで設定すると間違えることになります。
このモデムの設定が間違っているのが原因でRASサーバが動作しないという人が多い様ですので注意して下さい。

モデムと通信するには cu -l /dev/cuaa○ (○は回線番号)
通信を終了するのは ~. です。(sshなどでリモート接続の場合はそのセッション自体が切断される可能性があるので[~]の後に[Ctrl]+[D]です)

ATS0=0 着信があったらmgettyが着信処理するのでモデムでの自動着信はしません

ATQ0  リザルトコードを表示 (モデムによっては数字が違う場合があります)
ATE0  ローカルエコーを非表示(これはgettyでも同じ)
AT&W 設定を保存

まとめて設定してその設定を保存するには ATS0=0Q0E0&W

AT&V でモデムの全設定表示を行わせることでできます。(モデムによってはATコマンドが違う場合があります)

FAXモードでの誤動作

FAXモデムを使用する場合、着信時にFAXモードで受けてしまう設定になっている場合があります。
もちろん、FAXモードとデータモード を正常に切り替えられるモデムでは問題ないのですが(mgettyでFAX機能を利用するならそうでなくてはならない)、一部のモデムではFAXモードか らデータモードに切り替わらない場合があります。これではRASとして機能しません。

この場合はmgetty-configを編集し、問題のモデムが接続されているポートのmodem-type行をautoからdataに変更します。
また、モデムに対してAT+FAA=0+FCR=0&Wを設定保存します。
殆どのFAXモデムのマニュアルには何故かFAX制御系のATコマンドは記述されていません。
上のコマンドはマニュアルには無いと思いますが、殆どのFAXモデムではこのコマンドは有効です。
FaxClass2のATコマンドについてはFax Class2コマンドもご覧下さい。