First things first. If you ever at any time under any circumstances allow your users to see the navigation / object window, you have already lost the battle.
You need to have a master form, perhaps a switch-board type, that is automatically loaded when your DB app starts up. You can never allow this form to close without having also closed the database. You have to take steps to hide the ribbon and to prevent users from bypassing the startup form i.e. the SHIFT/F11 keys and other methods. You can look up these topics online through this forum or any good web search engine. "Hide the ribbon" "Prevent startup form bypass" etc.
Also you can convert things to MDE (or ACCDE as appropriate) - i.e. compile them. As noted by ypma, NEVER put your developer copy as an MDE because if you do, you just permanently froze your code. Make a copy of your development files and turn the copies into MDE/ACCDE files. Distribute the copies.
Remember that someone who REALLY wants to get in will be able to do so by directly running Access using import/export functions from a blank database. Therefore, with the split FE, remember that you can't actually protect the FE - but you can make it so that the FE file will not run on the server that is your file holder. Then make the users copy the FE file to their local workstations.
The master FE file that you let people copy can (should) have links to the master BE file, but you don't care quite as much if your users hose their own private copy of the FE file. You just want to protect YOUR COPY of the FE file in that case.
A large part of your problem will also be your user base. If they are an unruly lot, may I suggest getting your boss involved with dire warnings, threats of job-related actions, etc. (if the database is for a company project).