【概要】
この章では、VPN (Virtual Private Network) 技術の中でも Linux でよく使用される OpenVPN および IPsec (IP Security) の使用方法について解説します。同時に L2TP についても知識として覚えておく必要があります。
【OpenVPNの基礎知識】
OpenVPN は SSL/TLS に基づくプロトコルで接続される VPN で、安全性と拡張性が高いのが特徴です。
▶ OpenVPNの接続方式
- TUN (ルート接続): レイヤー3のIPレベルで接続し、ルーティングのような挙動
- TAP (ブリッジ接続): レイヤー2のEthernetフレームを送信
▶ サーバーセットアップ
- OpenVPNのインストール:
sudo apt install openvpn easy-rsa
- 証明書(CA)とキーの生成
/etc/openvpn/server.confの設定
port 1194
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
- サービス起動
sudo systemctl start openvpn@server
▶ クライアント設定
/etc/openvpn/client.confにサーバ情報を設定
【IPsec (IP Security)の基礎知識】
IPsec はネットワークレベルで IP パケットを暗号化する技術で、第3者からの中間攻撃や特定診断を防ぎます。
- 一般的に IPsec-Tools や racoon を使用
- 認証:
- 共通キー (pre-shared key)
- 証明書(CA)
▶ 設定ファイル
/etc/ipsec-tools.conf: ここに SA(セキュリティアソーシエーション)やポリシーを設定/etc/racoon/racoon.conf: ISAKMP (キー交換プロトコル)の設定
path pre_shared_key "/etc/racoon/psk.txt";
remote anonymous {
exchange_mode main,aggressive;
proposal_check obey;
proposal {
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
}
sainfo anonymous {
encryption_algorithm aes;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
▶ キー設定
echo "remote_ip your_psk_key" > /etc/racoon/psk.txt
【L2TPの概要】
- L2TP (Layer 2 Tunneling Protocol)はトンネルの二重化を行う技術で、IPsecと組み合わせることが多い
- Linuxでは xl2tpd や strongSwan との連携が一般
【重要ファイル/コマンド一覧】
| 名稱 | 概要 |
|---|---|
/etc/openvpn/* | OpenVPNの設定ファイル |
openvpn | OpenVPNサーバ/クライアントプログラム |
setkey | 手動で IPsec SA を設定するコマンド |
/etc/ipsec-tools.conf | IPsec パケットフィルタ設定 |
/etc/racoon/racoon.conf | racoonのISAKMP設定 |
章末問題
問題1
OpenVPNで「TAP」デバイスを使用する主な目的はどれか?
A. IPレベルでのルーティングを行う
B. Ethernetレベルでのブリッジ接続を行う
C. ファイル転送専用のVPN接続を行う
D. DNSトンネリングを利用するため
解説
正解:B
解説:TAPはレイヤー2(Ethernet)を扱う仮想デバイスで、ブリッジ接続に使用されます。
問題2
IPsecで使用されるISAKMPの主な役割はどれか?
A. ファイアウォールルールの適用
B. IPヘッダの圧縮
C. 鍵交換とセキュリティポリシーの交渉
D. VPNユーザーのログ保存
解説
正解:C
解説:ISAKMP(Internet Security Association and Key Management Protocol)は、鍵交換とSA(セキュリティアソシエーション)の管理を行います。
問題3
racoonの設定ファイルのパスとして正しいものはどれか?
A. /etc/ipsec-tools.conf
B. /etc/openvpn/server.conf
C. /etc/racoon/racoon.conf
D. /etc/vpn/racoon.conf
解説
正解:C
解説:racoonはIPsecにおけるISAKMP実装であり、その設定ファイルは/etc/racoon/racoon.confです。
問題4
OpenVPNサーバー設定で、クライアントに割り当てるIPアドレスレンジを定義するディレクティブはどれか?
A. client-config-dir
B. tun-mode
C. server
D. local-address
解説
正解:C
解説:serverディレクティブはOpenVPNサーバーがクライアントに割り当てるIPアドレスの範囲を定義します。
コメント