弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

【勝栄二郎元財務省事務次官の切れるザイルw】RHEL7(CentOS7)でL2TP/IPsecなVPNクライアント設定ではつながらない。update10

IIJがZEILを自社開発してることより、社長が勝栄二郎なとこでw

これを参考にてRHEL7なL2TP/IPsecでVPNクライアント接続。VPNサーバはSEIL(ザイル)なんだとか。
参考→ArchLinuxでL2TP/IPsecなVPNへの接続を行う

/etc/ipsec.conf
これって変更なし。

/etc/ipsec.d/vpn1.conf

conn vpn1
  authby=secret
  pfs=no
  auto=add
  keyingtries=3
  dpddelay=30
  dpdtimeout=120
  dpdaction=clear
  rekey=yes
  ikelifetime=8h
  keylife=1h
  type=transport
  left=%defaultroute
  leftprotoport=17/1701
  right=VPNサーバーのIPアドレス
  rightprotoport=17/1701

/etc/ipsec.d/vpn1.secrets

%any VPNサーバーのIPアドレス : PSK "接続キーコード"

/etc/xl2tpd/xl2tpd.conf

[lac vpn1]
lns = VPNサーバーのIPアドレス
require chap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.vpn1
length bit = yes
redial = yes
redial timeout = 10
max redials = 3

/etc/ppp/options.l2tpd.vpn1

ipcp-accept-local
ipcp-accept-remote
require-chap
refuse-pap
#crtscts
#noccp
#mppe
noauth
idle 1800
mtu 1410
mru 1410
defaultroute
usepeerdns
debug
#lock
connect-delay 5000
name 接続ユーザーID
password 接続パスワード
novj

参考→CentOS7のL2TP仕様が若干変わっていた

xl2tpd: /usr/sbin/pppd: In file /etc/ppp/options.xl2tpd: unrecognized option 'crtscts'
xl2tpd: /usr/sbin/pppd: In file /etc/ppp/options.xl2tpd: unrecognized option 'lock'
/etc/ppp/options.l2tpd.vpn1をコメントアウト。
#crtscts
#lock

参考→Re: [pptp-devel] Unsupported Protocoll-Problem

#noccp
#mppe

/etc/ppp/chap-secrets

"接続ユーザーID" * "接続パスワード" *

sysctl.conf

net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.lo.send_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0

# systemctl start xl2tpd
# systemctl start ipsec
# ipsec auto --up vpn1
# echo "c vpn1" > /var/run/xl2tpd/l2tp-control
/var/log/messages
Sep 12 21:11:16 hoge8 systemd: Starting Level 2 Tunnel Protocol Daemon (L2TP)...
Sep 12 21:11:16 hoge8 systemd: Started Level 2 Tunnel Protocol Daemon (L2TP).
Sep 12 21:11:16 hoge8 xl2tpd: xl2tpd[31416]: Not looking for kernel SAref support.
Sep 12 21:11:16 hoge8 xl2tpd: xl2tpd[31416]: Using l2tp kernel support.
Sep 12 21:11:16 hoge8 xl2tpd: xl2tpd[31416]: xl2tpd version xl2tpd-1.3.8 started on hoge8.localdomain PID:31416
Sep 12 21:11:16 hoge8 xl2tpd: xl2tpd[31416]: Written by Mark Spencer, Copyright (C) 1998, Adtran, Inc.
Sep 12 21:11:16 hoge8 xl2tpd: xl2tpd[31416]: Forked by Scott Balmos and David Stipp, (C) 2001
Sep 12 21:11:16 hoge8 xl2tpd: xl2tpd[31416]: Inherited by Jeff McAdams, (C) 2002
Sep 12 21:11:16 hoge8 xl2tpd: xl2tpd[31416]: Forked again by Xelerance (www.xelerance.com) (C) 2006-2016
Sep 12 21:11:16 hoge8 xl2tpd: xl2tpd[31416]: Listening on IP address 0.0.0.0, port 1701


