in reply to Net::FTP firewall fwuser fwpass

You need to set your Net::FTP in passive mode when tunneling through a firewall.

my $ftp = Net::FTP->new( $arg{host}, Firewall => 'firewall_host:port_no', FirewallType => 4, Passive => 1 );
Then for firewall type 4, do the sequence as said in the Net::Config manual.
USER fwuser PASS fwpass OPEN remote.site USER user PASS pass