![Debian 10 上基于 IPSec 的 L2TP](https://linux22.com/image/183195/Debian%2010%20%E4%B8%8A%E5%9F%BA%E4%BA%8E%20IPSec%20%E7%9A%84%20L2TP.png)
我的 Debian 10 机器有一个 Wifi 接口,wlx08beac0a6c1d
为不支持 WPA 的旧硬件运行 WEP AP。
我的主网络是192.168.1.0/24
,该接口配置为192.168.2.1
。
对于初学者来说,该接口仅限于一个 MAC,并且仅允许该网络上的 DHCP
iptables -A INPUT -i wlx08beac0a6c1d -m mac ! --mac-source 00:30:65:05:9F:4D -j DROP
iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -j DROP
(MAC 检查也存在hostapd.conf
——当然,它同样是无效的安全措施(尽管它在什罗普郡可能相当有效)。)
该设备(声称)支持 IPSec 上的 L2TP。我想,通过为此打开另一个端口,我可以让这台旧机器通过到该端口的隧道加入我的网络的其余部分,并且一旦连接,旧机器就会看起来就像在我的网络上一样。
是这样吗?还是我搞错了方向?现在在 WEP 网络上安全吗?
看起来需要的包是strongswan
和xl2tpd
?
看起来 IPSec 将加密 WEP 网络上的流量,并且我需要打开更多端口以允许协商和启动加密?
那么看起来 L2TP 将建立一个连接(PPP 连接)到 Debian 上的另一个端口,并通过它路由所有流量?那么旧机器会为此 PPP 连接获得第二个 IP 地址吗?它将如何出现在 Debian 中(并且可以在我的网络的其余部分和互联网之间路由)?
所以:首先是strongswan
...
# apt-get install strongswan
现在我真的不明白该怎么办。我已经按照这里所说的做了
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-18-04-2
并最终得到这个ipsec.conf
config setup
charondebug="ike 1, knl 1, cfg 0"
uniqueids=no
conn wep-vpn
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
leftid=192.168.2.31
leftcert=server-cert.pem
leftsendcert=always
leftsubnet=0.0.0.0/
right=%any
rightid=%any
rightauth=eap-mschapv2
rightsourceip=192.168.2.0/24
rightdns=192.168.2.31
rightsendcert=never
eap_identity=%identity
我觉得左边如果你将其解释为是正确的这机器,但不确定正确的这大概是一些其他事物?
然后它继续做一些叫做超细纤维束但我正在使用iptables
.我想我需要
iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 500 -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 4500 -j ACCEPT
允许连接到 IPsec。
那么技巧的下一部分是xl2tpd
......
# apt-get install xl2tpd
/etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = yes
access control = no
[lns default]
ip range = 192.168.3.100-192.168.3.254
local ip = 192.168.3.1
refuse chap = yes
refuse pap = yes
require authentication = yes
pppoptfile = /etc/ppp/xl2tpd-options
length bit = yes
/etc/ppp/xl2tpd-options
require-mschap-v2
ms-dns 192.168.3.1
添加/etc/ppp/chap-secrets
和
iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 1701 -j ACCEPT
显然,这是行不通的。
答案1
/etc/ipsec.conf
config setup
conn wep-ap
type=transport
authby=secret
pfs=no
rekey=no
keyingtries=1
left=%any
leftid=%any
right=%any
auto=add
esp=aes128-sha1-modp1536
ike=aes128-sha1-modp1536
include /var/lib/strongswan/ipsec.conf.inc
esp
问题:你如何计算出和 的值ike
是什么?它们的格式与ipsec.conf
出现的格式不同/var/log/syslog
——非常无益。
/etc/strongswan.conf
Charon { 插件 { eap_dynamic { 首选 = eap-mschapv2, eap-tls } } }
/etc/ipsec.secrets
%any %any : PSK "password"
/etc/ppp/chap-secrets
laptop * password *
/etc/ppp/options.xl2tpd
noccp
auth
mtu 1410
mru 1410
nodefaultroute
proxyarp
silent
debug
ms-dns 192.168.3.31
/etc/xl2tpd/xl2tpd.conf
[global] ; Global parameters:
port = 1701 ; * Bind to port 1701
debug avp = yes
debug network = yes
debug packet = yes
debug state = yes
debug tunnel = yes
auth file = /etc/xl2tpc/l2tp-secrets
access control = no
[lns default] ; Our fallthrough LNS definition
ip range = 192.168.3.100-192.168.3.254 ; * But this one is okay
local ip = 192.168.3.31 ; * Our local IP to use
name = mini31 ; * Report this as our hostname
pppoptfile = /etc/ppp/options.xl2tpd
ppp debug = yes
require authentication = yes
require chap = yes
refuse pap = yes
然而这仍然行不通。您可以看到/var/log/syslog
IPSec 已连接,但 L2TP 失败并提示
...
xl2tpd[27668]: network_thread: select timeout with max retries: 5 for tunnel: 28160
xl2tpd[27668]: Maximum retries exceeded for tunnel 28160. Closing.
xl2tpd[27668]: Connection 4 closed to 192.168.1.11, port 1701 (Timeout)
...
答案2
刚刚在 Raspberry Pi 上重新安装后重现,并且成功了!
我最终发现,在 Raspberry 上有很多文件,/etc/strongswan.d/charon
但在 Debian 上没有。将这些文件从 Raspberry 复制到 Debian 就可以正常工作了!