Setup PPTP and DNS server
PPTP (Point to Point Tunneling Protocol) 点对点隧道协议,与PPPoE, L2TP 均属于 PPP(Point to Point Protocol) 点对点协议。这篇来记录下PPTP server的安装和配置过程。
install DHCP server
除了PPPoE外,PPTP 与 L2TP 都无法直接给client分配IP,需要使用dhcp server分配。所以在安装PPTP的同时,也要保证DHCP server也已安装。具体方法参考 Setup dhcpd/dhcpdv6 server.
需要注意的是,在Ubuntu 20.10 版本中,网卡的静态IP管理模式与以往有所不同。在以往版本中,是修改 /etc/network/interfaces 文件,但是在最新Ubuntu确不一样,最新版提出了一个叫 netplan 的概念,修改的文件是:
- /etc/netplan/01-network-manager-all.yaml
以 yaml 文件存储配置信息,我们将配置dhcp 对应接口的静态IP为 10.0.0.138/24, 对应配置文件内容如下:
1 | |
其中 enp0s8 为 interface 名称,从 ifconfig 可以获得。让该配置生效的方式为:
1 | |
重新执行 ifconfig 查看已生效的静态IP.
install PPTP server
PPTP Server 的安装其实很简单,就一个指令。
1 | |
对 pptpd 的操作与大多数服务一样。
1 | |
主要是配置稍微复杂些,某些配置与PPPoE, L2TP是共用的,比如密码信息等。
common config
PPPoE, PPTP, L2TP 共用以下文件
- /etc/ppp/chap-secrets
- /etc/ppp/options
其中 /etc/ppp/chap-secrets 用于存储密码信息。
1 | |
以上 "test123" 为PPTP拨号时的用户名, "123456" 为拨号密码。可以添加多行,代表多个账户。
/etc/ppp/options也是共用的,是大部分常用配置的基地。我们通常只需要修改以下部分参数。
1 | |
以上配置主要是使能密码认证,并启用echo包监听client状态,在无消息响应情况下自动断开连接。
pptpd config
针对pptp server也有对应的特定配置文件,
- /etc/ppp/pptpd-options
- /etc/pptpd.conf
/etc/ppp/pptpd-options 文件内容较多,但基本不需要修改,只需要添加dns信息即可
1 | |
/etc/pptpd.conf 文件是配置IP网段的,pptp拨号成功后,会在特定interface (如ppp0) 分配IP,通常是192.168.*网段。
配置该文件时,只需要在文件末尾添加以下信息即可:
1 | |
localip 代表本地IP,用于与 remote client 通信,remoteip 自然就是需要拨号上网的client对应ip了。
到此就基本配置完成了。
install DNS server
想要 PPTP server 完全正常工作,除了dhcp server和以上配置外,还少不了 DNS server 提供 DNS 解析服务。
安装同样很简单,一步到位。
1 | |
操作与 pptpd 类似,
1 | |
config dnsmasq
dns server 的配置文件主要有:
- /etc/dnsmasq.conf
- /etc/default/dnsmasq
- /etc/dnsmasq/dnsmasq.resolv
- /etc/dnsmasq/dnsmasq.hosts
第 3,4 个是自己手动创建的,也不是必须的,但是创建后更方便管理。
以上配置文件中,/etc/dnsmasq.conf是基础,主要用于指定 resolv 和 hosts 文件, 以及监听地址。
1 | |
/etc/dnsmasq/dnsmasq.resolv用于存储 DNS server IP
1 | |
/etc/dnsmasq/dnsmasq.hosts用于存储hosts信息,与Windows的hosts是一样的,Ubuntu默认路径是 /etc/hosts.
1 | |
start dnsmasq
上面讲dns配置好了,使用 sudo service dnsmasq start 可以启动服务。
但是我在这一步出现了问题,提示53端口已经被占用。解决方案如下:
1 | |
config sysctl.conf
将ubuntu 系统作为server,还需要开启IP转发功能,所以需要修改以下文件:
- /etc/sysctl.conf
1 | |
然后使用 sudo sysctl -p 使其生效。
summary
总结下,在Ubuntu安装PPTP server,共安装了
- dhcp server
- pptp server
- dns server
此外,添加了对应的接口信息,静态IP,分配IP网段,启用IP转发功能。不同的操作系统安装可能略有不同,但流程大同小异。
如果在使用多个虚拟网卡的虚拟机中使用,可能还需要添加默认路由。