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

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

シリアルポートの設定

/etc/ttys を編集します。

ttyd0 "/usr/libexec/getty std1.9600" dialup on
ttyd1 "/usr/libexec/getty std2.38400" dialup on
ttyd2 "/usr/libexec/getty std3.57600" dialup on
ttyd3 "/usr/libexec/getty std4.115200" dialup on

上の例では敢えて全ての回線で回線速度(DTE)の異なるモデムを接続する例として名前(赤字の部分)を設定しました。
この名前は/etc/gettytab 内のエントリ名として利用されるものですから自由に指定できます。
行末に secure を付けるとそのポートでrootのログインを許すことになるので基本的には上の例のようにsecureを付けないようにします。

/etc/gettytab には /etc/ttys で設定した名前でエントリを作成します。
このファイルではポートの速度と接続時に呼び出すスクリプトファイルを指定します。

/etc/gettytab を編集します。

std1.9600|9600-baud:
:np:sp#9600:pp=/etc/ppp/ppp-sio0:
std2.38400|38400-baud:
:np:sp#38400:pp=/etc/ppp/ppp-sio1:
std3.57600|57600-baud:
:np:sp#57600:pp=/etc/ppp/ppp-sio2:
std4.115200|115200-baud:
:np:sp#115200:pp=/etc/ppp/ppp-sio3:

シリアルポートに高速モデムを接続する場合にはハードウエアフロー制御を行うようにします。これは /etc/rc.serial で設定します。

/etc/rc.serial より抜粋

# Initialize assorted 8250-16550...
# maybe    d a  0 1 2 3 4 5 6 7 ...
# mouse    d a      2
modem    d a    0 1 2 3
# terminal d a  0

次に /etc/ppp/ppp-sio* を作成します
赤字の部分は/etc/ppp/ppp.confのエントリ名になります。

/etc/ppp/ppp-sio1

#!/bin/sh
/usr/sbin/ppp -direct ppp-sio0

chmod 700 /etc/ppp/ppp-sio* で実行属性を付けます。


モデムの設定

RASサーバの場合はダイヤルアップ用とは少し違う設定を行う必要があります。
pppの発信側の方法について説明している記事を読んでその通りに設定すると間違える可能性があります。
このモデムの設定をきちんと行わないのが原因でRASサーバの設定に失敗している人が多いようですので注意して下さい。
コマンドラインからモデムと通信するには cu -l /dev/cuaa○ (○はsioポート番号)
通信を終了するのは ~. です。(sshなどでリモート接続の場合はそのセッション自体が切断される可能性があるので[~]の後に[Ctrl]+[D]です)

ATS0=1 着信があったらRing1回目でモデム側で自動着信させる (0は着信不許可)
ATQ1  リザルトコードを非表示 (モデムによっては数字が違う場合があります)
ATE0  ローカルエコーを非表示
AT&W 設定を保存

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

重要: これでモデムが何も表示しないように設定されました。
よって、この設定を行うとモデムに対してコマンドを入力しても入力した文字は画面に出ませんし入力したATコマンドに対してOKともERRORとも何も返しません。
モデムが正しく動作しているか確認するには AT&V と入力することでモデムの設定表示を行わせることで行います。(モデムによってはATコマンドが違う場合があります)