我們使用 poptop 這個軟件來建立 PPTP 的 VPN 聯機,PPTP 是 Windows 所使用的 VPN。我們在FreeBSD 上建立 VPN 之後,使用者可以自遠程使用 Windows 經由 Internet 使用 VPN 撥號連到公司的內部區網。
首先確認在 Kernel 中有下列這行設定:
# 如果您使用的是 FreeBSD 4.x
pseudo-device tun # Packet tunnel.
# 如果您使用的是 FreeBSD 5.x
device tun # Packet tunnel.
1、安裝 ppptop:
freebsd# cd /usr/ports/net/poptop
freebsd# make install clean
加入:
debug
#listen 218.83.152.20
localip 172.20.1.1
remoteip 172.20.1.10-20
pidfile /var/run/pptpd.pid
保存,退出
freebsd# cd /etc/ppp/
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
enable MPPE
accept MPPE
enable chap81
disable pap
enable proxy
accept dns
# DNS Servers to assign client
set dns 192.168.1.168
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、建立用戶:
加入:
#user #passoword
user1 password "172.20.1.16"
user2 password "172.20.1.17"
保存
6. 確認IP轉發已經打開:
freebsd# sysctl net.inet.ip.forwarding
1
如果不是1,可以用下面命令手動打開:
freebsd# sysctl net.inet.ip.forwarding=1
gateway_enable="YES"
就可以隨機開啟。
7、打開 proxy arp
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