For Quake 1, you need to keep in mind there are two completely different options, and mods have to be specifically designed around either of these options: NetQuake, and QuakeWorld.
NetQuake refers to the original netcode that Quake shipped with, it's client server, but there's absolutely NO client-side prediction. Everyone's client is a "dumb terminal", the server is in control of absolutely every aspect of the game state. This means that lag is immediately noticeable. The server doesn't send a whole lot of frames for the client to work with so on the clientside a type of linear interpolation is used to extrapolate these frames.
QuakeWorld which came out later, has a more "modern" kind of networking where clients are given the ability to perform some basic level of prediction by running some of the gamestate themselves, and the server corrects when things don't line up. A lot less bandwidth usage, a lot less lag perception. But due to how all that works any mods that were made for how things originally work have to be re-written/re-compiled for QuakeWorld.
If a Quake 1 mod only supports NetQuake then there will only be a "PROGS.DAT" in it's PAK or folder, but if it supports QuakeWorld, there will be a "QWPROGS.DAT" or something similiar in addition to a "PROGS.DAT", keep that in mind if you want to do QuakeWorld with any kind of mod.
For Unreal and Unreal Tournament, all you need to know about things security-wise is that the default IpDrv is very naive and will happily accept certain packets that really shouldn't have shown up in the first place, the so called "fake players" bug. There's a third party fix for that called "Nephthys" that will solve most of those security flaws. Port forwarding is also very simple, you only ever really need one port open for anybody to connect to, and if you planned on having the server able to be queried, you need to open the port for that as well. 7777 is the default port for player connections and 7778 is the default for queries. These ports can be changed in the Unreal.ini/UnrealTournament.ini files
I would honestly suggest Unreal 1 over UT because I absolutely, hate dealing with the netcode in Unreal Tournament, it's very very buggy more so than Unreal 1 running on the 225f patch. (Which by the way, anybody hosting a Unreal 1 server should ONLY USE the 225f patch)
“I am the dragon without a name…”
― Κυνικός Δράκων