log into the middleman machine and try an ssh connection directly from there. In the above case you've run ssh -R *:9300:localhost:22 middleuser@middleserver on the remote machine so you need to log in to the middlemachine and run: ssh remoteuser@localhost -p 9300

If that succeeds then the problem may be with a firewall on your server:

Before messing with iptables check and see if you've got a firewall manager in use. For example check if "ufw" is in use: sudo ufw status . It would be much easier to use ufw than to mess with iptables directly.

iptables -L and check if port 9300 is open ( this will involve some research of iptables.. it's NOT straightforward). Cheat: If port 9300 is listed next to http and in a similar way then check if http is open. If 9300 is listed below then it may not be reached if a "deny all"-type directive is listed before it.
It also may be listed as a named port. cat /etc/services | grep 9300 however doesn't bring up a name in this case