• CentOS 搭建L2TP


    一、解决依赖

    1. 开启tun

    cat /dev/net/tun

    (1) 如果返回如下表名已经开启

    cat: /dev/net/tun: File descriptor in bad state

    (2) 如果返回

    The TUN device is not available You need to enable TUN before running this script

    则,执行

    cd /dev
    mkdir net
    mknod net/tun c 10 200
    chmod 0666 net/tun

    2. 安装依赖

    yum install -y epel-release libreswan

    3. 安装L2TP

    有两个软件支持L2TP协议,一个是xl2tpd,另一个选择是StrongSwan。

    yum install -y xl2tpd

    二、配置

    1. Kernel配置

    vi /etc/sysctl.conf

    如下:

    vm.swappiness = 0
    kernel.sysrq = 1

    net.ipv4.neigh.default.gc_stale_time = 120

    # see details in https://help.aliyun.com/knowledge_detail/39428.html
    net.ipv4.conf.all.rp_filter = 0
    net.ipv4.conf.default.rp_filter = 0
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_announce = 2
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.default.accept_redirects = 0
    net.ipv4.conf.default.accept_source_route = 0

    # see details in https://help.aliyun.com/knowledge_detail/41334.html
    net.ipv4.tcp_max_tw_buckets = 5000
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_max_syn_backlog = 1024
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_slow_start_after_idle = 0

    net.ipv4.ip_forward=1

    保存修改

    sysctl -p

    2. 配置IPsec

    (1) 配置加密链接

    IPsec可对流量进行加密,保护VPN通信安全。

    vi /etc/ipsec.d/l2tp_ipsec.conf

    保存内容如下:

    conn L2TP-PSK-NAT
         rightsubnet=0.0.0.0/0
         also=L2TP-PSK-noNAT
    conn L2TP-PSK-noNAT
         authby=secret
         pfs=no
         auto=add
         keyingtries=3
         dpddelay=30
         dpdtimeout=120
         dpdaction=clear
         rekey=no
         ikelifetime=8h
         keylife=1h
         type=transport
         left=[本机的虚拟网段地址]
         leftprotoport=17/1701
         right=%any
         rightprotoport=17/%any

    (2). 配置PSK共享密钥

    vi /etc/ipsec.secrets

    添加

    : PSK "123456789"

    运行检查

    ipsec setup start
    ipsec verify

    需要一切OK

    (3) 启动IPsec

    systemctl enable ipsec

    3. 配置xl2tpd

    (1) 备份配置文件

    cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.bak

    (2) 打开配置文件

    vi /etc/xl2tpd/xl2tpd.conf

    这里主要需要修改是虚拟网络的地址段,注意local ip就是本机的虚拟地址,以下是默认值

    [lns default]
    ip range = 192.168.1.128-192.168.1.254
    local ip = 192.168.1.99

    此外,在同文件中需要注意PPP的配置文件地址

    pppoptfile = /etc/ppp/options.xl2tpd

    4. 配置PPP

    (1) 备份配置文件

    cp /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.bak

    (2) 打开配置文件

    vi /etc/ppp/options.xl2tpd

    主要修改dns服务器:

    ms-dns  8.8.8.8
    ms-dns  8.8.4.4
    ms-dns 4.2.2.4

    如下:

    name xl2tpd
    ipcp-accept-local
    ipcp-accept-remote
    
    # ms-dns  192.168.1.1
    # ms-dns  192.168.1.3
    ms-dns  8.8.8.8
    ms-dns  4.2.2.4
    ms-dns  8.8.4.4
    
    # ms-wins 192.168.1.2
    # ms-wins 192.168.1.4
    
    #noccp
    auth
    #obsolete: crtscts
    idle 1800
    mtu 1410
    mru 1410
    nodefaultroute
    debug
    #obsolete: lock
    proxyarp
    connect-delay 5000
    refuse-pap
    refuse-mschap
    refuse-mschap-v2
    persist
    logfile /var/log/xl2tpd.log

    (3). 设置用户名和密码

    vi /etc/ppp/chap-secrets

    格式为

    # client        server  secret                  IP addresses
    用户名 * 密码 *

    5. 启动xl2tpd

    systemctl start xl2tpd
    systemctl enable xl2tpd
    systemctl status xl2tpd

    6. 配置防火墙

    firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
    firewall-cmd --permanent --zone=public --add-masquerade
    firewall-cmd --permanent --add-rich-rule='rule protocol value="esp" accept'
    firewall-cmd --permanent --add-rich-rule='rule protocol value="ah" accept'
    firewall-cmd --permanent --add-port=1701/udp
    firewall-cmd --permanent --add-port=500/udp
    firewall-cmd --permanent --add-port=4500/udp
    firewall-cmd --permanent --add-service="ipsec"
    firewall-cmd --reload

    7. 配置云环境

    务必开通UDP协议端口,而不是TCP。

  • 相关阅读:
    【WCF学习随笔三】初见WCF。
    【WCF学习随笔二】第一个WebService应用。
    【WCF学习随笔一】序言。
    .NET Framework 4.5.1 开源了是广大程序员的巨大财富。
    数据逆向传递 unwind segue
    segue生命周期
    FusionChart学习笔记(部分)
    图解MonoForAndroid开发环境搭建
    jdbc_odbc SQLserver 驱动安装及测试
    关键词:CodeSmith工具、Money类型、__UNKNOWN__
  • 原文地址:https://www.cnblogs.com/eagle6688/p/14519339.html
Copyright © 2020-2023  润新知