I would suggest changing the portlet.vm theme portlet.vm . This is pretty straight forward if you look at the sevencogs theme:
#if ($portlet_display.isShowBackIcon()) <a href="$portlet_back_url" class="portlet-icon-back">
Just remove $theme.iconClose() and your users will no longer be able to close / delete portlets. Note that this applies to all portlets (with its template).
If you want to disable the close button only for some portlets, I just do it with CSS. Make display: none in the .portlet-close-icon class, which is inherited by the div containing the iFrame. In particular,
.portlet-iframe .portlet-close-icon { display: none; }
will complete the task for the iFrame liferay portlet.
source share