さらに詳しい設定・解説は、VPN HOWTOのサーバに関する項目が参考になると思います。
以下の条件を満たしていること
通常、RedHat Linux 7.3 をフルインストールした環境であれば条件を満たすと思われます。
pppd がインストールされていること
(通常、/usr/sbin にインストールされています。今後の説明はここに pppd があるという前提で進めます。)
sudo がインストールされていること
(通常、/usr/bin にインストールされています。今後の説明はここに sudo があるという前提で進めます。)
sshd (OpenSSH) が動いていて、リモートログインできること
公開鍵・秘密鍵の組による認証ができる状態にあること
(公開鍵の形式が OpenSSH 互換、あるいは変換可能であれば、他の sshd でも可能と思われます。)
root ログインでも、su でも構いません。
ここでは、hoge というユーザを作ることにします。
# /usr/sbin/useradd -m hoge
ファイルを作り、所有権を変更します。このファイルを作るのは、login 時のメッセージ表示を消すためです。
# touch /home/hoge/.hushlogin
# chown hoge.hoge /home/hoge/.hushlogin
クライアントマシンの設定時に作成した公開鍵を置きます。 (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) に設定しておく必要があります。
通常、一般ユーザに pppd の実行権限は与えられていないので、pppd が実行できるようにします。
/etc/sudoers に以下の行を追加します。
hoge ALL = NOPASSWD: /usr/sbin/pppd
通常は /usr/sbin/visudo を使って編集します。
以下の例に従ってログインスクリプトを作成します。ファイル名は、/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
ユーザのログインシェルを先ほど作成したスクリプトにします。
# chsh -s /etc/ppp/vpn-script hoge
/etc/shells に /etc/ppp/vpn-script が無いと警告が出ますが、無視します。(今回は、この警告は無意味なためです。)
以上で設定は完了です。