TYPO3 Security Cookbook



Similar documents
MassTransit 6.0 Enterprise Web Configuration for Macintosh OS 10.5 Server

TYPO3 Security Guide. This document is published under the Open Content License available from

CCM 4350 Week 11. Security Architecture and Engineering. Guest Lecturer: Mr Louis Slabbert School of Science and Technology.

MOODLE Installation on Windows Platform

OpenCart. SugarCRM CE (Community Edition Only) Integration. Guide

SSL Tunnels. Introduction

E-Commerce: Designing And Creating An Online Store

Linux VPS with cpanel. Getting Started Guide

Hardening Joomla 1. HARDENING PHP. 1.1 Installing Suhosin. 1.2 Disable Remote Includes. 1.3 Disable Unneeded Functions & Classes

SchoolBooking SSO Integration Guide

This installation guide will help you install your chosen IceTheme Template with the Cloner Installer package.

Document History Revision Date: October 30, 2006

Use Enterprise SSO as the Credential Server for Protected Sites

Cloud Security:Threats & Mitgations

XCloner Official User Manual

The current version installed on your server is el6.x86_64 and it's the latest available.

Perceptive Content Security

Securing the Apache Web Server

Cybozu Garoon 3 Server Distributed System Installation Guide Edition 3.1 Cybozu, Inc.

Railo Installation on CentOS Linux 6 Best Practices

Livezilla How to Install on Shared Hosting By: Jon Manning

AJ Matrix V5. Installation Manual

NTT Web Hosting Service [User Manual]

Joomla Security - Introduction

Hacking the WordpressEcosystem

EZcast technical documentation

WatchDox Administrator's Guide. Application Version 3.7.5

Setup Corporate (Microsoft Exchange) . This tutorial will walk you through the steps of setting up your corporate account.

Content Management System

SVNManager Installation. Documentation. Department of Public Health Erasmus MC University Medical Center

OpenPro ERP Software Installation Guide Talbert Ave Suite 200 Fountain Valley, CA USA Phone Fax

SCOPTEL WITH ACTIVE DIRECTORY USER DOCUMENTATION

owncloud Architecture Overview

GroundWork Monitor Open Source Readme

INSTALLATION GUIDE VERSION

modules 1 & 2. Section: Information Security Effective: December 2005 Standard: Server Security Standard Revised: Policy Ref:

Installation Instructions

Site Store Pro. INSTALLATION GUIDE WPCartPro Wordpress Plugin Version

EOP ASSIST: A Software Application for K 12 Schools and School Districts Installation Manual

All the materials and/or graphics included in the IceThemetheme folders MUST be used ONLY with It TheCityTheme from IceTheme.com.

How To Manage Web Content Management System (Wcm)

Management, Logging and Troubleshooting

Expresso Quick Install

2 Downloading Access Manager 3.1 SP4 IR1

SSL-TLS VPN 3.0 Certification Report. For: Array Networks, Inc.

Creating an ESS instance on the Amazon Cloud

30 Steps to Successfully Installing DotNetNuke on a Network Solutions Shared Hosting Package

Configure Single Sign on Between Domino and WPS

FileCloud Security FAQ

Intunex Oy Skillhive Service Description 1 / 6

JOOMLA SECURITY. ireland website design. by Oliver Hummel. ADDRESS Unit 12D, Six Cross Roads Business Park, Waterford City

Proto Balance SSL TLS Off-Loading, Load Balancing. User Manual - SSL.

Installing Booked scheduler on CentOS 6.5

User's Guide. Product Version: Publication Date: 7/25/2011

Linux Server Configuration Guidelines

Plesk Panel HEAnet Customer Guide

SECURITY DOCUMENT. BetterTranslationTechnology

We begin with a number of definitions, and follow through to the conclusion of the installation.

FortiOS Handbook - Hardening your FortiGate VERSION 5.2.3

Authorize.net modules for oscommerce Online Merchant.

Linux Server Support by Applied Technology Research Center. Proxy Server Configuration

NSi Mobile Installation Guide. Version 6.2

Installation Guide for WebSphere Application Server (WAS) and its Fix Packs on AIX V5.3L

Enterprise Advanced Configuration

Kollaborate Server Installation Guide!! 1. Kollaborate Server! Installation Guide!

Installation Guide for contineo

Git - Working with Remote Repositories

Install and configure Apache, MySQL, PHP on OSX 10.8 Mountain Lion

Client Configuration Guide

FileMaker Server 14. FileMaker Server Help

Tonido Cloud Admin Guide

Remotely Owning Secure Parking Systems

WordPress Security Scan Configuration

How To Secure An Rsa Authentication Agent

OpenPro ERP Software Installation Guide REDHAT LINUX

Authentication Methods

Top 10 Web Application Security Vulnerabilities - with focus on PHP

RSA Authentication Manager 7.1 Security Best Practices Guide. Version 2

Installing buzztouch Self Hosted

Sophos Mobile Control Installation guide. Product version: 3.5

IIS SECURE ACCESS FILTER 1.3

ProjectPier v Getting Started Guide

