如何在 Linux 下连接 VPN 服务

如何在 Linux 下连接 VPN 服务,第1张

首先,你要知道 VNP服务器的IP 和 用户名和密码。

然后,控制面板--网络连接--创建一个新的连接--下一步--选择“连接到我的工作场所” 下一步--选择“虚拟专用网络连接”--下一步--输入公司名 下一步--输入IP地址 下一步--完成即可。双击新建的拨号连接 属于用户名和密码 点连接即可。

公司GlobalProtect提供的vpn客户端有windows版本和MacOS版本,但没有linux版本。

本文以debian 10为例通过安装openconnect实现命令行连接(debian 10 对应ubuntu 18.04)。

centos7需要先安装epel源,再安装openconnect

macos需要先安装Homebrew,然后通过brew安装openconnect

由于公司VPN连接成功后会更改默认路由,所有流量都会经过VPN,出口IP会变成办公网络的出口IP。如果linux机器是公有云服务器,比如阿里云ECS,由于默认路由的变更,会导致无法通过ssh连接。

针对默认路由的变更做如下操作:再连接前记录默认路由网关和网卡设备,连接后再改回来。连接脚本及相关配置如下:

第一步:安装pptpd

通常情况下可以通过yum直接安装pptpd,执行

yum list pptpd

假如有则执行

yum install pptpd

如果没有需要到sf.net下载,执行如下命令进行安装

cd /usr/local/src

#For 64bit OS

wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm

rpm -Uhv pptpd-1.4.0-1.el6.x86_64.rpm

#For 32bit os

wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.i686.rpm

rmp -Uhv pptpd-1.4.0-1.el6.i686.rpm

到此pptpd vpn 服务器安装完毕

pptp vpn服务器配置

配置pptp vpn ip地址

编辑/etc/pptpd.conf设置:

vim /etc/pptpd.conf

找到39行logwtmp处前面加上#号注释(详细见:解决VPN服务器出现PTY read or GRE write failed问题)并且设置本地ip(localip)和客户端ip(remoteid)分配ip大约在102行

#logwtmp

localip 192.168.0.1

remoteip 192.168.0.234-238,192.168.0.245

这样在pptp vpn 服务器上面ip为192.168.0.1进行转发,客户端可以分配ip号段为remoteip,根据自己的数量需要设置ip号段。

添加pptp vpn账户和密码

编辑/etc/ppp/chap-secrets,添加格式为:

用户名 pptpd的名称(默认为pptpd)密码 ip地址

这里需要注意:位置一定不能弄错,最后一个ip地址随机分配请填写*,但是一定要加上,否则在验证的时候会出错具体示例如下:

# client server secret IP addresses

vpnuser0 pptpd vpnpass1 *

配置pptp vpn dns服务器

通常情况下使用google的DNS服务器,编辑/etc/ppp/options.pptpd文件

vim /etc/ppp/options.pptpd

#把ms-dns处修改为:

ms-dns 8.8.8.8

ms-dns 4.2.2.2

#推荐把调试模式开启,取消以下文字前面的#号取消注释

debug

开启网络转发功能

#打开 /etc/sysctl.conf

vim /etc/sysctl.conf

#添加(如果有则去掉前面的#号取消注释)

net.ipv4.ip_forward = 1

#执行如下命令使刚刚操作在系统生效

sysctl -p

pptp vpn防火墙配置

通过以上步骤基本上可以连接到重启后的vpn服务器,但是要让外部用户能连接PPTP VPN,还需要在防火墙中将Linux服务器的1723端口和47端口打开,并打开GRE协议:

#注意下面的eth1为网卡,通常有一张内网卡和外网卡,请通过ifconfig命令查看

#请选择显示为外网ip的网卡

iptables -A INPUT -i eth1 -p tcp --dport 1723 -j ACCEPT

iptables -A INPUT -i eth1 -p gre -j ACCEPT

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

#保存防火墙设置并重启防火墙

service iptables save

service iptables restart

如果出现"Failed to restart iptables.service: Unit iptables.service failed to load: No such file or directory." 请查看解决 RHEL 7/ CentOS 7/Fedora 找不到iptables service

调试pptp vpn服务器

#开启pptpd

service pptpd restart

#设置开机启动pptpd

chkconfig pptpd on

到以上步骤,基本上配置已经完成。接下来连接客户端并执行如下命令查看pptp vpn服务器日志

tail -f /var/log/messages

假如正常,便可收工,如果有问题,请根据日志提示自动爬文


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/181576.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存