The hardware requirements for a Half Life dedicated server are really quite low. Obviously you don't want to be running anything from the 1980s, but if you have an old computer lying around from when you recently bought a new one, it should work fine.
Currently, I'm running three servers with a 3.2 hyperthreaded single core processor, 4 GB of DDR1 RAM, and a 320 GB hard drive. I also made sure the computer had a disc drive so I could install my operating system.
Obviously, the better the hardware, the better your server will run. CPU is the most important, followed closely by RAM. Having a super good hard drive is not nearly as important. But as mentioned earlier, even lower quality hardware will run a server or two just fine, so don't go out and spend a thousand dollars for top-of-the-line equipment when all you're doing running one fun server.
I recommend using a dedicated machine to run your server, and not put it on your personal machine. It will run better and be way more convenient.
Another consideration is your internet connection - again, you don't want to be running it on a dial up connection, but if you live anywhere with a decent high speed internet, you should be able to run a server or two. cstrike-planet.com (a website that no longer exists, and instead pushes malware) made a graph listing average bandwidth requirements for a HL dedicated server:
Port Forwarding
For people to be able to access your server, you need to make sure you forward the correct ports on your router. PortForward.com gives a
good explanation of what port forwarding is, but basically it's this:
When your computer is connected to the internet through a home network (for example, through a router), the network assigns each computer with an "internal IP address". This is the IP address that all the other computers on the network use to identify your computer. For example, mine is 192.168.0.2, and yours is probably something
very similar.
All of these internal IP addresses connect to the internet through one "external IP address", which is generally assigned to you by your Internet Service Provider. So if I want to send some data to a computer not on the network, I send it from 192.168.0.2 to the router's "gateway IP" (the internal IP address of the router), and then from the gateway to the external IP. Once the data has made it to the external IP, it can now travel to a computer that is not part of the network.
The same sort of thing happens for data going the other direction, too. But when data gets sent to the external IP, the router needs to know where to send that data. That's basically what port forwarding does. It says "when data comes to this port, send it to this computer". So you need to tell the router that when it sends data to the typical counter strike ports that it needs to go to the server machine.
First things first: What is the internal IP address of the server machine? Logging in to my router (you can get there by typing the router's IP into the URL bar of your internet browser - in my case, I type in 192.168.0.1), I go to the section called "Attached Devices". It might not be exactly the same in your router, but it should be similar. When I do that, I see that the internal IP of the machine called "server1" is 192.168.0.5.
Now that I know that, I go to the part of my router that allows me to do port forwarding. On my router, it's called "Port Forwarding". Go to
PortForward.com and find your router. It will help you figure out exactly which parts to edit. When it says "Please enter the static IP you want to forward to", enter the internal IP you just found - in my case, 192.168.0.5.
For Counter Strike, forward:
1200 TCP&UDP
27000-27020 TCP&UDP
27030-27039 TCP&UDP
Remember, use PortForward.com if that's confusing - it will give you a detailed walkthrough of your specific router.