サーバ設定例

さらに詳しい設定・解説は、VPN HOWTOのサーバに関する項目が参考になると思います。

1. 前提条件

以下の条件を満たしていること
通常、RedHat Linux 7.3 をフルインストールした環境であれば条件を満たすと思われます。

2. root になる

root ログインでも、su でも構いません。

3. ユーザを作る

ここでは、hoge というユーザを作ることにします。

# /usr/sbin/useradd -m hoge

4. ユーザのホームディレクトリに .hushlogin というファイルを作る

ファイルを作り、所有権を変更します。このファイルを作るのは、login 時のメッセージ表示を消すためです。

# touch /home/hoge/.hushlogin
# chown hoge.hoge /home/hoge/.hushlogin

5. ユーザの公開鍵をそのユーザのホームディレクトリの .ssh/authorized_keys あるいは、.ssh/authorized_keys2 に置く

クライアントマシンの設定時に作成した公開鍵を置きます。 (puttygen.exe の [Key] の欄に [Public key for pasting into OpenSSH authorized_keys file] となっている Read Only のテキストボックスからそのまま内容を authorized_keys あるいは authorized_keys2 にコピーします。)

.ssh ディレクトリ、及び、authorized_keys / authorized_keys2 ファイルは、所有者とグループを作成したユーザと同じにしておく必要があります。また、authorized_keys / authorized_keys2 ファイルは、所有者のみが読み書きできる状態(つまり 0600) に設定しておく必要があります。

6. ユーザに pppd の実行権限を与える

通常、一般ユーザに pppd の実行権限は与えられていないので、pppd が実行できるようにします。

/etc/sudoers に以下の行を追加します。

hoge ALL = NOPASSWD: /usr/sbin/pppd

通常は /usr/sbin/visudo を使って編集します。

7. ログインスクリプトを作成

以下の例に従ってログインスクリプトを作成します。ファイル名は、/etc/ppp/vpn-script とします。

#!/bin/sh
/usr/bin/sudo /usr/sbin/pppd local proxyarp nocrtscts server-IP:client-IP nodetach ms-dns dns-IP noauth

server-IP, client-IP, dns-IP は、IP アドレスに適宜置き換えてください。
server-IP は PPP のサーバ側のアドレスです。例えば 192.168.1.20 など。
client-IP は PPP のクライアント側のアドレスです。例えば 192.168.1.30 など。
dns-IP はクライアントに dns の設定を教えるのに使います。dns サーバのアドレスを設定してください。

このログインスクリプトには、実行できるように属性を変更する必要があります。

# chmod +x /etc/ppp/vpn-script

7. ユーザ hoge のログインシェルを /etc/ppp/vpn-script にする

ユーザのログインシェルを先ほど作成したスクリプトにします。

# chsh -s /etc/ppp/vpn-script hoge

/etc/shells に /etc/ppp/vpn-script が無いと警告が出ますが、無視します。(今回は、この警告は無意味なためです。)

8. 完了

以上で設定は完了です。