Core Knowledge Base for Level 1 Customer Support
Classification:Β Support Operations
Version: 1.0
Last Updated: 2026-02-19
Audience: Level 1 Technical Support Engineers
Table of Contents
- Layer Separation Model
- Domain Registration & Lifecycle
- DNS Systems & Record Management
- Shared Hosting Operations
- Resource Limits & Server Constraints
- Email Systems & Troubleshooting
- Email Authentication: SPF, DKIM, DMARC
- HTTP Errors & Web Diagnostics
- SSL/TLS Certificates
- Billing Workflows & Suspension Logic
- Security Awareness for L1 Support
- Escalation Framework
- Diagnostic Checklists
- Appendices & Quick Reference
Β
Β
1. Layer Separation Model
Every customer issue exists within one or more infrastructure layers. Misidentifying the layer leads to wasted time, incorrect fixes, and unnecessary escalations. Before any troubleshooting, determine which layer the problem belongs to.
The Five Layers
| Layer | Controls | Examples |
|---|---|---|
| Domain (Registration) | Ownership, registrar lock, auth codes, WHOIS, expiry | Domain not renewing, transfer failures, WHOIS privacy |
| DNS (Resolution) | Nameservers, A/AAAA/CNAME/MX/TXT records, propagation | Site pointing to wrong IP, email not routing, propagation delays |
| Hosting (Server) | Web server, file system, databases, PHP, resource limits | 500 errors, slow site, database connection failures, disk full |
| Email (Mail Server) | SMTP/IMAP/POP3, mailbox quotas, authentication, relay | Cannot send/receive, authentication failures, spam classification |
| Billing (Account) | Invoices, payment processing, service activation, suspension | Service suspended, renewal failed, payment not applied |
Why Layer Separation Matters
A customer reports: "My website is down."
This could be:
- Domain layer: Domain expired and registry has placed a hold on it.
- DNS layer: Nameservers changed or A record points to a decommissioned IP.
- Hosting layer: Account suspended, server down, or resource limit hit.
- Billing layer: Unpaid invoice triggered automatic suspension.
Rule: Always verify from the top layer downward. Domain β DNS β Hosting β Application.
Quick Layer Identification
Customer says "site is down" β 1. Does the domain resolve? (dig/nslookup) β If NO β Domain or DNS layer 2. Does it resolve to the correct IP? β If NO β DNS layer 3. Does the server respond on that IP? β If NO β Hosting/Server layer 4. Does the server return an error? β If YES β Application or Hosting layer 5. Is the account active and paid? β If NO β Billing layer
Β
Β
2. Domain Registration & Lifecycle
Domain Lifecycle Stages
Every domain passes through a defined lifecycle. Understanding these stages is critical to answering renewal, expiry, and recovery questions accurately.
AVAILABLE β Domain is unregistered, anyone can register
|
| Registration
v
ACTIVE β Domain is registered and functional (1-10 years)
|
| Expiry date passes
v
EXPIRED (Grace) β Grace period begins (typically 0-45 days, varies by TLD)
| Domain stops resolving or shows registrar parking page
| Grace period ends
v
REDEMPTION / β Recovery possible but at a premium fee ($80-$200+)
RESTORE PERIOD depending on TLD and registrar
(30 days typical)
|
| Redemption ends
v
PENDING DELETE β 5-day ICANN-mandated deletion queue
(5 days) Domain CANNOT be recovered during this phase
|
| Deletion
v
AVAILABLE β Domain returns to general availability
(or caught by drop-catch services)
Key Lifecycle Facts
- Auto-renewal: If enabled and a valid payment method is on file, the system attempts renewal before expiry. Auto-renewal typically triggers 1β30 days before the expiry date, depending on registrar policy.
- Grace period duration varies by TLD:
.com,.net: ~40 days.in: ~30 days.org: ~45 days- ccTLDs (
.co.uk,.de, etc.): Varies widely; some have no grace period at all.
- Redemption fees are NOT refundable and are set by the registry, not the registrar. The registrar may add a margin on top.
- WHOIS expiry date vs actual resolution loss: WHOIS may still show the old expiry date during grace period, but the domain may already be non-functional.
Domain Statuses (EPP Status Codes)
Customers often ask why their domain is not working or cannot be transferred. The answer is usually in the EPP status codes visible in WHOIS.
| EPP Status | Meaning | L1 Action |
|---|---|---|
clientHold |
Registrar has suspended the domain (billing, abuse, verification) | Check billing status, check ICANN verification status |
serverHold |
Registry has suspended the domain | Escalate β this is registry-level |
clientTransferProhibited |
Transfer lock is ON | Customer must unlock before transfer |
serverTransferProhibited |
Registry-level transfer lock | Usually temporary after registration/transfer; escalate if persistent |
pendingTransfer |
A transfer is in progress | Wait for transfer to complete (up to 5β7 days) |
pendingDelete |
Domain is in deletion queue | Cannot be recovered β inform customer |
redemptionPeriod |
Domain is in redemption | Can be restored at premium cost |
ok / active |
Domain is functioning normally | No issues at domain layer |
Domain Transfers
Outbound Transfer (Customer leaving)
- Domain must be unlocked (
clientTransferProhibitedremoved). - Domain must have a valid authorization code (auth code / EPP code).
- Domain must not have been registered or transferred within the last 60 days (ICANN 60-day lock).
- WHOIS email must be accessible β transfer approval goes there.
- Domain must not be expired (some registries block transfer of expired domains).
Inbound Transfer (Customer arriving)
- Customer provides auth code from losing registrar.
- Transfer initiated from our system.
- Losing registrar sends confirmation; if no action, transfer auto-approves in 5 days.
- Domain is added 1 year on top of the existing expiry date (not from the transfer date).
Common Transfer Failures
- Auth code is incorrect or expired.
- Domain is locked at the losing registrar.
- 60-day transfer lock is active (recent registration, transfer, or WHOIS contact change).
- WHOIS email is invalid β approval email cannot be delivered.
- Domain is expired and in redemption β transfer blocked by registry.
ICANN WHOIS Verification
For gTLDs (.com, .net, .org, etc.), ICANN requires registrants to verify their email address within 15 days of registration or WHOIS contact change. If not verified:
- Domain is suspended (
clientHold). - Website and email stop working.
- Fix: Customer clicks the verification link in the email from the registrar. If lost, resend from the admin panel.
This is one of the most common causes of "my new domain isn't working" calls.
Β
Β
3. DNS Systems & Record Management
How DNS Resolution Works
User types example.com in browser
|
v
Browser cache β OS cache β Router cache β ISP Resolver
| (if not cached)
v
ISP Resolver queries Root servers
| "Who handles .com?"
v
Root servers respond: "Ask the .com TLD servers"
|
v
ISP Resolver queries .com TLD servers
| "Who handles example.com?"
v
TLD servers respond: "Ask ns1.hostingprovider.com"
|
v
ISP Resolver queries ns1.hostingprovider.com
| "What is the A record for example.com?"
v
Authoritative nameserver responds: "93.184.216.34"
|
v
Browser connects to 93.184.216.34
DNS Record Types
| Record | Purpose | Example | Common Issues |
|---|---|---|---|
| A | Maps domain to IPv4 address | example.com β 192.168.1.1 |
Wrong IP after server migration |
| AAAA | Maps domain to IPv6 address | example.com β 2001:db8::1 |
IPv6 not configured on server |
| CNAME | Alias to another domain name | www β example.com |
Cannot coexist with other records at zone apex; CNAME on root domain breaks MX |
| MX | Mail server routing | example.com β mail.example.com (priority 10) |
Missing or wrong MX causes email failure |
| TXT | Text data (SPF, DKIM, DMARC, verification) | v=spf1 include:_spf.google.com ~all |
Syntax errors, multiple SPF records |
| NS | Delegates zone to nameservers | example.com β ns1.hosting.com |
Wrong NS = entire domain unreachable |
| SRV | Service location (Microsoft 365, SIP) | _sip._tcp.example.com |
Missing SRV records for M365 autodiscover |
| CAA | Specifies which CAs can issue SSL certs | 0 issue "letsencrypt.org" |
Blocks SSL issuance if too restrictive |
| PTR | Reverse DNS (IP β domain) | 1.168.192.in-addr.arpa β mail.example.com |
Missing PTR causes email rejection |
Critical DNS Concepts
TTL (Time To Live)
- Expressed in seconds. Tells resolvers how long to cache a record.
TTL 3600= Cache for 1 hour.TTL 86400= Cache for 24 hours.- Before migration: Lower TTL to 300 (5 min) at least 24β48 hours before the change, so old caches expire.
- After migration is confirmed stable: Raise TTL back to 3600β86400.
- Common mistake: Customer changes DNS and expects instant effect. If old TTL was 86400, it can take up to 24 hours for all resolvers worldwide to see the change.
Propagation
- DNS does not truly βpropagate.β What happens is old cached entries expire based on TTL, and resolvers fetch fresh records.
- Typical visible change time: 5 minutes to 48 hours, depending on prior TTL.
- Use tools like
dig,nslookup, or online propagation checkers to verify.
Zone Apex (Root Domain) Limitations
- Cannot use CNAME at zone apex (
example.com). This is an RFC restriction. - Some DNS providers offer ALIAS/ANAME records as a workaround (functionally similar to CNAME but resolved server-side).
- If a customer wants
example.comto point to a CDN, they either need ALIAS/ANAME support or must use an A record pointing to the CDN's IP.
Common DNS Failure Scenarios
Scenario 1: Domain registered but not resolving
- Check: Are nameservers set at the registrar?
- Check: Do the nameservers actually have zone records for this domain?
- Common cause: Customer registered domain but never added it to the hosting account, so no DNS zone exists.
Scenario 2: Website works, email doesn't
- Check: MX records. Are they pointing to the correct mail server?
- Check: If using third-party email (Google Workspace, Microsoft 365), are the MX records correctly set per their documentation?
- Common cause: Customer set up website A record but forgot to configure MX records.
Scenario 3: DNS changed but still showing old site
- Check: What was the TTL of the old record?
- Check: Is the customer's local DNS cache stale? (
ipconfig /flushdnson Windows, or test from a different network) - Check: Is Cloudflare or another CDN caching content?
- Common cause: High TTL on previous record; resolver cache hasn't expired yet.
Scenario 4: Subdomain not working
- Check: Does the A/CNAME record for the subdomain exist?
- Check: Is the subdomain added as an addon domain or subdomain in the hosting control panel?
- Common cause: DNS record exists but hosting server doesn't have a virtualhost configured for it.
DNS Diagnostic Commands
# Query A record dig example.com A +short # Query MX record dig example.com MX +short # Query specific nameserver dig @ns1.hostingprovider.com example.com A # Query with full trace dig example.com +trace # Check nameserver delegation dig example.com NS +short # Check TXT records (SPF, DKIM, DMARC) dig example.com TXT +short dig default._domainkey.example.com TXT +short dig _dmarc.example.com TXT +short # Reverse DNS lookup dig -x 192.168.1.1 # Windows equivalent nslookup example.com nslookup -type=MX example.com
Β
Β
4. Shared Hosting Operations
How Shared Hosting Works
Shared hosting places multiple customer accounts on a single physical or virtual server. All accounts share CPU cores, RAM, disk I/O bandwidth, network bandwidth, and IP address(es).
Each account is isolated via:
- CageFS / CloudLinux: Jails each user into their own virtual filesystem. User A cannot see User B's files.
- PHP Selector: Per-account PHP version selection (7.4, 8.0, 8.1, 8.2, 8.3).
- Resource limits (LVE): Per-account CPU, memory, I/O, inode, and entry process limits enforced by CloudLinux.
- cPanel/WHM: Account-level control panel providing file management, database management, email, DNS zone editing, and application installation.
Control Panel Structure
WHM (Web Host Manager) βββ Server-level administration (L2/L3 only) βββ Account creation/suspension/termination βββ Server-wide PHP/Apache/Nginx configuration βββ DNS cluster management βββ Resource limit configuration cPanel (Customer-facing) βββ File Manager / FTP Accounts βββ MySQL Databases / phpMyAdmin βββ Email Accounts / Forwarders / Autoresponders βββ DNS Zone Editor (if enabled) βββ SSL/TLS Management βββ Backup / Restore βββ Error Logs βββ Resource Usage (CPU, Memory, I/O stats) βββ Cron Jobs βββ PHP Version Selector βββ Softaculous (Application Installer)
Common Hosting Issues
βMy website is showing a blank pageβ
- Check error logs: cPanel β Error Logs (or
~/public_html/error_login File Manager). - Common causes:
- PHP fatal error (usually missing function, class, or extension).
- PHP version mismatch (code requires 8.1 but account is on 7.4).
.htaccesssyntax error.memory_limitexceeded during page load.
- Quick test: Create a
phpinfo.phpfile with<?php phpinfo(); ?>β if this loads, PHP is working and the problem is in the customer's code.
βMy website is very slowβ
- Check resource usage in cPanel β Resource Usage.
- Look for: CPU limit hits, memory limit hits, I/O throttling, entry process (EP) limit.
- Check if the slow response is server-side (TTFB > 2s) or client-side (large images, unoptimized JS).
- Common causes:
- Unoptimized WordPress with 30+ plugins.
- No caching plugin active.
- Database queries running without indexes.
- Cron jobs running too frequently.
- Bot traffic (check access logs for crawler IPs).
βI can't upload files via FTPβ
- Verify FTP credentials (username is usually
[email protected]or justcpanel_username). - Check FTP server is running (port 21, or SFTP on port given by system).
- Check if disk quota is full β uploads fail silently when disk is at 100%.
- Check passive FTP port range if customer is behind a firewall.
- Verify the customer is connecting to the correct server hostname.
βDatabase connection errorβ
- Verify database name, username, and password in the application's config file.
- Verify the database user is assigned to the database in cPanel β MySQL Databases β βAdd User to Database.β
- Check if the database user has sufficient privileges.
- In cPanel, database names and usernames are prefixed with the cPanel username (e.g.,
cpuser_dbname). Customers often forget the prefix. - Check if the MySQL server is running (if multiple customers report the same issue, escalate β server-level problem).
File System Layout (cPanel)
/home/cpaneluser/ βββ public_html/ β Document root (main website) β βββ .htaccess β Apache rewrite rules, redirects, security β βββ index.php β Default landing page β βββ wp-config.php β WordPress configuration (if WP installed) β βββ subdomain_folder/ β Subdomain document root (configurable) βββ mail/ β Email data (Maildir format) β βββ domain.com/ β βββ user/ β βββ cur/ β Read messages β βββ new/ β Unread messages β βββ tmp/ β Messages being delivered βββ logs/ β Access and error logs βββ tmp/ β Temporary files, PHP sessions βββ .trash/ β cPanel File Manager trash βββ etc/ β Account-level configuration βββ ssl/ β SSL certificate storage
.htaccess β Common Problems and Patterns
The .htaccess file is one of the most common sources of 500 errors and unexpected behavior on shared hosting.
Common issues:
- Syntax error β immediate 500 Internal Server Error.
- Infinite redirect loop β ERR_TOO_MANY_REDIRECTS.
- Overly aggressive rewrite rules β wrong pages loading.
php_value/php_flagdirectives when server uses PHP-FPM (not mod_php) β 500 error.
Quick diagnosis: Rename .htaccess to .htaccess.bak. If the site loads, the problem is in .htaccess.
Common .htaccess patterns:
# Force HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Force www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# WordPress default
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# Custom PHP settings (mod_php only - causes 500 on PHP-FPM)
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
Β
Β
5. Resource Limits & Server Constraints
Shared Hosting Resource Model (CloudLinux LVE)
Each shared hosting account operates within enforced resource limits. When a limit is hit, the system throttles or blocks that account rather than allowing it to affect other users on the server.
| Resource | What It Controls | Typical Limit | What Happens at Limit |
|---|---|---|---|
| CPU (%) | Processing power allocated | 100% (1 core equivalent) | Processes are throttled; page loads slow down |
| Physical Memory (PMEM) | RAM allocated to account | 1 GB | Processes are killed (OOM); 500/503 errors |
| I/O (KB/s) | Disk read/write speed | 4096 KB/s | Disk operations are throttled; extreme slowness |
| IOPS | I/O operations per second | 1024 | Database-heavy sites freeze |
| Entry Processes (EP) | Concurrent PHP/CGI workers | 20β30 | New requests get 503 errors; site appears down |
| Number of Processes (NPROC) | Total processes (including sleeping) | 100 | New processes cannot start; applications crash |
| Inodes | Number of files + directories | 200,000β500,000 | Cannot create new files; email stops; uploads fail |
| Disk Space | Storage allocated | 5β50 GB (plan dependent) | Cannot write files; email bounces; databases crash |
Inodes: The Hidden Limit
Inodes are one of the least understood limits by customers and the most common cause of βeverything broke at once.β
What counts as an inode: Every file, every directory, every email message, every cache file, every session file.
Common inode bloat causes:
- WordPress cache plugins creating thousands of static HTML files.
- Maildir email storage (each email is one file).
- Session files not being cleaned up (
/home/user/tmp/). - Backup files sitting in the account.
node_modulesdirectories (easily 50,000+ inodes for one project).- File manager trash not emptied.
Symptoms when inode limit is hit:
- Cannot send or receive email (Maildir cannot create new files).
- Cannot upload files.
- cPanel shows errors when trying to create anything.
- WordPress/CMS may show white screen if it tries to write cache.
- Database operations fail if they need to create temp tables on disk.
Diagnostic approach:
- Check inode usage in cPanel β Disk Usage or via Disk and Resource Usage.
- Identify top directories consuming inodes.
- Common cleanup: clear cache directories, empty trash, remove old backups, archive old emails.
Resource Usage Indicators β Reading the Graphs
cPanel's Resource Usage section (powered by CloudLinux LVE Stats) shows:
- Faults: Number of times the account hit its limit. Any fault count > 0 means the account is being throttled.
- Graph colors: Green = within limits. Yellow = approaching limits. Red = hitting limits.
- Timeframes: Check both βcurrent usageβ and βhistoricalβ (24h, 7d, 30d) to identify patterns.
Decision Framework for Resource Limit Issues
Account hitting CPU/Memory limits β
βββ Occasional spikes?
β β Likely legitimate traffic spikes or cron jobs
β β Advise: optimize code, enable caching, review cron frequency
βββ Constant hits?
β β Account has outgrown shared hosting
β β Advise: upgrade to higher plan or VPS
βββ Sudden onset?
β Possible attack, compromised site, or broken script
β Check access logs for unusual traffic
β Check for suspicious files (shells, miners)
β Escalate if compromise is suspected
Β
Β
6. Email Systems & Troubleshooting
Email Protocols
| Protocol | Port (Standard) | Port (SSL/TLS) | Direction | Purpose |
|---|---|---|---|---|
| SMTP | 25 (server-to-server), 587 (submission) | 465 (SMTPS) | Outbound | Sending email |
| IMAP | 143 | 993 | Inbound | Reading email (messages stay on server) |
| POP3 | 110 | 995 | Inbound | Downloading email (removed from server by default) |
Important port notes:
- Port 25 is blocked by many ISPs and cloud providers for end users. Always use 587 or 465 for mail client configuration.
- Port 587 requires STARTTLS (upgrade from plain to encrypted). Port 465 is implicit SSL (encrypted from the start).
- Always configure customer mail clients with SSL/TLS. Never configure plaintext connections.
Email Flow: Sending
Sender's Mail Client (Outlook/Thunderbird/Gmail)
|
| SMTP (port 587/465) with authentication
v
Sender's Mail Server (outbound)
|
| Looks up recipient's MX record via DNS
v
DNS returns MX: mail.recipient.com (priority 10)
|
| SMTP connection to recipient's mail server (port 25)
v
Recipient's Mail Server (inbound)
|
| Checks: SPF, DKIM, DMARC, spam filters, blacklists
| Checks: Recipient exists? Mailbox full?
v
Delivered to recipient's mailbox (or rejected/spam-flagged)
Common Email Failures
βI can't send emailβ
Diagnostic checklist:
- Is authentication configured in the mail client? (Username = full email address, password = email account password)
- Is the correct SMTP port being used? (587 with STARTTLS or 465 with SSL)
- Is the password correct? (Reset from cPanel β Email Accounts to verify)
- Is the sending IP blacklisted? (Check if the server IP is on any RBLs)
- Is the account suspended? (Check billing status)
- Is the recipient's server rejecting us? (Check the bounce-back message / NDR for exact error codes)
- Is the outbound mail queue backed up? (Server-level issue β escalate)
βI can't receive emailβ
Diagnostic checklist:
- Are MX records correct? (
dig domain.com MX) - Is the mailbox full? (Check quota in cPanel β Email Accounts)
- Is the email account actually created? (A domain existing doesn't mean email accounts exist)
- Is the email going to spam? (Check Spam/Junk folder)
- Is greylisting enabled? (First-time senders are temporarily rejected; email arrives on retry, usually 5β15 minutes later)
- Is there a mail routing issue? (cPanel β Email Routing β should be βLocal Mail Exchangerβ if hosting email on this server)
- Is the sender's server blacklisted? (Our server may reject incoming from blacklisted IPs)
βEmails are going to spamβ
This is one of the most common and most complex issues. Contributing factors:
- Missing or incorrect SPF record β recipient server cannot verify that our server is authorized to send for this domain.
- Missing DKIM signature β no cryptographic proof that the email is authentic.
- No DMARC policy β recipient server has no guidance on how to handle SPF/DKIM failures.
- Server IP reputation β the shared hosting IP may be blacklisted because another user on the same server sent spam.
- Email content β spam-like subject lines, excessive links, large attachments, HTML-only messages without text part.
- New domain β domains less than 30 days old have no sending reputation.
- No reverse DNS (PTR record) β the sending IP has no PTR record, or PTR doesn't match the HELO/EHLO hostname.
- Sending volume spike β suddenly sending hundreds of emails from an account that normally sends 5/day.
Common Bounce Codes
| Bounce Message | Meaning | Action |
|---|---|---|
550 5.1.1 User Unknown |
Recipient email address doesn't exist | Verify address with customer (typos are most common) |
552 Mailbox full |
Recipient's mailbox is full | Nothing we can do; inform customer |
421 Too many connections |
Recipient server rate-limiting us | Usually resolves on retry; if persistent, IP reputation problem |
550 Blocked by RBL |
Our server IP is blacklisted | Escalate to L2 for delisting request |
IMAP vs POP3 β When to Recommend What
| Feature | IMAP | POP3 |
|---|---|---|
| Messages stay on server | Yes | No (by default) |
| Multiple devices in sync | Yes | No |
| Server storage used | More | Less |
| Offline access | Depends on client cache | Full (messages are local) |
| Recommendation | Default choice for most users | Only for strict mailbox size limits who need local copies |
Critical POP3 issue: If a customer uses POP3 on their phone and then asks βwhere are my emails on the computer?β, the phone downloaded and deleted them from the server. This is not a server issue β it's how POP3 works. Enable βLeave a copy on the serverβ in POP3 settings to prevent this.
Β
Β
7. Email Authentication: SPF, DKIM, DMARC
These three mechanisms work together to authenticate email and prevent spoofing. Every L1 agent must understand them because they directly affect deliverability.
SPF (Sender Policy Framework)
What it does: Declares which mail servers are authorized to send email on behalf of a domain.
How it works: The receiving server checks the SPF TXT record of the sender's domain. If the sending server's IP is listed, SPF passes.
Record format (TXT record on the domain's DNS zone):
v=spf1 [mechanisms] [qualifier]
Common SPF records:
# Basic: Only this server can send v=spf1 ip4:192.168.1.1 -all # Shared hosting: Include the hosting provider's SPF v=spf1 include:_spf.hostingprovider.com -all # Google Workspace v=spf1 include:_spf.google.com -all # Microsoft 365 v=spf1 include:spf.protection.outlook.com -all # Multiple services (hosting + Google Workspace) v=spf1 include:_spf.hostingprovider.com include:_spf.google.com -all
Qualifiers:
| Qualifier | Meaning | Recommendation |
|---|---|---|
-all |
Hard fail: Reject anything not listed | Recommended for production |
~all |
Soft fail: Accept but mark as suspicious | Good for testing |
?all |
Neutral: No opinion | Essentially useless |
+all |
Pass all: Everything is authorized | DANGEROUS β never use |
SPF Lookup Limit: SPF processing is limited to 10 DNS lookups. Each include: directive counts as one lookup, and each included record may contain further lookups. Exceeding 10 causes SPF to permanently fail (permerror), which is worse than having no SPF at all.
Common SPF mistakes:
- Multiple SPF records on the same domain. There must be exactly ONE
v=spf1TXT record. If multiple exist, SPF fails. - Missing
include:for a third-party sender (e.g., transactional email service, CRM). - Using
+allβ this authorizes the entire internet to send as your domain.
DKIM (DomainKeys Identified Mail)
What it does: Adds a cryptographic signature to outgoing emails. The receiving server verifies this signature against a public key published in DNS.
How it works:
- The sending server signs the email headers and body with a private key.
- The signature is added as a
DKIM-Signatureheader in the email. - The receiving server looks up the public key via DNS:
selector._domainkey.domain.comTXT record. - The receiving server verifies the signature.
DNS record (TXT):
Name: default._domainkey.example.com Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCA... (public key)
Key points for L1:
- DKIM is typically configured at the server level and enabled per-domain in cPanel β Email β Authentication (or Email Deliverability).
- The βselectorβ (e.g.,
default) is chosen by the mail server admin. Different services use different selectors (Google usesgoogle, Microsoft usesselector1andselector2). - If a customer uses a third-party email service (Google Workspace, Microsoft 365), they need to add the DKIM TXT records provided by that service.
- DKIM records are long (2048-bit keys). Some DNS providers have a 255-character TXT record limit per string. The record must be split into multiple strings within the same TXT record.
Checking DKIM:
dig default._domainkey.example.com TXT +short
DMARC (Domain-based Message Authentication, Reporting & Conformance)
What it does: Tells receiving servers what to do when SPF and/or DKIM fail, and where to send reports about authentication results.
DNS record (TXT):
Name: _dmarc.example.com Value: v=DMARC1; p=none; rua=mailto:[email protected]
DMARC Policies:
Policy (p=) |
Action | When to Use |
|---|---|---|
none |
Do nothing, just send reports | Start here. Monitoring phase. Gather data before enforcing. |
quarantine |
Mark as spam | Intermediate. Use after confirming legitimate sources pass SPF/DKIM. |
reject |
Reject the email entirely | Full protection. Use only when confident all legitimate email passes. |
DMARC Alignment:
- For DMARC to pass, either SPF or DKIM must pass and align with the βFromβ domain.
- SPF alignment: The
Return-Path(envelope sender) domain matches theFromheader domain. - DKIM alignment: The
d=domain in the DKIM signature matches theFromheader domain.
Recommended starting DMARC record:
v=DMARC1; p=none; rua=mailto:[email protected]; fo=1
fo=1 = Generate failure reports when any authentication mechanism fails (useful for debugging).
Email Authentication Diagnostic Framework
Customer reports "email going to spam" or "email rejected": 1. CHECK SPF dig domain.com TXT | grep spf βββ No SPF record β Add one βββ Multiple SPF records β Merge into one βββ Missing include for service β Add it βββ SPF passes β Move to step 2 2. CHECK DKIM Look at email headers for DKIM-Signature dig selector._domainkey.domain.com TXT βββ No DKIM record β Enable in cPanel or add record βββ DKIM fails β Key mismatch, regenerate βββ DKIM passes β Move to step 3 3. CHECK DMARC dig _dmarc.domain.com TXT βββ No DMARC record β Add basic p=none record βββ p=reject but mail failing β Relax to p=none, investigate βββ DMARC passes β Move to step 4 4. CHECK IP REPUTATION Look up server IP on mxtoolbox.com/blacklists βββ IP blacklisted β Escalate to L2 for delisting βββ IP clean β Move to step 5 5. CHECK EMAIL CONTENT AND SENDING PATTERNS βββ Spammy content? β Advise on content best practices βββ New domain? β Reputation needs time βββ Volume spike? β Advise gradual ramp-up
Β
Β
8. HTTP Errors & Web Diagnostics
HTTP Status Code Reference
2xx / 3xx β Success & Redirects
| Code | Meaning | Notes |
|---|---|---|
| 200 | OK | Standard successful response |
| 201 | Created | Resource created (API response) |
| 204 | No Content | Success but no body (common in DELETE operations) |
| 301 | Moved Permanently | Permanent redirect (cached by browsers) |
| 302 | Found (Temporary Redirect) | Temporary redirect (not cached) |
| 304 | Not Modified | Browser cache is still valid |
4xx β Client Errors
| Code | Meaning | Common Cause | L1 Action |
|---|---|---|---|
| 400 | Bad Request | Malformed request, corrupt cookies, URL too long | Clear browser cache/cookies; check URL |
| 401 | Unauthorized | Authentication required but not provided | Verify credentials; check .htpasswd |
| 403 | Forbidden | Permission denied | Check file permissions (644/755); check .htaccess; check ModSecurity |
| 404 | Not Found | File/page doesn't exist at URL | Verify file exists; check URL; check rewrite rules |
| 405 | Method Not Allowed | POST/PUT/DELETE blocked | Check if method is allowed in .htaccess or server config |
| 408 | Request Timeout | Server didn't receive complete request | Usually client-side network issue |
| 413 | Payload Too Large | Upload exceeds upload_max_filesize or post_max_size |
Increase PHP limits in MultiPHP INI Editor |
| 429 | Too Many Requests | Rate limiting triggered | ModSecurity, application firewall, or server rate limits; wait and retry |
5xx β Server Errors
| Code | Meaning | Common Cause | L1 Action |
|---|---|---|---|
| 500 | Internal Server Error | .htaccess error, PHP fatal error, permission issue |
Check error logs; rename .htaccess; check permissions; check PHP version |
| 502 | Bad Gateway | Backend (PHP-FPM) crashed or not responding | Check resource limits; escalate if persistent |
| 503 | Service Unavailable | Server overloaded, entry processes exhausted | Check resource limits (especially EP); check suspension status |
| 504 | Gateway Timeout | Backend processing took too long | Increase max_execution_time; optimize script; check database |
| 507 | Insufficient Storage | Disk space or inode limit reached | Check disk usage and inodes; clean up |
| 508 | Loop Detected | Infinite redirect loop | Check .htaccess redirect rules; check CMS site URL settings |
| 520β527 | Cloudflare-specific errors | Various issues between Cloudflare and origin | Check origin server directly (bypass Cloudflare); check SSL mode |
The 403 Diagnostic Tree
403 Forbidden β
βββ File permissions wrong?
β Files should be 644 (rw-r--r--)
β Directories should be 755 (rwxr-xr-x)
β Fix: cPanel β File Manager β Permissions
β
βββ No index file?
β Directory listing is disabled and there's no index.html/index.php
β Fix: Add an index file or enable DirectoryIndex
β
βββ .htaccess blocking access?
β "Deny from all" or IP restriction
β Fix: Review .htaccess rules
β
βββ ModSecurity rule triggered?
β WAF blocked the request as potentially malicious
β Check: cPanel β Error Logs or ModSecurity log
β Fix: If false positive, escalate to L2 to whitelist rule ID
β
βββ Hotlink protection blocking?
β cPanel Hotlink Protection may block direct access
β Fix: Review Hotlink Protection settings
β
βββ IP blocked by firewall?
Customer's IP blocked by CSF/LFD after failed logins
Check: Error for everyone or just this customer?
Fix: Escalate to L2 to check and whitelist IP
The 500 Diagnostic Tree
500 Internal Server Error β
βββ Check error log FIRST (cPanel β Error Logs)
β The log will usually tell you exactly what went wrong
β
βββ .htaccess error?
β Rename .htaccess to .htaccess.bak
β Site loads? β .htaccess was the problem
β
βββ PHP version mismatch?
β Check: cPanel β MultiPHP Manager
β Try changing PHP version
β
βββ File permission error?
β Check ownership and permissions
β
βββ PHP memory limit?
β Check error log for "Allowed memory size exhausted"
β Increase memory_limit in PHP settings
β
βββ Broken plugin/theme? (WordPress)
β Rename wp-content/plugins/ to plugins_disabled/
β Site loads? β Plugin caused it; disable one by one
β
βββ Server-level issue?
Multiple customers affected?
β Escalate to L2/L3
Key HTTP Headers for Diagnostics
| Header | What It Tells You |
|---|---|
Server: Apache or Server: LiteSpeed |
Which web server is responding |
X-Powered-By: PHP/8.1.2 |
PHP version in use |
X-Sucuri-ID or CF-Ray |
Request went through a WAF/CDN |
Location: https://... |
Redirect destination (for 301/302) |
X-Cache: HIT |
Response was served from cache |
Retry-After: 120 |
Server requests client to wait (429/503) |
Β
Β
9. SSL/TLS Certificates
Types of SSL Certificates
| Type | Validation | Trust Level | Use Case |
|---|---|---|---|
| DV (Domain Validation) | Proves domain ownership only | Basic padlock | Most websites, blogs, small businesses |
| OV (Organization Validation) | Verifies organization identity | Padlock + org info in cert details | Business websites, e-commerce |
| EV (Extended Validation) | Rigorous identity verification | Padlock + org name | Banks, financial institutions, government |
| Wildcard | Covers *.domain.com |
Varies (DV/OV) | Multiple subdomains under one cert |
| Multi-Domain (SAN) | Covers multiple specific domains | Varies | Hosting multiple domains on one server |
Let's Encrypt & AutoSSL
Most shared hosting providers offer Let's Encrypt (or similar free DV SSL) via AutoSSL in cPanel.
How AutoSSL works:
- Runs automatically every few hours (or on-demand).
- Validates domain ownership via HTTP challenge (places a file at
/.well-known/acme-challenge/). - Issues or renews certificate.
- Installs certificate automatically.
Common AutoSSL failures:
| Failure Reason | Cause | Fix |
|---|---|---|
| Domain does not resolve to this server | A record points elsewhere (e.g., Cloudflare) | Point A record to the hosting server, or use Cloudflare's SSL |
| HTTP redirect to HTTPS | .htaccess forces HTTPS but cert isn't installed yet |
Temporarily remove HTTPS redirect, run AutoSSL, re-enable |
| CAA record blocks issuance | DNS CAA record doesn't include letsencrypt.org |
Add 0 issue "letsencrypt.org" CAA record |
| Rate limit exceeded | Too many issuance attempts | Wait (rate limits reset weekly) |
.well-known directory blocked |
.htaccess rules blocking access to challenge file |
Ensure .well-known is accessible |
Mixed Content Errors
After installing SSL, the site loads over HTTPS but browser shows βNot Secureβ or broken padlock.
Cause: The HTML page loaded over HTTPS contains resources (images, scripts, CSS) loaded over HTTP.
Diagnosis: Browser Developer Tools β Console β Look for βMixed Contentβ warnings.
Fix:
- Update hardcoded
http://URLs in the CMS/database tohttps://. - WordPress: Use βReally Simple SSLβ plugin or run a search-replace on the database.
- General: Search the codebase for
http://domain.comand replace withhttps://domain.comor//domain.com.
Certificate Chain Issues
Sometimes SSL is installed but browsers show βYour connection is not privateβ or βCertificate not trusted.β
Common causes:
- Missing intermediate certificate (CA bundle). The server must send the full chain.
- Certificate expired. Check expiry date.
- Certificate doesn't match domain. Cert was issued for
www.example.combut visitingexample.com. - Self-signed certificate. Not trusted by any browser.
Β
Β
10. Billing Workflows & Suspension Logic
Billing Lifecycle
Invoice Generated (due date set, e.g., 14 days before service renewal)
|
βββ Auto-payment succeeds β PAID β Service continues
|
βββ Auto-payment fails β UNPAID
| |
| βββ Reminder emails sent (1st, 2nd, 3rd at intervals)
| |
| βββ Grace period (e.g., 3-7 days after due date)
| |
| βββ Service SUSPENDED
| | Customer can still log in to billing panel
| | Customer can still pay the invoice
| |
| βββ Overdue period (e.g., 14-30 days after suspension)
| |
| βββ Service TERMINATED (data deleted)
| DATA LOSS IS PERMANENT
|
βββ Customer pays manually β PAID β Service continues/unsuspended
Suspension Types and Their Causes
| Suspension Type | Triggered By | Symptoms | Resolution |
|---|---|---|---|
| Billing | Unpaid invoice past grace period | Site shows suspension page; email stops; FTP disabled | Pay outstanding invoice; unsuspension may be automatic or L1 action |
| Abuse | TOS violation (spam, malware, phishing) | Full account lockdown | Must be reviewed by abuse/compliance team; L1 cannot unsuspend |
| ICANN Verification | WHOIS email not verified within 15 days | Domain resolves to registrar hold page | Customer verifies email; auto-unsuspended |
| Manual Admin | Internal administrative action | Varies | Escalate to the team that placed the suspension |
| Fraud | Fraudulent payment detected | Full account lockdown | Must be reviewed by fraud/billing team; L1 cannot unsuspend |
Key Billing Rules for L1
- Never manually unsuspend an abuse-suspended account. Always escalate to the abuse team.
- Verify payment before unsuspending. Check that the invoice is actually marked as PAID in the billing system, not just that the customer says they paid.
- Payment received β Payment cleared. Bank transfers, cheques, and some online payments may take time to clear. If the billing system shows βpending,β do not unsuspend.
- Refund authority. L1 typically does not have authority to issue refunds. Escalate refund requests to billing team or L2.
- Terminated accounts. Data deletion after termination is generally irreversible. If a customer contacts about a recently terminated account, escalate immediately β there may be a narrow window for recovery from server backups (not guaranteed).
- Service downgrade timing. Downgrades take effect at the next billing cycle, not immediately. Upgrades are typically immediate.
Common Billing Scenarios
βI paid but my site is still downβ
- Verify invoice payment status in billing system.
- If payment shows as βPendingβ or βProcessing,β explain the clearing time.
- If payment is confirmed βPaid,β check if the unsuspension automation ran.
- If automation didn't trigger, manually unsuspend (if billing suspension and within L1 authority).
- Verify site is back up after unsuspension.
βI'm being charged for a service I cancelledβ
- Check if a cancellation request exists in the system.
- Check if the cancellation was processed.
- If no cancellation was submitted, walk them through the cancellation process.
- If cancellation was submitted but not processed, escalate to billing team.
- Never promise refunds without billing team approval.
βI want to transfer my domain but my account is suspendedβ
- A billing suspension does not necessarily prevent domain transfers, but the domain itself must be unlocked and active.
- If the domain is paid but hosting is unpaid, the domain can potentially still be transferred.
- If the domain itself is unpaid and expired, it's in the domain lifecycle stages β refer to Section 2.
Β
Β
11. Security Awareness for L1 Support
Identity Verification
Before making ANY account changes (password resets, contact info updates, domain unlocks, authorization code release), verify the customer's identity.
Minimum verification requirements:
- Registered email address on the account.
- Account holder's full name.
- Last 4 digits of the payment method on file (if applicable).
- Security PIN / secret question (if configured).
Never:
- Give auth codes, passwords, or account information via chat/phone without verification.
- Accept βI'm the ownerβ as sufficient verification.
- Share account information with someone who βsays they are authorizedβ but isn't on the account.
- Send sensitive information to an email address not associated with the account.
Social Engineering Red Flags
Watch for these patterns:
- Urgency pressure: βI need this RIGHT NOW or I'll lose a deal.β
- Authority claims: βI'm the CEO's assistant, just give me the auth code.β
- Email mismatch: Customer contacts from a different email than what's on the account.
- Knowledge gaps: Customer doesn't know basic account details but insists they own it.
- Transfer requests for recently changed WHOIS: Could indicate a hijacked account.
When in doubt, escalate to L2 or the security team. It is always better to delay a legitimate customer's request than to facilitate an account theft.
Common Security Issues in Shared Hosting
Compromised Websites
- Signs: Defaced pages, unknown files in
public_html, unexplained email sending (spam), redirects to malicious sites, Google Safe Browsing warnings. - L1 Action: Do NOT attempt to clean the site. Document the symptoms and escalate to the security/malware team.
- Inform the customer: Change all passwords (cPanel, FTP, email, CMS admin, database). This is urgent.
Brute Force Attacks
- Signs: Customer locked out of cPanel/email, many failed login attempts in logs, IP blocked by firewall (CSF/LFD).
- L1 Action: If customer's IP is blocked, verify identity and escalate to L2 for IP whitelist. Never whitelist without proper verification.
Phishing Pages
- This is an abuse case. The customer's account may be compromised, or the customer may be the bad actor.
- L1 Action: Report to abuse team immediately. Do not inform the account holder before the abuse team reviews.
Password Reset Protocols
| Asset | Who Can Reset | Method |
|---|---|---|
| cPanel password | L1 (after identity verification) | WHM or billing system admin panel |
| Email account password | Customer (via cPanel) or L1 | cPanel β Email Accounts |
| Billing portal password | Customer (βForgot Passwordβ) or L1 | Billing system admin panel |
| Domain auth code | L1 (strict identity verification) | Registrar panel; send only to registered WHOIS email |
| FTP password | Customer (via cPanel) or L1 | FTP Accounts in cPanel |
| Database password | Customer (via cPanel) | MySQL Databases in cPanel |
Β
Β
12. Escalation Framework
Escalation Boundaries β What L1 Can and Cannot Do
L1 CAN:
- Verify DNS records and advise on correct configuration.
- Reset cPanel, email, and FTP passwords (after identity verification).
- Check and communicate resource usage information.
- Guide customers through cPanel operations.
- Unsuspend billing-suspended accounts after confirming payment.
- Troubleshoot email client configuration (ports, SSL, credentials).
- Diagnose common HTTP errors using error logs and
.htaccess. - Guide SSL/AutoSSL troubleshooting for standard cases.
- Process standard domain operations (renewal, lock/unlock, WHOIS privacy).
- Release auth codes (after strict identity verification).
- Resend ICANN verification emails.
- Create, modify, and delete DNS records as directed by the customer.
- Restart PHP processes for a customer's account (if tooling allows).
L1 CANNOT (must escalate):
- Modify server-level configurations (Apache, PHP global, MySQL server, firewall rules).
- Access WHM for server-wide changes.
- Unsuspend abuse-suspended or fraud-suspended accounts.
- Issue refunds or account credits.
- Perform server migrations.
- Delist IP addresses from blacklists (RBLs).
- Modify ModSecurity rules.
- Restore backups from server-level backup systems.
- Access root or perform any operation requiring root privileges.
- Make changes to other customers' accounts.
- Investigate or clean compromised/hacked websites.
- Handle legal or compliance matters (DMCA, court orders, LEA requests).
- Override domain registry-level holds (
serverHold,serverTransferProhibited).
Escalation Decision Framework
Can I resolve this with the tools and access I have?
βββ YES β Resolve it
βββ MAYBE β
β βββ Try the standard diagnostic steps first
β βββ Document what you've tried
β βββ If still unresolved β Escalate
βββ NO β
βββ Security issue? β Escalate IMMEDIATELY
βββ Server-level? β Escalate to L2 Infrastructure
βββ Abuse/legal? β Escalate to Abuse/Compliance team
βββ Billing dispute? β Escalate to Billing team
βββ Beyond knowledge? β Escalate to L2 with full documentation
How to Write an Effective Escalation
Every escalation must include:
- Customer Information: Account username, domain(s) affected, contact email.
- Problem Summary: One-sentence description of the issue.
- Impact: What is broken? Completely down or partially affected?
- Steps Already Taken: Every diagnostic step performed and its result.
- Relevant Evidence: Error log entries, DNS lookup results, HTTP status codes, screenshots.
- Your Assessment: What you think the problem is (even if unsure).
Example of a GOOD escalation:
Account: johndoe ([email protected]) Domain: example.com Server: shared-web-14.hostingprovider.com Issue: Customer's WordPress site returns 503 for all pages since approximately 14:00 UTC today. Steps Taken: 1. Verified domain resolves correctly to 198.51.100.14 (correct server IP). OK 2. Billing status: Active, no outstanding invoices. OK 3. Account not suspended. OK 4. Resource Usage: Entry Processes showing 47 faults in last hour. CPU at 98%. 5. Error log shows: "mod_lsapi: connect to lsphp timed out" repeated hundreds of times. 6. Customer confirmed no recent changes to site. 7. Checked access logs: Large volume of POST requests to /xmlrpc.php from multiple IPs starting ~14:00 UTC. Assessment: Likely brute-force attack via WordPress XML-RPC endpoint exhausting entry processes. Recommend blocking xmlrpc.php at server level or via ModSecurity and clearing the LVE fault counter.
Example of a BAD escalation:Customer says site is down. Please check.
Escalation Priority Levels
| Priority | Criteria | Expected Response Time |
|---|---|---|
| P1 - Critical | Server-wide outage; multiple customers affected; data loss in progress; active security breach | Immediate (within 15 minutes) |
| P2 - High | Single customer completely down; suspected compromise; billing system errors affecting multiple customers | Within 1 hour |
| P3 - Medium | Partial service degradation; email deliverability issues; intermittent errors; performance issues | Within 4 hours |
| P4 - Low | Feature requests; non-urgent billing inquiries; scheduled maintenance requests; cosmetic issues | Within 24 hours |
Β
Β
13. Diagnostic Checklists
Checklist A: Website Not Loading
| # | Check | How | If Fails |
|---|---|---|---|
| 1 | Can YOU access the site? | Test from your own browser/network | If you can but customer can't: ISP, DNS cache, or firewall issue on their end |
| 2 | Is the domain resolving? | dig domain.com A +short |
No response: Domain or DNS layer issue. Wrong IP: DNS misconfiguration. |
| 3 | Is the domain expired? | WHOIS lookup β check expiry date and status codes | clientHold/serverHold: Domain suspended (Section 2) |
| 4 | Is the account active? | Check billing system β Account status | Suspended: Check reason (billing, abuse, etc.) |
| 5 | What HTTP error is returned? | Check the exact error code | 403/500/502/503/504: See Section 8 diagnostic trees |
| 6 | Check error logs | cPanel β Error Logs | Look for most recent entries at time of issue |
| 7 | Check resource usage | cPanel β Resource Usage | Any faults? Which resource? See Section 5 |
| 8 | All above pass? | β | Escalate to L2 with full documentation |
Checklist B: Email Not Working
| # | Check | How | If Fails |
|---|---|---|---|
| 1 | Define the exact problem | Cannot send? Receive? Both? To/from everyone or specific? Since when? | Narrow down the issue first |
| 2 | Mail client issue or server issue? | Can customer log in to Webmail? | Webmail works = mail client config issue. Webmail fails = server issue. |
| 3 | Sending: SMTP settings | Check server, port (587/465), SSL, auth | Correct settings and retry |
| 4 | Sending: Bounce message? | Read the NDR error carefully | Error code tells you why (see bounce codes in Section 6) |
| 5 | Receiving: MX records | dig domain.com MX |
Wrong MX = email goes to wrong server |
| 6 | Receiving: Mailbox quota | cPanel β Email Accounts | Full mailbox = bounces. Increase or clean. |
| 7 | Receiving: Email routing | cPanel β Email Routing | Should be βLocal Mail Exchangerβ if hosting email here |
| 8 | Spam: SPF/DKIM/DMARC | Full audit per Section 7 | Fix missing/broken records |
Checklist C: Domain Transfer Issues
| # | Direction | Check | Notes |
|---|---|---|---|
| 1 | Outbound | Domain unlocked? | clientTransferProhibited must be removed |
| 2 | Outbound | Auth code obtained? | Provide to gaining registrar |
| 3 | Outbound | 60-day lock clear? | No recent registration, transfer, or WHOIS change |
| 4 | Outbound | WHOIS email valid? | Transfer approval goes to WHOIS email |
| 5 | Outbound | Domain not expired? | Some registries block transfer of expired domains |
| 6 | Inbound | Auth code from customer? | Must be valid and not expired |
| 7 | Inbound | Transfer initiated? | Check status in admin panel |
| 8 | Inbound | Waiting period elapsed? | Auto-approves in 5 days if no action from losing registrar |
Checklist D: SSL Certificate Issues
| # | Scenario | Check | Fix |
|---|---|---|---|
| 1 | No SSL at all | AutoSSL enabled? Domain resolves here? .well-known accessible? CAA records? |
Run AutoSSL manually from cPanel β SSL/TLS Status |
| 2 | SSL installed but βNot Secureβ | Mixed content? Certificate expired? Domain mismatch? Missing chain? | Fix mixed content; renew cert; install correct cert with chain |
| 3 | Wrong certificate showing | CDN/proxy (Cloudflare) in front? Multiple domains on same IP? | Check CDN SSL settings; verify correct cert installed for domain |
| 4 | AutoSSL keeps failing | Check AutoSSL log in cPanel; read specific error | DNS must point here; no forced HTTPS during validation; .well-known accessible |
Β
Β
Appendices & Quick Reference
Appendix A: Port Numbers
| Service | Standard Port | SSL/TLS Port |
|---|---|---|
| HTTP | 80 | 443 (HTTPS) |
| FTP | 21 | 990 (FTPS) |
| SFTP / SSH | 22 | β (inherently encrypted) |
| SMTP (server-to-server) | 25 | β |
| SMTP Submission | 587 (STARTTLS) | 465 (SMTPS) |
| POP3 | 110 | 995 |
| IMAP | 143 | 993 |
| MySQL | 3306 | β (usually internal) |
| cPanel | 2082 | 2083 |
| WHM | 2086 | 2087 |
| Webmail | 2095 | 2096 |
Appendix B: File Permissions
| Entity | Permission | Octal | Meaning |
|---|---|---|---|
| Regular files | rw-r--r-- |
644 | Owner reads/writes; group and others read only |
| Directories | rwxr-xr-x |
755 | Owner full access; group and others read and traverse |
| CGI scripts | rwxr-xr-x |
755 | Must be executable |
| Config files (wp-config.php) | rw-r----- |
640 | Owner reads/writes; group reads; no public access |
| .htaccess | rw-r--r-- |
644 | Must be readable by web server |
Never set files to 777. This is a security vulnerability that allows any user on the server to read, write, and execute the file.
Appendix C: Common DNS TTL Values
| TTL (seconds) | Human-Readable | Recommended Use |
|---|---|---|
| 300 | 5 minutes | Pre-migration (set 24β48h before change) |
| 3600 | 1 hour | Standard operational TTL |
| 14400 | 4 hours | Stable records that rarely change |
| 86400 | 24 hours | Very stable records (NS, MX for established services) |
Appendix D: Glossary
| Term | Definition |
|---|---|
| A Record | DNS record mapping a domain to an IPv4 address |
| Auth Code (EPP Code) | Secret code required to transfer a domain between registrars |
| AutoSSL | cPanel feature that automatically provisions and renews Let's Encrypt SSL certificates |
| CAA Record | DNS record specifying which Certificate Authorities can issue SSL certificates for a domain |
| ccTLD | Country Code Top-Level Domain (e.g., .in, .uk, .de) |
| CloudLinux / LVE | Operating system and resource management layer used on shared hosting to isolate accounts |
| CNAME | DNS record that creates an alias from one domain name to another |
| CSF / LFD | ConfigServer Security & Firewall / Login Failure Daemon β server firewall and intrusion detection |
| DKIM | DomainKeys Identified Mail β email authentication using cryptographic signatures |
| DMARC | Domain-based Message Authentication, Reporting, and Conformance β policy for handling email auth failures |
| DNSBL / RBL | DNS-based Blackhole List / Real-time Blackhole List β lists of IPs known to send spam |
| Entry Processes (EP) | Number of concurrent PHP/CGI workers allowed per account |
| EPP Status Codes | Extensible Provisioning Protocol codes showing domain registration status |
| gTLD | Generic Top-Level Domain (e.g., .com, .net, .org) |
| ICANN | Internet Corporation for Assigned Names and Numbers β oversees domain name system |
| Inode | Data structure representing a file or directory; inode count = total files + directories |
| MX Record | DNS record specifying the mail server responsible for receiving email for a domain |
| Nameserver (NS) | Server responsible for answering DNS queries for a zone |
| NDR | Non-Delivery Report β bounce-back email explaining why delivery failed |
| PHP-FPM | PHP FastCGI Process Manager β runs PHP as a separate service from the web server |
| PTR Record | Reverse DNS record mapping an IP address to a domain name |
| SNI | Server Name Indication β TLS extension allowing multiple SSL certificates on one IP |
| SPF | Sender Policy Framework β DNS record declaring authorized mail sending servers |
| STARTTLS | Protocol command to upgrade a plaintext connection to encrypted (used on port 587) |
| TTL | Time To Live β how long DNS resolvers should cache a record (in seconds) |
| WHOIS | Protocol/database for querying domain registration information |
| Zone Apex | The root of a domain (e.g., example.com without any subdomain prefix) |
End of Document β Core Knowledge Base for Level 1 Customer Support v1.0