Sep 12 21:12:10 hoge8 xl2tpd: xl2tpd[31416]: Connecting to host VPNサーバのIPアドレス, port 1701
Sep 12 21:12:41 hoge8 xl2tpd: xl2tpd[31416]: Maximum retries exceeded for tunnel 20064.  Closing.
Sep 12 21:12:41 hoge8 xl2tpd: xl2tpd[31416]: Connection 0 closed to VPNサーバのIPアドレス, port 1701 (Timeout)
Sep 12 21:13:12 hoge8 xl2tpd: xl2tpd[31416]: Unable to deliver closing message for tunnel 20064. Destroying anyway.
Sep 12 21:13:12 hoge8 xl2tpd: xl2tpd[31416]: Will redial in 10 seconds
Sep 12 21:13:22 hoge8 xl2tpd: xl2tpd[31416]: Connecting to host VPNサーバのIPアドレス, port 1701
Sep 12 21:13:22 hoge8 xl2tpd: xl2tpd[31416]: Connection established to VPNサーバのIPアドレス, 1701.  Local: 23705, Remote: 32807 (ref=0/0).
Sep 12 21:13:22 hoge8 xl2tpd: xl2tpd[31416]: Calling on tunnel 23705
Sep 12 21:13:22 hoge8 xl2tpd: xl2tpd[31416]: Call established with VPNサーバのIPアドレス, Local: 59877, Remote: 46922, Serial: 1 (ref=0/0)
Sep 12 21:13:22 hoge8 pppd[31432]: Plugin pppol2tp.so loaded.
Sep 12 21:13:22 hoge8 pppd[31432]: pppd 2.4.5 started by root, uid 0
Sep 12 21:13:22 hoge8 pppd[31432]: Using interface ppp0
Sep 12 21:13:22 hoge8 pppd[31432]: Connect: ppp0 <-->
Sep 12 21:13:22 hoge8 pppd[31432]: Overriding mtu 1500 to 1410
Sep 12 21:13:22 hoge8 pppd[31432]: Overriding mru 1500 to mtu value 1410
Sep 12 21:13:22 hoge8 NetworkManager[770]:   [1505218402.7392] manager: (ppp0): new Generic device (/org/freedesktop/NetworkManager/Devices/6)
Sep 12 21:13:22 hoge8 pppd[31432]: CHAP authentication succeeded
Sep 12 21:13:22 hoge8 pppd[31432]: not replacing existing default route via LANのデフォゲのIPアドレス
Sep 12 21:13:22 hoge8 pppd[31432]: local  IP address 172.17.x.w
Sep 12 21:13:22 hoge8 pppd[31432]: remote IP address 10.x.y.z
Sep 12 21:13:22 hoge8 pppd[31432]: primary   DNS address 10.x.y.z
Sep 12 21:15:22 hoge8 xl2tpd: xl2tpd[31416]: check_control: Received out of order control packet on tunnel 32807 (got 3, expected 4)
Sep 12 21:15:22 hoge8 xl2tpd: xl2tpd[31416]: handle_packet: bad control packet!
# ip addr
7: ppp0:  mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp 
    inet 172.17.v.w peer 10.x.y.z/32 scope global ppp0
       valid_lft forever preferred_lft forever
VPNの先(dev ppp0)のサーバへのルーティング設定。
# route add -net 10.x.y.s1 netmask 255.255.255.255 dev ppp0
# route add -net 10.x.y.s2 netmask 255.255.255.255 dev ppp0

VPN切断。

# echo "d vpn1" > /var/run/xl2tpd/l2tp-control
# ip addr
# systemctl stop xl2tpd
# systemctl stop ipsec

Win10でL2TPのVPNが動かないと思ってたらサービスのうち

  • Enterprise App Management Service
  • Remote Access Connection Manager
  • Secure Socket Tunneling Protocol Service
のRemote Access Connection Managerが無効になってたからだ。 しかしこれ、Win10なんて大したF/WもないのでVPNサーバ側からギフハフ団に遠隔操作されてしまうことも意味する。なのでWin10はボツでLinuxを経由して使うことにしよう。

