UBUNTU 双网卡VPN建设方案

来源:互联网 发布:vcf文件编辑软件 编辑:程序博客网 时间:2024/04/30 11:03

http://blog.163.com/yqm_80/blog/static/703384622010551556104/

UBUNTU 双网卡VPN建设方案 

一、需求:
有两个独立的网络A与网络B,分别在不同的网段内。一般情况下两个网段要求物理隔离,有数据访问需求时再通过安全方式互联。
二、实际环境:
网络A:
使用10.45.56.0/24网段,通过10.45.56.254地址的本地网关与上一级的网关相连接,除了在本网段互联以外,还可以连接到10.45.0.0/24网段,并通过上级网关访问互联网,但是出口带宽较窄;建有DHCP服务器;
网络B:
使用192.168.10.0/24网段,通过192.168.10.1地址的本地网关访问互联网,出口带宽较高;建有DHCP服务器;
服务器:双网卡的IBM3650;
三、分析:
由于两个网络平时需要物理隔离,有数据访问需求时再互联,于是考虑将IBM服务器的一张网卡绑定在A网段,另一张绑定在B网段,通过配置VPN服务的方式实现按需求连接。
四、实施过程:
配置服务器网卡地址:
sudo nano /etc/network/interfaces;
{
auto eth0
iface eth0 inet static
address 192.168.10.6
netmask 255.255.255.0
gateway 192.168.10.1
 
auto eth1
iface eth1 inet static
address 10.45.56.6
netmask 255.255.255.0
}

安装 VPN 服务端软件(以PPTP举例):
sudo apt-get install pptpd;

配置 PPTPD:
a. 配置IP地址设置:
sudo nano /etc/pptpd.conf;
找到被注释的localip和remoteip选项(一般在文件最后面5行),取消注释并修改;或者将文件内容清空后将以下内容复制进文件;
{
localip 192.168.7.1
remoteip 192.168.7.2-20
}
b.配置DNS服务器地址:
sudo nano /etc/ppp/pptpd-options;
找到被注释的localip和remoteip选项(一般在文件最后面5行),取消注释并修改;或者将文件内容清空后将以下内容复制进文件;
{
ms-dns 202.103.224.68
ms-dns 202.103.225.68
}
c.配置VPN拨号的用户名及密码:
sudo nano /etc/ppp/chap-secrets;
在文件中加入以下内容
{
usrname pptpd usrpwd *
}
以上的usrname是登录VPN服务器的用户名,pptpd是默认服务名称,usrpwd是登录密码,*表示不限制该用户拨入IP;它们之间用空格隔开;

安装iptables:
sudo apt-get install iptables;
配置iptables:
a.开启ipv4 forward
sudo nano /etc/sysctl.conf;
找到“net.ipv4.ip_forward=1”,将其前面的注释符去掉;
b.使配置生效
sudo sysctl -p;

将NAT写入配置文件中:
sudo nano /etc/rc.local;
{
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A FORWARD -p -tcp --syn -s 192.168.7.0/24 -j TCPMSS --set-mss 1156
}
将NAT写入配置文件后,服务器重启后配置仍然有效;

重启服务器,使配置生效;

完成以上工作后,我们就可以建立VPN拨号连接了:
新建一个VPN连接,拨号的主机IP地址为10.45.56.6,用户名为前面设置的usrname,密码为usrpwd,域选项留空不填;
拨号连接,然后尝试PING 192.168.7.1 / 192.168.10.16 / 192.168.10.1 这三个地址,都能PING通的话,就说明VPN服务器可以正常工作了;
经过以上设置,10.45.56.0/24网段的计算机可以通过VPN拨号接入到192.168.10.0/24网段,并通过192.168.10.1的网关访问互联网;如果VPN拨入192.168.10.0/24网段后无法通过192.168.10.1的网关访问互联网,请检查VPN客户端的PPP拨号连接的网关是不是它获得的IP地址。

如果需要从公网拨入VPN服务器并访问网络A的资源,可以通过调整以下设置来实现:

一、在网络B的路由器上设置端口转发,将1723端口映射到192.168.10.6上;

二、在“interfaces”配置文件中给eth1添加静态路由;
{
auto eth1
iface eth1 inet static
address 10.45.56.6
netmask 255.255.255.0
up route add -net 10.45.0.0/24 gw 10.45.56.254
down route del -net 10.45.0.0/24 gw 10.45.56.254
up route add -net 10.45.56.0/24 gw 10.45.56.254
down route del -net 10.45.56.0/24 gw 10.45.56.254
}

三、修改VPN服务器内置DNS地址,将其配置为网络A的内部DNS地址;
sudo nano /etc/ppp/pptpd-options;
{
ms-dns 10.45.0.7
}

四、修改rc.local配置文件中的NAT设置,修改后记得重启生效;(todo, 可以通过iptables-restore命令)
sudo nano /etc/rc.local;
{
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A FORWARD -p -tcp --syn -s 192.168.7.0/24 -j TCPMSS --set-mss 1156
}

五、安装花生壳或DDNS等类似软件,将网络B访问互联网的公网地址与申请域名捆绑,例如“EXAMPLE.VICP.NET”;

六、新建一个VPN连接,拨号的主机IP地址为“EXAMPLE.VICP.NET”,用户名为前面设置的usrname,密码为usrpwd,域选项留空不填;
将VPN客户机接上公网并拨号连接,然后尝试PING 192.168.7.1 / 10.45.56.6 / 10.45.56.254 / 10.45.0.X 这四个地址,都能PING通的话,就说明VPN服务器可以正常工作了。
VPN拨号常见问题:
734错误:在VPN连接属性的“安全”选项下,将“数字加密”设置为“可选加密”,并勾选“PAP”选项;
800错误:检查网络B路由器的端口转发设置是否正确,检查“EXAMPLE.VICP.NET”是否捆绑到正确的公网地址上;
原创粉丝点击