commands are:
iptables -I INPUT -p tcp --dport 3389 -j ACCEPT > to open only that tcp port
sudo ufw enable transmission > to open the whole program
being a newbie I’d say it’s safer to only open a determined port with iptables. What do you think?
Both are fine. Ufw has a set of applications that are defined in terms of what ports they need for convenience. You wouldn’t have to know that 3389 is for RDP, you could just allow RDP. Ufw ultimately modifies the iptables, it is just another interface for interacting with it.
A big thing the other comments are missing is that just running the iptables rule only works for the current boot. You need something to rerun it every restart
ufw is a front end to make it easier to use them
If you want/need more control, you should look into /etc/iptables/rules.d config files
Edit: or depending on what your distro already has, the firewalld comment makes a lot of sense. E.g. that’s Fedora’s default front end