Web Hosting Setup Documentation

CWP7 on AlmaLinux 9

Comprehensive guide for setting up a web hosting environment

Table of Contents

1. Introduction

This documentation provides a comprehensive guide for setting up a web hosting environment using CentOS Web Panel (CWP7) on AlmaLinux 9. CWP is a free web hosting control panel designed as an alternative to cPanel that provides a graphical interface for managing web hosting services.

This documentation covers all aspects of the setup process, including VPS preparation, CWP installation, website management, domain configuration, and security implementation. By following this guide, you will be able to set up a fully functional web hosting environment that meets all the requirements specified in the assessment.

Note: Throughout this documentation, we'll be using the hostname group4.tendotech.co.uk as our primary domain. All commands should be executed as the root user unless otherwise specified.

2. VPS Setup and Preparation

2.1 System Requirements

Before installing CWP7, ensure your VPS meets the following minimum requirements:

2.2 Initial Server Setup

Update your AlmaLinux 9 system to ensure all packages are up to date:

dnf update -y

Install necessary utilities:

dnf install -y wget nano curl net-tools

2.3 Disable SELinux

CWP recommends disabling SELinux to avoid conflicts. Edit the SELinux configuration file:

nano /etc/selinux/config

Change the SELINUX value to disabled:

SELINUX=disabled

To temporarily disable SELinux without rebooting, run:

setenforce 0

2.4 Configure Hostname and Networking

Set the hostname for your server to our designated domain:

hostnamectl set-hostname group4.tendotech.co.uk

Update the hosts file to include your server's IP address and hostname:

nano /etc/hosts

Add the following line (replace with your actual IP):

192.168.1.100 group4.tendotech.co.uk group4

Note: It's important to have proper reverse DNS setup for your server's IP address, as this is crucial for email delivery. Ensure your domain group4.tendotech.co.uk is properly configured in DNS.

3. CWP7 Installation on AlmaLinux 9

3.1 Download and Run the CWP7 Installer

Download the CWP7 installation script:

cd /usr/local/src
wget http://centos-webpanel.com/cwp-el9-latest

Make the script executable and run it:

chmod +x cwp-el9-latest
./cwp-el9-latest

The installation process will take approximately 15-30 minutes depending on your server's specifications. The installer will automatically set up all the necessary services including:

Warning: Do not interrupt the installation process as it may cause incomplete installation and system inconsistencies.

3.2 Post-Installation Access

After the installation completes, you'll see a success message with important information:

Save this information securely as you'll need it to access the control panel.

Note: Make sure to save the MySQL root password shown at the end of the installation. This is a randomly generated password and will be needed for database management.

3.3 Initial Login

Access the CWP admin panel using your web browser:

http://group4.tendotech.co.uk:2030/

Login with the credentials provided at the end of the installation process. On first login, you'll be prompted to change your password for security reasons.

4. CWP7 Configuration

4.1 Initial Setup Wizard

