一、IPSec 

注意:以下教程中sudo在有些版本系统中会提示“未知sudo命令”,在输入时去掉sudo即可。

1.安装IPSec/L2TP软件

1
# sudo apt-get install xl2tpd openswan ppp lsof

如果出现Do you want to create a RSA public/private keypair for this host?。我们选择No,这种模式的IPSec通过证书进行验证,而非PSK。

1
#ipsec --version  //查看ipsec版本

报错:

E: Package 'openswan' has no installation candidate

意思是在当前的apt-get“源”中没有找到"openswan"这个软件。很正常,除了Ubuntu官方以外,其他第三方提供的源不可能那么完整,所以找别的源增加就行了。

解决方法:创建lzu.list文件

1
# sudo vi /etc/apt/sources.list.d/lzu.list

写入以下内容:

1
2
3
4
5
6
7
8
9
10
deb http://mirror.lzu.edu.cn/ubuntu/ precise main restricted universe multiverse
deb http://mirror.lzu.edu.cn/ubuntu/ precise-security main restricted universe multiverse
deb http://mirror.lzu.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirror.lzu.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirror.lzu.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise-backports main restricted universe multiverse

生效lzu.list文件

1
sudo apt-get update

重新运行命令继续安装,输入Y后下面命令装完。

1
# sudo apt-get install xl2tpd openswan ppp

2.修改/etc/ipsec.conf配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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,%v4:!10.152.2.0/24
        # 这里包含的网络地址允许配置为远程客户端所在的子网。换句话说,
        # 这些地址范围应该是你的NAT路由器后面的客户端的地址。
        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
        # Apple 的 iOS 不会发送 delete 提醒,
        # 所以我们需要通过死亡对端(dead peer)检测来识别断掉的客户端
        dpddelay=30
        dpdtimeout=120
        dpdaction=clear
        # 设置 ikelifetime 和 keylife 和 Windows 的默认设置一致
        ikelifetime=8h
        keylife=1h
        type=transport
        # 替换 IP 地址为你的公网IP
        left=x.x.x.x
        # 用于升级过的 Windows 2000/XP 客户端
        leftprotoport=17/1701
        # 要支持老的客户端,需要设置 leftprotoport=17/%any
        right=%any
        rightprotoport=17/%any
        # 强制所有连接都NAT,因为 iOS
        forceencaps=yes

注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"应该顶着行头写,而其它行应该以8个空格缩进。

3.修改文件/etc/ipsec.secrets

1
# vi /etc/ipsec.secrets

这里x.x.x.x 替换为你的服务器的IP地址,并设置一个复杂的密码。

1
x.x.x.x  %any: PSK "somegoodpassword"

例:

1
106.186.178.35 %any: PSK "password"

4.启动 IPSEC 服务:

1
# /etc/init.d/ipsec start

使用如下命令确认 ipsec 是否工作正常。注:只要没有Faild就可以了

1
# sudo ipsec verify

错误1:Checking /bin/sh is not /bin/dash   [WARNING]

解决方法:原文链接

1
sudo dpkg-reconfigure dash

按英文提示、选择no、就可以把dash切换成bash、再执行ipsec verify就不会出现WARNING的提示了

5.在 /etc/init.d 下创建一个名为 ipsec的文件,内容如下:

1
#vi /etc/init.d/ipsec.vpn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
case "$1" in
  start)
    echo "Starting my Ipsec VPN"
    iptables  -t nat   -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j 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 start
    /etc/init.d/xl2tpd start
;;
  stop)
    echo "Stopping my Ipsec VPN"
    iptables --table nat --flush
    echo 0 > /proc/sys/net/ipv4/ip_forward
    /etc/init.d/ipsec stop
    /etc/init.d/xl2tpd stop
;;
  restart)
    echo "Restarting my Ipsec VPN"
    iptables  -t nat   -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j 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
    /etc/init.d/xl2tpd restart 
;;
  *)
    echo "Usage: /etc/init.d/ipsec.vpn  {start|stop|restart}"
    exit 1
