Ubuntu 16.10 搭建 PPTP Server

搭建环境:Ubuntu 16.10

安装环境包

打开终端,输入命令 sudo apt-get install pptpd 下载并安装pptpd。
若已安装,可输入 apt-get update 进行升级。

配置 PPTP Server

PPP 连接地址

  打开文件 vi /etc/pptpd.conf,安装后此文件自动生成, 默认会包含一些基本的配置以及各个可配置参数的说明。

localip 100.0.0.1
remoteip 100.0.0.100-130

  文件末尾是关于PPP连接地址的部分, 可以看到localip即是ppp连接中给Server端指定的地址, 而remoteip是Client端可分配的IP地址段, 可以指定某个单独地址, 也可指定某个地址段。

设置安全认证方式及DNS信息

  打开文件 vi /etc/ppp/pptpd-options,此文件也是安装pptpd后自动生成, 默认也会包含一些可配置参数及其说明。

name test

  第一个参数name(默认值是pptpd)是用于认证目的的本机名, 参考说明此参数的值必须能匹配/etc/ppp/chap-secrets(ppp认证中使用chap认证方式的用户名及密码信息保存在这个文件中)文件的第二个字段内容, 否则不能通过认证。

require-chap

  Encryption段是设置使用哪种认证方式的, 默认的是拒绝pap, chap, mschap方式而接受mschap-v2和mppe-128方式, 此处配置比较简单, 我的环境中最常用chap方式, 所以注释掉默认的几种拒绝或接受的方式, 直接添加一个参数require-chap, 如果需要pap认证的, 添加require-pap。

ms-dns 10.0.0.138

  通过ms-dns参数可设置PPTP Server给Client分配的DNS, 可以任意指定DNS。
  其他参数保持默认值, 如果需要修改, 请参考文件中的说明部分。

添加PPTP连接的账户信息

  打开文件 vi /etc/ppp/chap-secrets

test * 123456 *

  按照文件中说明添加一个账户信息, 注意此处第二个字段值必须和上一步中设置的name值相匹配(或者第二字段设置为*, 则匹配任意内容)。第一个字段client即用户名, 第三个字段secrect是相应的密码, 最后一个字段IP address是指定允许哪个IP连接到此PPTP Server, 也可以指定为*表示任意地址都可。

【Attention】 若启动DNS Server失败,可查看系统log(/var/log/syslog)。

开启内核IP转发

修改文件 sudo vim /etc/sysctl.conf,在文档中找到#net.ipv4.ip_forward=1并取消注释。
命令行输入 sudo sysctl -p 生效。

配置iptables

若未安装iptables,先安装 sudo apt-get install iptables


以下配置非常重要!!!
如果已经安装iptables,需要清除已有的旧规则,否则server可能搭建失败!!!

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat –X

允许gre协议以及1723端口、47端口:
sudo iptables -A INPUT -p gre -j ACCEPT 
sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT 
sudo iptables -A INPUT -p tcp --dport 47 -j ACCEPT

开启NAT转发

sudo iptables -t nat -A POSTROUTING -s 100.0.0.0/24 -o eth0 -j MASQUERADE

IP:搭建PPTP Server时设置的localip,即虚拟网络主机IP网段。
eth0:取决于配置用来作为服务器的网卡是哪一个,可通过命令 ifconfig 来确认。
POSTROUTING:指定当数据包离开服务器的时候,对数据包进行处理。
MASQUERADE:指定即将从服务器封包出去(-o)的网卡IP。

重启配置,使服务生效

sudo service pptpd restart

运行PPTP Server

Start:sudo /etc/init.d/pptpd start
Stop:sudo /etc/init.d/pptpd stop
Restart:sudo /etc/init.d/pptpd restart

你可能感兴趣的:(网络,Ubuntu)