I was able to solve the problem from this post: http://efwsupport.com/index.php?topic=497.0
@daytron:
Following the RH/Centos doc for establishing a networ-to-network tunnel between two RH/Centos boxes is dead easy. However what is not documented is that by default both AH and ESP encryption are used in stage 2. By default, Endian/openswan only uses ESP encryption.
This also appears to be true for pfSense.
I changed the config of the Centos computer and now the tunnel works.
Centos ipsec config
–-----------------
/etc/sysconfig/network-scripts/ifcfg-ipsec0
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
AH_PROTO=none
SRCGW=172.20.2.1
DSTGW=172.20.1.20
SRCNET=172.20.2.0/24
DSTNET=172.20.1.0/24
DST=1.1.1.1