Changes

Choose a hosting provider

4,893 bytes added, 9 years ago
__NOTOC__
===Criteria===
 There are several aspects which should be considered when selecting a service host. Below is a general list, this [https://pad.riseup.net/p/rh_ispq document] gives detailed information on each area. eQualit.ie has developed a [https://wiki.deflect.ca/wiki/ISP_reviews review] of existing providers based on experiences with our Deflect network. *Price - relative services offeredfor most groups the cost of the infrastructure will be a major determining factor. however, there are a large number of competitive offers and though this is an important factor it should be used as a boundary to decide what is available not as the sole reason to purchase a service.
*Reputation - are they well known, have they had security breaches or reports of poor support, do they adhere to certain principles inline with that of your organisation - such as data privacy or protection of human rights defenders.
*Specialisation - do they work in the field of human rights, software applications or general hosting
*Is mail provided- for many organisation it is not an option to run their own mail server, however, is they do not wish to sue a free service such as [https://riseup.net Riseup] or [https://gmail.com gmail], or if they wish to have domain specific email - such as info@mywebsite.org - then it is worth considering services that provide free email accounts.*Hardware specifications- does the server fits my needs? For most websites basic servers are enough but websites with high traffic can demand more stable or dedicated hardware.*Operating systems offered- different operating systems provide different functionality and integration with other applications. They also have different degrees of vulnerability and support.*Supported provided- this is an essential aspect when choosing a hosting company. It should also be considered in terms of language support, whether support is provided for software and/or hardware issues.
*Readily discusses your security concerns and which security features and processes they offer with their hosting.
*Provides the most recent stable versions of all server software.
*Provides reliable methods for backup and recovery.
*Provides encryption options for hosting of sites or mail
 
===Features===
It is quite important to consider the possibilities offered by your provider's control panel. If you need to write a support ticket everytime the server has to reboot, it wont be an efficient process, especially during a crises. Possible features to look out for include
 
* Automated operating system installs, this feature is hugely useful if it will be necessary to reinstall the operating system on your server. it avoids the need for dedicated time from one of your team members.
* Server boot and reboot, when installing new applications or updating existing software components, or as a means to resolve an issue, the ability to remotely restart your server can be critical. This is dependent on the type of server you are using.
* Remote console (sometimes known as KVM), this is invaluable in diagnosing issues with your server's physical hardware but equally is a necessity if you wish to perform full disk encryption as a password will have to be entered before the machine has full booted up.
* Server and network statistics, this information helps you track your server and/or website giving you detailed information for debugging, tracking attacks or discovering who is visiting your site.
* Dynamic components (e.g. adding extra disk space, RAM without rebuilding the machine or having to order a new service)
* Server access is the means by which you can physically connect to your server. Options iclude SSH, SSH key, SFTP or web based
==Secure hosting setups==
===Dedicated Server===
For a [[Dedicated_Hosting | Dedicated Hosting]] system, the user can either run their own physical hardware or rent this hardware from a provider. The former solution offers total control of the physical hardware, however, there are significant downsides to this approach and should be avoided; it is only recommend under special circumstances such as [[Sensitive_Data | storing sensitive data]]. In the latter case, the hosting agent provides the hardware but the user has total control of the server via remote access. In this scenario, the provider is responsible for replacement of hardware parts that fail or malfunction - this support is generally done through a ticket system and relies on the user to report errors.
 
'''Examples'''
* http://www.ovh.com/ca/en/dedicated-servers/hosting/
* http://www.soyoustart.com/ie/offers.xml
* http://www.hetzner.de/en/hosting/produktmatrix/rootserver
* http://www.coolhousing.net/hosting-dedicated-servers.html
'''Benefits'''
*The user does not have physical access to the server
*The host is not responsible for data loss or downtime if the physical server fails
*The user is responsible for detecting and reporting hardware faults on some providers
*The time taken to repair a hardware malfunction depends on the provider chosen. See [[Choosing_A_Host | Choosing a hosting provider]].
*The contract can be terminated by the host and access to the server can be terminated or suspended depending on the host's terms of use.
===VPS===
A Virtual Private Server(VPS) is an instance of a Virtual Operating System running on a much larger server. Typically multiple VPS will be run on a single server. In a VPS environment, you have a dedicated virtual private server but do not control the server on which it is hosted. Resources will be limited, you can not control or harden the outer server.
 
'''Examples'''
* https://www.linode.com/pricing
* https://chhost.net/virtual-server/
* https://www.tilaa.com/orders/add
'''Benefits'''
*Processing power will be limited over a dedicated server but, depending on the hosting provider, should be capable of running small to medium capacity websites
*Bandwidth will also be restricted
*Potential risk of provider, law enforcement or other state forces accessing contents of virtual server without user's awareness.
*The user will not have access to the outer server and will thus not be able to harden it
===Threats===
*Social engineering attack
*Password Bruteforcebrute force*Service interruption through Denial denial of Service service attack
*System software exploits
*SSL spoofingman-in-the-middle attacks
*Data loss or data theft
===Mitigation===
'''Password Managementmanagement''' is the core of any security strategy. For Dedicated the dedicated and VPS hosting options, there are several modes of control that administrator can apply.<ol><li>For more details [[Access_Restrictions#Dedicated/VPS_Hosting| see]]Enforce strong password - a strong password should contain Upper '''User Management''' on dedicated or VPS systems allow administrators fine grained control of user login and Lower case characters, Numbers access permissions. For more details see [[Access_Restrictions#Dedicated/VPS_HOSTING| see]] '''System and Special Characters Software Management''' is primarily concerned with ensuring that the physical system and should be long; greater than 20 characters. It its software is also possible to restrict setup in the use of previously used passwordsmost mangeable, maintainable way and that attention is paid to keeping everything up to date to avoid potential vulnerabilities. On Linux systems the following command  For more details see [[System_Management| see]] '''Webserver Setup''' is an important consideration when hosting a website. There are a variety of steps that can be used taken to force complex passwords for users:lock down a webserver and to make sure that no vulnerabilities or accidental leaks occur. </li> password required pam_cracklib.so minlen=12 lcredit=1 ucredit=1 dcredit=2 ocredit=1For more details [[Webserver_setup| see]]
For more detail, refer to the guide [http://www.linux-faqs.info/security/force-strong-passwords| Force strong passwords]
<li>
Use password aging, the chaging command on Linux servers allows checking of password age by user and setting of password aging parameters[link for tutorial on chaging]
</li>
<li>
Failed login attempts should result in the locking of the associated user account. On Linux systems, the faillog command can be used to check failures and to set failure limits. For more details see [http://www.cyberciti.biz/tips/rhel-centos-fedora-linux-log-failed-login.html| Faillog]
</li>
<li>
Use Password Management software - a tool such as Keepass, or KeepassX for Linux and Mac, allows users to easily generate, store and mange complex difficult to crack passwords. Refer to this guide for details on [https://securityinabox.org/en/keepass_main| Keepass]
</li>
</ol>
'''User Management''' on Dedicated or VPS systems allow administrators fine grained control of user login and access permissions.
<ol>
<li>
Root user login should be disabled by default
</li>
<li>
Secure Shell(SSH) login should be forced, telnet and ftp login access should be disabled by default. To upload files to the server securely user can use Secure FTP(SFTP) clients.
</li>
<li>
Private keys should be used for SSH login access. The following guide gives details on generating and setting up public/private keys for SSH login, [http://support.suso.com/supki/SSH_Tutorial_for_Linux| SSH tutorial]
</li>
<li>
File permissions
</li>
</ol>
'''Software Management'''
<ol>
<li>
System software must always be uptodate. Critical patches are released by software vendors and operating system providers on a regular basis. These handle potential exploits, if your system is not uptodate it may be vulnerable. The clearest example of this is the SSL bug [https://heartbleed.com|HeartBleed].
</li>
<li>
Minimising installed software is an important step in reducing potential vulnerabilities. The system should have the bare minimum of packages and software installed to support its purpose.
</li>
</ol>
'''System Management'''
<ol>
<li>
Firewall, iptables
</li>
<li>
Check listening ports
</li>
<li>
Logging and Auditing
</li>
<li>
Anti-intrusion system,
</li>
<li>
SELinux
</li>
<li>
fail2ban
</li>
</ol>
'''Apache'''
'''Database'''
'''Web app'''
brief desc for these three with link to web app guide
</div>
</div>
===Hosted platform===
For organisation that wish to setup their own custom site based on an existing platform such as Wordpress.com, there are a setup of steps that should be taken to ensure a good level of security. The [[Choosing_A_Host | choosing a hosting provider]] guide should also be consulted.
 
'''Benefits'''
* Hardware is managed and maintained by the hosting provider
* There is no need to build custom software
* Using an install of an existing platform, such as Wordpress.com, means that software patching and bug fixing is handled by a dedicated group
* Once the solution is setup, secured and configured management is minimal
* The software platform will provide support for the core functionalities of managing a website such as user creation, content uploading and provide mechanisms for exporting/backup
 
'''Downsides'''
* The provider must be carefully chosen based on the information in this [https://pad.riseup.net/p/rh_ispq document]
* Software updates must be performed by the organisation
* Backup is the organisations responsibility
* No support is provided for configuring or managing the platform
'''Platform Security'''
<li>
Limiting access - Making smart choices that reduce possible entry points available to a malicious person.
 
For more details see [[Access_Restrictions#Dedicated/VPS_HOSTING| see]]
</li>
<li>Containment - Your system should be configured to minimize the amount of damage that can be done in the event that it is compromised.
</li>
<li>
PasswordsPassword management - the core component of any digital security strategy is control and management of passwords. For more details [[Access_Restrictions#Dedicated/VPS_Hosting| see]]
</li>
<li>
File Permissions</li><li>Admin Software updates and system control - allows the userto lock down the system and restrict what applications are running.</li><li>SSL</li><li>SFTP client</li><li>Platform updatesFor more details see [[System_Management| see]]
</li>
</ol>
Hosting install of pre-built software platform, such as Wordpress,
===Shared Hosting===
In a [[Shared_Hosting|Shared Hosting]] environment, your and other website owners shared one server. This includes sharing the physical server and the software applications within the server. Shared hosting services are affordable because the cost to operate the server is shared between you and these other owners. There are, however, a number of down sides, such as being slower.
'''Examples:'''
* http://www.easyweb.com
* http://www.dreamhost.com/web-hosting/
* http://wpengine.com/ (wordpress only)
 
'''Benefits'''
* Host provided support for software and hardware
* Reduced technical needs for organisation
* Standardised software components
 
'''Downsides'''
* Heavily relies on the hosting providers technical and support abilities
* Danger that compromise to another unrelated site could compromise user's site.
* Your security is tied to that of others using the same system
* Limited or no control over security procedures - relies heavily on abilities of hosting provider
===Threat Mitigation===
==Basic Technical==
<div class="mw-collapsible-content">
For a basic setup providing a content distribution platform such as a blog user's users have the option of using existing free services such as Wordpress, Journoportfolio or similar. '''Examples:'''* [http://wordpress.com/ Wordpress]* [https://www.tumblr.com/ Tumblr]* [https://www.journoportfolio.com/ Journo Portfolio]* [http://www.joomla.org/ Joomla]  '''Benefits'''* Host provided support for software and hardware* Very low technical needs for organisation* Easy setup and quick start '''Downsides'''* Heavily relies on the hosting providers technical and support abilities* No control over system software or hardware* Limited security options 
===Threat Mitigation===
strong <ol><li>'''Strong Passwords''' are a core element of any system. The access password for the host should be restricted to those individuals with the organisation that work directly with the server. Safe password creation and storage procedures should be followed, as described [[Access_Restrictions#Dedicated/VPS_Hosting|here]]</li><li>'''Malware''' is core vulnerability for the devices used by those managing and logging into the hosted system. Malware, keyloggers and viruses provided a straightforward means of attack.<br>The attacker does not need to hack or compromise the server, instead via infection through phishing emails or malicious websites the attacker can log and store the passwordsand other critical information.<br>To mitigate this threat all individuals who work with or have login access to the server must have anti-virus installed, 2 a firewall and have an up to date system. For more information [|see]</li><li>'''Two factor auth,Authentication''' should be enabled where available as this will make compromising a system significantly more difficult.</li><li>'''Wordpress Security''' is described in detail in the following [http://codex.wordpress.org/Hardening_WordPress guide]. </li></divol>
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
==Comparison Matrix==
<div class="mw-collapsible-content">
Administrator
90
edits