ipsec服务器搭建如何配置?新手必看步骤详解

搭建IPSec服务器主要用于实现远程安全接入,通过加密隧道保护数据传输安全,常用于企业分支机构互联或员工远程访问内部资源,以下以Linux系统(以Ubuntu 20.04为例)结合StrongSwan工具搭建IPSec VPN服务器的详细步骤:

ipsec 服务器搭建

环境准备

  1. 服务器要求:一台公网IP的云服务器或本地服务器,推荐配置2核4G以上,操作系统为Ubuntu 20.04 LTS。
  2. 网络配置:确保服务器防火墙允许UDP端口500(IKE)、4500(NATT)及ESP协议(协议号50),可通过ufwiptables开放端口。
  3. 依赖安装:更新系统并安装StrongSwan及相关工具:
    sudo apt update && sudo apt upgrade y
    sudo apt install strongswan strongswanpki libcharonextraplugins y

配置IPSec服务器

生成证书(可选,但推荐用于双向认证)

  • 创建CA证书
    mkdir p /etc/ipsec.d/{cacerts,certs,private}
    ipsec pki gen type rsa size 4096 outform pem > /etc/ipsec.d/private/cakey.pem
    ipsec pki self ca lifetime 3650 in /etc/ipsec.d/private/cakey.pem type rsa dn "CN=VPN CA" outform pem > /etc/ipsec.d/cacerts/cacert.pem
  • 创建服务器证书
    ipsec pki gen type rsa size 2048 outform pem > /etc/ipsec.d/private/serverkey.pem
    ipsec pki pub in /etc/ipsec.d/private/serverkey.pem type rsa | ipsec pki issue lifetime 1825 cacert /etc/ipsec.d/cacerts/cacert.pem cakey /etc/ipsec.d/private/cakey.pem dn "CN=服务器公网IP" san "服务器公网IP" flag serverAuth flag ikeIntermediate outform pem > /etc/ipsec.d/certs/servercert.pem

配置StrongSwan核心文件

  • 修改ipsec.conf

    sudo nano /etc/ipsec.conf

    添加以下内容:

    config setup
        charondebug="ike 2, knl 2, cfg 2"
        uniqueids=no
    conn %default
        keyexchange=ikev2
        auto=add
        rekey=no
        dpdaction=clear
        dpddelay=300s
    conn ikev2vpn
        left=%any
        leftid=%server公网IP
        leftauth=pubkey
        leftcert=servercert.pem
        leftsendcert=always
        leftsubnet=0.0.0.0/0
        right=%any
        rightid=%any
        rightauth=pubkey
        rightsourceip=10.10.10.0/24
        rightsendcert=never
        ike=chacha20poly1305sha512curve25519prfsha512,aes256gcm16sha384prfsha384ecp384,aes256gcm16sha256prfsha256ecp256!
        esp=chacha20poly1305sha512,aes256gcm16sha384,aes256gcm16sha256!
        ikefrag=yes
        mobike=yes
  • 修改ipsec.secrets:配置服务器私钥路径:

    sudo nano /etc/ipsec.secrets

    添加:

    : RSA /etc/ipsec.d/private/serverkey.pem

配置客户端IP地址池

/etc/ipsec.confikev2vpn连接中已通过rightsourceip定义了客户端IP池(10.10.0/24),可根据需求修改,若需动态分配,可安装dnsmasq并配置DHCP:

ipsec 服务器搭建

sudo apt install dnsmasq y
sudo nano /etc/dnsmasq.conf

添加:

interface=eth0  # 服务器网卡名
listenaddress=127.0.0.1
dhcprange=10.10.10.100,10.10.10.200,255.255.255.0,24h

启动并启用服务:

sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq

启动并测试服务

  1. 启动StrongSwan
    sudo systemctl restart strongswan
    sudo systemctl enable strongswan
  2. 检查状态
    sudo ipsec statusall  # 查看连接状态
    sudo journalctl u strongswan  # 查看日志排查错误
  3. 客户端测试
    • Windows:通过“设置”>“网络和Internet”>“VPN”添加IKEv2 VPN,服务器地址为服务器公网IP,证书导入服务器证书(若使用双向认证)。
    • macOS/iOS:系统设置中添加VPN类型选择“IKEv2”,输入服务器地址、账号(证书模式下需导入客户端证书)。
    • Android:使用strongSwan客户端,导入服务器证书后配置连接。

防火墙与路由配置

确保服务器允许IPsec流量通过,以ufw为例:

sudo ufw allow 500/udp
sudo ufw allow 4500/udp
sudo ufw allow esp
sudo ufw reload

若需客户端访问内网资源,需开启IP转发:

sudo nano /etc/sysctl.conf

取消注释net.ipv4.ip_forward=1,执行:

ipsec 服务器搭建

sudo sysctl p

配置NAT转发(iptables):

sudo iptables t nat A POSTROUTING s 10.10.10.0/24 o eth0 j MASQUERADE
sudo iptablessave > /etc/iptables/rules.v4

FAQs

Q1: 连接VPN时提示“认证失败”怎么办?
A: 可能原因包括:

  • 证书问题:检查服务器证书是否正确导入客户端,或ipsec.secrets中的私钥路径是否正确。
  • 用户认证:若使用预共享密钥(PSK),确保ipsec.secrets中密钥与客户端一致;若使用证书,检查客户端证书是否由CA签发。
  • 防火墙:确认服务器防火墙允许500/4500端口及ESP协议,客户端本地防火墙未阻止VPN流量。
    可通过sudo journalctl u strongswan f实时查看日志定位具体错误。

Q2: 客户端获取不到IP地址或无法访问内网?
A: 常见解决方法:

  • IP池冲突:检查rightsourceip定义的IP段是否与服务器内网或其他网段冲突,确保dnsmasq(若使用)DHCP服务正常。
  • 路由问题:确认服务器开启了IP转发(net.ipv4.ip_forward=1),并正确配置了NAT转发规则(iptables)。
  • 客户端配置:检查VPN设置中的“使用默认网关”是否开启,或手动添加内网路由。
  • 安全组:云服务器需检查安全组是否放行了客户端IP段(如10.10.10.0/24)的出站规则。

通过以上步骤,即可搭建一个功能完善的IPSec VPN服务器,支持IKEv2协议,提供加密的远程接入服务,实际部署中可根据需求调整加密算法、IP池大小及认证方式,确保安全性与易用性平衡。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/293281.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年12月13日 20:04
下一篇 2025年12月13日 20:09

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN