■お断り
・基本的に無保証です。自己責任にてお試しください。
・ご質問や問題点のご指摘は大歓迎です。何かありましたらお気軽にご連絡ください。
■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のインストールディスク
■インストール
1、[既にLinuxが構築済みの方向け]インストールが必要なソフトウエアとその設定
■[既に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のセットアップ(L2TP/IPsec向け)
- まず、xl2tpdをインストールします。
インストールは次のコマンドで可能です。
- /etc/xl2tpd/xl2tpd.confの設定
/etc/xl2tpd/xl2tpd.confを次のように作成します。ただし、$〜、をそれぞれ以下に置換します。
$start_ip - 貸し出し開始IPv4アドレス(プライベートネットと同一ネットワークのアドレスを指定)
$end_ip - 貸し出し終了IPv4アドレス(貸し出し開始IPアドレスと同一ネットワークのアドレスを指定)
$serv_addr - このサーバのプライベートIPv4アドレス
- /etc/ppp/options.xl2tpdの設定
/etc/ppp/options.xl2tpdを次のように新規にファイルを作成します。ただし、$〜、をそれぞれ以下に置換します。
$dns_addr - DNSのIPv4アドレス
$wins_addr - WINSサーバアドレス(このサーバのIPv4アドレス)
- /etc/ppp/chap-secretの設定
VPNアクセスユーザーのアカウントを定義したファイル/etc/ppp/chap-secretを次のように作成します。
ただし、$〜、をそれぞれ以下に置換します。
$userid - VPNユーザアカウント
$password - VPNパスワード
※このアカウントはLinuxとは別体系です。自由に追加できます。
- 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向け)
- まず、Poptopをインストールします。
http://sourceforge.net/projects/poptop/より最新のFedora向けpptpd RPMパッケージをダウンロードします。
その後、yumでインストールを行います。
- /etc/pptpd.confの設定
/etc/pptpd.confを次のように作成します。ただし、$〜、をそれぞれ以下に置換します。
$serv_addr - このサーバのIPv4アドレス
$start_ip - VPNクライアントに貸し出すIPv4アドレスの開始アドレス
$end_ippart - VPNクライアントに貸し出すIPv4アドレスの終了アドレス
※終了アドレスはIPv4アドレスの最後のパートのみを記述します。
- /etc/ppp/options.pptpdの設定
/etc/ppp/options.pptpdを次のように作成します。ただし、$〜、をそれぞれ以下に置換します。
$dns_addr - DNSサーバのIPv4アドレス
$wins_addr - WINSサーバのIPv4アドレス(このサーバのIPv4アドレス)
- 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アドレスの最後のパートのみを記述します。
- IPv4パケットフォワードの設定
- カーネルパラメータの設定
次のコマンドを実行し、/etc/sysctl.confにipv4パケットフォワードを許可するカーネルパラメータを追加します
- ファイヤーウォール(iptables)の設定
iptablesの設定ファイルiptables.shを任意の場所で作成し、次のように記述します。
ただし、$〜はそれぞれ次のように置換します。
$net_addr - プライベートネットワークのIPv4アドレスのネットワークアドレス
$net_mask - プライベートネットワークのサブネットマスク
最後に、次のコマンドを実行し、IPv4ファイヤーウォールを有効にします。
- VPNサーバ自動起動の設定
- 最後に、VPNサーバを起動し、起動時に自動で起動するよう設定します。
設定は次のコマンドで可能です。
以上でサーバー側の設定は終了です。
各種デーモンが起動時にエラーを出さなければOKです。
WindowsXPやWindowsMobileのL2TP/IPsecクライアントで接続して正しく接続できることを確認してください。
|