[Swan] Support for SHA 256-512

Shweta Kalyani shwetakalyani at gmail.com
Wed Jun 3 12:43:29 UTC 2020


Thanks Tuomo,

I did try your suggestion but it is not working. I am using libreswan-3.32
- forgot to mention in the earlier email.

Thanks,
Shweta

# cat /etc/config/ipsec.conf
version 2
config setup
protostack = netkey
klipsdebug = none
plutodebug = none
uniqueids = yes
hidetos = no

conn Tunnel67_1
type = tunnel
left = 10.10.50.37
right = 10.10.50.67
leftnexthop = 10.10.50.1
leftsubnet = 192.168.6.0/24
rightsubnet = 192.168.2.0/24
auto = start
keyexchange = ike
authby = secret
keyingtries = 0
esp = AES256-SHA2_256
pfs = no
ikev2 = insist
rekey = yes
leftid = 10.10.50.37
rightid = 10.10.50.67
ike = AES128-SHA2_256-MODP1536
ikelifetime = 28800s
keylife = 86400s
rekeymargin = 10m
rekeyfuzz = 20%
#
# ipsec status
000 using kernel interface: netkey
000 interface lo/lo [::1]:500
000 interface lo/lo 127.0.0.1:4500
000 interface lo/lo 127.0.0.1:500
000 interface eth1/eth1 10.10.50.37:4500
000 interface eth1/eth1 10.10.50.37:500
000 interface eth0.1/eth0.1 192.168.5.37:4500
000 interface eth0.1/eth0.1 192.168.5.37:500
000 interface eth0.6/eth0.6 192.168.6.37:4500
000 interface eth0.6/eth0.6 192.168.6.37:500
000 interface eth0.7/eth0.7 172.168.7.37:4500
000 interface eth0.7/eth0.7 172.168.7.37:500
000
000
000 fips mode=disabled;
000 SElinux=disabled
000 seccomp=unsupported
000
000 config setup options:
000
000 configdir=/etc/config, configfile=/etc/config/ipsec.conf,
secrets=/etc/config/ipsec.secrets, ipsecdir=/etc/config
000 nssdir=/etc/config, dumpdir=/var/run/pluto, statsbin=unset
000 sbindir=/bin, libexecdir=/bin
000 pluto_version=3.32, pluto_vendorid=OE-Libreswan-3.32, audit-log=yes
000 nhelpers=-1, uniqueids=yes, dnssec-enable=no, perpeerlog=no,
logappend=yes, logip=yes, shuntlifetime=900s, xfrmlifetime=30s
000 ddos-cookies-threshold=50000, ddos-max-halfopen=25000, ddos-mode=auto
000 ikeport=500, ikebuf=0, msg_errqueue=yes, strictcrlpolicy=no,
crlcheckinterval=0, listen=<any>, nflog-all=0
000 ocsp-enable=no, ocsp-strict=no, ocsp-timeout=2, ocsp-uri=<unset>
000 ocsp-trust-name=<unset>
000 ocsp-cache-size=1000, ocsp-cache-min-age=3600,
ocsp-cache-max-age=86400, ocsp-method=get
000 global-redirect=no, global-redirect-to=<unset>
000 secctx-attr-type=<unsupported>
000 debug:
000
000 nat-traversal=yes, keep-alive=20, nat-ikeport=4500
000 virtual-private (%priv):
000
000 Kernel algorithms supported:
000
000 algorithm ESP encrypt: name=3DES_CBC, keysizemin=192, keysizemax=192
000 algorithm ESP encrypt: name=AES_CBC, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=AES_CCM_12, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=AES_CCM_16, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=AES_CCM_8, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=AES_CTR, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=AES_GCM_12, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=AES_GCM_16, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=AES_GCM_8, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=CAMELLIA_CBC, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=CHACHA20_POLY1305, keysizemin=256,
keysizemax=256
000 algorithm ESP encrypt: name=NULL, keysizemin=0, keysizemax=0
000 algorithm ESP encrypt: name=NULL_AUTH_AES_GMAC, keysizemin=128,
keysizemax=256
000 algorithm ESP encrypt: name=SERPENT_CBC, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: name=TWOFISH_CBC, keysizemin=128, keysizemax=256
000 algorithm AH/ESP auth: name=AES_CMAC_96, key-length=128
000 algorithm AH/ESP auth: name=AES_XCBC_96, key-length=128
000 algorithm AH/ESP auth: name=HMAC_MD5_96, key-length=128
000 algorithm AH/ESP auth: name=HMAC_SHA1_96, key-length=160
000 algorithm AH/ESP auth: name=HMAC_SHA2_256_128, key-length=256
000 algorithm AH/ESP auth: name=HMAC_SHA2_256_TRUNCBUG, key-length=256
000 algorithm AH/ESP auth: name=HMAC_SHA2_384_192, key-length=384
000 algorithm AH/ESP auth: name=HMAC_SHA2_512_256, key-length=512
000 algorithm AH/ESP auth: name=NONE, key-length=0
000
000 IKE algorithms supported:
000
000 algorithm IKE encrypt: v1id=5, v1name=OAKLEY_3DES_CBC, v2id=3,
v2name=3DES, blocksize=8, keydeflen=192
000 algorithm IKE encrypt: v1id=8, v1name=OAKLEY_CAMELLIA_CBC, v2id=23,
v2name=CAMELLIA_CBC, blocksize=16, keydeflen=128
000 algorithm IKE encrypt: v1id=-1, v1name=n/a, v2id=20, v2name=AES_GCM_C,
blocksize=16, keydeflen=128
000 algorithm IKE encrypt: v1id=-1, v1name=n/a, v2id=19, v2name=AES_GCM_B,
blocksize=16, keydeflen=128
000 algorithm IKE encrypt: v1id=-1, v1name=n/a, v2id=18, v2name=AES_GCM_A,
blocksize=16, keydeflen=128
000 algorithm IKE encrypt: v1id=13, v1name=OAKLEY_AES_CTR, v2id=13,
v2name=AES_CTR, blocksize=16, keydeflen=128
000 algorithm IKE encrypt: v1id=7, v1name=OAKLEY_AES_CBC, v2id=12,
v2name=AES_CBC, blocksize=16, keydeflen=128
000 algorithm IKE encrypt: v1id=65004, v1name=OAKLEY_SERPENT_CBC,
v2id=65004, v2name=SERPENT_CBC, blocksize=16, keydeflen=128
000 algorithm IKE encrypt: v1id=65005, v1name=OAKLEY_TWOFISH_CBC,
v2id=65005, v2name=TWOFISH_CBC, blocksize=16, keydeflen=128
000 algorithm IKE encrypt: v1id=65289, v1name=OAKLEY_TWOFISH_CBC_SSH,
v2id=65289, v2name=TWOFISH_CBC_SSH, blocksize=16, keydeflen=128
000 algorithm IKE encrypt: v1id=-1, v1name=n/a, v2id=28,
v2name=CHACHA20_POLY1305, blocksize=16, keydeflen=256
000 algorithm IKE PRF: name=HMAC_MD5, hashlen=16
000 algorithm IKE PRF: name=HMAC_SHA1, hashlen=20
000 algorithm IKE PRF: name=HMAC_SHA2_256, hashlen=32
000 algorithm IKE PRF: name=HMAC_SHA2_384, hashlen=48
000 algorithm IKE PRF: name=HMAC_SHA2_512, hashlen=64
000 algorithm IKE PRF: name=AES_XCBC, hashlen=16
000 algorithm IKE DH Key Exchange: name=MODP1024, bits=1024
000 algorithm IKE DH Key Exchange: name=MODP1536, bits=1536
000 algorithm IKE DH Key Exchange: name=MODP2048, bits=2048
000 algorithm IKE DH Key Exchange: name=MODP3072, bits=3072
000 algorithm IKE DH Key Exchange: name=MODP4096, bits=4096
000 algorithm IKE DH Key Exchange: name=MODP6144, bits=6144
000 algorithm IKE DH Key Exchange: name=MODP8192, bits=8192
000 algorithm IKE DH Key Exchange: name=DH19, bits=512
000 algorithm IKE DH Key Exchange: name=DH20, bits=768
000 algorithm IKE DH Key Exchange: name=DH21, bits=1056
000 algorithm IKE DH Key Exchange: name=DH31, bits=256
000
000 stats db_ops: {curr_cnt, total_cnt, maxsz} :context={0,0,0}
trans={0,0,0} attrs={0,0,0}
000
000 Connection list:
000
000 "Tunnel67_1": 192.168.6.0/24===10.10.50.37
<10.10.50.37>---10.10.50.1...10.10.50.67<10.10.50.67>===192.168.2.0/24;
unrouted; eroute owner: #0
000 "Tunnel67_1":     oriented; my_ip=unset; their_ip=unset;
my_updown=ipsec _updown;
000 "Tunnel67_1":   xauth us:none, xauth them:none,  my_username=[any];
their_username=[any]
000 "Tunnel67_1":   our auth:secret, their auth:secret
000 "Tunnel67_1":   modecfg info: us:none, them:none, modecfg policy:push,
dns:unset, domains:unset, banner:unset, cat:unset;
000 "Tunnel67_1":   policy_label:unset;
000 "Tunnel67_1":   ike_life: 28800s; ipsec_life: 86400s; replay_window:
32; rekey_margin: 600s; rekey_fuzz: 20%; keyingtries: 0;
000 "Tunnel67_1":   retransmit-interval: 500ms; retransmit-timeout: 60s;
000 "Tunnel67_1":   initial-contact:no; cisco-unity:no; fake-strongswan:no;
send-vendorid:no; send-no-esp-tfc:no;
000 "Tunnel67_1":   policy:
PSK+ENCRYPT+TUNNEL+UP+IKEV2_ALLOW+SAREF_TRACK+IKE_FRAG_ALLOW+ESN_NO;
000 "Tunnel67_1":   v2-auth-hash-policy: none;
000 "Tunnel67_1":   conn_prio: 24,24; interface: eth1; metric: 0; mtu:
unset; sa_prio:auto; sa_tfc:none;
000 "Tunnel67_1":   nflog-group: unset; mark: unset; vti-iface:unset;
vti-routing:no; vti-shared:no; nic-offload:auto;
000 "Tunnel67_1":   our idtype: ID_IPV4_ADDR; our id=10.10.50.37; their
idtype: ID_IPV4_ADDR; their id=10.10.50.67
000 "Tunnel67_1":   dpd: action:restart; delay:10; timeout:120; nat-t:
encaps:auto; nat_keepalive:yes; ikev1_natt:both
000 "Tunnel67_1":   newest ISAKMP SA: #3; newest IPsec SA: #0;
000 "Tunnel67_1":   IKE algorithms: AES_CBC_128-HMAC_SHA2_256-MODP1536
000 "Tunnel67_1":   IKEv2 algorithm newest:
AES_CBC_128-HMAC_SHA2_256-MODP1536
000 "Tunnel67_1":   ESP algorithms: AES_CBC_256-HMAC_SHA2_256_128
000
000 Total IPsec connections: loaded 1, active 0
000
000 State Information: DDoS cookies not required, Accepting new IKE
connections
000 IKE SAs: total(3), half-open(0), open(2), authenticated(1), anonymous(0)
000 IPsec SAs: total(0), authenticated(0), anonymous(0)
000
000 #1: "Tunnel67_1":500 STATE_PARENT_I2 (sent v2I2, expected v2R2);
EVENT_SA_REPLACE in 78s; idle;
000 #1: pending CHILD SA for "Tunnel67_1"
000 #2: "Tunnel67_1":500 STATE_PARENT_I2 (sent v2I2, expected v2R2);
EVENT_RETRANSMIT in 22s; lastlive=41s; idle;
000 #3: "Tunnel67_1":500 STATE_PARENT_R2 (received v2I2, PARENT SA
established); EVENT_SA_REKEY in 28466s; newest ISAKMP; idle;


