Poptop ,官方网站上的定义是The PPTP Server for Linux,就是利用PPTP(Point to Point Tunneling Protocol,点到点隧道协议)通过Internet访问VPN(Virtual Private Network,虚拟局域网),他允许远程用户安全、花费低廉地从Internet上的任何地方访问公司内部网络。
依据连接方式划分,VPN能够分为Lan to Lan模式和client to Lan模式两种。前者能够将两个彼此单独的局域网连接起来,就像同属于一个局域网内相同,能够利用OpenVPN来实现。而后者就该用到Poptop了。
PPTP使用了client-server模式来建立VPN连接。大多数微软操作系统都内置了PPTP客户端,所以就无需安装第三方客户端软件,这就比其他VPN技术有了便于安装的优势。有关PPTP的周详描述见RFC 2367。 在Poptop出现以前,并没有使用PPTP客户端连接Linux主机的方法存在。使用Poptop,Linux主机能够立即在一个PPTP VPN环境下进行工作。
二、vpn服务器端的安装和配置
首先确认在 Kernel 中有下列这行设定:
# 如果您使用的是 FreeBSD 4.x
pseudo-device tun # Packet tunnel.
# 如果您使用的是 FreeBSD 5.x以上版本N26Linux联盟
device tun # Packet tunnel.
1、安装 ppptop:
freebsd# cd /usr/ports/net/poptop
freebsd# make install clean
2、配置pptpd.conf:
freebsd# ee /usr/local/etc/pptpd.conf
加入:
option /etc/ppp/ppp.conf #指定pptp使用的选项文档
debug #把任何的debug信息写入系统日志/var/log/messages
Logwtmp #使用/var/log/wtmp记录客户连接和断开。
listen 218.XXX.XXX.18 //VPN服务器的外网IP
localip 172.20.1.1
remoteip 172.20.1.10-20 //定义分配给客户端的DHCP池
pidfile /var/run/pptpd.pid
保存,退出
3、配置ppp.conf
freebsd# cd /etc/ppp/
freebsd# mv ppp.conf ppp.conf.bak
freebsd# ee ppp.conf
loop:
set timeout 0
set log phase chat connect lcp ipcp command
set device localhost:pptp
set dial
set login
# Server (local) IP address, Range for Clients, and Netmask
set ifaddr 172.20.1.1 172.20.1.10-172.20.1.20 255.255.255.0
set server /tmp/loop "" 0177
loop-in:
set timeout 0
set log phase lcp ipcp command
allow mode direct
pptp:
load loop
enable chap
enable MSCHAPv2
disable deflate pred1
deny deflate pred1
set mppe 128 stateless //默认是用40位的加密,为了安全,这里用128位的加密(在用windows创建拨号连接时,选上"安全"里的"高级")
enable MPPE
accept MPPE
enable chap81
disable pap
enable proxy
accept dns
# DNS Servers to assign client
set dns 172.16.1.100
set device !/etc/ppp/secure
4、配置secure执行文档:
freebsd# ee /etc/ppp/secure
加入:
#!/bin/sh
exec /usr/sbin/ppp -direct loop-in
保存退出
freebsd# chmod 755 /etc/ppp/secure
5、建立用户:
freebsd#ee /etc/ppp/ppp.secret
加入:
#user #passoword
user1 password "172.20.1.16" //172.20.1.16是固定分配给user1的IP
user2 password "172.20.1.17"
保存
freebsd# chmod 660 /etc/ppp/ppp.secret
6. 确认IP转发已经打开:
freebsd# sysctl net.inet.ip.forwarding
1
如果不是1,可以用下面命令手动打开:
freebsd# sysctl net.inet.ip.forwarding=1
如果在/etc/rc.conf里加入了:
gateway_enable="YES"
就可以随机开启。
7、打开 proxy arp
freebsd#ee /etc/rc.conf
arpproxy_all="YES"
8、启动PPTP:
freebsd# cd /usr/local/etc/rc.d
freebsd# cp pptpd.sh.sample pptpd.sh
freebsd# /usr/local/etc/rc.d/pptpd.sh start
9、log存放在:/var/log/ppp.log
10、默认情况下,开放四个tunl,只能同时四个用户连接,如要让更多的用户连接,请按如下方法:
创建一个文件:create_tun.sh
加入:
#/bin/sh
cd /dev
/dev/MAKEDEV tun4
/dev/MAKEDEV tun5
/dev/MAKEDEV tun6
/dev/MAKEDEV tun7
/dev/MAKEDEV tun8
/dev/MAKEDEV tun9
/dev/MAKEDEV tun10
/dev/MAKEDEV tun11
/dev/MAKEDEV tun12
/dev/MAKEDEV tun13
/dev/MAKEDEV tun14
/dev/MAKEDEV tun15
/dev/MAKEDEV tun16
/dev/MAKEDEV tun17
/dev/MAKEDEV tun18
/dev/MAKEDEV tun19
/dev/MAKEDEV tun20
/dev/MAKEDEV tun21
/dev/MAKEDEV tun22
/dev/MAKEDEV tun23
/dev/MAKEDEV tun24
/dev/MAKEDEV tun25
/dev/MAKEDEV tun26
/dev/MAKEDEV tun27
/dev/MAKEDEV tun28
/dev/MAKEDEV tun29
/dev/MAKEDEV tun30
保存退出
freebsd# sh create_tun.sh .
TAG: freebsd 安装PPPOE