使用 Strongswan 建立aws到本地 VPN 的访问链路

公司使用aws中国区服务,aws国际区支持vpn产品,可直接使用aws自带vpn服务器建立vpn私网连接。但是中国区目前没有上线此功能,需要自行搭建vpn站点,公司内部使用华为usg防火墙做为vpn网关。为解决公司到云平台网络互通,故决定使用ipsec搭建站点到站点vpn隧道。

DH group对应比特位:https://support.huaweicloud.com/vpn_faq/vpn_08_0617.html

开源vpn产品有很多,此次使用StrongSwan进行配置。

本实例以客户侧VPN配置信息为基础,详细介绍Linux中strongswan两种IPsec客户端VPN配置。

  1. 安装IPsecVPN客户端。

yum -y install strongswan

出现“Complete!”提示即完成安装,strongswan的配置文件集中放置在/etc/strongswan目录中,配置过程只需编辑ipsec.conf和ipsec.secrets文件即可。

  1. 开启IPv4转发。

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 //编辑增加内容
/sbin/sysctl -p //执行命令,生效转发配置命令</pre>

  1. iptables配置。

    确认关闭firewall或允许数据流转发,查询命令:iptables -L

iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination </pre>

  1. 预共享密钥配置。

vim /etc/strongswan/ipsec.secrets //编辑ipsec.secrets文件
22.22.22.22 11.11.11.11 : PSK "ipsec-key"

格式与openswan相同,冒号的两边都有空格,PSK只能为大写,密钥用英文双引号。

  1. ipsec连接配置。

vim /etc/strongswan / ipsec.conf //编辑ipsec.conf文件

#ipsec.conf - strongSwan IPsec configuration file

#basic configuration

#config setup
        # strictcrlpolicy=yes
        # uniqueids = no

config setup
     uniqueids=no # Add connections here.conn %default

conn %default
     authby=psk                  #使用预共享密钥认证方式

conn sirun                             #  //定义连接名称为strong_ipsec
     keyexchange=ikev1           #IPsec连接使用的IKE协议的版本
     leftid=52.81.100.102                   #                //本端标识ID
     #left=%any                       #  //本地IP,nat场景选择真实的主机地址
     left=172.29.0.73
     leftsubnet=172.29.0.0/16               #//本地子网
     rightid=117.133.54.252                      #//远端标识ID
     right=117.133.54.252                         #//远端VPN网关IP
     rightsubnet=192.168.8.0/21             #远端子
     #ike=aes-sha1-modp1024       #IPsec连接中IKE协议的加密算法-认证算法-DH分组
     #esp=aes-sha1             #IPsec连接中IPsec协议的加密算法-认证算法-DH分组

     ike=aes256-sha1-modp1536!       #IPsec连接中IKE协议的加密算法-认证算法-DH分组
     esp=aes256-sha1-modp1536!             #IPsec连接中IPsec协议的加密算法-认证算法-DH分组

     lifetime=86400s             #IPsec协议的SA生命周期
     type=tunnel
     aggressive=yes
     auto=start                                   #      //可选择add、route和start

配置完成后openswan可通过命令ipsec verify进行配置项校验,strongswan是在开启服务时进行校验。回显信息全部为OK时,表示配置成功。

">ipsec verify
Verifying installed system and configuration files
Version check and ipsec on-path [OK]
Libreswan 3.25 (netkey) on 3.10.0-957.5.1.el7.x86_64
Checking for IPsec support in kernel [OK]
NETKEY: Testing XFRM related proc values
ICMP default/send_redirects [OK]
ICMP default/accept_redirects [OK]
XFRM larval drop [OK]
Pluto ipsec.conf syntax [OK]
Two or more interfaces found, checking IP forwarding[OK]
Checking rp_filter [OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for IKE/NAT-T on udp 4500 [OK]
Pluto ipsec.secret syntax [OK]
Checking 'ip' command [OK]
Checking 'iptables' command [OK]
Checking 'prelink' command does not interfere with FIPS[OK]
Checking for obsolete ipsec.conf options [OK]</pre>

若回显信息出现如下报错:

Checking rp_filter [ENABLED]
/proc/sys/net/ipv4/conf/default/rp_filter [ENABLED]
/proc/sys/net/ipv4/conf/lo/rp_filter [ENABLED]
/proc/sys/net/ipv4/conf/eth0/rp_filter [ENABLED]
/proc/sys/net/ipv4/conf/eth1/rp_filter [ENABLED]
/proc/sys/net/ipv4/conf/ip_vti01/rp_filter [ENABLED]</pre>

通过如下命令解决:

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/ip_vti01/rp_filter</pre>

  1. 启动服务。

service strongswan stop //关闭服务
service strongswan start //启动服务
service strongswan restart //重启服务
strongswan down strong_ipsec //关闭连接
strongswan up strong_ipsec //开启连接</pre>

说明:

每次修改配置都需要重启服务,并重新开启连接。

配置验证

通过strongswan statusall查询,可见连接启动时间。

[root@ip-172-29-0-73 ec2-user]# strongswan statusall
Status of IKE charon daemon (strongSwan 5.7.2, Linux 4.14.281-212.502.amzn2.x86_64, x86_64):
  uptime: 22 minutes, since Oct 17 09:26:36 2022
  malloc: sbrk 1884160, mmap 0, used 1016560, free 867600
  worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 3
  loaded plugins: charon pkcs11 tpm aesni aes des rc2 sha2 sha1 md4 md5 mgf1 random nonce x509 revocation constraints acert pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl gcrypt fips-prf gmp curve25519 chapoly xcbc cmac hmac ctr ccm gcm curl attr kernel-netlink resolve socket-default farp stroke vici updown eap-identity eap-sim eap-aka eap-aka-3gpp eap-aka-3gpp2 eap-md5 eap-gtc eap-mschapv2 eap-dynamic eap-radius eap-tls eap-ttls eap-peap xauth-generic xauth-eap xauth-pam xauth-noauth dhcp led duplicheck unity counters
Listening IP addresses:
  172.29.0.73
Connections:
       sirun:  172.29.0.73...117.133.54.252  IKEv1 Aggressive
       sirun:   local:  [52.81.100.102] uses pre-shared key authentication
       sirun:   remote: [117.133.54.252] uses pre-shared key authentication
       sirun:   child:  172.29.0.0/16 === 192.168.8.0/21 TUNNEL
Security Associations (1 up, 0 connecting):
       sirun[1]: ESTABLISHED 21 minutes ago, 172.29.0.73[52.81.100.102]...117.133.54.252[117.133.54.252]
       sirun[1]: IKEv1 SPIs: 49a41879ff78d648_i* 3862d38b1b99d255_r, pre-shared key reauthentication in 2 hours
       sirun[1]: IKE proposal: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1536
       sirun{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c1139c01_i 0ebe9c4c_o
       sirun{1}:  AES_CBC_256/HMAC_SHA1_96/MODP_1536, 0 bytes_i, 0 bytes_o, rekeying in 23 hours
       sirun{1}:   172.29.0.0/16 === 192.168.8.0/21
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容