On Wed, Jun 3, 2020 at 5:32 PM Tuomo Soini <tis at foobar.fi> wrote:

> On Wed, 3 Jun 2020 16:07:16 +0530
> Shweta Kalyani <shwetakalyani at gmail.com> wrote:
>
> > Hello,
> >
> > I wanted to check if SHA 256 and 512 is supported for IKEv1 and IKEv2
> > for esp tunnels.
> > Following is my conf in which phase 1 passes(ike_sa=1) but fails in
> > phase 2. I have enabled USE_SHA2=true when building libreswan.
> > Would appreciate your response on this.
> >
> > Thanks,
> > Shweta
> >
> > ipsec.conf:
> > # cat /etc/config/ipsec.conf
> > version 2
> > config setup
> > protostack = netkey
> > klipsdebug = none
> > plutodebug = none
> > uniqueids = yes
> > hidetos = no
> >
> > conn Tunnel37_1
> > ikev2 = no
> > type = tunnel
> > left = 10.10.50.67
> > right = 10.10.50.37
> > leftnexthop = 10.10.50.1
> > leftsubnet = 192.168.2.0/24
> > rightsubnet = 192.168.6.0/24
> > auto = start
> > keyexchange = ike
> > authby = secret
> > keyingtries = 0
> > esp = 3DES-SHA2_256
> > pfs = yes
> > rekey = yes
> > leftid = 10.10.50.67
> > rightid = 10.10.50.37
> > ike = 3DES-SHA2_256-MODP1024
> > ikelifetime = 28800s
> > keylife = 86400s
> > rekeymargin = 10m
> > rekeyfuzz = 20%
>
> You have perfect forward secrecy enabled (pfs=yes), I'd try with pfs=no
>
> I must say your crypto settings are totally insecure. You should not
> use 3des and especially you should not use modp1024 (diffie-hellman
> group 2). All IKEv1 implementations I know of can do diffie-hellman
> group 5 (modp1536) which is way more secure. We don't even support
> modp1024 any more on current release.
>
> aes128-sha2_256;modp1536 would be a lot more secure combination and
> similar settings for IPsec SA (which they called phase2).
>
> --
> Tuomo Soini <tis at foobar.fi>
> Foobar Linux services
> +358 40 5240030
> Foobar Oy <https://foobar.fi/>
> _______________________________________________
> Swan mailing list
> Swan at lists.libreswan.org
> https://lists.libreswan.org/mailman/listinfo/swan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libreswan.org/pipermail/swan/attachments/20200603/f8b65e5f/attachment-0001.html>


More information about the Swan mailing list