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