Note: This guide assumes you have ftp access to your server and are allowed to install and configure punkbuster (most times these factors won't be a problem). This guide also assumes a Call of Duty 4 server (that is what I did it with), although the steps are almost the same for other games.
Recently, I rented a gameserver for Call of Duty 4, but it didn't have Punkbuster installed at all. There was a PB folder on the server, but it was completely empty! The server is running on Linux as most do these days. The general stability and security is superior to that offered by a Windows box for example. So, the first thing to do is make sure you have all of your server credentials to hand as you will need those. Also, the general consensus after looking around various web forums, was that if you don't have punkbuster installed, you can't do it, and you'll need to have your provider reinstall it all for you. Rubbish. Provided you have the ftp access and a little common-sense, this is a no-brainer. So here we go...
Obtaining the PB Server Files
The first thing you will need to do is download the punkbuster server files for punkbuster. You can get these from the official evenbalance website. You may be able to source files like these from other locations on the web, but I strongly recommend against it. There is no telling if files have been tampered with or if they are corrupt. So, visit: http://www.punkbuster.com/ and choose your game from the list on that first page. So I chose CoD4 there. You will be presented with punkbuster's main page for that game, with an updates changelog and some other useful links. The one we need is 'Software Updates'. So choose the download button next to that text. Have a read of notice it displays (it will save me a job).
Now below that notice you will see a few sections with downloads for various punkbuster files. It does a fair job of telling you which files you need depending on whether you are a server admin or a player and what operating system you are using (win32, linux etc), but I will guide you through it, so there are no foul-ups. The first section contains 'PunkBuster Security Files'. You need to download the server variant of this. There is no operating system-specific version of this, so just get the server one, 'pbsecsv.htm'.
The next section is 'PunkBuster Player Client Files'. You're thinking, I am installing/updating my server, so why do I need client files? Is this a mistake. No. The server needs to have a copy of all player client files, and for each operating system version too. So you need to download all of these. Put these seperate to the previous file you downloaded in the last section, in a folder called 'htm'. This will help later on. When you have obtained all of these files (six), proceed to the next step.
The final section is 'PunkBuster Server Files', and you will need to download only the one which corresponds to your server's operating system. If you aren't sure what your server is running off, contact your GSP (game server provider), as they will be able to clarify that for you. If you are a little more experienced though, a quick nosey in your server's ftp directories will quickly hint a linux installation (.so files and folders with the name linux in them etc; it's not rocket-science really). Download the one that you need. I got the linux one here, 'pbsvnew.so'. Stick this file in the same place that you got the original security file (IE. not in the 'htm' folder you made). You'll see how this ordering is relevent in a minute.
Uploading (FTP'ing) the Files
Now we have all the files, we can proceed to upload them to the gameserver. Login to your server's ftp. You need to find a PB folder. This is punkbuster's folder as the abbreviation implies, and is where the game will look to initialize punkbuster when loading. This is where our steps may vary a bit. I have a linux server hosting Call of Duty 4, so when I login I see the following structure:
.callofduty4 .gnome2 .ssh xx.xxx.xxx.xxx-28960(where xx is my server IP)
All of those I just listed are folders. There are some loose files in there too (you may or may not have them), but they aren't important for us here. The folder I needed to be in is the first one. Once I drill on down into that directory, this is what I now see:
main pb(again, both are folders)
So, that is the PB folder we need to be in. Double-click on that. In my case, this location was completely devoid of any files. You may have some, or none at all. Once you are in this folder you need to upload the files you got earlier to it. Depending on your FTP client you may be able to drag and drop. The security and server file(s) need to be placed in here as they are, and not inside any extra folders. The player files are sat inside the 'htm' folder you made earlier, and for this one you need to upload the whole folder. If you already have a 'htm' folder on the server, you may wish to place in the individual updated files rather than overwrite the whole folder (although it shouldn't hurt either way).
Checking the main server config
One thing you need to be sure about is whether or not your server/game is actually trying to load punkbuster. It's no good installing punkbuster if your current config doesn't even include the appropriate statements to initialize it. On CoD4 (and other doom-engine based games), you can just verify the presence of the line 'set sv_punkbuster "1"'. On my server, I had to go back up a couple of levels back to the ftp root folder. Then I had to move into the folder which contained my server ip, and then down on into the 'main' folder. This main folder, in my case, contains the base game files for CoD4, and more importantly the main server config file 'server.cfg'.
Depending on the ftp client, you may be able to edit this file 'online' so-to-speak. If not, just download it to the desktop, do the edits, and then upload it back again (overwriting the existing one). Look for a punkbuster-related line. You need to make sure the line 'set sv_punkbuster "1"' is included. This tells it that punkbuster needs to be on when the server starts up. Make the necessary changes if you have to and make sure it is uploaded to the server. The command to enable punkbuster may vary between games, so research that yourself if necessary.
Restarting the Server & Running an Update
Everything should be in place now. The first thing you should do is restart your server. This process may vary greatly between GSP's, but generally you have two options. You can either issue server commands through RCON (remote-console) in-game, or you can utilize your GSP's game control panel (if they offer one). The first step requires us to restart the server. Usually you can login to your GSP's website and have the option to do this. This is the preferred way, however you may be able to do it through rcon, by issuing "/rcon quit". This will close the server and force it to restart. Nearly all are setup to auto-restart if something goes wrong (like a crash for example). If you aren't able to progress past this step, contact your provider and they will do it for you.
When the server restarts it should load punkbuster. All of the required files are now in place, and punkbuster is set to enabled in the game's config. Once this is done and your server is back online again, you need to issue the command 'pb_sv_update' to force punkbuster to perform an update. Why do an update? Didn't we just just get all the latest files? We go the bare minimum files required to start punkbuster and perform this update command. There are still a number of files which punkbuster will download and build after running this command. It wouldn't be as much of a problem if we already have a complete PB setup in place, but this guide assumes you don't (I didn't). So this process may take a while depending on the game files needed, network congestions, all the usual stuff. It will probably anywhere between 30 seconds and a few minutes to finish as an estimate.
When this is done, you should have a fully up-to-date punkbuster running on your server. At this point you may wish to use punkbuster to display some server messages, using 'pb_sv_task', or set up your server for anti-cheat streaming, both of which I always use when I have a server. Research both of those on the web. There is a wealth of information on it. Good luck! Hope this helped someone, somewhere.