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
, 对应配置文件内容如下:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s8:
dhcp4: no
dhcp6: no
addresses: [10.0.0.138/24]
gateway4: 10.0.0.138
nameservers:
addresses: [10.0.0.138]
其中 enp0s8
为 interface 名称,从 ifconfig
可以获得。让该配置生效的方式为:
sudo netplan apply
重新执行 ifconfig
查看已生效的静态IP.
install PPTP server
PPTP Server 的安装其实很简单,就一个指令。
sudo apt install pptpd
对 pptpd 的操作与大多数服务一样。
sudo service pptpd [force-reload|restart|start|status|stop]
主要是配置稍微复杂些,某些配置与PPPoE, L2TP是共用的,比如密码信息等。
common config
PPPoE, PPTP, L2TP 共用以下文件
- /etc/ppp/chap-secrets
- /etc/ppp/options
其中 /etc/ppp/chap-secrets
用于存储密码信息。
# Secrets for authentication using CHAP
# client server secret IP addresses
"test123" * "123456" *
以上 "test123" 为PPTP拨号时的用户名, "123456" 为拨号密码。可以添加多行,代表多个账户。
/etc/ppp/options
也是共用的,是大部分常用配置的基地。我们通常只需要修改以下部分参数。
# Require the peer to authenticate itself before allowing network
auth
# Require the peer to authenticate itself using CHAP
+chap
# Send an LCP echo-request frame to the peer every n seconds
lcp-echo-interval 30
# Retry to send LCP echo -request max n times if not receive echo-response
lcp-echo-failure 4
# Disable the IPXCP and IPX protocols
noipx
以上配置主要是使能密码认证,并启用echo包监听client状态,在无消息响应情况下自动断开连接。
pptpd config
针对pptp server也有对应的特定配置文件,
- /etc/ppp/pptpd-options
- /etc/pptpd.conf
/etc/ppp/pptpd-options
文件内容较多,但基本不需要修改,只需要添加dns信息即可
ms-dns 10.0.0.138
/etc/pptpd.conf
文件是配置IP网段的,pptp拨号成功后,会在特定interface (如ppp0) 分配IP,通常是192.168.*网段。
配置该文件时,只需要在文件末尾添加以下信息即可:
localip 192.168.0.1
remoteip 192.168.0.10-200
localip
代表本地IP,用于与 remote client 通信,remoteip
自然就是需要拨号上网的client对应ip了。
到此就基本配置完成了。
install DNS server
想要 PPTP server 完全正常工作,除了dhcp server和以上配置外,还少不了 DNS server 提供 DNS 解析服务。
安装同样很简单,一步到位。
sudo apt install dnsmasq
操作与 pptpd
类似,
sudo service dnsmasq [dump-stats|force-reload|restart|start|status|stop]
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
文件, 以及监听地址。
resolv-file=/etc/dnsmasq/dnsmasq.resolv
listen-address=127.0.0.1, 10.0.0.138
addn-hosts=/etc/dnsmasq/dnsmasq.hosts
/etc/dnsmasq/dnsmasq.resolv
用于存储 DNS server IP
nameserver 127.0.0.1
nameserver 10.0.0.138
/etc/dnsmasq/dnsmasq.hosts
用于存储hosts信息,与Windows的hosts是一样的,Ubuntu默认路径是 /etc/hosts.
10.0.0.138 netgear.com
1.2.3.4 baidu.com
start dnsmasq
上面讲dns配置好了,使用 sudo service dnsmasq start
可以启动服务。
但是我在这一步出现了问题,提示53端口已经被占用。解决方案如下:
sudo systemctl stop systemd-resolved.service
sudo systemctl disable systemd-resolved.service
config sysctl.conf
将ubuntu
系统作为server,还需要开启IP转发功能,所以需要修改以下文件:
- /etc/sysctl.conf
net.ipv4.ip_forward=1
然后使用 sudo sysctl -p
使其生效。
summary
总结下,在Ubuntu安装PPTP server,共安装了
- dhcp server
- pptp server
- dns server
此外,添加了对应的接口信息,静态IP,分配IP网段,启用IP转发功能。不同的操作系统安装可能略有不同,但流程大同小异。
如果在使用多个虚拟网卡的虚拟机中使用,可能还需要添加默认路由。
reference
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 litreily的博客!