If I were to allow access from an external IP address (and there ould have to be a really good reason), I'd consider using a SSH service running on a non-standard port with a passwordless option. Ideally have a service auto-ban anyone failing more than 3 attempts for an hour+. Then tunnel in form there. But I don't really get the point of a FreeNAS on the internet.
IMO, the best use for that type of application is a small NAS like a Rpi + USB disk that you put out into the DMZ, harden as above, and if it burns down, oh well. As for FTP, it's possible, though unlikely, that a local ISP is blocking those ports. You might try using non-standard ports that don't arouse the usual suspicion.
I would NEVER use FTP for anything connected to the internet, however. Those passwords are going out in the clear, IIRC. You'd want to use SFTP as a minimum.