PPTP方式还是比较复杂的,如果只是想搭建一个VPN,并不在意使用什么方式,推荐移步:Linux SS服务器/OpenVPN服务器安装、配置、使用简明教程
VPN:Virtual Private Network,虚拟专用网,具有两大功能:一是绕过防火墙,二是隐藏原始IP。
1.启用mppe内核模块
MPPE(Microsoft Point-to-Point Encryption-微软点对点加密术),该模块用于对PPP的加密支持。
验证是否启用,在命令行执行:modprobe ppp-compress-18 && echo ok
如图输出ok表示已启用,一般已启用。如果未启用,yum中可能找不到,手动下载安装:
http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm
http://poptop.sourceforge.net/yum/stable/packages/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
安装包可能有更新,进入http://poptop.sourceforge.net/yum/stable/packages/选择下载
如果后续的ppp和pptpd也在yum中找不到,也可在该链接页面选择与自己操作系统相应版本下载,CentOS与RHEL通用,其中的fcx里fc表示Fedora,x表示Fedora版本。
2.安装ppp包
PPTP使用PPP协议对用户数据进行封装,ppp协议由ppp包实现。
wget http://poptop.sourceforge.net/yum/stable/packages/ppp-2.4.5-33.0.rhel6.x86_64.rpm
rpm -Uvh ppp-2.4.5-33.0.rhel6.x86_64.rpm
3.安装pptpd
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpm
4.配置pptpd
cat >> /etc/pptpd.conf << EOF
debug #启用日志,文件路径/var/log/messages
ppp /usr/sbin/pppd
option /etc/ppp/options.pptpd #pptp加密选项文件路径
localip 192.168.100.100 #分配给服务器ppp网卡的IP,最好不要与其他网卡ip处同一网段,更不要是其他网卡正使用的IP
remoteip 192.168.100.200-254 #分配给连接后的客户端ppp网卡的ip范围
EOF
5.启用内核IP转发功能
编缉内核配置文件:vi /etc/sysctl.conf
找到行,将其值由0改为1:net.ipv4.ip_forward = 0
使其生效:sysctl -p
6.配置防火墙
iptables -I INPUT -p gre -j ACCEPT #允许gre协议
iptables -I INPUT -p tcp -m tcp --dport 1723 -j ACCEPT #放行pptpd服务端口
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #放行状态为RELATED,ESTABLISHED的入站数据包
iptables -I FORWARD -s 192.168.100.0/24 -o eth0 -j ACCEPT
iptables -I FORWARD -d 192.168.100.0/24 -i eth0 -j ACCEPT #放行VPN虚拟网络设备所在的192.168.0.0/24网段与服务器网卡eth0之间的数据包转发,这两条修改为自己在前边配置的网段
iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE 为从VPN网段192.168.0.0/24转往网卡eth0的出站数据包做NAT,这条修改为自己在前边配置的网段
7.配置pptpd开机自启动(可选)
chkconfig --list pptpd
chkconfig --level 35 pptpd on
8.添加VPN账号密码
编缉账号密码文件:vi /etc/ppp/chap-secrets
添加账号密码,client--server--secret--IP addresses分别表示用户名--服务端协议--密码--生效IP(*表示所有)
也可用vpnuser直接添加:vpnuser add ls abcd1234
9.启动pptpd服务
service pptpd start
10.客户端连接服务器(以kali为例)
apt-get install pptpd-linux #安装客户端
pptpsetup --create pptpd --server 192.168.100.100 --username ls --password abcd1234 --encrypt --start #拨号连接