我试图设置ipsec,但是冥王星似乎没有绑定到公共IP和IPsec内核需要更新。
这就是我到目前为止想出的:-IPSec验证我的内核不支持IPsec的状态
-我已经让VPS提供者在主机上的openvz环境中启用了IPSec,但是他们说我必须重新构建内核,并为我提供了一个连接到linux内核存档站点的通用linux内核。
-我试过构建内核并安装它,但我似乎无法让它正确安装。最后一步是'mkinitramfs -o initrd.img-3.16.3 3.16.3‘。
-tutorials状态使用grub,但是我在VPS上,不认为grub甚至在我的VPS映像上?我遵循的一个教程是:http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html
-I已经放弃了从源代码构建,并找到了*.deb内核包并尝试安装它们,它们似乎解包,没有错误来自它,但当我重新启动它仍然是旧的内核,有一个特殊的命令,您使用dpkg-buildpackage让它安装吗?因为它是一个VPS,所以没有启动加载程序而导致安装问题吗?(假设容器不包含引导加载程序?)
这是我的ipsec输出,但我认为问题的一部分是内核:
Sep 18 04:36:45 shiftmy ipsec_setup: Starting Openswan IPsec 2.6.41...
Sep 18 04:36:45 shiftmy ipsec_setup: Using NETKEY(XFRM) stack
Sep 18 04:36:45 shiftmy ipsec_setup: multiple ip addresses, using 127.0.0.2 on venet0
Sep 18 04:36:45 shiftmy ipsec_setup: ...Openswan IPsec started
Sep 18 04:36:45 shiftmy ipsec__plutorun: adjusting ipsec.d to /etc/ipsec.d
Sep 18 04:36:45 shiftmy pluto: adjusting ipsec.d to /etc/ipsec.d
Sep 18 04:36:45 shiftmy ipsec__plutorun: 002 added connection description "L2TP-PSK-noNAT"
Sep 18 04:36:45 shiftmy ipsec__plutorun: 003 no public interfaces found这里是我的接口文件,我在某个地方看到ipsec绑定到接口列表中第一个默认接口的地方。在本例中,venet0 127.0.0.2当公共IP处于venet0 0:0 107.161.xx.xx (不确定这是否是问题所在)时,我的VPS提供程序接口文件被锁定,因此我无法修改该部分,我相信所有通信量都从107.161.xx.xx到连接到openvz主机的AK网关的127.0.0.2。
root@shiftmy:/etc/network# cat /etc/network/interfaces
# This configuration file is auto-generated.
#
# WARNING: Do not edit this file, your changes will be lost.
# Please create/edit /etc/network/interfaces.head and
# /etc/network/interfaces.tail instead, their contents will be
# inserted at the beginning and at the end of this file, respectively.
#
# NOTE: it is NOT guaranteed that the contents of /etc/network/interfaces.tail
# will be at the very end of this file.
#
# Auto generated lo interface
auto lo
iface lo inet loopback
# Auto generated venet0 interface
auto venet0
iface venet0 inet manual
up ifconfig venet0 up
up ifconfig venet0 127.0.0.2
up route add default dev venet0
down route del default dev venet0
down ifconfig venet0 down
iface venet0 inet6 manual
up route -A inet6 add default dev venet0
down route -A inet6 del default dev venet0
auto venet0:0
iface venet0:0 inet static
address 107.161.xx.xx
netmask 255.255.255.255我一直在网上搜索"ipsec__plutorun: 003没有找到公共接口“的问题,也找不到多少帮助。不确定这是否是真正的问题,因为我相信我设置的接口是正确的。
ipsec验证也失败:
Version check and ipsec on-path [OK]
Openswan U2.6.41/K(no kernel code presently loaded)
See `ipsec --copyright' for copyright information.
Checking for IPsec support in kernel [FAILED]
The ipsec service should be started before running 'ipsec verify'
Hardware random device check [N/A]
Two or more interfaces found, checking IP forwarding [OK]
Checking rp_filter [ENABLED]
/proc/sys/net/ipv4/conf/all/rp_filter [ENABLED]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [FAILED]
Pluto listening for IKE on tcp 500 [NOT IMPLEMENTED]
Pluto listening for IKE/NAT-T on udp 4500 [DISABLED]
Pluto listening for IKE/NAT-T on tcp 4500 [NOT IMPLEMENTED]
Pluto listening for IKE on tcp 10000 (cisco) [NOT IMPLEMENTED]
Checking NAT and MASQUERADEing [TEST INCOMPLETE]
Checking 'ip' command [OK]
Checking 'iptables' command [OK]
ipsec verify: encountered errors我已经读过,如果ipsec没有正确启动,并且在检查表的某些部分显示错误故障,它可能会失败。IPsec似乎在“运行”,我不确定内核支持是否真的不存在,或者这是否是一个错误的失败?也不知道如何修复冥王星的故障。
我遵循了各种指南,似乎无法解决这一问题。
ipsec配置:
root@shiftmy:/etc/network# cat /etc/ipsec.conf
version 2.0 # conforms to second version of ipsec.conf specification
config setup
interfaces=%defaultroute
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10
oe=off
protostack=auto
protostack=netkey
force_keepalive=yes
keep_alive=60
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
ikelifetime=8h
keylife=1h
ike=aes256-sha1;modp1024!
phase2alg=aes256-sha1;modp1024
type=transport
left=107.161.xx.xx
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
dpddelay=10
dpdtimeout=20
dpdaction=clearipsec秘密:
root@shiftmy:/etc/network# cat /etc/ipsec.secrets
107.161.xx.xx %any: PSK "<key here>"
#include /var/lib/openswan/ipsec.secrets.inc发布于 2014-09-19 23:02:40
最终的答案是,openVZ VPS提供者必须有一个支持ipsec的内核,并且必须在主机上启用ipsec模块。我们的一些供应商不会这么做,因为这对主机来说是一个很大的改变。相反,我们发现我们的所有提供者都支持openvpn协议,并且我们在所有openvz VPS上都启用了“tun”。
发布于 2016-03-15 20:56:52
我遇到了一个类似的问题,试图让openswan/ipsec/pluto在一个Docker容器中工作。使用完全相同的基本配置,它可以在VirtualBox Ubuntu14.04虚拟机上工作。
我遇到的问题是在我的主机Arch机器上运行一个带有Docker的Ubuntu14.04映像。
我相信问题的实质是这条线:
pluto[439]: no public interfaces found要真正深入研究这个问题,我必须访问源代码:
apt-get source openswan它可以追溯到这里的源代码:
openswan-2.6.38/programs/pluto/server.c:462:find_ifaces(void)
openswan-2.6.38/programs/pluto/sysdep_bsd.c:201: find_raw_ifaces4(void)
openswan-2.6.38/programs/pluto/server.c:477:loglog(RC_LOG_SERIOUS, "no public interfaces found");而在VirtualBox Ubuntu14.04上,它可以找到eth0及其地址。
在本质上,可能是这段代码没有返回任何接口:
openswan-2.6.38/programs/pluto/sysdep_bsd.c:243: find_raw_ifaces4() : if (ioctl(master_sock, SIOCGIFCONF, &ifconf) == -1)因此,为了解决这个问题,我发现Docker限制了对网络设备的访问(默认情况下它创建了到主机的桥梁)和加载/卸载内核模块(ipsec加载和卸载内核模块)。因此,我不得不允许Docker访问所有东西,包括使用我的主机的原始网络接口:
docker run --cap-add=ALL --net=host -it ubuntu /bin/bash尽管这不是一个完整的问题的答案,希望它将引导其他人找到他们自己的配置的问题所在。理想情况下,冥王星将提供更多信息,说明它发现了哪些网络设备,以及另一个设备不合适的原因(即不公开)。
https://unix.stackexchange.com/questions/156139
复制相似问题