The three points you mention above are just a very very small tip of the security iceberg. They are good starting points though.
Unfortunately, securing a server is extremely hard to do and requires constant updating.
Even if you have server software, listening to one or more ports, on a hardware machine, this doesn't prevent people from trying to access other ports on that machine. These ports might not be monitored by your software.
This means that you should look beyond your own software and incorporate the complete system.
Simply locking out an IP when you think a DDoS attack occurs will not always work. Some people are smart and make a DDoS attack look like a lot of normal requests. There are just so many that the server will not be able to handle them.
Other security threats are people who have access to your software and hardware. Are they able to set up user accounts? How can you protect this?
Important is software testing. Create a comprehensive set of tests to test everything you can think of and more before using the code for real. Bugs are the number one security vulnerability. Bugs can also exist in any hardware or other software you use. Choose them carefully.
And this list goes on ...
Check google for documentation on how to secure servers. I'm sure there exist some international standards, rules of thumb and books
It would also be a very good idea to get some education on the subject. Or to hire people who know how to deal with it, which in turn is in itself another security risk.
Bookmarks