mgetty+sendfax と pppd で ppp サーバを構築
(RedHat 7.3)
1998-08-?? に (Slackware で) 一度構築しましたが、
文書化してなかったのと、環境が変わったので書きました
2003-06-09 作成 福島
2003-08-12 更新 福島
mgetty のインストール・設定
$ tar xzf mgetty1.1.30-Dec16.tar.gz
$ cd mgetty-1.1.30
$ cp policy.h-dist policy.h
$ vi policy.h
#define DEVICE_GROUP "uucp" モデムを操作するグループ
#define DEFAULT_PORTSPEED 38400 モデムとの通信速度 (115200 等)
#define FAX_STATION_ID "0120-110-110" 自分の FAX-ID (電話番号)
#define FAX_DIAL_PREFIX "ATDT" ダイヤル時の AT コマンド (ここではトーンを指定)
#define FAX_MODEM_TTYS "ttyS2" モデムのポート (乱暴だが、kermit で at コマンドを打てば自分が繋いだポートがわかる
|
※この設定は
/usr/local/etc/mgetty+sendfax/mgetty.config
/usr/local/etc/mgetty+sendfax/sendfax.config
に反映されます
$ vi logfile.c
/*extern char *sys_errlist[];*/ /* linux is comment out */ Linux では二重定義エラーを避けるためにコメントアウト
|
$ vi Makefile
CFLAGS=-O2 -Wall -pipe -DAUTO_PPP PPP を有効にする
|
$ make
$ su
# useradd fax PPP なので fax は使わないが、うるさいので作成してしまう
# make install
# vi /etc/inittab
mg1:35:respawn:/usr/local/sbin/mgetty -a ttyS2 -n 1
|
※ mg1 は他と重ならない任意の文字列
※ここでは、3 (マルチユーザモード) と 5 (X window モード) で有効にしている
X window は通常マルチユーザモードで動作する
※ -n 1 としているのは "RING" 1 回目でオフフックするという意味 (ベルが 1 回鳴る)
-n 0 は出来ない (RING が出ない状態で受話器を上げることは出来ない)
# init q kill -HUP 1 でも可
この時点で、ダイヤルアップは出来る。(PPP は使えない)
PPPd の設定
# vi /usr/local/etc/mgetty+sendfax/login.config 600
/AutoPPP/ - ppp1 /usr/sbin/pppd auth -chap +pap login
|
# vi /etc/sysconfig/network
# echo 1 > /proc/sys/net/ipv4/ip_forward
# vi /etc/rc.d/rc.local
echo 1 > /proc/sys/net/ipv4/ip_forward
|
# cat /etc/pam.d/ppp
#%PAM-1.0
auth required pam_nologin.so
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
|
# vi /etc/ppp/options 644 pppd のデフォルトオプション (下記の options.ttySN で個別設定が可能)
asyncmap 0
crtscts
lock
modem
ms-dns 192.168.1.1 DNS サーバとして 192.168.1.1 を指定
netmask 255.255.255.0
proxyarp
|
# vi /etc/ppp/options.ttyS2 644 ttyS2 で接続しに来たら 192.168.1.5 を割り当てる
192.168.1.4:192.168.1.5 serv:ppp1 でも可 (/etc/hosts に serv と ppp1 の定義がある場合)
|
# vi /etc/ppp/pap-secrets ユーザの認証には /etc/passwd を使用し、認証後は 192.168.1.5 を割り当てる
# Secrets for authentication using PAP
# client server secret IP addresses
#* * "" 192.168.1.5
* * "" *
|
# vi /etc/ppp/auth-up 755 ppp 開始時にログを残す
#!/bin/sh
# $1: Interface
# $2: Peer name
# $3: user
# $4: tty
# $5: speed
echo "ppp auth-up [$PPID]: ["`/bin/date '+%Y-%m-%d %X'`"] $1 $4 $2 $3 $5 " >> /var/log/pppauth.log
|
# vi /etc/ppp/auth-down 755 ppp 終了時にログを残す
#!/bin/sh
# $1: Interface
# $2: Peer name
# $3: user
# $4: tty
# $5: speed
echo "ppp auth-down [$PPID]: ["`/bin/date '+%Y-%m-%d %X'`"] $1 $4 $2 $3 $5 " >> /var/log/pppauth.log
|
これで ppp も動作する
・備考1
/var/log/messages に
〜 modprobe: Can't locate module ppp-compress-21
のエラーが出るが気にしない。
vi /etc/modules.conf
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
depmod -a
|
をすると良いらしいが、このままでも動作する。
・備考2
モデムカードは、必ず外付けか ISA バスのものを使用すること。
PCI バスのモデムは、ほとんどの場合 AT コマンドが使えない。
(そのためのコントローラが実装されていない)
PCI バスのモデムで AT コマンドが使えても、それは Windows でのことなので当てになりません。
(CPU 速度に関係するモデムはソフトモデムを使っているので、Linux では使えません)
Linmodem を参照
× AIWA PV-PC5610 PV-PC5620 (多分ソフトモデム)
?アイ・オー・データ IFML-PCI
×メルコ IGM-PCI56KH (多分ソフトモデム)
×オムロン ME5614PCI (ソフトモデムらしい)
私はオムロンの ME5614ISA を、tty2 (COM3:IRQ4) として使用しています。
DOS/V コンピュータは最初からシリアルポートが 2 ポート付属しているので、COM3 として使います。
ちなみに、Linux 用の PCI モデムもあります。
箱の左下に小さく Linux OK の文字があります。
日本レクトンのダウンロードのページへ行ってドライバをダウンロードします。(Linmodem の様ですが、ソースは非公開)
すると、AT コマンドが使えるようになります。
・備考3
パケット制御ソフト (ipchains, iptables : ファイアウォールとも言う) を使用している場合、
-A input -s 192.168.1.5 -d 0/0 25 -p tcp -y -j ACCEPT
-A input -s 192.168.1.5 -d 0/0 53 -p udp -j ACCEPT
-A input -s 192.168.1.5 -d 0/0 80 -p tcp -y -j ACCEPT
-A input -s 192.168.1.5 -d 0/0 110 -p tcp -y -j ACCEPT
-A input -s 192.168.1.5 -d 0/0 123 -p udp -j ACCEPT
-A input -s 192.168.1.5 -d 0/0 143 -p tcp -y -j ACCEPT
-A input -s 192.168.1.5 -d 0/0 443 -p tcp -y -j ACCEPT
|
※ ipchains の例
※ 192.168.1.5 は ppp クライアントに割り当てる IP アドレス
等として、パケットを許可してやること。
・備考4
windows 側で ipconfig を実行すると
0 Ethernet アダプタ :
IP アドレス. . . . . . . . . : 192.168.1.5
サブネット マスク . . . . . . . . : 255.255.255.0
デフォルト ゲートウェイ . . . . . . : 192.168.1.5
|
となるが、問題ない。
※「デフォルト ゲートウェイ」が自分のアドレスなのがちょっと変だけど、
実際には ppp サーバ (ここでは 192.168.1.4) が代行するのでうまく動作する。
(その代わり、上記備考3 でパケットを許可する)