You can do all of these things with your VPS (Virtual Private Server) at the same time for just $5/month on Linode or DigitalOcean (1 CPU, 1GB RAM, 25GB HD, and 1TB Traffic). Consider reviewing this safety list for some popular services:

  • SSH
    • Since this service gives anyone full control of your server, remove root access and make sure only your user can access it. When adding the rule in the firewall, prefer to use “limit” instead of “allow” for SSH. Another important security measure is creating a key for SSH connections (it will deny connections if an IP address attempts 6 or more connections within 30 seconds).
  • Firewall
    • As soon as you get into your new server, enable the firewall, but remember to add the rules to permit SSH first, or you will be locked out of your system.
      • UFW and Shorewall Cheat Sheet [Read It]
  • VPN
    • Instead of paying for a VPN service or relying on free services that can be slow or unsafe for secure transactions, you can create your own VPN server. Be thoughtful when choosing what type of VPN to use; I recommend OpenVPN. Don’t forget to allow the VPN port in your firewall. Some services, such as NFS, Samba, or FTP, should only be accessible to devices on the same VPN network. Don’t leave them public unless necessary.
  • HTTP
    • Host your personal or professional website and share content about anything you want. How about a blog about your hobby? For beginners, I recommend installing a LAMP stack (Apache + MySQL + PHP). As soon as you open the port in your firewall, secure your web server with SSL/TLS so you can safely enter credentials from anywhere. WordPress is a great platform for websites, blogs, and more.
  • Mail Server
    • It is essential to have an SMTP server set up and running, at least to receive notifications from your system, and also to allow web applications such as WordPress or FileRun to send you emails for things like password resets.
  • FTP
    • Keep your files accessible from anywhere, either under authentication or publicly. Since FTP is not encrypted, I strongly recommend using the same SSL/TLS certificate you created for your HTTP server. Alternatively, for personal use only, keep it restricted to your VPN when creating the firewall rule.
  • Database
    • MySQL and MariaDB are high-performance database services essential for most web applications. Remember to allow users to connect from ‘localhost’ only, and create a separate user and database for each application.
  • Webmin
    • A user-friendly web interface to manage your server. After installation, there is nothing else to configure. It encrypts data by default, though your browser may show a warning about the certificate. To fix this, upload the same certificate you created for your HTTP server.
  • FileRun
    • This web application lets you access, download, and upload your files from any browser. You should only use this feature if you have SSL/TLS set up for your web server. I also recommend using different credentials for this access than you would use for SSH.
  • Personal Cloud
    • NextCloud is similar to Dropbox or Google Drive, but you have full control of your files and a lot of storage space. It also supports Android and iOS and allows multiple users. Keep in mind that NextCloud is a resource-intensive application for a 1 CPU / 1GB RAM server. It works fine, but as demand grows you may need more hardware.
  • Run Scripts Periodically
    • Run your scripts in the background at set intervals or at specific times. Prefer to run your scripts as a non-root user.
  • Configure the System Control
    • There are settings you can adjust in your system control, such as disabling ping responses and features that only routers should handle (if your server does not route traffic).
  • Prevent Hot-Links on Apache
    • This prevents other sites from embedding images hosted on your server, which would unnecessarily increase your CPU and bandwidth usage.
      • Prevent Hot-Links on Apache [Read It]
  • Flush Public DNS
    • Whenever you make changes to your DNS records, it can take up to 24 hours to propagate across the internet. A useful tip is to request the major public DNS servers to flush the cache for your domain or a specific A or MX record:
  • Free Email Forwarder (MX)
    • It is possible to redirect any email sent to your domain to a free email account such as Gmail or Hotmail. Here are some services that offer email forwarding for free: