Cybersecurity expert to set up a Virtual Private Server for developers
Budget: £20 – £250 GBP
I want to set up an environment where my freelancers can create python code, without being able to download data-files and without being aware of one another. I'm open to various approaches but I have created the following guidelines:
1. Virtual Private Server (VPS):
• Obtain a VPS from a reputable provider
2. User Isolation:
• Create separate user accounts for each freelancer on the VPS
3. Python Environment Isolation:
• Utilize Python virtual environments to isolate each freelancer's Python environment.
• For each user, create a virtual environment
• As an admin, I should be able to add and remove users at will
4. Jupyter Notebook
• Install Jupyter Notebook within each virtual environment to allow freelancers to write and run Python code interactively.
• This step helps maintain code separation and allows for a more controlled environment.
5. Restricted Access:
• Restrict access to data files. Place the data files in a directory with restricted permissions so that only the system administrator (me) can access them, unless they need to read for analysis.
• Make sure each freelancer's user account does not have read or write permissions to these data directories.
6. Network Isolation:
• Configure the firewall on your VPS to block incoming and outgoing network connections from the Python environment.
• This prevents freelancers from downloading data or communicating with the outside world.
• They should be allowed to use pip install though….
7. Resource Limits:
• Use resource limits and quotas to control the amount of CPU, memory, and disk space that each freelancer can consume.
8. Logging and Monitoring:
• Implement logging and monitoring to keep track of user activities.
9. Regular Backups:
• Regularly backup the code and any necessary data to ensure that you can recover from any unforeseen issues or data loss.
10. Education and Guidelines:
• Provide clear guidelines to freelancers on what is allowed and not allowed in the environment.
11. Regular Updates and Maintenance:
• Keep the server and software packages up-to-date to address security vulnerabilities.
• Is this taken care of from the provider, or should I get additional security e.g from Heimdal?
12. Secure Communication:
• If freelancers need to communicate with me, set up secure channels like encrypted email or messaging apps to maintain confidentiality.
1. Virtual Private Server (VPS):
• Obtain a VPS from a reputable provider
2. User Isolation:
• Create separate user accounts for each freelancer on the VPS
3. Python Environment Isolation:
• Utilize Python virtual environments to isolate each freelancer's Python environment.
• For each user, create a virtual environment
• As an admin, I should be able to add and remove users at will
4. Jupyter Notebook
• Install Jupyter Notebook within each virtual environment to allow freelancers to write and run Python code interactively.
• This step helps maintain code separation and allows for a more controlled environment.
5. Restricted Access:
• Restrict access to data files. Place the data files in a directory with restricted permissions so that only the system administrator (me) can access them, unless they need to read for analysis.
• Make sure each freelancer's user account does not have read or write permissions to these data directories.
6. Network Isolation:
• Configure the firewall on your VPS to block incoming and outgoing network connections from the Python environment.
• This prevents freelancers from downloading data or communicating with the outside world.
• They should be allowed to use pip install though….
7. Resource Limits:
• Use resource limits and quotas to control the amount of CPU, memory, and disk space that each freelancer can consume.
8. Logging and Monitoring:
• Implement logging and monitoring to keep track of user activities.
9. Regular Backups:
• Regularly backup the code and any necessary data to ensure that you can recover from any unforeseen issues or data loss.
10. Education and Guidelines:
• Provide clear guidelines to freelancers on what is allowed and not allowed in the environment.
11. Regular Updates and Maintenance:
• Keep the server and software packages up-to-date to address security vulnerabilities.
• Is this taken care of from the provider, or should I get additional security e.g from Heimdal?
12. Secure Communication:
• If freelancers need to communicate with me, set up secure channels like encrypted email or messaging apps to maintain confidentiality.