After your first login, complete the setup wizard to configure basic settings:

  1. Verify system settings
  2. Configure server hostname as group4.tendotech.co.uk
  3. Set up nameservers (if you're using the server as a DNS server)
  4. Configure mail server settings

4.2 Server Settings Configuration

Navigate to "Server Settings" in the CWP panel to configure various aspects of your server:

4.3 PHP Configuration

CWP7 supports multiple PHP versions. To configure PHP:

  1. Go to "PHP Settings" in the CWP panel
  2. Select the PHP versions you want to install (recommended: PHP 7.4, 8.0, and 8.1)
  3. Configure PHP settings for each version (memory_limit, max_execution_time, etc.)
  4. Enable/disable PHP extensions as needed

Example of recommended PHP settings for a 4GB RAM server:

memory_limit = 256M
                max_execution_time = 300
                upload_max_filesize = 64M
                post_max_size = 64M
                max_input_vars = 3000

4.4 Web Server Configuration

Configure Apache settings to optimize performance:

  1. Go to "Apache Settings" in the CWP panel
  2. Adjust the following settings based on your server resources:
    • MaxKeepAliveRequests
    • KeepAliveTimeout
    • MaxClients/MaxRequestWorkers
    • StartServers, MinSpareServers, MaxSpareServers
  3. Enable/disable Apache modules as needed
  4. Apply changes and restart Apache

4.5 MySQL/MariaDB Configuration

Optimize MySQL for your server:

  1. Go to "MySQL Settings" in the CWP panel
  2. Adjust the following key settings:
    • innodb_buffer_pool_size (50-70% of RAM for a dedicated DB server)
    • max_connections
    • query_cache_size
    • tmp_table_size and max_heap_table_size
  3. Apply changes and restart MySQL

Note: MySQL configuration heavily depends on your server's specifications and usage patterns. Monitor server performance and adjust settings accordingly.

5. Website and Account Setup

5.1 Creating User Accounts

For each group member, you need to create at least three websites/accounts. Here's how to create a new account:

  1. Login to the CWP admin panel
  2. Navigate to "Account Functions" > "Create Account"
  3. Fill in the account details:
    • Domain name (e.g., user1.group4.tendotech.co.uk)
    • Username (automatically generated based on domain)
    • Password (use a strong password)
    • Email address
    • Package/Plan (select appropriate resource limits)
  4. Configure additional options:
    • PHP version
    • Database settings
    • Email accounts
    • FTP access
  5. Click "Create" to create the account

5.2 Creating Packages (Resource Plans)

Before creating accounts, it's a good practice to set up packages that define resource limits:

  1. Go to "Account Functions" > "Packages"
  2. Click "Add Package"
  3. Configure package limits:
    • Disk space
    • Bandwidth
    • Email accounts
    • FTP accounts
    • MySQL databases
    • Subdomains and addon domains
  4. Save the package

5.3 Setting Up Websites

After creating an account, you can set up the website content:

  1. Login to the user's CWP User panel (usually at http://group4.tendotech.co.uk:2082/)
  2. Navigate to the File Manager or use FTP to upload website files
  3. For a quick test site, create an index.html file in the public_html directory
  4. For CMS installation (e.g., WordPress, Joomla), you can use the Softaculous auto-installer in the CWP User panel

5.4 Installing WordPress via Softaculous (Example)

An easy way to set up a website is using Softaculous to install a CMS:

  1. Login to the user's CWP User panel
  2. Navigate to "Softaculous" in the sidebar
  3. Select "WordPress" from the available applications
  4. Click "Install Now" and fill in the required information:
    • Installation URL (typically the domain name)
    • Site name and description
    • Admin username, password, and email
    • Select theme and plugins
  5. Click "Install" to complete the WordPress installation

5.5 Setting Up Email Accounts

To create email accounts for users:

  1. Login to the CWP User panel
  2. Navigate to "Email Accounts"
  3. Click "Create Email Account"
  4. Enter the email address details (e.g., info@user1.group4.tendotech.co.uk)
  5. Set password and mailbox quota
  6. Click "Create" to set up the email account

Repeat this process for each group member, creating at least three websites/accounts per person.

Note: Keep track of all account credentials in a secure location. You'll need these for documentation and final presentation.

6. Domain Configuration (DNS and SSL)

6.1 DNS Configuration

Configure DNS settings for your domains:

  1. To manage DNS settings in CWP, go to "DNS Functions" > "Add/Remove DNS Zone"
  2. For a new domain, the DNS zone is automatically created when you create an account
  3. To edit DNS records, go to "DNS Functions" > "Edit DNS Zone"
  4. Select the domain you want to edit (e.g., group4.tendotech.co.uk)
  5. Add or modify the following records as needed:
    • A records (for IPv4 addresses)
    • AAAA records (for IPv6 addresses)
    • CNAME records (for aliases)
    • MX records (for mail servers)
    • TXT records (for SPF, DKIM, etc.)
  6. Save changes to update the DNS zone

Example of basic DNS records for our domain:

; A Records
group4.tendotech.co.uk.     IN A     192.168.1.100
www.group4.tendotech.co.uk.  IN A     192.168.1.100
mail.group4.tendotech.co.uk. IN A     192.168.1.100

; MX Records
group4.tendotech.co.uk.     IN MX 10 mail.group4.tendotech.co.uk.

; CNAME Records
webmail.group4.tendotech.co.uk. IN CNAME mail.group4.tendotech.co.uk.
cpanel.group4.tendotech.co.uk.  IN CNAME group4.tendotech.co.uk.

; TXT Records
group4.tendotech.co.uk.     IN TXT  "v=spf1 mx a ip4:192.168.1.100 ~all"

6.2 SSL Certificates with Let's Encrypt

Secure your domains with free SSL certificates from Let's Encrypt:

  1. In the CWP admin panel, go to "SSL Certificates" > "Let's Encrypt SSL"
  2. Select the domain you want to secure (e.g., group4.tendotech.co.uk)
  3. Choose whether to include www subdomain
  4. Click "Issue/Renew Certificate"
  5. CWP will automatically obtain and install the SSL certificate
  6. Once installed, configure the website to force HTTPS by editing the virtual host file or using the CWP panel

6.3 Manual SSL Certificate Installation

If you need to install a custom SSL certificate:

  1. Go to "SSL Certificates" > "Install SSL"
  2. Select the domain
  3. Paste your certificate, private key, and CA bundle in the appropriate fields
  4. Click "Install Certificate"

6.4 Configuring SSL in Apache

After installing SSL certificates, ensure Apache is properly configured:

  1. Go to "Server Settings" > "Apache Settings"
  2. Make sure mod_ssl is enabled
  3. Configure SSL ciphers and protocols for security:
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
    SSLHonorCipherOrder on
  4. Save changes and restart Apache

6.5 Redirect HTTP to HTTPS

Force all traffic to use HTTPS by adding the following to the virtual host configuration:

<VirtualHost *:80>
    ServerName group4.tendotech.co.uk
    ServerAlias www.group4.tendotech.co.uk
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

You can edit these settings through "Apache Settings" > "Edit Virtual Host" in the CWP panel.

Note: For Let's Encrypt SSL to work properly, your domain must be publicly accessible and resolving to your server's IP address.

7. FTP Server Configuration

7.1 ProFTPD Configuration

CWP7 uses ProFTPD for FTP services. To configure ProFTPD:

  1. In the CWP admin panel, go to "Service Manager" > "Settings" > "FTP Server"
  2. Configure the following settings:
    • FTP Port (default is 21)
    • Passive Port Range (e.g., 30000-50000)
    • Maximum Clients
    • Timeout settings
  3. Save changes and restart the FTP service

7.2 Securing FTP with SSL/TLS (FTPS)

For enhanced security, configure ProFTPD to use SSL/TLS:

  1. Go to "Service Manager" > "Settings" > "FTP Server"
  2. Enable SSL/TLS support
  3. Specify the SSL certificate and key files
  4. Configure TLS requirements (e.g., require TLS for data transfers)
  5. Save changes and restart the FTP service

Example ProFTPD SSL/TLS configuration:

<IfModule mod_tls.c>
  TLSEngine                  on
  TLSLog                     /var/log/proftpd/tls.log
  TLSProtocol                TLSv1.2
  TLSRSACertificateFile      /etc/pki/tls/certs/proftpd.crt
  TLSRSACertificateKeyFile   /etc/pki/tls/private/proftpd.key
  TLSOptions                 NoCertRequest
  TLSVerifyClient            off
  TLSRequired                on
</IfModule>

7.3 Creating FTP Accounts

Create FTP accounts for users to access their website files:

  1. In the CWP User panel, go to "FTP Accounts"
  2. Click "Add FTP Account"
  3. Enter username and password
  4. Set the directory path (starting point for the FTP user)
  5. Set quota if needed
  6. Click "Create" to add the FTP account

7.4 Configuring Firewall for FTP

Configure your firewall to allow FTP traffic:

# Allow FTP control port
firewall-cmd --permanent --add-port=21/tcp

# Allow FTP passive ports
firewall-cmd --permanent --add-port=30000-50000/tcp

# Reload firewall
firewall-cmd --reload

7.5 FTP Client Configuration

To access the FTP server, users need to configure their FTP clients (e.g., FileZilla, WinSCP) with the following details:

Warning: Standard FTP transmits credentials in plain text. Always use FTPS (FTP with SSL/TLS) for secure file transfers.

8. SMTP Server Configuration

8.1 Postfix Configuration

CWP7 uses Postfix as the SMTP server. To configure Postfix:

  1. In the CWP admin panel, go to "Service Manager" > "Settings" > "Mail Server"
  2. Configure the following Postfix settings:
    • Server hostname (set as group4.tendotech.co.uk)
    • Maximum message size
    • Relaying options
    • Network settings
  3. Save changes and restart the mail service

8.2 Email Authentication (SASL)

Configure SASL authentication for secure SMTP access:

  1. Go to "Service Manager" > "Settings" > "Mail Server"
  2. Enable SASL authentication
  3. Configure SASL security options
  4. Save changes and restart the mail service

Example Postfix SASL configuration in main.cf:

# SASL Authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes

# SMTP Authentication
smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

8.3 Securing SMTP with SSL/TLS

Configure SSL/TLS for secure email transmission:

  1. Go to "Service Manager" > "Settings" > "Mail Server"
  2. Enable SSL/TLS support
  3. Specify SSL certificate and key files
  4. Configure TLS parameters
  5. Save changes and restart the mail service

Example Postfix SSL/TLS configuration:

# TLS Parameters
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/pki/tls/private/mail.key
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

8.4 Email Anti-Spam Configuration

Configure SpamAssassin for spam filtering:

  1. Go to "Service Manager" > "Settings" > "Anti-Spam"
  2. Enable SpamAssassin
  3. Configure spam score thresholds
  4. Set up spam actions (mark, reject, or quarantine)
  5. Configure RBL (Realtime Blackhole List) settings
  6. Save changes and restart SpamAssassin

8.5 Email Delivery and Authentication Records

Configure DNS records for proper email delivery and authentication:

  1. Set up SPF records to specify authorized mail servers:
    group4.tendotech.co.uk. IN TXT "v=spf1 mx a ip4:your-server-ip ~all"
  2. Configure DKIM (DomainKeys Identified Mail):
    • Go to "Service Manager" > "Settings" > "DKIM"
    • Generate DKIM keys for your domains
    • Add the resulting TXT records to your DNS configuration
  3. Set up DMARC (Domain-based Message Authentication, Reporting & Conformance):
    _dmarc.group4.tendotech.co.uk. IN TXT "v=DMARC1; p=none; rua=mailto:admin@group4.tendotech.co.uk"

Note: Proper email server configuration is crucial for email deliverability. Misconfigured email servers may have their messages marked as spam or rejected by receiving servers.

9. Security Implementation

9.1 Firewall Configuration

Configure firewall rules to secure your server:

  1. In the CWP admin panel, go to "Security" > "Firewall"
  2. Configure CSF (ConfigServer Firewall) settings:
    • Allow only necessary ports (22, 80, 443, 21, 25, 110, 143, 465, 587, 993, 995, 2030, 2031)
    • Configure connection tracking limits
    • Set up brute force detection and blocking
    • Configure country blocking if needed
  3. Enable and start the firewall

Example of basic CSF configuration:

# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2030,2031,30000:50000"

# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,465,587,993,995"

# Allow incoming UDP ports
UDP_IN = "20,21,53"

# Allow outgoing UDP ports
UDP_OUT = "20,21,53,113,123"

# Enable SYN flood protection
SYNFLOOD = "1"

# Enable port scan detection
PORTFLOOD = "22;tcp;5;300,80;tcp;20;5,443;tcp;20;5"

# Block countries known for attacks (optional)
CC_DENY = "CN,RU,KP,IR"

9.2 SSH Security

Secure SSH access to your server:

  1. Change the default SSH port (optional but recommended):
    nano /etc/ssh/sshd_config
    Port 2222  # Change to a non-standard port
  2. Disable root login and password authentication (if using key-based authentication):
    PermitRootLogin no
    PasswordAuthentication no
    PubkeyAuthentication yes
  3. Limit SSH access to specific IP addresses (in CSF firewall):
    nano /etc/csf/csf.conf
    TCP_IN = "2222,80,443,..."  # Use your custom SSH port
    TCP6_IN = "2222,80,443,..."
  4. Restart SSH and the firewall:
    systemctl restart sshd
    csf -r

9.3 ModSecurity Web Application Firewall

Enable and configure ModSecurity to protect against web attacks:

  1. In the CWP admin panel, go to "Security" > "ModSecurity"
  2. Enable ModSecurity
  3. Install OWASP ModSecurity Core Rule Set (CRS)
  4. Configure rule sets and protection levels
  5. Set up exceptions for false positives if needed
  6. Apply changes and restart Apache

9.4 Fail2ban Configuration

Configure Fail2ban to prevent brute force attacks:

  1. Fail2ban is installed and integrated with CSF in CWP
  2. To configure additional Fail2ban settings, edit the jail.local file:
    nano /etc/fail2ban/jail.local
  3. Add custom jails for services not covered by default:
    [cwp-panel]
    enabled = true
    port = 2030,2031
    filter = cwp-panel
    logpath = /usr/local/cwpsrv/logs/access_log
    maxretry = 5
    bantime = 3600
  4. Create corresponding filter files in /etc/fail2ban/filter.d/
  5. Restart Fail2ban:
    systemctl restart fail2ban

9.5 Regular Security Updates

Keep your server secure with regular updates:

  1. Configure automatic security updates:
    dnf install dnf-automatic -y
    nano /etc/dnf/automatic.conf
    # Set to "security" for only security updates
    upgrade_type = security
    # Set to "yes" to auto-download and install
    download_updates = yes
    apply_updates = yes
    systemctl enable --now dnf-automatic.timer
  2. Regularly update CWP:
    • In the CWP admin panel, go to "CWP Updates"
    • Check for and install available updates
  3. Monitor security mailing lists for vulnerabilities affecting your software

9.6 File Permissions

Secure file permissions to prevent unauthorized access:

  1. Set proper ownership for web files:
    chown -R username:username /home/username/public_html/
  2. Set secure permissions for web directories and files:
    # For directories
    find /home/username/public_html -type d -exec chmod 755 {} \;
    # For files
    find /home/username/public_html -type f -exec chmod 644 {} \;
  3. Secure configuration files:
    chmod 600 /home/username/public_html/wp-config.php  # Example for WordPress

Warning: Security is an ongoing process. Regularly audit your server for vulnerabilities, review logs for suspicious activities, and keep all software up to date.

10. Troubleshooting Strategies

10.1 Common Issues and Solutions

Here are some common issues you might encounter and their solutions:

Website Not Loading

  1. Check Apache status:
    systemctl status httpd
  2. Verify virtual host configuration
  3. Check file permissions in the web directory
  4. Review Apache error logs:
    tail -f /var/log/httpd/error_log
  5. Ensure domain is properly pointing to your server

Email Delivery Issues

  1. Check Postfix status:
    systemctl status postfix
  2. Verify mail server configuration
  3. Check mail logs:
    tail -f /var/log/maillog
  4. Verify DNS records (MX, SPF, DKIM, DMARC)
  5. Test email delivery:
    echo "Subject: Test Email" | sendmail admin@group4.tendotech.co.uk

Database Connection Issues

  1. Check MySQL/MariaDB status:
    systemctl status mariadb
  2. Verify database credentials in website configuration
  3. Test database connection:
    mysql -u username -p
  4. Check MySQL error logs:
    tail -f /var/log/mariadb/mariadb.log

SSL Certificate Issues

  1. Verify certificate installation
  2. Check certificate expiration:
    openssl x509 -in /path/to/certificate.crt -text -noout | grep "Not After"
  3. Ensure proper SSL configuration in Apache
  4. Test SSL configuration:
    curl -I https://group4.tendotech.co.uk

10.2 Monitoring and Log Analysis

Set up monitoring and log analysis for proactive troubleshooting:

  1. Use CWP's built-in monitoring tools:
    • Server Load Monitor
    • Process Monitor
    • Network Traffic Monitor
  2. Configure log rotation to prevent logs from filling disk space
  3. Set up log analysis tools:
    dnf install logwatch -y
    nano /etc/logwatch/conf/logwatch.conf
  4. Create alerts for critical events:
    nano /etc/aliases
    root: admin@group4.tendotech.co.uk
    newaliases

10.3 Backup and Recovery

Implement backup strategies for disaster recovery:

  1. Configure regular backups in CWP:
    • Go to "Backup/Restore" > "Setup Backup"
    • Configure backup frequency and retention
    • Select backup destinations (local, remote FTP, or cloud)
    • Choose what to backup (website files, databases, email)
  2. Test backup restoration:
    • Go to "Backup/Restore" > "Restore Backup"
    • Select a backup to restore
    • Choose restoration options
    • Perform the restoration
  3. Document the backup and recovery procedures

10.4 Performance Optimization

Optimize server performance to prevent issues:

  1. Monitor server resources using CWP's monitoring tools
  2. Optimize PHP settings:
    • Enable PHP opcode caching
    • Adjust memory limits based on usage
    • Configure PHP-FPM for better performance
  3. Optimize MySQL/MariaDB:
    • Enable query caching
    • Optimize buffer sizes based on available memory
    • Use the MySQLTuner script for recommendations
  4. Implement web caching:
    • Enable Apache mod_cache
    • Set up Varnish or Redis for advanced caching
    • Configure browser caching through .htaccess

Note: Document all troubleshooting procedures and solutions for future reference and knowledge sharing within your team.

11. Final Presentation Guidelines

The final presentation will be conducted during Week 14 (April 21-27, 2025). This section details what should be covered in the presentation and how to prepare for it.

11.1 Demonstrating Operational VPS and WHM Setup

Be prepared to demonstrate the following aspects of your operational VPS and WHM setup:

  1. Server Status and Resource Monitoring
    • Show server uptime and resource usage (CPU, RAM, disk)
    • Demonstrate CWP's server monitoring tools
    • Display network traffic and connection statistics
    • Show running services and their status
  2. CWP Admin Panel Features
    • Navigate through key areas of the admin panel
    • Demonstrate user management capabilities
    • Show server configuration options
    • Explain customizations made to the default setup
  3. User Management Demonstration
    • Create a new user account live during the presentation
    • Show how to modify user permissions and resource limits
    • Access and demonstrate the user control panel features

11.2 Hosted Websites and Security Implementations

Demonstrate the websites you've set up and their security features:

  1. Website Showcase
    • Show at least three functioning websites for each group member
    • Demonstrate different types of websites (static HTML, CMS-based, etc.)
    • Access websites through domain names with proper SSL certificates
    • Show mobile-responsive capabilities if implemented
  2. Security Features Demonstration
    • Show SSL certificate implementation and explain the setup process
    • Demonstrate firewall settings and explain protection mechanisms
    • Show ModSecurity configuration and explain rule sets
    • Display Fail2ban logs or configuration to show brute force protection
    • Demonstrate file permission security measures
  3. User Authentication and Access Control
    • Show secure FTP connections using SSL/TLS
    • Demonstrate email account security features
    • Show SSH access security implementations
    • Explain password policies and authentication measures

11.3 Troubleshooting Strategies for Outages

Present comprehensive troubleshooting strategies for various potential outages:

  1. Server Downtime Scenarios
    • Explain step-by-step procedures for diagnosing server crashes
    • Show how to identify resource exhaustion issues (CPU, RAM, disk space)
    • Demonstrate using system logs to diagnose problems
    • Outline recovery procedures and service restart protocols
  2. Website Availability Issues
    • Show how to diagnose and fix Apache/web server problems
    • Demonstrate diagnosing PHP configuration issues
    • Explain procedures for resolving database connectivity problems
    • Show how to troubleshoot DNS configuration issues
  3. Security Incident Response
    • Present a plan for identifying and responding to security breaches
    • Show how to analyze access logs for suspicious activity
    • Demonstrate using CWP security tools to identify compromised accounts
    • Explain data recovery procedures in case of malicious attacks
  4. Proactive Monitoring and Prevention
    • Show automated monitoring solutions implemented
    • Demonstrate alert systems for critical service failures
    • Explain backup and restoration procedures
    • Present documentation for regular maintenance tasks

11.4 Presentation Tips and Requirements

To ensure a successful presentation, consider the following guidelines:

Note: The final presentation is an opportunity to showcase not just the technical implementation but also your understanding of web hosting concepts and security best practices. Be prepared to explain not just what you did, but why you made specific configuration choices.

12. Conclusion

This documentation provides a comprehensive guide for setting up a web hosting environment using CWP7 on AlmaLinux 9. By following the steps outlined in this document, you have successfully:

The setup you've created provides a secure, reliable, and functional web hosting environment suitable for hosting multiple websites. The documentation covers all the requirements specified in the assessment and provides additional information for maintenance and troubleshooting.

For the final presentation, be prepared to demonstrate:

Remember to keep your server updated and regularly review security measures to maintain a secure and optimal hosting environment.

13. Glossary of Technical Terms

This section explains the technical terms and abbreviations used throughout this documentation:

Server and Administration Terms

  • VPS (Virtual Private Server): A virtualized server that mimics a dedicated physical server, providing dedicated resources and full root access within a shared hosting environment.
  • WHM (Web Host Manager): A web-based interface used by server administrators to manage web hosting accounts, server settings, and various hosting services.
  • CWP (CentOS Web Panel): A free web hosting control panel for Linux servers that provides a graphical interface to manage websites, email, DNS, and other services.
  • AlmaLinux: A free, open-source Linux distribution that is binary compatible with Red Hat Enterprise Linux, created as an alternative to CentOS.
  • FQDN (Fully Qualified Domain Name): A domain name that specifies the exact location in the DNS hierarchy, including all domain levels (e.g., group4.tendotech.co.uk).

Security Terms

  • SSL (Secure Sockets Layer): A protocol for establishing encrypted links between a web server and a browser, ensuring that all data transmitted remains private and secure.
  • TLS (Transport Layer Security): The successor to SSL, providing communication security over a computer network, commonly used to secure web browsing, email, and other data transfers.
  • HTTPS (Hypertext Transfer Protocol Secure): An extension of HTTP that uses SSL/TLS for secure communication over a computer network.
  • Firewall: A network security system that monitors and controls incoming and outgoing network traffic based on predetermined security rules.
  • CSF (ConfigServer Firewall): A stateful packet inspection firewall, login/intrusion detection, and security application for Linux servers.
  • ModSecurity: An open-source web application firewall (WAF) that provides protection against various web-based attacks.
  • Fail2ban: A software that scans log files and bans IP addresses showing malicious signs such as too many failed login attempts.

Web and Database Terms

  • Apache: A popular open-source web server software that processes requests and serves web content over HTTP.
  • MySQL/MariaDB: Popular open-source relational database management systems used for storing and managing website data.
  • PHP: A server-side scripting language designed for web development that can be embedded into HTML.
  • PHP-FPM (PHP FastCGI Process Manager): An alternative PHP FastCGI implementation with additional features useful for high-load websites.
  • CMS (Content Management System): Software applications that allow users to create, manage, and modify website content without specialized technical knowledge.

Communication and Protocol Terms

  • SSH (Secure Shell): A cryptographic network protocol for secure operation of network services over an unsecured network, commonly used for remote server access and administration.
  • FTP (File Transfer Protocol): A standard network protocol used for transferring files between a client and server on a computer network.
  • FTPS (FTP Secure): An extension to FTP that adds support for TLS and SSL cryptographic protocols.
  • SMTP (Simple Mail Transfer Protocol): A communication protocol for electronic mail transmission, used for sending email messages between servers.
  • POP3 (Post Office Protocol version 3): A standard protocol used by email clients to retrieve email from a mail server.
  • IMAP (Internet Message Access Protocol): A protocol for email retrieval that allows multiple clients to access messages on a mail server.

DNS and Domain Terms

  • DNS (Domain Name System): A hierarchical and decentralized naming system for computers, services, or other resources connected to the Internet or a private network.
  • A Record: A DNS record that maps a domain name to the IP address of the server hosting the domain.
  • CNAME Record: A DNS record that maps an alias name to another domain name (the canonical name).
  • MX Record: A DNS record that specifies mail servers responsible for accepting email messages on behalf of a domain.
  • SPF (Sender Policy Framework): An email authentication method designed to detect email spoofing by providing a mechanism to verify that email messages come from authorized sending sources.
  • DKIM (DomainKeys Identified Mail): An email authentication method designed to detect email spoofing by providing digital signatures linked to the domain name of an email sender.
  • DMARC (Domain-based Message Authentication, Reporting, and Conformance): An email authentication protocol that builds on SPF and DKIM to improve protection against email spoofing and phishing.

Email and Authentication Terms

  • Postfix: A free and open-source mail transfer agent (MTA) that routes and delivers email.
  • Dovecot: An open-source IMAP and POP3 server for Linux/UNIX-like systems, primarily written with security in mind.
  • SASL (Simple Authentication and Security Layer): A framework for authentication and data security in Internet protocols.
  • SpamAssassin: An open-source anti-spam platform that uses various techniques to identify and filter spam.
  • RBL (Realtime Blackhole List): A list of IP addresses published through the DNS, used to publish the addresses of known spammers or spam sources.