![使用 Racoon 和 ipsec-tools 通过 IPsec VPN 连接 Debian 和 Windows](https://linux22.com/image/590496/%E4%BD%BF%E7%94%A8%20Racoon%20%E5%92%8C%20ipsec-tools%20%E9%80%9A%E8%BF%87%20IPsec%20VPN%20%E8%BF%9E%E6%8E%A5%20Debian%20%E5%92%8C%20Windows.png)
我在 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