系统环境
CentOS 6.4 64bit
安装ppp
wget https://download.samba.org/pub/ppp/ppp-2.4.5.tar.gz
tar zxf ppp-2.4.5.tar.gz
cd ppp-2.4.5
./configure --prefix=/usr/local/ppp/
make && make install
make install-etcppp
安装pptpd
- 安装
wget http://sourceforge.net/projects/poptop/files/pptpd/pptpd-1.3.4/pptpd-1.3.4.tar.gz
tar zxf pptpd-1.3.4.tar.gz
cd pptpd-1.3.4/
sed -i 's/2.4.3/2.4.5/g' plugins/patchlevel.h
#版本号2.4.3修改为2.4.5
./configure --prefix=/usr/local/pptpd
make && make install
mkdir -p /usr/lib/pptpd
ln -s /usr/local/pptpd/lib/pptpd/pptpd-logwtmp.so /usr/lib/pptpd/pptpd-logwtmp.so
mkdir /usr/local/pptpd/etc
cp samples/options.pptpd samples/pptpd.conf /usr/local/pptpd/etc/
- pptpd.conf配置(/usr/local/pptpd/etc/pptpd.conf)
ppp /usr/local/ppp/sbin/pppd #ppp组件的程序路径
option /usr/local/pptpd/etc/options.pptpd #需要修改成options.pptpd配置文件的路径
debug #开启bug模式,日志被记录到/var/log/messages
stimeout 30
logwtmp /var/log/pptpd.log #日志存放目录
localip 192.168.10.1 #本地网卡IP
remoteip 192.168.10.100-200 #拨号后分配给客户端的IP范围
- options.pptpd配置(/usr/local/pptpd/etc/options.pptpd)
name pptpd #pptpd server 的名称
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 地址,第一个ms-dns为 DNS Master
ms-dns 8.8.4.4 #第二个为 DNS Slave
proxyarp #建立 ARP 代理键值
lock #锁定客户端 PTY 设备文件
nobsdcomp #禁用 BSD 压缩模式
novj
novjccomp #禁用 Van Jacobson 压缩模式
nologfd #禁止将错误信息记录到标准错误输出设备(stderr)。
- 配置vpn用户和密码(/etc/ppp/chap-secrets)
# 用户名 pptpd server 的名称 密码 分配的IP任意或者指定
# client server secret IP addresses
leoiceo pptpd "123123" *
- 启动pptpd
/usr/local/pptpd/sbin/pptpd -c /usr/local/pptpd/etc/pptpd.conf &
- 加入开机启动
echo "/usr/local/pptpd/sbin/pptpd -c /usr/local/pptpd/etc/pptpd.conf&" >> /etc/rc.local
开启自动转发
临时生效
echo 1 > /proc/sys/net/ipv4/ip_forward
永久生效
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
防火墙配置
- 伪装ip,把远程拨入的vpn地址转换成eth0上的ip地址
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- 防火墙开放1723端口
/sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
- 开启所需的gre协议
/sbin/iptables -A INPUT -p gre -j ACCEPT