归档文章 (2011-2017)

date
2011/03/19
VPN 也叫虚拟专用网,常见的 VPN 类型有:点对点隧道协议(PPTP)、使用 IPsec 的第2层隧道协议(L2TP/IPsec)、安全套接字隧道协议(SSL VPN)。其中 PPTP 是安装使用最为简便的一种。
在开始前建议你先阅读以下3篇文章,特别是有关路由方面的知识: 详解IPv4地址子网划分及子网掩码计算方法理解Windws中的路由表

一、安装 pptpd

不建议编译安装,没有多大意义,得不偿失。
apt-get -y update apt-get -y install pptpd

二、编辑 pptpd.conf

localip 是 VPN 服务器 IP,可任意指定。 remoteip 是可分配给 vpn 客户端 IP。 为避免冲突,localip、remoteip 最好不要与服务器当前内网或经常拨入的客户端内网地址在同一网段。
cat >>/etc/pptpd.conf<<EOF localip 10.10.10.1 remoteip 10.10.10.2-254 EOF

三、编辑 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 8.8.8.8 ms-dns 8.8.4.4 proxyarp debug dump lock nobsdcomp novj novjccomp logfile /var/log/pptpd.log EOF
name pptpd(pptpd服务名,可以随便填写。) refuse-pap(拒绝pap身份认证模式。) refuse-chap(拒绝chap身份认证模式。) refuse-mschap(拒绝mschap身份认证模式。) require-mschap-v2(在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。) require-mppe-128(MPPE 模块使用 128 位加密。) ms-dns 8.8.8.8 (ppp 为 Windows 客户端提供 DNS 服务器 IP 地址。) proxyarp (建立 ARP 代理键值。) nodefaultroute(不替换默认路由) debug(开启调试模式,相关信息记录在 /var/logs/message 中。) lock(锁定客户端 PTY 设备文件。) nobsdcomp (禁用 BSD 压缩模式。)

四、添加 VPN 用户

chap-secrets 文件为4段,分别是:用户名、服务器名称、密码、分配给客户端的IP。 服务器名可以是pptpd或今后的l2tpd,号代表全部。 密码以明文填写,不需进行加密。 最后的号代表从remoteip指定的IP段随机分配
cat >>/etc/ppp/chap-secrets<<EOF test * test * EOF

五、配置iptables规则

ipv4转发,否则连接VPN后,只能访问服务器资源,而不能访问这台服务器以外的资源。
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf sysctl -p
备份当前iptables规则。
iptables-save > /etc/iptables.down.rules
设置 iptables NAT 转发
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
设置 MTU (选做)
iptables -I FORWARD -s 10.0.0.0/8 -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1300
保存新的 iptables 的规则,以便重启后继续有效。
iptables-save > /etc/iptables.up.rules
cat >>/etc/ppp/pptpd-options<<EOF pre-up iptables-restore < /etc/iptables.up.rules post-down iptables-restore < /etc/iptables.down.rules EOF

六、重启pptpd服务

/etc/init.d/pptpd restart netstat -lntp
补充:PPTPD 自动安装脚本
wget -c http://small-script.googlecode.com/files/debian-pptpd.tar.gz tar -zxf debian-pptpd.tar.gz ./pptpd.sh
最后更新:2011.08.16
If you have any questions, please contact me.