Skip to content

Commit

Permalink
packaging: SECURITY, insecure temp files on rpm package installation
Browse files Browse the repository at this point in the history
  • Loading branch information
bleve committed Nov 8, 2013
1 parent a83c862 commit ef2d756
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 41 deletions.
16 changes: 9 additions & 7 deletions packaging/fedora/17/libreswan.spec
Expand Up @@ -149,8 +149,8 @@ install -d %{buildroot}%{_sbindir}
mkdir -p %{buildroot}%{_libdir}/fipscheck
%endif

echo "include /etc/ipsec.d/*.secrets" > %{buildroot}%{_sysconfdir}/ipsec.secrets
rm -fr %{buildroot}/etc/rc.d/rc*
echo "include %{_sysconfdir}/ipsec.d/*.secrets" > %{buildroot}%{_sysconfdir}/ipsec.secrets
rm -fr %{buildroot}%{_sysconfdir}/rc.d/rc*

%files
%doc BUGS CHANGES COPYING CREDITS README LICENSE
Expand Down Expand Up @@ -195,11 +195,13 @@ if [ $1 -eq 1 ] ; then
# Initial installation
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
if [ ! -f /etc/ipsec.d/cert8.db ] ; then
echo > /var/tmp/libreswan-nss-pwd
certutil -N -f /var/tmp/libreswan-nss-pwd -d /etc/ipsec.d
restorecon /etc/ipsec.d/*db 2>/dev/null || :
rm /var/tmp/libreswan-nss-pwd
if [ ! -f %{_sysconfdir}/ipsec.d/cert8.db ] ; then
TEMPFILE=$(/bin/mktemp %{_sysconfdir}/ipsec.d/nsspw.XXXXXXX)
[ $? -gt 0 ] && TEMPFILE=%{_sysconfdir}/ipsec.d/nsspw.$$
echo > ${TEMPFILE}
certutil -N -f ${TEMPFILE} -d %{_sysconfdir}/ipsec.d
restorecon %{_sysconfdir}/ipsec.d/*db 2>/dev/null || :
rm -f ${TEMPFILE}
fi


Expand Down
18 changes: 10 additions & 8 deletions packaging/fedora/18/libreswan.spec
Expand Up @@ -99,7 +99,7 @@ Libreswan is based on Openswan-2.6.38 which in turn is based on FreeS/WAN-2.04
USE_XAUTHPAM=true \
%if %{USE_FIPSCHECK}
USE_FIPSCHECK="%{USE_FIPSCHECK}" \
FIPSPRODUCTCHECK=/etc/system-fips \
FIPSPRODUCTCHECK=%{_sysconfdir}/system-fips \
%endif
USE_LIBCAP_NG="%{USE_LIBCAP_NG}" \
USE_LABELED_IPSEC="%{USE_LABELED_IPSEC}" \
Expand Down Expand Up @@ -153,8 +153,8 @@ install -d %{buildroot}%{_sysconfdir}/prelink.conf.d/
install -m644 packaging/fedora/libreswan-prelink.conf %{buildroot}%{_sysconfdir}/prelink.conf.d/libreswan-fips.conf
%endif

echo "include /etc/ipsec.d/*.secrets" > %{buildroot}%{_sysconfdir}/ipsec.secrets
rm -fr %{buildroot}/etc/rc.d/rc*
echo "include %{_sysconfdir}/ipsec.d/*.secrets" > %{buildroot}%{_sysconfdir}/ipsec.secrets
rm -fr %{buildroot}%{_sysconfdir}/rc.d/rc*

%files
%doc BUGS CHANGES COPYING CREDITS README LICENSE
Expand Down Expand Up @@ -190,11 +190,13 @@ rm -fr %{buildroot}/etc/rc.d/rc*

%post
%systemd_post ipsec.service
if [ ! -f /etc/ipsec.d/cert8.db ] ; then
echo > /var/tmp/libreswan-nss-pwd
certutil -N -f /var/tmp/libreswan-nss-pwd -d /etc/ipsec.d
restorecon /etc/ipsec.d/*db 2>/dev/null || :
rm /var/tmp/libreswan-nss-pwd
if [ ! -f %{_sysconfdir}/ipsec.d/cert8.db ] ; then
TEMPFILE=$(/bin/mktemp %{_sysconfdir}/ipsec.d/nsspw.XXXXXXX)
[ $? -gt 0 ] && TEMPFILE=%{_sysconfdir}/ipsec.d/nsspw.$$
echo > ${TEMPFILE}
certutil -N -f ${TEMPFILE} -d %{_sysconfdir}/ipsec.d
restorecon %{_sysconfdir}/ipsec.d/*db 2>/dev/null || :
rm -f ${TEMPFILE}
fi

%changelog
Expand Down
18 changes: 10 additions & 8 deletions packaging/fedora/19/libreswan.spec
Expand Up @@ -99,7 +99,7 @@ Libreswan is based on Openswan-2.6.38 which in turn is based on FreeS/WAN-2.04
USE_XAUTHPAM=true \
%if %{USE_FIPSCHECK}
USE_FIPSCHECK="%{USE_FIPSCHECK}" \
FIPSPRODUCTCHECK=/etc/system-fips \
FIPSPRODUCTCHECK=%{_syconfdir}/system-fips \
%endif
USE_LIBCAP_NG="%{USE_LIBCAP_NG}" \
USE_LABELED_IPSEC="%{USE_LABELED_IPSEC}" \
Expand Down Expand Up @@ -153,8 +153,8 @@ install -d %{buildroot}%{_sysconfdir}/prelink.conf.d/
install -m644 packaging/fedora/libreswan-prelink.conf %{buildroot}%{_sysconfdir}/prelink.conf.d/libreswan-fips.conf
%endif

echo "include /etc/ipsec.d/*.secrets" > %{buildroot}%{_sysconfdir}/ipsec.secrets
rm -fr %{buildroot}/etc/rc.d/rc*
echo "include %{_syconfdir}/ipsec.d/*.secrets" > %{buildroot}%{_sysconfdir}/ipsec.secrets
rm -fr %{buildroot}%{_syconfdir}/rc.d/rc*

%files
%doc BUGS CHANGES COPYING CREDITS README LICENSE
Expand Down Expand Up @@ -190,11 +190,13 @@ rm -fr %{buildroot}/etc/rc.d/rc*

%post
%systemd_post ipsec.service
if [ ! -f /etc/ipsec.d/cert8.db ] ; then
echo > /var/tmp/libreswan-nss-pwd
certutil -N -f /var/tmp/libreswan-nss-pwd -d /etc/ipsec.d
restorecon /etc/ipsec.d/*db 2>/dev/null || :
rm /var/tmp/libreswan-nss-pwd
if [ ! -f %{_sysconfdir}/ipsec.d/cert8.db ] ; then
TEMPFILE=$(/bin/mktemp %{_sysconfdir}/ipsec.d/nsspw.XXXXXXX)
[ $? -gt 0 ] && TEMPFILE=%{_sysconfdir}/ipsec.d/nsspw.$$
echo > ${TEMPFILE}
certutil -N -f ${TEMPFILE} -d %{_sysconfdir}/ipsec.d
restorecon %{_sysconfdir}/ipsec.d/*db 2>/dev/null || :
rm -f ${TEMPFILE}
fi

%changelog
Expand Down
12 changes: 7 additions & 5 deletions packaging/rhel/5/libreswan.spec
Expand Up @@ -191,11 +191,13 @@ fi

%post
/sbin/chkconfig --add ipsec || :
if [ ! -f /etc/ipsec.d/cert8.db ] ; then
echo > /var/tmp/libreswan-nss-pwd
certutil -N -f /var/tmp/libreswan-nss-pwd -d /etc/ipsec.d
restorecon /etc/ipsec.d/*db 2>/dev/null || :
rm /var/tmp/libreswan-nss-pwd
if [ ! -f %{_sysconfdir}/ipsec.d/cert8.db ] ; then
TEMPFILE=$(/bin/mktemp %{_sysconfdir}/ipsec.d/nsspw.XXXXXXX)
[ $? -gt 0 ] && TEMPFILE=%{_sysconfdir}/ipsec.d/nsspw.$$
echo > ${TEMPFILE}
certutil -N -f ${TEMPFILE} -d %{_sysconfdir}/ipsec.d
restorecon %{_sysconfdir}/ipsec.d/*db 2>/dev/null || :
rm -f ${TEMPFILE}
fi

%changelog
Expand Down
18 changes: 10 additions & 8 deletions packaging/rhel/6/libreswan.spec
Expand Up @@ -96,7 +96,7 @@ Libreswan is based on Openswan-2.6.38 which in turn is based on FreeS/WAN-2.04
USE_NM=%{USE_NM} \
USE_XAUTHPAM=true \
USE_FIPSCHECK=%{USE_FIPSCHECK} \
FIPSPRODUCTCHECK="/etc/system-fips" \
FIPSPRODUCTCHECK="%{_sysconfdir}/system-fips" \
USE_LIBCAP_NG=%{USE_LIBCAP_NG} \
USE_LABELED_IPSEC=%{USE_LABELED_IPSEC} \
USE_LDAP=%{USE_CRL_FETCHING} \
Expand Down Expand Up @@ -143,8 +143,8 @@ install -d %{buildroot}%{_sbindir}
# replace with rhel[56] specific version
install -m 0755 initsystems/sysvinit/init.rhel %{buildroot}%{_initrddir}/ipsec

echo "include /etc/ipsec.d/*.secrets" > %{buildroot}%{_sysconfdir}/ipsec.secrets
rm -fr %{buildroot}/etc/rc.d/rc*
echo "include %{_sysconfdir}/ipsec.d/*.secrets" > %{buildroot}%{_sysconfdir}/ipsec.secrets
rm -fr %{buildroot}%{_sysconfdir}/rc.d/rc*

%files
%doc BUGS CHANGES COPYING CREDITS README LICENSE
Expand Down Expand Up @@ -185,11 +185,13 @@ fi
%if %{USE_FIPSCHECK}
prelink -u %{_libexecdir}/ipsec/* 2>/dev/null || :
%endif
if [ ! -f /etc/ipsec.d/cert8.db ] ; then
echo > /var/tmp/libreswan-nss-pwd
certutil -N -f /var/tmp/libreswan-nss-pwd -d /etc/ipsec.d
restorecon /etc/ipsec.d/*db 2>/dev/null || :
rm /var/tmp/libreswan-nss-pwd
if [ ! -f %{_sysconfdir}/ipsec.d/cert8.db ] ; then
TEMPFILE=$(/bin/mktemp %{_sysconfdir}/ipsec.d/nsspw.XXXXXXX)
[ $? -gt 0 ] && TEMPFILE=%{_sysconfdir}/ipsec.d/nsspw.$$
echo > ${TEMPFILE}
certutil -N -f ${TEMPFILE} -d %{_sysconfdir}/ipsec.d
restorecon %{_sysconfdir}/ipsec.d/*db 2>/dev/null || :
rm -f ${TEMPFILE}
fi

%changelog
Expand Down
12 changes: 7 additions & 5 deletions packaging/rhel/7/libreswan.spec
Expand Up @@ -190,11 +190,13 @@ rm -fr %{buildroot}/etc/rc.d/rc*
%if %{USE_FIPSCHECK}
prelink -u %{_libexecdir}/ipsec/* 2>/dev/null || :
%endif
if [ ! -f /etc/ipsec.d/cert8.db ] ; then
echo > /var/tmp/libreswan-nss-pwd
certutil -N -f /var/tmp/libreswan-nss-pwd -d /etc/ipsec.d
restorecon /etc/ipsec.d/*db 2>/dev/null || :
rm /var/tmp/libreswan-nss-pwd
if [ ! -f %{_sysconfdir}/ipsec.d/cert8.db ] ; then
TEMPFILE=$(/bin/mktemp %{_sysconfdir}/ipsec.d/nsspw.XXXXXXX)
[ $? -gt 0 ] && TEMPFILE=%{_sysconfdir}/ipsec.d/nsspw.$$
echo > ${TEMPFILE}
certutil -N -f ${TEMPFILE} -d %{_sysconfdir}/ipsec.d
restorecon %{_sysconfdir}/ipsec.d/*db 2>/dev/null || :
rm -f ${TEMPFILE}
fi

%changelog
Expand Down

0 comments on commit ef2d756

Please sign in to comment.