ページへ戻る
印刷
Gentoo Linuxな生活/IPsec L2TP VPNで悩む
をテンプレートにして作成 ::
Nest Of Hawk
xpwiki
:Gentoo Linuxな生活/IPsec L2TP VPNで悩む をテンプレートにして作成
開始行:
2017年6月24日 OpenSwan→LibreSwanへの移行を追記しました♪
*AndroidとVPN接続をしたい!
時々あるじゃーないですか。あ、なんかサーバの調子が変!ログ...
-リモート端末からのサーバへのコンソールログイン&メンテナ...
-動画/音楽/写真をケータイにダウンロードすることなく閲覧
を果たしたいと思い、まずはOpenVPNを試してみました。Androi...
-IPsec/L2TPトンネル
-PPTPトンネル
ただし、PPTPは、
-この間MS-CHAPv2がクラックされて危険だ、と言うこと
-SPモードはPPTP接続に対応していないということ
だったので、IPsec/L2TPトンネルにチャレンジしてみることと...
*今回の目標
以下のようなネットワークでAndroidスマフォと内部LANに立て...
#ref(IPsec.jpg);
*設定
**OpenSwan/xl2tpdのインストール
OpenSwanはIPsecを提供するツール、xl2tpdはL2TPトンネリング...
さて、ココで問題。Android4.0(ICS)は、OS標準のIPsec-toolに...
まず、OpenSwan2.6.38をAndroid4.0(ICS)で動作できるようにす...
# cp openswan-android-ics-ntoa.patch /usr/portage/net-mi...
で、emergeでBuild時にパッチを当ててくれるようにebuildファ...
# vi /usr/portage/net-misc/openswan/openswan-2.6.38.ebuild
src_prepare() {
epatch "${FILESDIR}"/${P}-gentoo.patch
epatch "${FILESDIR}"/openswan-android-ics-natoa.patch
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^追加です
use ms-bad-proposal && epatch "${FILESDIR}"/${PN}-${P...
find . -type f -regex '.*[.]\([1-8]\|html\|xml\)' -ex...
-e s:/usr/local:/usr:g '{}' \; ||
die "failed to replace text in docs"
}
でもこのままemerge openswan打つとファイルのDigestサイズが...
# ebuild /usr/portage/net-misc/openswan/openswan-2.6.38....
さらに、コンパイルオプションの追加が必要。make.confのCFLA...
# emerge openswan xl2tpd
**OpenSwanの設定
今回は、PreSharedKeyという、事前共有鍵方式を使います。鍵...
# touch /etc/ipsec.secrets
# chmod 600 /etc/ipsec.secrets
# vi /etc/ipsec.secret
中身はこんな感じ
<IPsecサーバのIPアドレス> %any: PSK "事前共有鍵"
”事前共有鍵”にはIPsecをつなぐ場合のパスフレーズを書いてお...
# vi /etc/ipsec.conf
/etc/ipsec.d/examplesにあるl2tp-psk.confを参考に作ってま...
config setup
dumpdir=/var/run/pluto/
#NATなルータを通すため
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16...
oe=off
protostack=netkey
nhelpers=0
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
forceencaps=yes
authby=secret
pfs=no
auto=add
keyingtries=3
ike=aes-sha1;modp3072
phase2=esp
phase2alg=aes-sha1;modp3072
rekey=no
#iPhoneの再接続のための設定
dpddelay=10
dpdtimeout=90
dpdaction=clear
ikelifetime=8h
keylife=1h
type=transport
left=<サーバのIPアドレス>
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
**xl2tpdの設定
/etc/xl2tpd/xl2tpd.confをいじります。
[global] ...
port = 1701 ...
auth file = /etc/ppp/chap-secrets ; * Where our ch...
listen-addr = <HeartBeatのフローティングIPアドレス>
[lns default] ...
ip range = 端末に割り振るアドレスの範囲 ; * Alloc...
local ip = IPsecのサーバIPアドレス ...
length bit = yes ...
require chap = yes ...
refuse pap = yes ...
require authentication = yes ; * Requ...
name = IPsecServer
pppoptfile = /etc/ppp/xl2tpd-options
L2TPのchapで認証します。auth fileのユーザ/パスワードで接...
さらに、/etc/ppp/chap-secretsの中身はこんな感じ
# Secrets for authentication using CHAP
# client server secret ...
<ユーザ名> IPsecServer "パスワード" *
ユーザ名、パスワードは自分で任意に決めてやって。serverの...
**pppdの設定
xl2tpdから起動されるpppデーモンの設定です。xl2tpd.confのp...
name IPsecServer # /etc/xl2tpd/xl2tpd.conf で設定した ...
noccp
auth
crtscts
mtu 1410
mru 1410
nodefaultroute
lock
proxyarp
connect-delay 5000
ms-dns DNSサーバのIPアドレス
さて…サーバの設定は終了
*セキュリティの設定
L2TPには、IPsec経由でしか接続させないように以下のIPフィル...
iptables -t filter -A INPUT -p udp -m policy --dir in --...
iptables -t filter -A INPUT -p udp -m udp --dport l2tp -...
iptables -t filter -A OUTPUT -p udp -m policy --dir out ...
iptables -t filter -A OUTPUT -p udp -m udp --sport l2tp ...
さらに、外部からのIPパケット受信にフィルタをかけてる方は...
iptables -t filter -A INPUT -p udp -m udp --dport 500 -...
iptables -t filter -A INPUT -p udp -m udp --dport 4500 ...
iptables -t filter -A OUTPUT -p udp -m udp --sport 4500 ...
iptables -t filter -A OUTPUT -p udp -m udp --sport 500 -...
IKE鍵交換プロトコルと、IPsecのESP((Encapseled Security Pa...
更に、NAPTなブロードバンドルータに、UDP 4500 とUDP 500を...
*接続してみよう
**サーバ群起動
# /etc/init.d/ipsec start
# /etc/init.d/xl2tpd start
**Android側設定
端末設定→その他→VPN→VPNの追加 選択
:名前|適当につけて
:種類|L2TP/IPSec PSK
:サーバアドレス|IPsec/L2TPサーバのIPアドレス若しくはホス...
:IPsec事前共有鍵|/etc/ipsec.secretsに設定した事前共有鍵
んで、保存。接続するときは
:ユーザー名|/etc/ppp/chap-secretsに設定したユーザ名
:パスワード|/etc/ppp/chap-secretsに設定したパスワード
で接続をタップ。
*トラブルシューティング
さて…つながりましたか??つながらない場合は…Syslogを見てど...
:byte 7 of ISAKMP NAT-OA Payload must be zero, but is not...
:control_finish: Peer requested tunnel XXX twice, ignorin...
*Android VPNでいろいろやってみよう
**Androidから内部サーバへSSH
AndroidアプリのConnectBot(SSHアプリ)+Hacker's Keyboardで...
**AndroidからWindowsマシンにリモートデスクトップ
おじさんは用途がないのでやってません。LAN内にWindowsを立...
**DLNAアプリで、動画/音楽/写真をストリーミング
Skiftaは、ダメでした。UPnPパケットを通過させてくれないみ...
**Windows共有ディスクの参照
ESファイルエクスプローラ使用したら意外に簡単にできました...
**その他
アイディア募集中。VPNつないでも、できることってあんまりな...
*Atheros AR8161 Ethernetコントローラがイケてない?
どうも最近の自作マザーに搭載されているEthernetコントロー...
packet from XXX.XXX.XXX.XXX:4500: recvfrom XXX.XXX.XXX.X...
同一カーネルでALXドライバの古いバージョンを使用するとうま...
で、結局ウチでは[[Intel CT Desktop Ethernet Adapter>http:...
*OpenSwan→LibreSwanへ移行
OpenSwanは、メンテナンスから外れ、フォークしたLibreSwanに...
**OpenSwanをアンインストール
# emerge -C openswan
おわりです
**LibreSwanをインストール
まず、dev-libs/nss にutilsフラグをつけろと要求してきます...
dev-libs/nss utils
続いて、LibreSwanをインストールします。
# emerge --newuse -vuD libreswan
おしまいです。設定などはそのまま使用できます。
**Android7用に設定を変更する
Androidで要求してくる暗号化アルゴリズムを指定する必要があ...
ike=3des-sha1,aes-sha1,aes256-sha2_512-sha2_256,aes256;m...
phase2alg=3des-sha1,aes-sha1,aes256-sha2_512,aes256-sha2...
sha2-truncbug=yes
**サービス再起動
# /etc/init.d/ipsec restart
# /etc/init.d/xl2tpd restart
これで、スマホからのVPN接続が確立できました♪
終了行:
2017年6月24日 OpenSwan→LibreSwanへの移行を追記しました♪
*AndroidとVPN接続をしたい!
時々あるじゃーないですか。あ、なんかサーバの調子が変!ログ...
-リモート端末からのサーバへのコンソールログイン&メンテナ...
-動画/音楽/写真をケータイにダウンロードすることなく閲覧
を果たしたいと思い、まずはOpenVPNを試してみました。Androi...
-IPsec/L2TPトンネル
-PPTPトンネル
ただし、PPTPは、
-この間MS-CHAPv2がクラックされて危険だ、と言うこと
-SPモードはPPTP接続に対応していないということ
だったので、IPsec/L2TPトンネルにチャレンジしてみることと...
*今回の目標
以下のようなネットワークでAndroidスマフォと内部LANに立て...
#ref(IPsec.jpg);
*設定
**OpenSwan/xl2tpdのインストール
OpenSwanはIPsecを提供するツール、xl2tpdはL2TPトンネリング...
さて、ココで問題。Android4.0(ICS)は、OS標準のIPsec-toolに...
まず、OpenSwan2.6.38をAndroid4.0(ICS)で動作できるようにす...
# cp openswan-android-ics-ntoa.patch /usr/portage/net-mi...
で、emergeでBuild時にパッチを当ててくれるようにebuildファ...
# vi /usr/portage/net-misc/openswan/openswan-2.6.38.ebuild
src_prepare() {
epatch "${FILESDIR}"/${P}-gentoo.patch
epatch "${FILESDIR}"/openswan-android-ics-natoa.patch
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^追加です
use ms-bad-proposal && epatch "${FILESDIR}"/${PN}-${P...
find . -type f -regex '.*[.]\([1-8]\|html\|xml\)' -ex...
-e s:/usr/local:/usr:g '{}' \; ||
die "failed to replace text in docs"
}
でもこのままemerge openswan打つとファイルのDigestサイズが...
# ebuild /usr/portage/net-misc/openswan/openswan-2.6.38....
さらに、コンパイルオプションの追加が必要。make.confのCFLA...
# emerge openswan xl2tpd
**OpenSwanの設定
今回は、PreSharedKeyという、事前共有鍵方式を使います。鍵...
# touch /etc/ipsec.secrets
# chmod 600 /etc/ipsec.secrets
# vi /etc/ipsec.secret
中身はこんな感じ
<IPsecサーバのIPアドレス> %any: PSK "事前共有鍵"
”事前共有鍵”にはIPsecをつなぐ場合のパスフレーズを書いてお...
# vi /etc/ipsec.conf
/etc/ipsec.d/examplesにあるl2tp-psk.confを参考に作ってま...
config setup
dumpdir=/var/run/pluto/
#NATなルータを通すため
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16...
oe=off
protostack=netkey
nhelpers=0
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
forceencaps=yes
authby=secret
pfs=no
auto=add
keyingtries=3
ike=aes-sha1;modp3072
phase2=esp
phase2alg=aes-sha1;modp3072
rekey=no
#iPhoneの再接続のための設定
dpddelay=10
dpdtimeout=90
dpdaction=clear
ikelifetime=8h
keylife=1h
type=transport
left=<サーバのIPアドレス>
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
**xl2tpdの設定
/etc/xl2tpd/xl2tpd.confをいじります。
[global] ...
port = 1701 ...
auth file = /etc/ppp/chap-secrets ; * Where our ch...
listen-addr = <HeartBeatのフローティングIPアドレス>
[lns default] ...
ip range = 端末に割り振るアドレスの範囲 ; * Alloc...
local ip = IPsecのサーバIPアドレス ...
length bit = yes ...
require chap = yes ...
refuse pap = yes ...
require authentication = yes ; * Requ...
name = IPsecServer
pppoptfile = /etc/ppp/xl2tpd-options
L2TPのchapで認証します。auth fileのユーザ/パスワードで接...
さらに、/etc/ppp/chap-secretsの中身はこんな感じ
# Secrets for authentication using CHAP
# client server secret ...
<ユーザ名> IPsecServer "パスワード" *
ユーザ名、パスワードは自分で任意に決めてやって。serverの...
**pppdの設定
xl2tpdから起動されるpppデーモンの設定です。xl2tpd.confのp...
name IPsecServer # /etc/xl2tpd/xl2tpd.conf で設定した ...
noccp
auth
crtscts
mtu 1410
mru 1410
nodefaultroute
lock
proxyarp
connect-delay 5000
ms-dns DNSサーバのIPアドレス
さて…サーバの設定は終了
*セキュリティの設定
L2TPには、IPsec経由でしか接続させないように以下のIPフィル...
iptables -t filter -A INPUT -p udp -m policy --dir in --...
iptables -t filter -A INPUT -p udp -m udp --dport l2tp -...
iptables -t filter -A OUTPUT -p udp -m policy --dir out ...
iptables -t filter -A OUTPUT -p udp -m udp --sport l2tp ...
さらに、外部からのIPパケット受信にフィルタをかけてる方は...
iptables -t filter -A INPUT -p udp -m udp --dport 500 -...
iptables -t filter -A INPUT -p udp -m udp --dport 4500 ...
iptables -t filter -A OUTPUT -p udp -m udp --sport 4500 ...
iptables -t filter -A OUTPUT -p udp -m udp --sport 500 -...
IKE鍵交換プロトコルと、IPsecのESP((Encapseled Security Pa...
更に、NAPTなブロードバンドルータに、UDP 4500 とUDP 500を...
*接続してみよう
**サーバ群起動
# /etc/init.d/ipsec start
# /etc/init.d/xl2tpd start
**Android側設定
端末設定→その他→VPN→VPNの追加 選択
:名前|適当につけて
:種類|L2TP/IPSec PSK
:サーバアドレス|IPsec/L2TPサーバのIPアドレス若しくはホス...
:IPsec事前共有鍵|/etc/ipsec.secretsに設定した事前共有鍵
んで、保存。接続するときは
:ユーザー名|/etc/ppp/chap-secretsに設定したユーザ名
:パスワード|/etc/ppp/chap-secretsに設定したパスワード
で接続をタップ。
*トラブルシューティング
さて…つながりましたか??つながらない場合は…Syslogを見てど...
:byte 7 of ISAKMP NAT-OA Payload must be zero, but is not...
:control_finish: Peer requested tunnel XXX twice, ignorin...
*Android VPNでいろいろやってみよう
**Androidから内部サーバへSSH
AndroidアプリのConnectBot(SSHアプリ)+Hacker's Keyboardで...
**AndroidからWindowsマシンにリモートデスクトップ
おじさんは用途がないのでやってません。LAN内にWindowsを立...
**DLNAアプリで、動画/音楽/写真をストリーミング
Skiftaは、ダメでした。UPnPパケットを通過させてくれないみ...
**Windows共有ディスクの参照
ESファイルエクスプローラ使用したら意外に簡単にできました...
**その他
アイディア募集中。VPNつないでも、できることってあんまりな...
*Atheros AR8161 Ethernetコントローラがイケてない?
どうも最近の自作マザーに搭載されているEthernetコントロー...
packet from XXX.XXX.XXX.XXX:4500: recvfrom XXX.XXX.XXX.X...
同一カーネルでALXドライバの古いバージョンを使用するとうま...
で、結局ウチでは[[Intel CT Desktop Ethernet Adapter>http:...
*OpenSwan→LibreSwanへ移行
OpenSwanは、メンテナンスから外れ、フォークしたLibreSwanに...
**OpenSwanをアンインストール
# emerge -C openswan
おわりです
**LibreSwanをインストール
まず、dev-libs/nss にutilsフラグをつけろと要求してきます...
dev-libs/nss utils
続いて、LibreSwanをインストールします。
# emerge --newuse -vuD libreswan
おしまいです。設定などはそのまま使用できます。
**Android7用に設定を変更する
Androidで要求してくる暗号化アルゴリズムを指定する必要があ...
ike=3des-sha1,aes-sha1,aes256-sha2_512-sha2_256,aes256;m...
phase2alg=3des-sha1,aes-sha1,aes256-sha2_512,aes256-sha2...
sha2-truncbug=yes
**サービス再起動
# /etc/init.d/ipsec restart
# /etc/init.d/xl2tpd restart
これで、スマホからのVPN接続が確立できました♪
ページ名: