My firewall starts and restarts fine but if I try shorewall restore, the script fails because none of my shell variables from /etc/shorewall/params are set. Why?
You probably need to set EXPORTPARAMS=Yes. During start and restart, /etc/shorewall/params is processed by the shell after set -a; as a result, all param settings become part of the shell’s environment and are inherited by the running script. The shell does not process /etc/shorewall/params when processing the restore command.