如何在Ubuntu下配置L2TP VPN

如何在Ubuntu下配置L2TP VPN,第1张

单击右上角网络图标,选择到“vpn”的界面,点击“添加”。d出窗口,选择L2TP类型,点击“新建”。Gateway一项填写服务器地址,Optional填写注册vpn的用户名和密码,NT Domain不用填写,点击“Advanced”。取消“EAP”选项,勾选“Use point-to-point encryption(MPPE)”,点击“确定”。点击网络图标,并切换到vpn模式,连接成功后,会看到图标上显示一把锁。

首先解释一个问题:在 iPhone 的 VPN 设置介面里(Settings >>General >>Network >>VPN),你可以看到三个标签:L2TP, PPTP, IPSec。但上面我们又讲本次介绍的 VPN 方式叫「L2TP / IPSec」,这两者究竟是什么关系?

这三个标签确实令人混淆,准确的写法应该是:L2TP over IPSec, PPTP, Cisco IPSec。PPTP 跟另外两者关系不大,且大家较为熟悉,暂且不提,L2TP 和 IPSec 的区别如下。

L2TP:一个「包装」协议,本身并不提供加密和验证的功能。

IPSec:在 IP 数据包的层级提供加密和验证功能,确保中间人无法解密或者伪造数据包。

本来,只用 IPSec 就可以实现 VPN,Mac OS X 和 Linux 都支持。但是 Mac OS X 和 iPhone OS 都推荐使用 L2TP over IPSec,在两者的图形介面上也只能设置这个。L2TP / IPSec 是业界标准,微软也支持。而只用 IPSec 的常见于 Linux-to-Linux 的应用,比如将两个位于不同地区的办公室网络安全地连在一起。这多是固定 IP 路由器到固定 IP 路由器级别的连接,只需保证数据包不被中途截获或者伪造就可以,故使用 L2TP 的意义不大。L2TP / IPSec 主要是实现所谓「Road Warrior」的设置,即用变动的客户端连固定的服务器。

Cisco 的 VPN 用的也是 IPSec 加密,但那是一套不同于 L2TP 的私有包装协议,用于提供用户管理之类的功能,因此一般都需要用 Cisco 自家的 VPN 客户端连接。iPhone / iPad 的 VPN 设置介面中的 IPSec 标签里有 Cisco 的标识,就是这个原因。

以下是在 Ubuntu 和 Debian 主机上架设 L2TP / IPSec VPN 的步骤,一共十四步。你需要有服务器的 root 权限(所以 DreamHost, BlueHost, MediaTemple 这些服务供应商帮你把一切打点周到的主机就无缘了),也需要一些基本的 Linux 知识。不然的话,我们还是推荐您找一位比较熟技术的朋友帮忙。

一、安装 IPSec。如上所述,IPSec 会对 IP 数据包进行加密和验证。这意味着你的电脑 / 移动设备与服务器之间传输的数据无法被解密、也不能被伪造。我推荐用 openswan 这个后台软件包来跑 IPSec。

用以下命令安装 openswan:

sudo aptitude install openswan二、用文字编辑器打开 /etc/ipsec.conf,改成这样:

version 2.0

config setup

nat_traversal=yes

virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12

oe=off

protostack=netkey

conn L2TP-PSK-NAT

rightsubnet=vhost:%priv

also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT

authby=secret

pfs=no

auto=add

keyingtries=3

rekey=no

ikelifetime=8h

keylife=1h

type=transport

left=YOUR.SERVER.IP.ADDRESS

leftprotoport=17/1701

right=%any

rightprotoport=17/%any三、用文字编辑器打开 /etc/ipsec.secrets,改成这样:

YOUR.SERVER.IP.ADDRESS %any: PSK "YourSharedSecret"(别忘了把「YOUR.SERVER.IP.ADDRESS」这部分换成你的服务器的 IP 地址,把「YourSharedSecret」部分换成随便一个字串,例如你喜欢的一句话,等等。)

四、运行以下命令:

