注:文章中でRPMファイルへリンクしてますが、Windowsのブラウザからクリッ クすると、OSが発狂する(藁)事があるようですので、右クリックで保存してく ださい。
構成はこんな感じです。
参考にした資料は雑誌「Software Desingn」2001年9月号です。大学幹線 +--- router +--- 学科の無線LAN + | | (講座のLAN) VPNサーバ
Windowsのクライアントで使われるVPN(Virtual Private Network)プトロコル はPPTPが多いようです。今回立ち上げたサーバはPPTPサーバです。
以下の設定で、Windows XP Pro/98SE/95での接続を確認しています。他は知りませ ん。
カーネルの初期設定ファイルを作ってください。雛型は /usr/src/linux-2.4.5/configsにあります。今回はSMPマシンなので kernel-2.4.5-3smp-i586.configを使用。cd /usr/src mv linux linux.OLD 古いソースの退避 tar xvfz linux-2.4.18.tar.gz cd linux gzip -dc linux-2.4.16-openssl-0.9.6b-mppe.patch.gz | patch -p1
menuconfigで CONFIG_PPPを有効にしてください。作成した .config において 「CONFIG_PPP=m」となってればOK。私の作った コンフィグ。cp /usr/src/linux-2.4.5/configs/kernel-2.4.5-3smp-i586.config .config make menuconfig
カーネルを更新したら「/etc/lilo.config」を適切に書き換える。そしてliloを 実行後reboot。無事立ち上がる事を祈りましょう(藁。make dep make clean make bzImage make modules make modules_install make install
次にpppのrpmのソースをhttp://planetmirror.com/pub/mppe/ppp-2.4.1-3mppe.src.rpmから取ってきて ください。コピー。rpm -e rp-pppoe-gui-3.0-2 rpm -e rp-pppoe-3.0-2 rpm -e ppp-2.4.0-3
Turbolinux7ではそのまま動かないようですので、SPECファイルを修正してくだ さい。というかpam-develが見つけられなかった。rpm -i ppp-2.4.1-3mppe.src.rpm cd /var/src/rpm/SPECS
パッケージ作成。インストール** ppp.spec.ORG Fri Apr 19 19:08:07 2002 --- ppp.spec Fri Apr 19 19:08:15 2002 *************** *** 16,22 **** Patch6: ppp-2.4.1-openssl-0.9.6-mppe.patch Patch7: ppp-2.4.1-MSCHAPv2-fix.patch BuildRoot: %{_tmppath}/%{name}-root - BuildPrereq: pam-devel Requires: glibc >= 2.0.6, /etc/pam.d/system-auth %description --- 16,21 ---- ---------------------
作ったパッケージはこれ(ppp-2.4.1-3mppe.i586.rpm)。rpm -bb ppp.spec rpm -i /var/src/rpm/RPMS/i586/ppp-2.4.1-3mppe.i586.rpm
パッケージの作成をしてください。なんかしらないですが、1回目は失敗しま したが、2回目は成功しました。よく分かりません。rpm -i pptpd-1.1.2-2.src.rpm cd /var/src/rpm/SPECS
作ったパッケージはこれ(pptpd-1.1.2-2.i586.rpm)。rpm -bb pptpd-1.1.2.spec rpm -bb pptpd-1.1.2.spec rpm -i /var/src/rpm/RPMS/i586/pptpd-1.1.2-2.i586.rpm
以上でソフトウエアのインストールは終わりです。
*** pptpd.conf.OLD Fri Apr 19 19:22:10 2002 --- pptpd.conf Fri Apr 19 19:22:32 2002 *************** *** 51,58 **** # be set to the given one. You MUST still give at least one remote # IP for each simultaneous client. # ! localip 192.168.0.1 ! remoteip 192.168.1.200-254 # TAG: ipxnets # --- 51,58 ---- # be set to the given one. You MUST still give at least one remote # IP for each simultaneous client. # ! localip 123.123.123.100 ! remoteip 123.123.123.101-110 # TAG: ipxnets #
daemon.debug;local2.debug /var/log/pptpd.log
旧: alias char-major-108 off 新: alias char-major-108 ppp_generic
雑誌「Software Desingn」2001年9月号では、/etc/sysctl.confを書き換えるよう 指示されていますが、TurboLinux7ではこれは効かないようです。旧: FORWARD_IPV4=no 新: FORWARD_IPV4=yes
matumoto pptpd "秘密のパスワード" *
ただし、これをインストするとダイヤルアップネットワーク関係が全部英語に なってしまいます。日本語版は無いようです。ダイヤルアップネットワーク1.4アップグレードプログラム: http://www.microsoft.com/JAPAN/support/kb/articles/jp285/1/89.ASP
雑誌「Software Desingn」2001年9月号では、セキュリティ上の理由で Win98/Win98SEでもこのプログラムのインストールを勧めています(後述)。で すが、全部英語になってしまいますので、判断はお任せします。
/etc/ppp/options.pptpdに以下の行を追加してください。
+chapms mppe-40
「ダイヤルアップネットワーク」 →「"VPN対応のダイヤルアップアダプタ名"」 →「右クリック」 →「プロパティ」 →「サーバの種類」 →「詳細オプション」ちなみに「ソフトウエア圧縮をする」をONにすると繋がりません。理由は解りません。
ちなみにプロトコルTCPは6番、UDPは17番です。一覧は /etc/protocolsにあります。ipchains -A `環境に合わせる` -s 0/0 -d `VPNサーバ` 1723 -p tcp -j ACCEPT ipchains -A `環境に合わせる` -s 0/0 -d `VPNサーバ` -p 47 -j ACCEPT ipchains -A `環境に合わせる` -s `VPNサーバ` -d 0/0 -p 47 -j ACCEPT
GRE用のNATパッチ http://www.impsec.org/linux/masquerade/netfilter-pptp-2.4.17-rev2.patch.gz が提供されています。
自宅で構成しているNATサーバでインストールしました。プロバイダはODNです。 なお、以下のメモは、すでに通常のNATの設定を行っている事を前提としてい ます。NATの標準的な設定についてはgoogleでも使って検索してください
パッチがうまくあたらず2つのrejectファイルができます。tar xvfz linux-2.4.18.tar.gz cd linux gzip -dc patch-2.4.19-pre7.gz | patch -p1 gzip -dc netfilter-pptp-2.4.17-rev2.patch.gz | patch -p1
しかし、大したエラーじゃないので、手パッチ当ててください。そして.configの生成。 生成した .config ファイルにおいて「CONFIG_IP_NF_PPTP=m」となっていればOKです。 私の作ったコンフィグ。かなり遊んでるので そのまま使わない方が良いでしょう。include/linux/netfilter_ipv4/ip_conntrack.h.rej net/ipv4/netfilter/Makefile.rej
コンパイル。
次に、boot loaderの設定。 RedHat7.2Jで、私はLILOではなくgrubを使ってい るので/boot/grub/grub.confを編集。liloを使っている方はlilo.confを編集 してliloを実行してください。cp /usr/src/linux-2.4.7-10/configs/kernel-2.4.7-athlon-smp.config .config make menuconfig make dep make clean make bzImage make modules make modules_install make install
/etc/rc.d/rc.localの最後に以下の行を挿入してください。
そしてreboot。 reboot後pptpのモジュールが読み込まれているか/sbin/lsmod で確認してください。ip_nat_pptp, ip_conntrack_pptpが読み込まれていたら 正常のようです。/sbin/modprobe ip_nat_pptp
以上で設定は終了です。無事PPTPはNATを通過できるでしょうか…
VPNを設定する前は、これが当然出来ると思っていたのですが出来ません。 tcpdumpをかけてみたのですが、どうもpppがnetbios-*のbroadcastを中継して いないみたいです。(きちんと調べたわけではない。)
これが出来ないと、意味ないじゃん。という事で悩んだのですが、次の手順で 別コンピュータが見えるようになります。
接続先のLANでsambaを使い、winsサーバを立ち上げてください。
Solaris2.6で立ち上げたsambaサーバ(samba-2.2.2-ja-1.1)ではsmb.confの [global]セクションに以下の行を追加したらwinsサーバになりました。
そして、/etc/ppp/options.pptpd で winsサーバを指定してください。DNSサー バも指定した方が良いようです。domain master = yes local master = yes preferred master = yes os level = 65 wins support = yes
ms-wins winsサーバ名 ms-dns dnsサーバ名
以上で、 Windowsのネットワークコンピュータで LAN内部の別コンピュータの が見えるようになりました。
Windows98SEでは上記方法でうまくwinsサーバが割り当てられない場合がある ようです。その場合は、winsサーバをじかに指定してください。
「コントロールパネル」 →「ネットワーク」 →「TCP/IP→ダイヤルアップアダプタ#2(VPNサポート)」 →「プロパティ」 →「WINS設定」 →「WINSの解決をする」
多分にWindows2000/NT4.0 Serverでもwinsサーバは作れるのでしょうが、手も とに無いので知りません。
なお、特定の1台のマシンだけ見えればOKでしたら、IPアドレスで直接指定し てもOKです。例えば IPアドレスが123.123.123.123のマシンに接続するには、 IEを立ち上げてURLとして
と指定してください。「¥」は実際には半角を使う。¥¥123.123.123.123
Windowsでは、簡単にファイル共有可能ですが、
VPNのクライアント側でファイル共有設定していると、VPNで接続したLANだけ でなく、本当に接続しているネットワークからもファイル共有されています。
具体的に言うと、学科の無線LANからVPNでつなぐと、VPNで接続した講座のネッ トワークだけではなく、無線LAN内部にいる別のコンピュータからもファイル 共有できてしまいます。(当然と言えば当然なのですが)