L2TPはセキュリティ機能をサポートしていないため、IPsecを使用したレイヤ2トンネリングプロトコル(L2TP)を使用して、エンドツーエンドの暗号化を保証します。 OpenSwanツールは、UbuntuディストリビューションでコンパイルされるIPsecトンネルを確立するために使用されます。認証セキュリティ機能は、FreeRadiusサーバーを使用して実装されます。認証サーバーの目的は、L2TPVPNのユーザーを認証することです。 AndroidおよびWindowsクライアントはCHAPv2を使用したL2TP/IPsec PSKをサポートしているため、スマートフォンとサーバーの間に安全なチャネルが確立されます。
必要なパッケージ
次のパッケージは、 openswan-l2tp-installation.shを使用してインストールされます スクリプト。
ツール
- Freeradiusサーバー/クライアント(ソースベースのインストール)
- xl2tpd
- Poptop Server
- MySQLサーバー/クライアント
- OpenSwan(ソースベースのインストール)
開発パッケージ
- バイソン
- フレックス
- GMPライブラリ
スクリプトの内容は、次のスナップショットに示されています。
#!/bin/bash
##NOTE: Adding a proper date in lastaccounting filed to fix the invalid default value issue in /etc/freeradius/sql/mysql/cui.sql.
##-installation of tools-##
apt-get update
apt-get install -y mysql-server mysql-client freeradius-mysql pptpd xl2tpd build-essential libgmp3-dev bison flex
echo "Installing freeradius client --"
wget https://github.com/FreeRADIUS/freeradius-client/archive/master.zip
unzip master.zip
cd freeradius-client-master
./configure --prefix=/
make
make install
echo "Installation of OpenSwan "
wget https://download.openswan.org/openswan/openswan-latest.tar.gz
tar -xvzf openswan-latest.tar.gz
cd openswan-*
make programs
make install
echo " OpenSwan installed"
MySqlサーバーのrootユーザーのパスワード「test」を入力します。
構成
別のスクリプト「openswan-l2tp-configuration.sh "は、Ubuntuでのパケット転送、xl2tpdサブネットのiptablesルール、認証メカニズムのFreeRadiusサーバー/クライアント設定、OpenSwanのIPsecトンネルの構成に使用されます。構成スクリプトのスナップショットを以下に示します。
1。 iptablesとsysctlの設定
2。 mysqlを使用したFreeRadiusサーバーの設定
3。 FreeRadiusクライアント設定
4。 pptpdおよびxl2tpdサービスの構成
5。 OpenSwanVPN構成
構成スクリプトを実行する前に、 cui.sqlで1つの変更が必要です。 / etc / freeradius / sql / mysql /の下にあるファイル 。指定されたSQLファイルで強調表示されている次の行を変更します。
`lastaccounting` timestamp NOT NULL default '0000-00-00 00:00:00',
`lastaccounting` timestamp NOT NULL default '2016-10-01 00:00:00',
インストールされたパッケージを自動的に設定するための構成スクリプトを実行します。
次のコマンドを使用して、Android /WindowsL2TPクライアントのFreeRadiusデータベースにユーザー名/パスワードを挿入します。
INSERT INTO radius.radcheck (username, attribute, op, value) VALUES ('test','User-Password',':=','test123');
次のコマンドを使用してFreeRadiusサーバーを実行し、必要なすべてのサービスを再起動します。
freeradius -X
localhostで次のコマンドを実行して、FreeRadiusサーバーの構成をテストします。
radtest test test123 localhost 0 tests123
/etc/init.d/xl2tpd restart
/etc/init.d/ipsec restart
必要なすべてのサービスが適切に構成され、実行されているようです。次に、WindowsおよびAndroidクライアントでL2TP / IPsecPSKVPNを構成します。
MSWindows8クライアント構成
「ネットワークと共有センター」の「新しい接続またはネットワークのセットアップ」をクリックします。
次のスナップショットに示すように、[職場に接続]オプションを選択します。
以下に示すように。次のウィンドウで[インターネット(VPN)を使用する]オプションを選択します。
VPN接続でタイトルとインターネットアドレス(マシンのIPアドレス)を入力し、[作成]ボタンをクリックします。
新しいVPN接続が作成され、以下に示すようにネットワークリストに表示されます。
新しいVPN接続のデフォルトのプロパティは、FreeRadiusサーバーの現在の構成では機能しません。したがって、MSWindowsVPNクライアントのセキュリティ設定を変更する必要はほとんどありません。
まず、VPNのタイプを変更します(IPsecを介したレイヤー2トンネリングプロトコル)。
[詳細設定]をクリックし、[認証に事前共有キーを使用する]オプションを選択します。
[これらのプロトコルを許可する]設定で[MicrosoftCHAPバージョン2]オプションを選択します。
L2TP / IPsec VPN接続を構成した後、以下に示すようにユーザー名/パスワード(test / test123)を入力します。
L2TP / IPsec VPNはサーバーに正常に接続され、IPアドレスには次のようにアドレスが割り当てられます。
次のスナップショットは、L2TP /IPsecVPN接続のステータスを示しています。
AndroidでのL2TP/IPsec構成
Android L2TPクライアントをサーバーに接続するには、その上にL2TP/IPsec接続を作成します。 [設定]をクリックします "。 「もっと " および「VPN "オプション。今すぐ"VPNネットワークを追加 「」を選択し、「 L2TP PSK」を選択します "必要なVPN接続のオプション。
一度、新しいL2TP /IPsecVPN接続が作成されます。次に、VPN接続名をクリックし、FreeRadiusサーバーに作成済みのユーザー名/パスワードを入力します。
L2TP / IPsecクライアントは、以下に示すようにサーバーに接続されています。
FreeRadiusステータス
次のスナップショットは、ユーザーの認証が成功したことを示しています。認証タイプはCHAPです。
トンネルステータス
以下に示すように、xfrmstateコマンドはOpenSwanトンネルのステータスを示します。
ip xfrm state
OpenSwanツールで提供されるもう1つのコマンドは、xfrmステータス、任意のiptablesルール、およびルーティングの情報を組み合わせた「ipseclook」です。
ipsec look
1。 ipsecコマンドでのxfrm状態の出力
2。 ipsecコマンドでのxfrmポリシー出力
3。 ipsecコマンドでのルーティングとiptablesの設定
次のコマンドは、以下に示すようにトンネルの自動ステータスを提供します。
ipsec auto --status
結論
このチュートリアルでは、OpenSwanでL2TPを使用してレイヤー2にトンネルを作成し、クライアントとサーバー間の通信を保護します。 CHAPv2認証メカニズムは、FreeRadiusサービスを使用するクライアントとサーバー間で使用されます。 AndroidとWindowsベースのL2TPクライアントの両方を使用して、クライアントとサーバーの接続を示します。