;;
esac

这会配置防火墙转发。记得修改上面文件的本地IP地址池10.152.2.0/24为你自己的。

然后给这个文件设置可执行权限:

1
#sudo chmod 755 ipsec.vpn

禁止默认的 ipsec 服务脚本运行:

1
#sudo update-rc.d -f ipsec remove

然后,启用我们刚才定制的这个:

1
#sudo update-rc.d ipsec.vpn defaults

二、L2TP 

1
#vi /etc/xl2tpd/xl2tpd.conf
1
2
3
4
5
6
7
8
9
10
11
12
[global]
ipsec saref = no
  
[lns default]
ip range = 10.152.2.2-10.152.2.254
local ip = 10.152.2.1
require chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

配置说明如下:

1
2
3
4
5
ip range = 可以连接VPN服务的客户端IP地址范围
local ip = VPN 服务器的IP,必须在客户端IP范围之外
refuse pap = 拒绝 pap 认证
ppp debug = 测试时打开
选择一个复杂的挑战-响应式验证字符串。虽然没有最短长度限制,不过它应该至少有16个字符,也应该足够复杂才能保证安全。

打开文件 /etc/xl2tpd/l2tp-secrets ,填入你的密码:

1
#vi /etc/xl2tpd/l2tp-secrets
1
* * exampleforchallengestring

打开文件 /etc/ppp/options,做如下配置:

1
#vi /etc/ppp/options
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
refuse-mschap-v2
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mtu 1200
mru 1200
lock
hide-password
local
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

ms-dns 选项设置要给客户端分配的 DNS 服务器,当客户端连接时,就会被分配这些 DNS。如果要加入多个 DNS,就每行一个,分别写几行。

如果你要给客户端推送wins设置,可以分别设置如下选项。

mtu 和 mru 按照openswan.org的说法,减小 mru/mtu 的大小非常重要。因为  l2tp/ipsec 会封装几次,可能导致性能下降,减小这个配置的大小可以一次性传输全部的包。

proxyarp 可以将连接的客户端的IP地址和以太网地址加入的系统的ARP表中。这会影响到本地局域网内其它客户端。

name l2tpd 用在 PPP验证文件里面。

测试:

1
xl2tpd -D

添加用户

打开文件 /etc/ppp/chap-secrets ,做如下配置:

1
2
user1 l2tpd chooseagoodpassword *
user2 * chooseagoodpassword *

每行包括如下字段:

客户端 = 用户名称

服务器 = 在上面的 /etc/ppp/options.xl2tpd 定义的名字

密码 = 用户密码,你应该设置一个足够复杂的密码

IP 地址 = * 表示用户可以从任何地址连接,否则设置用户只能从特定的地址连接

注意:你可以添加多个用户。

IP转发

打开文件 /etc/sysctl.conf,修改配置:

1
net.ipv4.ip_forward=1

生效新的配置:

1
sysctl -p

启动VPN 

1
2
sudo /etc/init.d/ipsec.vpn restart
sudo /etc/init.d/xl2tpd restart

参考链接:

https://linux.cn/article-3409-1.html

http://ryotamono.com/2015/03/Install%20L2TP%20Server%20on%20Ubuntu/

http://blog.csdn.net/seamanjiang/article/details/9337487

http://blog.csdn.net/hadooppythondjango/article/details/45248503

http://b.gkp.cc/2010/06/19/setup-ipsec-l2tp-on-centos-55/

本文转自 piazini 51CTO博客,原文链接:http://blog.51cto.com/wutou/1899340

