CloudFlare в режиме прокси поможет в этом, так как он скроет IP-адрес сервера и разрешит трафик только на порты 80 и 443. Если вы хотите сделать сервер доступен через домен на других портах, тогда необходимо использовать другой подход.
Вы не можете перенаправить текст в переменную, вам нужно его захватить. Но вы хотите сохранить текст stderr, а не stdout:
if error=$( tar -xf "$1" -C "$2/$dir_name" 2>&1 1>/dev/null ); then...
if
будет действовать на статус выхода tar.
Избавьтесь от привычки использовать ВСЕ _ЗАГЛАВНЫЕ _ВАРИАНТЫ.