Requirements Collax Security Gateway Collax Business Server or Collax Platform Server including Collax SSL VPN module

Oracle Security on Windows

Installation Manual for Catalog Infinite Scroll extension

OpenEyes - Windows Server Setup. OpenEyes - Windows Server Setup

Asia Web Services Ltd. (vpshosting.com.hk)

Configuring IBM HTTP Server as a Reverse Proxy Server for SAS 9.3 Web Applications Deployed on IBM WebSphere Application Server

Online Vulnerability Scanner Quick Start Guide

vtiger CRM 4.2 Installation Guide for Linux OS

About This Document 3. Integration Overview 4. Prerequisites and Requirements 6

Tenable for CyberArk

Whitepaper : Using Unsniff Network Analyzer to analyze SSL / TLS

The Web Pro Miami, Inc. 615 Santander Ave, Unit C Coral Gables, FL T: info@thewebpro.com

10gAS SSL / Certificate Based Authentication Configuration

LDAP / SSO Authentication

Security IIS Service Lesson 6

FileMaker Server 13. FileMaker Server Help

Transcription:

TYPO3 Security Cookbook Copyright 2006, Ekkehard Guembel ; Michael Hirdes, <guembel@naw.de ; hirdes@elios.de> This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 - a GNU/GPL CMS/Framework available from www.typo3.com "What does it do?" This document contains a checklist for TYPO3 system administrators. You can use it to ensure you closed common open doors of your system. Introduction Basically being the result of a discussion at T3Board04 in Kitzbühel, this document will of course have grow in the future. If you want to contribute by adding new chapters, please send your text to the author of this document. Requirements The checklist ties up on a working TYPO3 environment. It is not intended to be another installation manual! Thus, you can just install your server as usual, and use this list for checking each chapter one by one. Priorities & Structure Although it is recommended that you walk through every chapter in this document, there are of course priorities. To make it easy for you, all issues are sorted from the top to the bottom. TYPO3 Secure the Install Tool Priority: High Explanation of Backgrounds: The TYPO3 Install Tool is the powerful center of your TYPO3 system. As a basic rule, it should never be accessible from the Web unless you actually need it. disable the Install Tool (remove the comment in front of the die() line in typo3/install/index.php) OR move away the typo3/install/ directory or make it inaccessible for the web server OR limit access to typo3/install to specific hosts / networks / domains (using.htaccess) depreciated! you may want to add.htaccess authentication (though also not considered secure) at LEAST make sure to change the Install Tool password to a non-trivial value Change admin Password, Rename admin User Explanation of Backgrounds: The default admin user and password is always a first try for hackers. change the password of the admin user immediately after install TYPO3 Security Cookbook - 1

replace the admin user by other admins preferably personalized ones (see Choose Personal User Names ) Do not use Quickstart, Testsite et al. for Live Systems Explanation of Backgrounds: The Quickstart package like other demo packages - is intended to provide a read-to-run demo system. It contains a lot of code and content that you would have to clean up prior to use the installation for production purposes. It is much better to start with a clean system and install (maybe import) only what you really need. use the dummy package for live sites at LEAST make sure to remove all FE and BE users File System Access Rights Explanation of Backgrounds: Least privileges should be given in the TYPO3 and htdocs directories make sure to revoke all WRITE privileges in typo3_src for the web server s user account set ownership and umask in htdocs to appropriate values (differs for the various subdirectories!) paranoid s setting: Place localconf.php outside of htdocs by changing typo3conf/localconf.php to the following: <?php require("<directory outside htdocs>/localconf.php");?> Remove unneeded code Explanation of Backgrounds: Depending on your base package (esp. if you use CVS code depreciated anyway!), it may contain extra code that is not needed for production and therefore should not be accessible for potential offenders. Delete the./misc,./cvs and the./dev directory if present, or at least make them inaccessible for the web server s user account if you have live server separate from your editors production system, remove the BE from the live servers Only install required Extensions Configure TYPO3 Security Options Explanation of Backgrounds: TYPO3 provides numerous configuration options that increase system security. Check them out and use what makes sense in your situation! Measures / Install Tool (see Install Tool sections for latest options and detailed descriptions): [strictformmail] set to "1" [encryptionkey] should be set (e.g. in "Basic Configuration") [warning_email_addr] [lockip] [lockrootpath] [filecreatemask] [filedenypattern] should at least contain \.php$ \.php.$ [foldercreatemask] [warning_mode] [IPmaskList] [lockbeusertodbmounts] [lockssl] [enabledbeuseriplock] [disable_exec_function] TYPO3 Security Cookbook - 2

