Hey there HN!
ruroco (RUn RemOte COmmand) is a tool that lets you execute commands on a server by sending UDP packets (instead of knocking on ports).
the tool consist of 3 binaries:
- client -> runs on your notebook/computer and sends the UDP packets
- server -> receives the UDP packets and makes sure that they are valid
- commander -> runs the command encoded by the data of the UDP packet if it's valid
The commands are configured on the server side, so the client does not define what is going to be executed, it only picks from existing commands.
I use this tool to open up the SSH port on my server via ufw, but only for the IP address from where I'm connecting, so the SSH port appears closed for everyone else, except me.
This is my very first "real" rust project, so any feedback is highly appreciated :)
Enjoy!
Instead of using UDP he reads the firewall log. Also he prevents replay attacks (even though his implementation is apparently not secure in this regard). Unfortunately his code is ancient and in Python 2, so a rust implementation would be awesome.