RASPIBERRY PI安装PPTPD实现简易VPN使用环境

点对点隧道协议(PPTP)是一种实现虚拟专用网(VPN)的方法。PPTP 在TCP之上使用一个控制通道和 GRE 隧道操作加密 PPP 数据包,本文实现通过raspiberry pi 防问家里内网的功能.

安装环境检测

下面介绍两种检测方法,只要符合其中的一条就可以安装

zgrep MPPE /proc/config.gz

返回 CONFIG_PPP_MPPE=y

cat /dev/net/tun

返回 cat: /dev/net/tun: File descriptor in bad state

安装PPTP VPN

raspi[~]$sudo apt-get install pptpd

将会安装下列额外的软件包:
  bcrelay ppp
下列【新】软件包将被安装:
  bcrelay ppp pptpd

配置PPTP服务器

编辑 /etc/pptpd.conf

  • localip 是 VPN 服务器 IP,可任意指定。
  • remoteip 是可分配给 vpn 客户端 IP。

为避免冲突,localip、remoteip 最好不要与服务器当前内网或经常拨入的客户端内网地址在同一网段。

sudo vim /etc/pptpd.conf

localip 10.0.2.1
remoteip 10.0.2.10-254

修改DNS服务器

编辑/etc/ppp/options,添加如下内容:

ms-dns 10.0.1.1

其它选项:

name pptpdpptpd服务名,可以随便填写。)
refuse-pap(拒绝pap身份认证模式。)
refuse-chap(拒绝chap身份认证模式。)
refuse-mschap(拒绝mschap身份认证模式。)
require-mschap-v2(在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。)
require-mppe-128MPPE 模块使用 128 位加密。)
ms-dns 8.8.8.8 (ppp  Windows 客户端提供 DNS 服务器 IP 地址。)
proxyarp (建立 ARP 代理键值。)
nodefaultroute(不替换默认路由)
debug(开启调试模式,相关信息记录在 /var/logs/message 中。)
lock(锁定客户端 PTY 设备文件。)
nobsdcomp (禁用 BSD 压缩模式。)

添加 VPN 用户

/etc/ppp/chap-secrets

文件为4段,分别是:用户名服务器名称密码分配给客户端的IP

#sudo cat /etc/ppp/chap-secrets

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
jxw3ng      pptpd   350jianSF       *

iptables防火墙设置

配置网络和路由规则 设置ipv4转发

sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sudo sysctl -p

iptables NAT

iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -o wlan0 -j MASQUERADE
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

系统日志

vim /etc/pptpd.conf 开启debug

# TAG: debug
#       Turns on (more) debugging to syslog
#
debug

vim /etc/rsyslog.conf 添加

daemon.debug /var/log/pptpd.log