for each in /proc/sys/net/ipv4/conf/*

do

echo 0 >$each/accept_redirects

echo 0 >$each/send_redirects

done五、检查一下 IPSec 能否正常工作:

sudo ipsec verify如果在结果中看到「Opportunistic Encryption Support」被禁用了,没关系,其他项 OK 即可。

六、重启 openswan:

sudo /etc/init.d/ipsec restart七、安装 L2TP。常用的 L2TP 后台软件包是 xl2tpd,它和 openswan 是同一帮人写的。

运行以下命令:

sudo aptitude install xl2tpd八、用文字编辑器打开 /etc/xl2tpd/xl2tpd.conf,改成这样:

[global]

ipsec saref = yes

[lns default]

ip range = 10.1.2.2-10.1.2.255

local ip = 10.1.2.1

require chap = yes

refuse chap = yes

refuse pap = yes

require authentication = yes

ppp debug = yes

pppoptfile = /etc/ppp/options.xl2tpd

length bit = yes这里要注意的是 ip range 一项里的 IP 地址不能和你正在用的 IP 地址重合,也不可与网络上的其他 IP 地址冲突。

九、安装 ppp。这是用来管理 VPN 用户的。

sudo aptitude install ppp十、检查一下 /etc/ppp 目录里有没有 options.xl2tpd 这个文件,没有的话就建一个,文件内容如下:

require-mschap-v2

ms-dns 208.67.222.222

ms-dns 208.67.220.220

asyncmap 0

auth

crtscts

lock

hide-password

modem

debug

name l2tpd

proxyarp

lcp-echo-interval 30

lcp-echo-failure 4注意 ms-dns 两行我填的是 OpenDNS。如果你想用其他的 DNS 服务器(例如谷歌的公共 DNS),请自行更换。

十一、现在可以添加一个 VPN 用户了。用文字编辑器打开 /etc/ppp/chap-secrets:

# user server passwordip

testl2tpd testpassword*如果你之前设置过 PPTP VPN,chap-secrets 文件里可能已经有了其他用户的列表。你只要把 test l2tpd testpassword * 这样加到后面即可。

十二、重启 xl2tpd:

sudo /etc/init.d/xl2tpd restart十三、设置 iptables 的数据包转发:

iptables --table nat --append POSTROUTING --jump MASQUERADE

echo 1 >/proc/sys/net/ipv4/ip_forward十四、因为某种原因,openswan 在服务器重启后无法正常自动,所以我们可以在 /etc/rc.local 文件里写入如下语句:

iptables --table nat --append POSTROUTING --jump MASQUERADE

echo 1 >/proc/sys/net/ipv4/ip_forward

for each in /proc/sys/net/ipv4/conf/*

do

echo 0 >$each/accept_redirects

echo 0 >$each/send_redirects

done

/etc/init.d/ipsec restart到这里,设置工作已经基本完成。你可以用 iPhone 或 iPad 试着连一下。记得在「Secret」中填入你在上述第三步里填的 YourSharedSecret。

如果连接成功,上网也没问题的话,恭喜你,大功告成。如果连不上,恐怕还得多做一步。

Ubuntu 9.10 自带的 openswan 版本是 2.6.22, Debian Lenny 带的版本是 2.4.12。这两个版本的 openswan 都有问题。我们的测试结果表明,2.6.24 版的 openswan 可以在上述两版的 Linux *** 作系统下正常工作。所以如果做完以上十四步还是连不上的话,请考虑从源码编译 openswan 2.6.24

Linux下如何进行FTP设置

ECS Linux服务器如何配置网站以及绑定域名

Ubuntu安装vncserver实现图形化访问

阿里云Docker镜像库

ECS linux中添加ftp用户,并设置相应的权限

CentOS6.5安装vncserver实现图形化访问

Linux SCP命令复制传输文件的用法

Mysql,phpmyadmin密码忘了怎么办

Linux下l2tp客户端xl2tpd的安装配置

使用SFTP方式传输文件

ECS Linux系统盘网站数据更换至数据盘

WDCP的报错处理

Linux中PHP如何安装curl扩展方法

修改Linux服务器的ssh端口

ECS Linux配置vnc文档

运维分享--阿里云linux系统mysql密码修改脚本

20步打造最安全的Nginx Web服务器

SSH配置存在问题,导致登录和传输数据很慢

ECS Linux下如何查看定位当前正在运行的Nginx的配置文件

ECS 服务器CentOS系统如何开放端口

查看Linux下默认的DNS

FTP主动被动模式配置混乱导致无法登录

linux环境配置phpmyadmin

ECS Linux系统下VSFTP配置的FTP上传文件报错“553 Could not create file”

ECS Linux Mysql启动提示Too many arguments (first extra is 'start')

运维分享--阿里云linux系统ssh远程连接检查脚本

ECS Linux系统授权mysql外网访问

ECS Linux服务器nginx禁止空主机头配置

ECS Linux服务器通过FTP无法查看到.htaccess文件

ECS Linux服务器下Mysql自动备份脚本的使用方法

ECS-linux授权mysql外网访问

用date命令修改Linux系统的时间为什么无效

运维分享--阿里云linux系统web日志分析脚本

ECS Linux服务器messagebus默认关闭导致安装桌面环境后无法正常使用

ECS Nginx+php中php-fpm参数配置

运维分享--阿里云linux系统mysql连接检查脚本

iptables的conntrack表满了导致访问网站很慢

运维分享--阿里云linux系统带宽监测脚本

如何调整目录文件的拥有者和拥有组

yum *** 作报错处理

ECS Linux配置vsftpd限制FTP账户访问其它目录

vsftp报错:500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp

Linux主机系统目录误 *** 作权限修改为777修复方法

ECS Nginx中https的配置说明

运维分享--阿里云linux系统负载状态检查脚本

ECS Linux服务器AMH云主机面板启动、关闭 *** 作

ECS Linux服务器关闭磁盘自检

ECS Linux配置key认证登录后因为相关文件权限错误导致连接失败-Connection closed by foreign host

ECS Linux系统服务器解决ssh反向代理监听ip错误问题

ECS Linux设置定时任务crontab

ECS Gentoo系统中mirrorselect获取内容失败提示Name or service not known

ECS Linux系统服务器ping域名返回Unknown host报错

IIS、Nginx或Apache访问日志存在182.92.12.0/24段访问记录

Nginx日志的解释

ECS Linux系统wget下载文件

ECS Linux服务器内部无法解析域名

ECS路由表错误导致无法ping通

ECS Linux主机修改主机名

wordpress插件oss4wp url无法访问

ECS Linux 查看隐藏文件

Linux系统服务器解决vsftp服务使用root登录失败

ECS Linux PPTP客户端登陆后获取地址错误

Linux系统服务器解决内外双网卡均显示内网IP地址问题

ECS Linux系统NetworkManager导致网络异常

外部Ping ECS Linux丢包严重

ECS Linux检查Nginx配置文件

ECS Linux系统判断当前运行的Apache所使用的配置文件

Apache访问日志的说明

ECS Linux .htacess文件上传无法显示

linux服务器内无法访问其他站点的检查处理方法

ECS mysql无法启动报错Can't create/write to file '/tmp/ibfguTtC

ECS Liunx系统服务器执行ls查询命令提示bash: ls: command not found

Linux为何执行命令会执行历史命令

ECS Linux系统如何检查系统上一次重启的时间

ECS Linux下MySQL排查基本步骤

Linux系统如何查看mysql版本号

MySQL中查看慢SQL的日志文件方法

phpMyAdmin修改配置可以上传大文件

openSUSE下开机自动运行脚本命令的方法

给Linux系统添加一个回收站

ECS Linux分区异常无法挂载

ECS Linux上安装Cloudfs启动失败提示找不到库文件libunwind.so.8

ECS Linux清理/tmp目录下的文件原理

Liunx系统服务器通过prefork模块限制apache进程数量

ECS CentOS 6.5系统下Apache配置https服务

No input file specified的解决方法

Apache、Nginx支持跨域访问

Apache环境下配置404错误页方法

ECS Linux通过修改Apache配置301重定向的方法

ECS Linux主机无法互访处理

ECS linux服务器启用了TRACE Method. 怎么关闭

Apache运行参考的调整优化

ECS Apache 如何关闭目录访问

ECS 服务器隐藏apache版本信息

ECS Linux判断HTTP端口监听状态的方法

ECS Linux Apache限制客户端访问网站的速度

负载均衡+ECS站点虚拟子目录的设置案例

ECS网站访问504错误分析

为何Ubuntu开启UFW后,VPC下的SNAT转发就失效了

ECS Debian自定义镜像启动无法SSH

ECS Linux云服务器如何确认文件系统只读?

ECS Linux创建文件报错Read-only file system

恢复ext4文件系统中使用rm命令误删除的文件

ECS Linux 删除乱码文件的方法

net.ipv4.tcp_fin_timeout修改导致的TCP链接异常排查

ECS Linux 执行sh脚本提示No such file or directory

/var/log/message 日志报错

通过ssh tunnel连接内网ECS和RDS

CentOS 7中 MySQL 服务启动失败的解决思路

ECS Linux系统启动提示“Give root password for maintenance”

结束云盾客户端进程后如何启用

Ubuntu服务器中配置AWStats

CentOS 6非root用户使用sftp服务

ssh避免客户端长久未 *** 作导致连接中断

删除binglog导致mysql无法启动

ECS Linux服务器修改SSH端口号不生效的检查方法

ftp传输失败问题解决方法

ECS Linux下使用extundelete恢复被误删的文件

ECS Linux基于nginx环境通过.htaccess配置rewrite伪静态示例

ECS Linux系统利用openssl生成强密码

ECS CentOS6配置PPTP VPN

Last命令关于reboot记录的含义

Ubuntu修改运行级别的总结

ECS CentOS6系统PPTP VPN脚本

ECS Linux系统如何配置gentoo的源

ECS CentOS系统配置VPN客户端

多域名跳转——不同域名指向不同子目录

Centos配置PPTP VPN后无法打开网页

mysql不能远程连接

ECS Linux系统修改文件或目录权限方法

ECS WDCP破解mysql以及wdcp后台管理密码

ECS Linux系统如何设置SSH白名单

Ecs Linux系统一键安装web环境<专业版>下tomcat添加站点方法

Centos 7 安装vnc

Setuptools软件包版本太老导致ECS Linux安装AliyunCLI出错

Apache配置二级域名

ECS linux重启丢失分区表

Linux系统服务器安装使用sar工具获取系统运行状态方式

ECS Ubuntu开启sftp连接

linux系统mysql跳过密码登陆 *** 作登陆设置

mysql报错Lost connection to MySQL server at 'reading initial communication packet'

Ubuntu apt-get 安装提error processing package install-info (--configure)

Nodejs的版本升级和使用

Nodejs 连接RDS MySQL数据库

ECS 公共镜像Ubuntu,Centos的内核版本查看方法

ECS Linux服务器修改时区

Apache禁止未经许可的域名访问ECS上的网站

ECS Linux如何隐藏文件和文件夹

ECS mysql.sock丢失问题解决方法

ECS Linux云服务器centos将系统时区从UTC时间改为CST

ECS Linux云服务器权限问题说明

ECS Linux系统盘数据转移方法

Linux下忘记mysql的root密码

ECS MySQL编译安装支持innodb引擎

ECS Linux NAT哈希表满导致服务器丢包

ECS Linux服务器重启后mount出错的解决方法

Centos6.5添加IPv6支持

ECS ubuntu系统修改DNS /etc/resolv.conf无法保存

ECS Linux如何增加虚拟内存swap

ECS Linux traceroute使用方法

ECS Linux系统磁盘再次挂载报错没有有效的分区表

如何删除yum的缓存信息

ECS Linux服务器yum的查询功能

centos6怎么使用RPMForge软件源仓库

ECS Linux服务器Nginx rewrite示例

ECS Linux CentOS 6 ssh连上就断掉并报错“fatal: mm_request_send: write: Broken pipe”

mysql上传报错#1064 - You have an error in your SQL syntax

Ecs Linux中rpm安装文件命令常用选项

ECS Linux系统kjournald进程占用io资源高的解决方法

ECS Linux如果通过i节点删除无法删除的文件

ECS Linux基于zabbix搭建企业级监控平台

ECS Linux系统yum卸载重装

ECS CentOS 6.5 OpenVPN配置

ECS Linux使用SFTP登陆时报错:Received unexpected end-of-file from SFTP server

ECS Linux如何增加数据盘iNode数量

ECS Linux查看目录没有颜色

ECS Linux系统tmp目录的安全设置

ECS Linux下shm设备的安全设定

ECS CentOS多线程下载工具Axel使用说明

ECS Linux curl使用证书访问HTTPS站点

Linux系统中vsftp用户无法登陆的相关说明

Nginx配置文件中rewrite指令标志位的说明与使用

ECS Linux中ss命令显示连接状态的使用说明

ECS Linux系统没有程序运行通过top观察发现cpu很空闲

Linux下的文件权限检查和修改

ECS Linux云服务器利用chatter命令锁定系统重要文件

ECS Centos7安装OpenVPN

ECS上搭建反向代理通过内网访问OSS服务

ECS Linux下的script命令记录用户 *** 作行为

Ubuntu下使用slay命令结束某个用户的所有进程

Nginx配置文件中root与alias指令的区别

Nginx配置文件中rewrite指令的使用

ECS Linux如何修改PATH变量

Centos安装桌面后在远程终端管理里面无法使用键盘和鼠标

ECS Linux下Apache忽略网站URL的大小写的方法

ECS Linux服务器利用Nethogs监控每个进程的网络使用情况

ECS apt-get安装软件或更新时提示apt-get 的 Segmentation faultsts

ubuntu开机出现memtest86,重启也无法取消的原因

Linux下History命令显示 *** 作时间,用户和登录IP

ECS Linux服务器使用htop监控负载


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11937621.html

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

发表评论

登录后才能评论

评论列表(0条)

保存