If you have a moray or puffer that decides it likes to eat fish or crayfish, then there's really nothing that can safely kept with them. Some morays feed on fish, others on crustaceans, but all are adaptable and if they decide they prefer live food to what you're giving them, then nothing is safe.
If you have a piscivorous moray eel (and some of them are more piscivorous than others) then probably your only option is to keep it alone or with others of its species (assuming it is a species that gets along with its own kind). Possibly keeping in a marine tank with something like a porcupine fish might be an option, but otherwise just accept it for what it is and enjoy it in its own tank.
Animals don't "defend" themselves in the way we imagine they should. Almost all animals run from danger, however well "armed" they might seem. Rhinos don't use their horns to attack lions if they can run away first, and horses don't kick wolves unless they're cornered. Forcing fish to "fight back" to keep their fins from being nipped by a puffer will stress those fish and eventually lead to diseases. It sounds as if your puffer needs to be kept alone, too.
And no, keeping cichlids with a brackish water moray isn't an option either. Morays hunt at night, by smell. Cichlids are very vulnerable at night because (like us) they work very much around sight. That's why so many of the smaller species have burrows. If a moray decides to take a chunk out of a cichlid at night, there isn't much the cichlid can do about it.
Cheers, Neale