网管经验谈:命令行下配置CIPE VPN
2. 配置客户的 CIPE
成功地配置了 CIPE 服务器并测试了它的功能后,你现在就可以在客户机器上使用这种连接了。CIPE 客户应该能够自动地连接和断开 CIPE 连接。因此,CIPE 包含内建的机制来为个别使用自定设置。例如,远程用户可以通过键入以下命令来连接到 LAN 上的 CIPE 设备:
/sbin/ifup cipcb0
设备应该自动出现;防火墙规则和选路信息也应该和连接一起配置。远程职员应该能够使用以下命令来终止连接:
/sbin/ifdown cipcb0
配置客户需要创建在设备被载入后需运行的脚本。服务配置本身可以通过用户创建的文件 /etc/sysconfig/network-scripts/ifcfg-cipcb0 来本地配置。这个文件中包含一些参数,如判定 CIPE 连接是否在引导时发生的参数;代表 CIPE 设备名称的参数等。以下是一个连接到 CIPE 服务器的远程客户的 ifcfg-cipcb0 文件:
DEVICE=cipcb0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
PEERROUTEDEV=
DNS=192.168.1.254
CIPE 设备的名称是 cipcb0。CIPE 设备将会在引导时间被载入(通过 ONBOOT 字段配置),而且将不会使用一种引导协议(如 DHCP)来接收该设备的 IP 地址。PEERROUTEDEV 字段决定连接到客户的 CIPE 服务器设备名称。如果这个字段中没有指定任何设备,在设备被载入后就会为它决定一个。 如果你的内部网络是在防火墙背后,你需要设置规则来允许客户机器上的 CIPE 接口发送和接收 UDP 分组。我们这个配置例子中使用了 iptables 规则。客户机器上的防火墙应该被配置接受 CIPE UDP 封装分组。规则的差距可能会很大,但是对 UDP 分组的基本接受对于 CIPE 连接来说却是必需的。以下的 iptables 规则允许连接到 LAN 上的远程客户机器进行 UDP CIPE 传输;最后一条规则添加了 IP 伪装来允许远程客户与 LAN 和互联网通信。
/sbin/modprobe iptables
/sbin/service iptables stop
/sbin/iptables -P INPUT DROP
/sbin/iptables -F INPUT
/sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.1
/sbin/iptables -A INPUT -j ACCEPT -i cipcb0
/sbin/iptables -A INPUT -j ACCEPT -i lo
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
客户端需要添加以下内容:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.1.2
表-2详细描述了一些运行 ciped 守护进程时的命令行参数。
|
参数 |
描述 |
|
arg |
把参数传递给 /etc/cipe/ip-up 初始脚本 |
|
cttl |
设置载体生存时间值(TTL);推荐的值是64 |
|
debug |
启用调试的布尔值 |
|
device |
给 CIPE 设备命名 |
|
ipaddr |
CIPE 机器的可公开选路的 IP 地址 |
|
ipdown |
选择另一个 ip-down 脚本,而不是默认的 /etc/cipe/ip-down |
|
ipup |
选择另一个 ip-up 脚本,而不是默认的 /etc/cipe/ip-up |
|
key |
为 CIPE 连接指定一个共享静态密钥 |
|
maxerr |
在 CIPE 守护进程退出前允许的错误数量 |
|
me |
CIPE 机器的 UDP 地址 |
|
mtu |
设置设备的最大传输单位 |
|
nokey |
不使用加密 |
|
peer |
对端的 CIPE UDP 地址 |
|
ping |
设置 CIPE 特有的(非 ICMP)保持活跃 ping 间隔 |
|
socks |
用于代理连接的 SOCKS 服务器的 IP 地址和端口号码 |
|
tokey |
设置动态钥匙的活跃时间;默认为10分钟(600秒) |
|
tokxc |
共享钥匙互换的超时值;默认为10秒钟 |
|
tokxts |
共享钥匙互换时间戳的超时值;默认为0(无时间戳) |
|
toping |
保存活跃 ping 的超时值;默认为0 |