VPNとは
VPN(VirtualPrivateNetwork:仮想プライベートネットワーク) は、
2点間のネットワークを仮想的な回線を用いて接続し、相互に通信可能にする技術です。
一般に、2点間のネットワークを結ぶ際に用いられる仮想的な回線は暗号通信に対応したものが用いられますので、
インターネット経由であっても安全に任意の場所からプライベートネットワークへ接続可能です。
WindowsXPやWindowsMobileにはVPNへ接続する手段として、「PPTP」「L2TP/IPsec」の2つが標準で搭載されています。
今回は、このWindowsに標準搭載のVPNクライアントで接続可能なVPNサーバをLinux(Fedora8)で構築し、
高価なWindowsServerを用いずにVPNセッションを張れる環境の構築を目標とします。
必要なもの
- パソコン1台(ちなみに、私はMemory128M/Celeron450M/HDD 2GB(CFメモリ)です(^^;;
- Fedora8のインストールディスク
インストール
- [既にLinuxが構築済みの方向け] インストールが必要なソフトウエアとその設定
※既にFedora8以上がインストール済みであることが前提です。
※yum -y updateしてシステムを最新にした上で行うことをお勧めします。
インストール/設定が必要なソフトウエア
- xl2tpd - L2TPトンネリングに使用(L2TP/IPsecで必要)
- openswan - IPsec暗号通信に使用(L2TP/IPsecで必要)
- Poptop - PPTP通信に使用(PPTPで必要)
- Samba - WINS名前解決に使用
- iptables - IPv4ファイヤーウォール
インストール/設定手順
-
事前確認
- ルータ使用時 IPsec、PPTPパススルーを有効にします。
-
/etc/sysctl.confでIPv4パケットフォワーディングを有効にします。
このファイルに"net.ipv4.ip_forward = 1"を追記してください。
-
DNSは構築済みであるとします。(DNSはMemo - OCNIPv6を参考に構築すると良いかもしれません)
-
xl2tpdのセットアップ
-
IPSecのセットアップ(L2TP/IPSec向け)
-
今回はyumからインストール可能なIPsecスタック「OpenS/WAN」のopenswanパッケージをインストールします。
インストールは次のコマンドで可能です
-
/etc/ipsec.d/l2tp-psk.confの設定
今回はNAT越え可能なL2TP/IPsec-PSK(事前共有キー使用タイプ)を構築しますので、それにあわせた設定ファイルを作成します。
openswanの場合、/etc/ipsec.d/以下に接続設定ファイルを置くことで置いてある設定ファイル全て読み込んでくれますので、
設定ファイルのファイル名は分かり易い名前をつけてください。
ここでは/etc/ipsec.d/l2tp-psk.confというファイル名で接続設定ファイルを作成します。
ただし、$〜、をそれぞれ以下に置換します。
- $serv_addr - このサーバのIPv4アドレス
- $route_addr - デフォルトゲートウエイのIPv4アドレス
-
/etc/ipsec.secretsの設定
今回はL2TP/IPsec-PSK(事前共有キー使用タイプ)を構築しますので、事前共有キーを登録します。
事前共有キーを定義するファイル/etc/ipsec.secretsを次のように作成します。
ただし、$〜、をそれぞれ以下に置換します。
- $ipsec_psk - IPsec暗号化用事前共有キー(任意の文字列)
-
Poptopのセットアップ(PPTP向け)
-
WINSサーバのセットアップ
-
WINSサーバはWindowsXPでは必要ないのですが、WindowsMobileから接続する場合、
無いとSambaへ接続できなくなったり、名前解決に不都合が生じたりしますので、構築しておくことをお勧めします。
WINSサーバはSambaに一緒に搭載されていますので、今回はSambaをインストールしこれをWINSサーバとして動作させます。
Sambaはyumでインストールすることが可能です。
-
/etc/samba/smb.confの設定
/etc/samba/smb.confを次のように作成します。ただし、$〜、をそれぞれ以下に置換します。
- $net_addr - プライベートネットワークのIPv4アドレスのネットワークアドレス
- $net_mask - プライベートネットワークのサブネットマスク
-
IPv4パケットフォワードの設定
-
カーネルパラメータの設定
次のコマンドを実行し、/etc/sysctl.confにipv4パケットフォワードを許可するカーネルパラメータを追加します
-
ファイヤーウォール(iptables)の設定
iptablesの設定ファイルiptables.shを任意の場所で作成し、次のように記述します。
ただし、$〜はそれぞれ次のように置換します。
- $net_addr - プライベートネットワークのIPv4アドレスのネットワークアドレス
- $net_mask - プライベートネットワークのサブネットマスク
最後に、次のコマンドを実行し、IPv4ファイヤーウォールを有効にします。
-
VPNサーバ自動起動の設定
-
最後に、VPNサーバを起動し、起動時に自動で起動するよう設定します。
設定は次のコマンドで可能です。
以上でサーバー側の設定は終了です。
各種デーモンが起動時にエラーを出さなければOKです。
WindowsXPやWindowsMobileのL2TP/IPsecクライアントで接続して正しく接続できることを確認してください。