[usephpfilefunctions] [nophpscriptinclude] consider this if others have access to your template files [lockhashkeywords] [devipmask] Measures / BE GUI Add locktodomain in be_users/be_groups records Avoid config.baseurl=1 Explanation of Backgrounds: In older versions, your cache may be poisoned, resulting in foreign pages being displayed instead of your own. use the absolute URL instead OR make sure the website can only be accessed with the correct URL (i.e. use name based virtual hosts in your web server) Consider Using SSL for Backend Access Explanation of Backgrounds: Although BE login itself is encrypted, the follow-up BE access is unprotected unless you use SSL. Since that may affect sensitive information, you are advised to use SSL for all BE access. configure HTTPS for your server redirect HTTP access to /typo3 to HTTPS in your web server use the lockssl Install Tool option (see Configure TYPO3 Security Options ) FE User Security Explanation of Backgrounds: Please take your FE users security concerns seriously, i.e. protect their sensitive data. Use SSL for FE logon Use SSL for FE user self-registration and password change Use SSL for all sensitive data like forms (not only credit card data ) or personal output do not store FE user passwords in clear - use an extension like kb_md5fepw, or use secure external password storage like LDAP (preferably via SSL) with MD5 Restrict Special Content Elements usage Explanation of Backgrounds: Some low-level content elements may let backend users gain system access beyond the level you intended, or may enable them to create security breaches without knowing. Therefore, the following restrictions are recommended for all users that all not fully aware or capable of understanding the security implications, or are simply not fully trusted. - Do not allow Content Element "HTML" - Do not allow plain HMTL in Text Content Elements - Do not allow plugins that let the user insert PHP code Choose Personal User Names for Backend Access Explanation of Backgrounds: john.doe is better then bigboss - avoid using shared accounts in general. You should always be able to keep track on who is doing what, and backend users should be aware of that fact. TYPO3 Security Cookbook - 3

give personal user names inform your BE users about the logging educate them not to share accounts Logging / Auditing Explanation of Backgrounds: Know your log files, and be sure they are configured to audit all information you need. The sys_log table is your default BE user log (accessible via Tools->Log) xxxxxxxxxxxxxxxxx you can enable additional logging using the [logfile_dir] and [logfile_write] Keywords The [trackbeuser] setting is intended for debug purposes The [enable_dlog] (in conjunction with constant TYPO3_DLOG) Error Handling Explanation of Backgrounds: Even if you try to avoid it your system may run into one (or more :-) errors one day - so "be prepared". Make sure errors are tracked, and user output is convenient and does not expose any internal information. PHP errors should be handled, but normally through PHP means (see below). Thus [displayerrors] should be set to 0. More a cosmetical thing: TYPO3-internal "Page not Found" errors can be configured using the [pagenotfound_handling] and [pagenotfound_handling_statheader] setting. Use Trusted / Reviewed Extensions Explanation of Backgrounds: Every extension can potentially expose your entire system, whether by a security bug or even intentionally. Use extensions that have undergone the extension review process. If an extension is not reviewed yet, think about sponsoring its review. Remember to have your own extensions quality-assured as well. Subscribe to TYPO3-Announce, Apply Fixes Explanation of Backgrounds: In case a security issue with TYPO3 or one of its extensions occurs, a "TYPO3 Security Bulletin" will be communicated through the "TYPO3-Announce" Mailing list. A fix or workaround will come along. Subscribe to TYPO3-Announce (goto xxxxxxxxxxxxx) Read the Bulletins, and implement the measures if you are affected. Make sure to do the same for future installations! All TYPO3 Security Bulletins can be found on xxxxxxxxxxxxxxxx Non TYPO3 Settings PHP These settings should b e done in php.ini log errors to an error file needed to reproduce any problems Display errors off do not display any errors through the webserver dont'push people to possible leaks use safemode, or at least open basedir to prevent webs from accessing other directories or execute things, they mustn't again: less is more. Use a CGI/PHP wrapper (suphp?)??? compile your PHP with minimum compile options, or install only needed extentions - what is not included, is not vulnerable. TYPO3 Security Cookbook - 4

Register_globals = Off. If this is really required, it could be switched on for single webs in the.htaccess file. verify and use.htaccess! Apache In httpd.conf don't load modules, you don't need. Best is not to even install them. Directory listing for example is not needed. This can be done via php script if needed Only install required modules disable version info in error pages, tell possible attackers as little as possible MySQL dissallow network connections to mysql, if needed, tunnel it through a secure connection (stunnel) don't use the mysql root user, use one user per database set an own password for mysql root user, don't use the server root password General problems according to shared hosting requirements to the isp activate su_exec don't store passwords on servers! If you need a password.txt file: store it on a sheet of paper, or on a box which is not connected to the web. (i know, this one is nagging, but...) subscribe to the security lists of your distribution / Operating System Vendor. (OS, ssh, apache, php, mysql, openssl, ) if possible, run updates daily through a cron job try to use secured connections for all protocols (sftp, etc) restrict acces for users only to needed directories ( i.e. Proftpd: users home = htdocs ; DefaultRoot = ~) monitor your servers to see, if something unusual happens (i.e. nagios, tripwire, tiger, logsurfer,...) harden system (disabel unneeded services, remove compilers,...) protect phpmyadmin with.htaccess don't do dumps or backups to fileadmin or htdocs, if you use backup extensions, delete the backups after downloading them. Topics NOT listed here rename "/typo3" --> we discussed this, but decided, not to recommend this. Backups (should be clear) sec.-extensions, sso, (we mentioned checking the resp. sites) BE roles / permissions password rules (this is not secure internet server for dummies book ) TYPO3 Security Cookbook - 5