服务器测评网
我们一直在努力

linux ipsec配置

Linux IPSec 配置指南

IPSec 简介

IPSec(Internet Protocol Security)是一种网络层安全协议,用于在 IP 网络上提供数据加密、认证和完整性保护,Linux 系统通过内置的 strongSwanLibreswan 工具实现 IPSec 配置,支持站点到站点(Site-to-Site)和远程访问(Remote Access)两种模式,本文以 strongSwan 为例,介绍完整的配置流程。

linux ipsec配置

环境准备

  1. 安装 strongSwan
    在基于 Debian/Ubuntu 的系统中,使用以下命令安装:

    sudo apt update && sudo apt install strongswan strongswan-pki

    在 CentOS/RHEL 系统中,可通过 EPEL 仓库安装:

    sudo yum install epel-release && sudo yum install strongswan
  2. 生成证书与密钥
    IPSec 依赖证书进行身份验证,首先创建 CA 证书:

    ipsec pki --gen --outform pem > ca.pem
    ipsec pki --self --ca --lifetime 3650 --in ca.pem --dn "CN=Linux IPSec CA" --outform pem > ca.cert.pem

    为服务器和客户端生成证书(需替换 server.example.com 为实际域名或 IP):

    ipsec pki --gen --outform pem > server.pem
    ipsec pki --pub --in server.pem | ipsec pki --issue --lifetime 1825 --cacert ca.cert.pem --cakey ca.pem --dn "CN=server.example.com" --san server.example.com --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem

配置 IPSec 服务

  1. 编辑 ipsec.conf
    打开配置文件 /etc/ipsec.conf,定义连接参数:

    config setup
        charondebug="ike 2, cfg 2"
        uniqueids=no
    conn site-to-site
        auto=start
        rekey=no
        type=tunnel
        keyexchange=ikev2
        authby=pubkey
        left=%any
        leftid=server.example.com
        leftcert=server.cert.pem
        leftsubnet=10.0.0.0/24
        right=%any
        rightid=client.example.com
        rightcert=client.cert.pem
        rightsubnet=192.168.1.0/24
        ike=aes256-sha256-modp2048!
        esp=aes256-sha256-modp2048!

    参数说明:

    linux ipsec配置

    • auto=start:自动启动连接;
    • leftsubnetrightsubnet:分别定义两端内网网段;
    • ikeesp:指定加密算法。
  2. 配置 ipsec.secrets
    /etc/ipsec.secrets 中添加私钥路径:

    : RSA server.pem
  3. 调整内核参数
    编辑 /etc/sysctl.conf,启用 IP 转发:

    net.ipv4.ip_forward=1

    执行 sysctl -p 使配置生效。

启动与调试

  1. 启动服务

    sudo systemctl restart strongswan
    sudo systemctl enable strongswan
  2. 检查连接状态
    使用以下命令验证配置:

    sudo ipsec statusall
    sudo ipsec listcerts

    若显示 ESTABLISHED,表示连接成功。

    linux ipsec配置

客户端配置

  1. Windows 客户端

    • 进入“网络设置” > “VPN” > “添加 VPN 连接”;
    • 选择“Windows(内置)”作为 VPN 提供商,输入服务器地址和证书;
    • 在“安全”选项卡中启用“IKEv2”和证书认证。
  2. Android/iOS 客户端
    使用 strongSwan 官方客户端,导入服务器证书并配置 IKEv2 连接参数。

故障排查

  1. 日志分析
    查看 journalctl -u strongswan/var/log/charon.log 定位错误。
  2. 常见问题
    • 证书验证失败:检查证书有效期和 rightid 是否匹配;
    • 无法路由:确认防火墙规则(如 ufwiptables)已放行 UDP 端口 500 和 4500;
    • 密钥交换超时:检查两端网络连通性和 NAT 策略(推荐使用 nat-keepalive)。

安全建议

  1. 定期轮换证书和密钥;
  2. 限制 leftright 的 IP 范围,避免任意客户端接入;
  3. 启用双因子认证(如 EAP-TLS)。

通过以上步骤,即可在 Linux 系统中部署安全的 IPSec 隧道,实际部署时需根据网络环境调整参数,并结合防火墙策略强化整体安全性。

赞(0)
未经允许不得转载:好主机测评网 » linux ipsec配置