Sunday, February 15, 2015

pptp VPN 配置

pptp VPN 可能是最简单的一种支持远程接入的 VPN 方式了,大部分 Linux 发行版都很容易进行配置支持。
Windows 则自带 pptp 客户端。

服务端安装配置

安装

$ sudo apt-get install pptpd

配置隧道网段

pptp 服务配置文件在 /etc/pptpd.conf,可以修改里面的隧道使用的 IP 子网和针对 Windows 客户端的 DNS 设置。
localip 192.168.0.1
remoteip 192.168.0.100-200
ms-dns 8.8.8.8
ms-dns 8.8.4.4

添加用户

修改 /etc/ppp/chap-secrets 文件。
# client        server  secret                  IP addresses
user1 pptpd password1 *
最后重启 pptpd 服务即可。

配置 iptables 规则

pptpd 是基于 GRE 的封包,因此要开启目的端口 1723 访问,并允许 GRE 协议。
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT 
上面是允许客户端经过封装访问到服务端,服务端还得把这些流量帮忙转发出去,不然客户端没法访问网络了。 一个是让系统开启转发功能。
sysctl -w net.ipv4.ip_forward=1
通过 iptables 配置 NAT,让私有网可以正常访问外网(如果只是内部私有网访问,则只需要配置正确路由即可)。
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
最后,为了避免隧道路径上的分片影响性能,调整 TCP 的 MSS 小一些。
iptables -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j TCPMSS --set-mss 1356

参考

  • https://help.ubuntu.com/community/PPTPServer

No comments:

Post a Comment