需求很简单,在一台多IP的服务器上配置PPTP VPN,使用哪个IP连就显示哪个IP。
步骤如下:
1、安装pptpd
debian和ubuntu安装:
apt-get -y install pptpd
centos、redhat安装:
yum install pptpd
2、去除默认pptpd的开机自动启动
debian和ubuntu系统:
update-rc.d -f pptpd remove
centos、redhat系统:
chkconfig pptpd off
关闭默认pptpd服务
3、修改配置
修改配置文件 /etc/pptpd.conf,添加如下内容。
命令:
cat >>/etc/pptpd.conf<<EOF localip 10.10.10.1 remoteip 10.10.10.2-254 EOF
修改配置文件 /etc/ppp/pptpd-options,添加如下内容。
命令:
cp /etc/ppp/pptpd-options /etc/ppp/pptpd-options.old cat >/etc/ppp/pptpd-options<<EOF name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 ms-dns 223.5.5.5 ms-dns 114.114.114.114 proxyarp debug dump lock nobsdcomp novj novjccomp logfile /var/log/pptpd.log EOF
修改配置/etc/ppp/chap-secrets,添加如下内容。这个配置文件保存的是pptp的用户名和密码。
命令:
cat >>/etc/ppp/chap-secrets<<EOF test pptpd 123456 * EOF
命令:
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf sysctl -p
4、默认iptables规则添加
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT iptables -A INPUT -p gre -j ACCEPT
5、多IP配置和iptables规则添加
假设3个IP,分别是1.1.1.1,2.2.2.2,3.3.3.3
cp /etc/pptpd.conf /etc/pptpd1.conf cp /etc/pptpd.conf /etc/pptpd2.conf cp /etc/pptpd.conf /etc/pptpd3.conf
假设pptpd1、pptpd2和pptpd3配置文件中虚拟IP段分别为:10.10.10.0/24,10.10.11.0/24,10.10.12.0/24
也就是类似这个配置:
localip 10.10.10.1 remoteip 10.10.10.2-254
iptables规则添加
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source 1.1.1.1 iptables -A FORWARD -s 10.10.10.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200 iptables -t nat -A POSTROUTING -s 10.10.11.0/24 -j SNAT --to-source 2.2.2.2 iptables -A FORWARD -s 10.10.11.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200 iptables -t nat -A POSTROUTING -s 10.10.12.0/24 -j SNAT --to-source 3.3.3.3 iptables -A FORWARD -s 10.10.12.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200
保存iptables规则
6、启动pptp程序
/usr/sbin/pptpd -l 1.1.1.1 -c /etc/pptpd1.conf /usr/sbin/pptpd -l 2.2.2.2 -c /etc/pptpd2.conf /usr/sbin/pptpd -l 3.3.3.3 -c /etc/pptpd3.conf
添加开机自动启动,可以直接把上面3个命令加到/etc/rc.local中即可。