因为原先VPN服务器报废了(Server2003),现在重新配置一台Linux的VPN服务。
找了一些资料,命令也就那么几行,步履维艰,到处是坑。花了两天时间终于打通。
说明一下我做的步骤。
一、设置VPN机器的静态IP地址
1.先查看机器的网卡名称
ifconfig2.修改配置
sudo vim /etc/network/interfacesauto enp0s25
iface enp0s25 inet static
address 192.168.150.21
gateway 192.168.150.1
netmask 255.255.255.0
dns-nameservers 192.168.150.1
3.重启网络服务,没有效果的话,重启机器。
sudo /etc/init.d/network restart二、配置路由器的端口映射
1.映射1723到VPN机器上2.映射gre协议到VPN机器上
至此从外网到局域网VPN服务器的路已经通了,接下来配置VPN服务。
三、配置VPN服务
1.第一步需要安装VPN软件pptpd
sudo apt-get install pptpd提示找不到archive等信息的话,先执行sudo apt-get update,sudo apt-get upgrade,再安装pptpd。
2.安装后配置Ubuntu本地IP地址和通过VPN连接后分配的IP地址(IP地址范围).
sudo vi /etc/pptpd.conf
修改这两项
localip 192.168.150.1
remoteip 192.168.150.200-250,192.168.150.199
范围用“-”连接,分段的话用“,”分割。
3.配置pptpd的选项
sudo vi /etc/ppp/pptpd-options
#设置DNS,我是用路由器的地址192.168.150.1
ms-dns 192.168.150.1注释掉nologfd,不输入运行信息到stderr。否则log文件太多,不利于查找pptpd的信息。
#nologfd
#配置pptpd的log文件路径
logfile /var/log/pptpd.log #存放pptpd服务运行的的日志
4.设置VPN的账号.
sudo vi /etc/ppp/chap-secrets"username" * "password" *
5.开启内核IP转发
sudo vi /etc/sysctl.confnet.ipv4.ip_forward=1
修改立即生效
sudo sysctrl -p
6.安装iptables,实现请求的NAT转发
如果没有iptables的话,先安装sudo apt-get install iptables
开启NAT转发
sudo iptables -t nat -A POSTROUTING -s 192.168.150.0/24 -o enp0s25 -j MASQUERADE
enp0s25是网卡名称
192.168.150.0/24是你在上面设置的IP段,让这个段转发
7.重启服务,让配置生效
sudo service pptpd restart8.自动启动pptpd和NAT转发
修改/etc/rc.local,在exit 0前面添加NAT转发和启动命令iptables -t nat -A POSTROUTING -s 192.168.150.0/24 -o enp0s25 -j MASQUERADE
exit 0
9.开启防火墙
防火墙开启后,连接VPN后不能访问网络。
因为ufw的转发规则默认是DROP的,需要改为ACCEPT
DEFAULT_FORWARD_POLICY="DROP"
改为
DEFAULT_FORWARD_POLICY="ACCEPT"
调试错误
1.ubuntu discarded non-LCP packet when LCP not open
是因为没有配置NAT转发2.ubuntu gre: read(fd=6,buffer=611660
是因为路由器没有银色gre协议3.mppe required but peer negotiation failed
是因为客户端连接时没有选择ppp加密
DEFAULT_FORWARD_POLICY="DROP"