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]
- 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.
- 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
- 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.
- ProFTPd with SSL/TLS [Read It]
- 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.
- NextCloud [Read It]
- 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
- 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).
- System Control [Read It]
- 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]
- This prevents other sites from embedding images hosted on your server, which would unnecessarily increase your CPU and bandwidth usage.
- Flush Public DNS
- Free Email Forwarder (MX)