Also execute the changelevel command once.
So:
- check if the router is forwarding the port 27015 for TCP and UDP
- check if your firewall has a "stealth mode" or something equal which will make it invisible to other computers. if so disable this feature or reduce the security level for the internet zone, or whatever makes your PC visible in the internet
- next, fire up the game, create a server, enter in console:
sv_lan 0
heartbeat
changelevel ge_<mapname>
after the map is loaded, your server should show up on the internet.
if you wanna have certain things like password protection, flashlight enabled, etc. you can also enter the commands into the listenserver.cfg. That way you don't have to enter them manually everytime you start a server.