Ubuntu15.04安装IPSec/L2TP相关推荐

  1. linux安装2870无线网卡,ubuntu15.04安装usb无线网卡

    一般这种无线网卡都是联fake芯片,我使用的ralin(你懂的k)的usb无线1150 M. 你去找lei凌官网找不到,只能去找芯片类型的制造者,所以只能去联Fake官网查询下载对应型号. 1.我是这 ...

  2. ubuntu15.04安装wps-office的64位版

    下载wps-office的x64版 http://wps-community.org/download.html 2.安装: sudo dpkg -i wps-office_9.1.0.4961~a1 ...

  3. debian java pick up_ubuntu15.04安装java的时出现Picked up JAVA_TOOL_OPTIONS: -jav

    为了帮助网友解决"ubuntu15.04安装java的时出"相关的问题,中国学网通过互联网对"ubuntu15.04安装java的时出"相关的解决方案进行了整理 ...

  4. Ubuntu15.04 64位安装Theano(已经测试可执行)

    备注:之前服务器上已经安装caffe,后安装Theano,所有有些步骤简略. 安装caffe详情见 Caffe + Ubuntu 15.04 + CUDA 7.5 在服务器上安装配置及卸载重新安装(已 ...

  5. ubuntu15.04在安装完vmware11后打开提示 VMware Kernel Module Updater

    ubuntu15.04在安装完vmware11后打开提示 VMware Kernel Module Updater 说什么内核需要重编译,但点击确定后又失败了 查看了网上,说linux内核版本升级,导 ...

  6. ubuntu 21.04安装OBS Studio录屏软件

    Linux支持的版本是由ubuntu14.04或者更新版本的官方提供的. 需要FFmpeg支持.对于ubuntu14.04 LTS,FFmepg并没有被正式包括在内,因此你需要一个特定的PPA: su ...

  7. 支持IPsec / L2TP / EtherIP测试版下载

    支持IPsec / L2TP / EtherIP测试版下载 PacketiX ×××已经增加了支持IPsec / L2TP / EtherIP服务器的功能. 由此,iPhone.iPod Touch. ...

  8. efi linux win10,WIN10+UBUNTU15.04 kylin(EFI+GPT)

    首先,恭喜自己经过两天的辛苦努力终于完成双系统的安装,一般新购买的电脑预装win8,都是采用EFI+GPT方式,而网上的很多教程都是bios+mrt下安装双系统,什么easybcd... balaba ...

  9. Ubuntu 15.04 安装 Nvidia Quadro系列显卡驱动

    在这之前,我用的Ubuntu都是系统自带的驱动, 由于分辨率没有任何问题, 所以一直没有安装Nvidia官方的驱动; 近期更新到 15.04 之后, 在播放avi 格式的常规视频时却出现闪烁的现象, ...

最新文章

  1. 北汽蓝谷极狐阿尔法S与T
  2. 数据集合 oracle,oracle集合
  3. 记录 之 cat 和 awk gsub 的使用
  4. currency in SalesPipeline
  5. qq数据泄露_如何保护企业移动端的数据安全?
  6. 全球计算机用户人数,NIC2019年11月:全球IPv6 用户数占比中国居43位
  7. python工具书推荐_希望更加深入了解python 有什么书可以推荐?
  8. No package 'libxml-2.0' found
  9. PHP人民币金额数字转中文大写的函数
  10. Python 中 jieba 库
  11. 基于MATLAB的运动模糊图像处理
  12. 基于协同过滤算法的商品推荐购物电商系统
  13. 【MySQL数据库】 - 复杂查询(二)
  14. python学习笔记之pyinstaller failed to execute script问题
  15. 大snbsp;汪小菲nbsp;闪婚
  16. matlab分形曼德勃罗,曼德勃罗集合分形图案
  17. 低代码开发Paas平台时代来了
  18. oracle数据库or exists,Oracle Not Exists运算符
  19. 关于人工智能行业寒冬的思考
  20. 计算机基础课程的金课,我校8门课程获批省级线上“金课”

热门文章

  1. 网站路径及文件路径问题
  2. Redhat change hostname
  3. Java基础笔记17
  4. 关于数据的级联删除和更新
  5. IT公司100题-27-跳台阶问题
  6. 一个监控磁盘的nagios脚本
  7. ODBC访问EXCEL
  8. ubuntu安装使用不同版本的gcc
  9. 带你手写基于 Spring 的可插拔式 RPC 框架(二)整体结构
  10. GDI 泄漏检测方法