• Linux Ipsec


    准备环境

    1 主机ip:192.168.0.107  
    2 VPN服务器:  
        ens32:192.168.0.102  
        ens33:127.16.1.10
    

    环境测试

    modprobe ppp-compress-18 && echo yes
    cat /dev/net/tun
    
    

    软件安装

    [root@localhost ~]# yum install -y xl2tpd libreswan lsof 
    注意:若无法安装xl2tp
        yum install -y epel-release
    

    xl2tpd.conf

    [root@localhost ~]# vim /etc/xl2tpd/xl2tpd.conf
    [global]
    [lns default]
    ip range = 172.16.1.100-172.16.1.199
    local ip = 172.16.1.10
    require chap = yes
    refuse pap = yes
    require authentication = yes
    name = LinuxVPNserver
    ppp debug = yes
    pppoptfile = /etc/ppp/options.xl2tpd
    length bit = yess
    

    options.xl2tpd

    [root@localhost ~]# vim /etc/ppp/options.xl2tpd
    # .....
    ipcp-accept-local
    ipcp-accept-remote
    ms-dns  114.114.114.114
    ms-dns  223.5.5.5
    # ms-wins 192.168.1.2
    # ms-wins 192.168.1.4
    name xl2tpd
    #noccp
    auth
    #crtscts
    idle 1800
    mtu 1410
    mru 1410
    nodefaultroute
    debug
    #lock
    proxyarp
    connect-delay 5000
    refuse-pap
    refuse-mschap
    require-mschap-v2
    persist
    logfile /var/log/xl2tpd.log
    

    ipsec.conf

    [root@localhost ~]# vim /etc/ipsec.conf      # 只修改以下项,其他默认
    config setup
    	  protostack=netkey
            dumpdir=/var/run/pluto/		
    			 	virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10
    include /etc/ipsec.d/*.conf
    

    l2tp-ipsec.conf

    [root@localhost ~]# vim /etc/ipsec.d/l2tp-ipsec.conf     # 新建如下配置文文件,直接复制的话,前面是很多空格,在启动的时候会报错,需要将空格删除,换成tab的距离,距离相同。不能用空格!
    conn L2TP-PSK-NAT
    (tab距离)rightsubnet=0.0.0.0/0
            dpddelay=10
            dpdtimeout=20
            dpdaction=clear
            forceencaps=yes
            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=172.16.1.10    # 这个是网卡的内网IP,后面通过NAT转发
            leftprotoport=17/1701    # 端口,默认1701,不用改
            right=%any
            rightprotoport=17/%any
    

    chap-secrets

    也就是我们一会在windows上登陆时用到的帐号和密码

    [root@localhost ~]# vim /etc/ppp/chap-secrets 
    # Secrets for authentication using CHAP
    # client        server                  secret                  IP addresses
        root         *                      456                           *
        用户名      服务类型(*代表所有)       密码                          连入的ip(*代表任意地址)
    

    default-secrets

    [root@localhost ~]# vim /etc/ipsec.d/default.secrets      # 新建如下文件
    ------------------------------------------------------------------------------------
    : PSK "MyPSK"    # 就一行,填上自定义的PSK,为欲共享密钥
    

    sysctl.conf

    [root@localhost ~]# vim /etc/sysctl.conf    # 添加如下配置到文件中,参数后面不能有空格
    net.ipv4.ip_forward = 1
    
    net.ipv4.conf.*.accept_redirects = 0
    net.ipv4.conf.*.rp_filter = 0
    net.ipv4.conf.*.send_redirects = 0
    注:
        *为/proc/sys/net/ipv4/conf/里面所有项目
    [root@localhost ~]# sysctl -p    # 加载内核参数使生效
    

    检查配置

    ipsec verify     # 检查命令
    注:
        # 可能会出现类似如下情况:
        Checking rp_filter                                  [ENABLED]
        /proc/sys/net/ipv4/conf/ens160/rp_filter           [ENABLED]
        /proc/sys/net/ipv4/conf/ens192/rp_filter           [ENABLED]
        # 这是内核参数没有生效,直接依次手动打开这些文件,将 1 改为 0
        # 然后重新执行检查,输出如下内容则OK:
    

    防火墙

    firewall-cmd --permanent --add-service=ipsec      # 放行ipsec服务,安装时会自定生成此服务
    firewall-cmd --permanent --add-port=1701/udp      # xl2tp 的端口,默认1701
    firewall-cmd --permanent --add-port=4500/udp 
    firewall-cmd --permanent --add-masquerade      # 启用NAT转发功能。必须启用此功能
    firewall-cmd --reload      # 重载配置
    

    开启服务

    systemctl enable ipsec     # 设为开机启动
    systemctl start ipsec     # 启动服务
    

    主机连接

    设置-》网络与Internet-》VPN-》添加VPN连接
    VPN提供商为Windows内置-》连接名称随意-》服务器地址为192.168.0.107-》VPN类型选使用欲共享密钥的L2TP/IPsec-》欲共享密钥 MyPSK 
    打开网络适配器-》修改VPN连接的属性-》安全-》允许使用这些协议-》勾上CHAP
    输入用户与密码
    注:若无法连接
    windows+r 运行
        输入 services.msc-》查找ipsec policy agent-》确保它在运行
        输入 regedit-》 HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters-》添加ProhibitIpSec,类型为 DWORD(32位), vlan为1,修改AllowL2TPWeakCrypto, vlan为 1
        保存退出,重启计算机
    
  • 相关阅读:
    模型定义
    聚合、原生和子查询
    PHP curl扩展
    时间查询
    查询表达式
    HTTP协议的Keep-Alive 模式
    抽象类可以没有抽象方法
    Nginx解决前端跨域问题,Nginx反向代理跨域原理
    Nginx配置文件不生效,Nginx配置文件重启也不生效
    php openssl加密解密函数
  • 原文地址:https://www.cnblogs.com/purple910/p/12012455.html
Copyright © 2020-2023  润新知