使用 Racoon 和 ipsec-tools 通过 IPsec VPN 连接 Debian 和 Windows

使用 Racoon 和 ipsec-tools 通过 IPsec VPN 连接 Debian 和 Windows

我在 Debian 服务器 (6 squeeze) 上的 IPsec 配置方面遇到了一些问题。此服务器应通过 IPsec VPN 连接到受防火墙保护的 Windows 服务器。我使用了 racoon 和 ipsec-tools 以及本教程http://wiki.debian.org/IPsec

但是,我不太确定本教程是否适合我的目的,因为存在一些差异:

  • 我的主机和网关是同一台服务器。所以我没有两个不同的 IP 地址。我想这不是问题
  • 另一台服务器是防火墙后面的 Windows 系统。希望不是问题
  • Windows 系统的子网是 /32 而不是 /24。所以我将其更改为 /32。

我一步一步地完成了教程,但无法路由 IP。以下命令对我不起作用:

ip 路由通过 XXX.XXX.XXX.XXX src XXX.XXX.XXX.XXX 添加到 172.16.128.100/32

因此我尝试了以下方法:

ip route add to 172.16.128.100..,这显然没有解决问题。

下一个问题是压缩。Windows 不使用压缩,但“compression_algorithm none;”不适用于我的 racoon。因此当前值为“compression_algorithm deflate;”

所以我现在的结果如下:

当我尝试 ping Windows 主机(ping 172.16.128.100)时,我收到来自 ping 的以下错误消息:

ping:sendmsg:操作不允许

浣熊日志:

racoon:错误:无法获取 sainfo。

在谷歌搜索了一段时间后,我没有得出任何结论,解决方案是什么。这个错误消息是否意味着 IPsec 的第一阶段有效?

我非常感谢您的建议。

我想我的配置可能会有帮助。

我的 racoon.conf 如下所示:

路径 pre_shared_key "/etc/racoon/psk.txt";

远程 YYY.YYY.YYY.YYY {

    exchange_mode main;
    proposal {
            lifetime time 8 hour;
            encryption_algorithm 3des;
            hash_algorithm sha1;
            authentication_method pre_shared_key;
            dh_group 2;
    }

}

sainfo 地址 XXX.XXX.XXX.XXX/32 任何地址 172.16.128.100/32 任何 {

    pfs_group 2;
    lifetime time 8 hour;
    encryption_algorithm aes 256;
    authentication_algorithm hmac_sha1;
    compression_algorithm deflate;

}

我的 ipsec-tools.conf 如下所示:

冲洗;

spdflush;

spdadd XXX.XXX.XXX.XXX/32 172.16.128.100/32 任何 -P 出 ipsec esp/tunnel/XXX.XXX.XXX.XXX-YYY.YYY.YYY.YYY/require;

spdadd 172.16.128.100/32 XXX.XXX.XXX.XXX/32 任何 -P 在 ipsec esp/tunnel/YYY.YYY.YYY.YYY-XXX.XXX.XXX.XXX/require 中;

如果有人能给出建议那就太好了。

提前致谢。

问候,迈克尔


这是一个简单的 IP 地址复制粘贴错误。

答案1

OpenVPN 不是更合适吗?OpenVPN 配置起来非常简单。这里有一个示例配置和一些链接,可指导您完成证书创建过程。

只需将中介配置为主人,客人就可以拨入并仍然可以相互通信。

apt-get install openvpn
mkdir /etc/openvpn/easy-rsa
mkdir -p /etc/openvpn/ccd/client_server
touch /etc/openvpn/ipp.txt
cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca 
./build-key-server server
./build-dh
cd /etc/openvpn/easy-rsa/keys
openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt -certfile ca.crt

然后创建一个新文件/etc/openvpn/client_server.conf并将以下内容放入其中,SERVER_IP_ADDRESS根据需要更改

local SERVER_IP_ADDRESS
port 8443
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
pkcs12 /etc/openvpn/easy-rsa/keys/server.p12
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
ifconfig-pool-persist /etc/openvpn/ipp.txt
server 192.168.100.0 255.255.255.0
client-config-dir /etc/openvpn/ccd/client_server
ccd-exclusive
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
reneg-sec 0
client-to-client

然后为每个要连接的用户构建一个密钥,并在 ccd 目录中创建配置文件

./build-key-pkcs12 [email protected]
echo "ifconfig-push 192.168.100.2 255.255.255.0" > /etc/openvpn/ccd/client_server/[email protected]

IP 地址必须适合 /30 子网(请参阅http://www.subnet-calculator.com/cidr.php),因为每个连接只有 2 个可用地址(服务器和客户端)。因此,您的下一个可用客户端 IP 将是 192.168.100.6,依此类推。

这样,每个连接用户现在都有静态 IP。

然后将文件提供给最终用户并使用以下配置文件the [email protected]

client
dev tun
proto udp
remote SERVER_IP_ADDRESS 8443
pkcs12 [email protected]
resolv-retry infinite
nobind
ns-cert-type server
comp-lzo
verb 3
reneg-sec 0

相关内容