点对点隧道协议(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
raspi[~]$sudo apt-get install pptpd 将会安装下列额外的软件包: bcrelay ppp 下列【新】软件包将被安装: bcrelay ppp pptpd
编辑 /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
编辑/etc/ppp/options,添加如下内容: ms-dns 10.0.1.1
其它选项:
name pptpd(pptpd服务名,可以随便填写。) refuse-pap(拒绝pap身份认证模式。) refuse-chap(拒绝chap身份认证模式。) refuse-mschap(拒绝mschap身份认证模式。) require-mschap-v2(在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。) require-mppe-128(MPPE 模块使用 128 位加密。) ms-dns 8.8.8.8 (ppp 为 Windows 客户端提供 DNS 服务器 IP 地址。) proxyarp (建立 ARP 代理键值。) nodefaultroute(不替换默认路由) debug(开启调试模式,相关信息记录在 /var/logs/message 中。) lock(锁定客户端 PTY 设备文件。) nobsdcomp (禁用 BSD 压缩模式。)
/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 *
配置网络和路由规则 设置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