Sep 13 15:30:55 hoge8 xl2tpd: xl2tpd[6025]: check_control: Received out of order control packet on tunnel 32818 (got 14, expected 15)
Sep 13 15:30:55 hoge8 xl2tpd: xl2tpd[6025]: handle_packet: bad control packet!
CentOS 6でとにかくL2TP/IPsecサーバ
# L2TP/IPsec
-A FORWARD -i ppp+ -j ACCEPT
-A FORWARD -o ppp+ -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -j ACCEPT
-A INPUT -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m udp --dport 4500 -j ACCEPT
ぐはは。なんだか不安定だなあ。ファイルをアップロードしようとすると400メガバイトくらいで接続がハングアップするw。つかえねー。

RasPiからSEILにL2TP/IPSec接続

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
これがいるとか。

Which ports for IPSEC/LT2P?

Here are the ports and protocols:

  • Protocol: UDP, port 500 (for IKE, to manage encryption keys)
  • Protocol: UDP, port 4500 (for IPSEC NAT-Traversal mode)
  • Protocol: ESP, value 50 (for IPSEC)
  • Protocol: AH, value 51 (for IPSEC)

Also, Port 1701 is used by the L2TP Server, but connections should not be allowed inbound to it from outside. There is a special firewall rule to allow only IPSEC secured traffic inbound on this port.

If using IPTABLES, and your L2TP server sits directly on the internet, then the rules you need are:

iptables -A INPUT -i $EXT_NIC -p udp --dport 500 -j ACCEPT
iptables -A INPUT -i $EXT_NIC -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -i $EXT_NIC -p 50 -j ACCEPT
iptables -A INPUT -i $EXT_NIC -p 51 -j ACCEPT
iptables -A INPUT -i $EXT_NIC -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT
え?こんなにポートを解放するの?ありえないだろw。つかWin10はなんでZEILにつながったんだ?

serverfault.com→With iptables, match packets arrived via IPSEC tunnel

You need to use the policy module, and specify the ipsec policy, to match this traffic. The following rule, for example, allows all inbound traffic to tcp port 12345. Don't forget that rule order is important in iptables, and that you may need to allow the return-half packets as well, depending on your current OUTPUT restrictions.
iptables -A INPUT -m policy --pol ipsec --dir in -p tcp --dport 12345 -j ACCEPT

gentoo linux→IPsec L2TP VPN サーバ

L2TP

2つ目の層である、第2層トンネリングプロトコル(L2TP)は、セットアップがずっと容易です。L2TP は IPsec と同様にピアツーピア(2端点間)プロトコルです。クライアント側は「L2TP アクセス集線装置」(L2TP Acccess Concentrator) すなわち LAC と呼ばれ、サーバ側は「L2TP ネットワークサーバ」(L2TP Network Server) すなわち LNS と呼ばれます。

警告
L2TP はまったく秘匿されていませんから、IPsec 接続の外ではアクセス可能にすべきではありません

iptables を使っているならば、IPsec レイヤ外の L2TP 接続をブロックするつぎのようなルールを用いましょう:

root #iptables -t filter -A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport l2tp -j ACCEPT
root #iptables -t filter -A INPUT -p udp -m udp --dport l2tp -j REJECT --reject-with icmp-port-unreachable
root #iptables -t filter -A OUTPUT -p udp -m policy --dir out --pol ipsec -m udp --sport l2tp -j ACCEPT
root #iptables -t filter -A OUTPUT -p udp -m udp --sport l2tp -j REJECT --reject-with icmp-port-unreachable

ローカルのファイアウォールが ufw だったら、ufw に対して、IPsec の認証に必要な ESP プロトコルの接続を双方向に許可し、IPsec 層以外の L2TP 接続をブロックしましょう。以下のようなファイルを用いて実現可能です:

FILE /etc/ufw/before.rules
# IPsec を通してのみ L2TP を許可
-A ufw-before-input -m policy --dir in --pol ipsec -p udp --dport l2tp -j ACCEPT
-A ufw-before-input -p udp -m udp --dport l2tp -j REJECT --reject-with icmp-port-unreachable
-A ufw-before-output -m policy --dir out --pol ipsec -p udp --sport l2tp -j ACCEPT
-A ufw-before-output -p udp -m udp --sport l2tp -j REJECT --reject-with icmp-port-unreachable
 
