Het hangt er een beetje vanaf welke en hoeveel mensen er toegang moeten hebben via SSH. Voor enkel toegang voor een klein aantal gebruikers/beheerders zou je hieronder ideeën kunnen opdoen.
Wat ik zelf altijd doe, is het inloggen met wachtwoorden verbieden. Inloggen kan uitsluitend met een keyfile en inloggen als root heb ik ook uitgeschakeld. Als er toch beheertaken uitgevoerd moeten worden, dan met su of sudo. Dan hoef je je in principe over de SSH-aanvalsvector geen zorgen meer te maken, behalve dan natuurlijk je SSH daemon up-to-date houden. Om je logbestanden schoon te houden (en dus serieuze issues sneller te ontdekken) kun je de SSH daemon op een andere poort draaien en alle verkeer naar poort 22 door de firewall laten blokkeren of op je firewall instellen dat er alleen verbinding gemaakt mag worden op poort 22 door een aantal opgegeven IP-adressen.
FTP zou ik sowieso uitschakelen omdat dat onversleuteld is. Als je openSSH hebt draaien, kun je prima gebruik maken van de SFTP server die meegeleverd is. In een fatsoenlijke (S)FTP client (zoals FileZilla) moet dat geen probleem opleveren. Dan kun je dus inloggen met dezelfde combinatie van gebruikersnaam/keyfile als voor SSH.
Als je mysql databse lokaal draait (dus op dezelfde server als je webserver), dan hoeft die alleen maar te luisteren op 127.0.0.1 of een socket. Remote inloggen wordt dan onmogelijk. Draait je webserver op een andere machine, dan alleen de IP-adressen van de webserver(s) toegang bieden op poort 3306 (standaard mysql poort). Het liefst zitten al je webserver/database servers dan op hetzelfde interne netwerk, zodat anderen het verkeer niet kunnen onderscheppen. Als dat niet het geval is, zou ik een SSL laagje eroverheen leggen (bijvoorbeeld met stunnel) of een VPN maken (OpenVPN is wel lastig te configureren vind ik).
En voor wat betreft die httpd logs: zorg dat de toegangsrechten goed staan en dat je code veilig is (als in: geen SQL-injectie en XSS mogelijk). Voor tools als phpMyAdmin zou ik willen adviseren om die op een vhost te draaien die luistert op een andere poort en weer in je firewall alleen die IP-adressen toegang geven die dat ook echt nodig hebben. Is dat niet mogelijk, dan kun je bijvoorbeeld basis-authenticatie gebruiken met een sterk wachtwoord. Uiteraard alleen beschikbaar via SSL (kan prima met een zelf gegenereerd certificaat, hoeft niets te kosten).
Er zijn meerdere prima wrappers rond de firewall iptables/ip6tables beschikbaar. Voor debian-gebaseerde systemen gebruik ik eigenlijk meestal arno-iptables-firewall, standaard beschikbaar in de repositories.
Hoop dat je er wat aan hebt.
[edit]
Ik weet niet of het alleen hobby is en dus weinig mag kosten of dat je er een paar centen voor over hebt (gezien je een eigen dedicated server hebt, gok ik eigenlijk het laatste). In het laatste geval is het wellicht raadzaam om iemand met wat ervaring op dit gebied e.e.a. te laten instellen, omdat je zelf geen ervaring hebt zo lees ik uit de post hierboven.