# IPsec の認証に ESP プロトコルを用いる
-A ufw-before-input -p esp -j ACCEPT
-A ufw-before-output -p esp -j ACCEPT

ねこぶろぐw→WindowsからL2TP/IPSecサーバに繋ぐ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent=[012]

どうやらLinuxではZEILのKVMを動かすのか。ちょーあやしいw。


ZEIL-KVMのvmware版(seilx86-573-vmware.zip)をVIrtualBoxで起動したところ。

しかしstarterkey.txtが645文字もあって長杉。キーボード設定も間違ってるので事実上打ち込めないw。
元財務省事務次官の勝栄二郎のZEIL-KVMが再び破綻w。

$ scp -r 20170914_masked_dump oracle@10.202.105.2:/home/oracle/
The authenticity of host 'x.x.x.2 (x.x.x.2)' can't be established.
RSA key fingerprint is SHA256:….
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.202.105.2' (RSA) to the list of known hosts.
oracle@x.x.x.2's password:
expdp_hgdba_masked.log                        100%   25KB 365.1KB/s   00:00
expdp_hgq_masked.log                          100% 2654   117.3KB/s   00:00
hgdba_masked.dmp                                4% 1189MB 785.7KB/s - stalled -Connection reset by x.x.x.2 port 22
lost connection

$
げ。Win10でも24Gバイトのダンプファイルを1.2Gバイトのアップロードしたとこで切れるw。Linuxの問題じゃなかったのかw。
元財務省事務次官の勝栄二郎の「切れるザイル(ZEIL)」登場w
OpenVPNだと問題なくアップロードできて、VPNの先のサーバーでダウンロードできる。 うーむ、これはもろ勝栄二郎の問題だ。

Win10のL2TP/IPSECのVPNとOpenVPNを同時に実行させると不安定になる。 なので、どこかのWindowsサーバーで動作させて、stoneで22番ポートを中継して使うのがよさげw。 Win10に侵入される危険性も減るだろうw。

Cygwinのsshdに接続してコマンドでVPN接続。

chcp.com 65001で英語にしてるw。
$ rasdial
Connected to
HOGE-VPN
Command completed successfully.

Administrator@win2k8r2 ~
$ rasdial /?
USAGE:
        C:\Windows\system32\rasdial.exe entryname [username [password|*]] [/DOMAIN:domain]
                [/PHONE:phonenumber] [/CALLBACK:callbacknumber]
                [/PHONEBOOK:phonebookfile] [/PREFIXSUFFIX]

        C:\Windows\system32\rasdial.exe [entryname] /DISCONNECT

        C:\Windows\system32\rasdial.exe

        For Online Privacy Information please refer to
        'http://go.microsoft.com/fwlink/?LinkId=104288'


Administrator@win2k8r2 ~
$ rasdial HOGE-VPN /disconnect
Command completed successfully.

Administrator@win2k8r2 ~
$ rasdial
No connections
Command completed successfully.

Administrator@win2k8r2 ~
$ rasdial HOGE-VPN hoge1 hogehoge1
HOGE-VPN に接続中...
ユーザー名とパスワードを確認中...
ネットワークにコンピューターを登録中...
HOGE-VPN に正常に接続しました。
Command completed successfully.

Administrator@win2k8r2 ~
$ rasdial
Connected to
HOGE-VPN
Command completed successfully.

Administrator@win2kr2 ~
$

この構成でおもろいとこは「xhost +」した 「stone hgrh7:22 2201&」を動作させているwin2k8R2サーバの2201ポートに対して、 Win10で「xhost +」CygwinのMATEターミナルから「ssh -Y -p 2201 oracle@win2k8R2」で接続すると、「LANG=C dbca」とかXウィンドウのGUIを使うコマンド実行が可能になるとこ。

投稿されたコメント:

コメント
コメントは無効になっています。