Introduction Part I: Preparations Chapter 1 – Evaluating your current site 1.1 Why, Oh Why 1.2 Determine your site's purpose 1.3 Make a list of the technologies you're currently using. 1.4 Determine which technologies require little effort to translate over 1.5 Determine which technologies require moderate effort to translate over 1.6 Determine which technologies require a complete conversion to translate over 1.7 Naming Conventions 1.8 Authentication and Security Chapter 2 – Selecting Your Linux Components 2.1 Updating your terminology 2.2 The Apache Web Server 2.2.1 Apache versions 2.2.2 Getting the latest version of Apache 2.2.3 What version do you have? 2.2.4 Apache add-ons and technologies 2.3 ASP Under Linux 2.3.1 ASP with VBScript 2.3.2 ASP with Perl 2.3.3 ASP with Jscript 2.4 Databases 2.5 Scripting and Dynamic Content 2.5.1 Types available 2.5.2 Where it all fits 2.5.3 Getting up to speed 2.5.4 Security issues 2.6 XML 2.6.1 Serving XML in Linux 2.6.2 Editing XML in Linux 2.6.3 Specialty XML tools 2.7 Streaming Media 2.7.1 Serving streaming media in Linux 2.7.2 Media migration issues 2.7.3 Enabling streaming media for your Linux desktiop users 2.8 Ecommerce 2.9 Nameserver: BIND versus djdns 2.10 The Linux Distribution 2.10.1 Red Hat Linux strengths and weaknesses. 2.10.2 SuSE Linux 2.10.3 Mandrake GNU/Linux 2.10.4 RHL Advanced Server and the Enterprise server family 2.10.5 Standardization 2.10.6 Security focused distributions Part II: Installations Chapter 3 – Installing and Tuning Linux 3.1 Installing Linux 3.1.1 Before you start, partitioning 3.1.2 Installing Linux for a web server 3.1.3 Creating user accounts 3.1.4 Working with the filesystem 3.1.5 Working with networking 3.2 Fine Tuning Your Installation 3.2.1 Viewing and understanding Linux processes 3.2.2 Finding out what network services run by default 3.2.3 Stopping processes 3.2.4 Opening and closing ports 3.2.5 Finding software 3.2.6 Removing unneeded software 3.3 Configuring DNS 3.4 Properly shutting down and rebooting Linux machines 3.5 Hardware Chapter 4 – Installing Apache 4.1 Determining if you will need to compile Apache or not 4.2 Installing Sister Services without Compiling Apache 4.3 Preparing to compile software in Linux 4.3.1 Package Management 4.3.2 Making sure your tools are installed 4.3.3 Finding documentation 4.4 Compiling Apache and its Sister Services 4.4.1 Getting all of the pieces 4.4.2 Tips for tracking down the order of compile 4.4.3 Example: Apache + (haven't decided yet, simpler example) 4.4.4 Example: Apache + + (more complex example) 4.4.5 Example: Apache + + + (a bear of an example) 4.5 Testing your Apache installation Chapter 5 – Installing Additional Server Software 5.1 Installing Third Party ASP-under-Linux Software 5.1.1 Installing iASP 5.1.2 Installing iNET 5.1.3 Installing SunOne's Active Server Pages 5.1.4 Installing Apache-ASP 5.2 Installing XML Support 5.2.1 Installing the software 5.2.2 Integrating your XML software with Apache 5.2.3 Finding a Linux-based XML editor 5.3 Installing and Setting up JAVA 5.3.1 Determining what version of JAVA you have in Windows 5.3.2 Determining what version of JAVA you have in Linux 5.3.3 Updating your Linux JAVA version 5.4 Digital Certificates 5.5 Ecommerce 5.6 Testing Your Installation Chapter 6 – Configuring Apache 6.1 A GUI Configuration Tool Tour 6.1.1 Red Hat's apacheconf 6.1.2 RHAS's Piranha 6.1.3 Webmin 6.2 Basic Server Configuration 6.2.1 Tour of Apache's configuration setup 6.2.2 Server-wide Configuration 6.3 Fine-Tuning Rules for Various Directories 6.3.1 Introduction to Linux filesystem layout 6.3.2 Introduction to setting filesystem policies 6.3.3 Policy considerations 6.3.4 Limiting who can access what pages 6.4 Activating Apache Features 6.4.1 Introduction to feature setting in Apache 6.4.2 Commonly used features, pros and cons 6.4.3 Activating commonly-used features 6.5 Finding and adding Apache modules 6.5.1 Apache 1.x 6.5.2 Apache 2.x 6.6 Setting Up Virtual Hosting 6.6.1 Telling the computer about its new host 6.6.2 Telling the name server about its new host 6.6.3 Telling Apache about its new host 6.7 Enabling FrontPage Extensions 6.8 Activating Web-Based Email 6.9 Activating user data upload 6.10 Testing your server setup. Part III: Security Chapter 7 – Securing Your Network 7.1 Firewalls and Perimeter Networks 7.1.1 Terminology and Theory 7.1.2 Locking down private information: concerns 7.1.3 Introduction to the tools 7.2 Implementing NAT in Linux 7.3 Implementing a firewall in Linux 7.4 Steps toward establishing a full DMZ 7.5 Network monitors 7.5.1tcpdump 7.5.2 snort 7.5.3 Big Brother 7.5.4 iptraf 7.5.5 MRTG 7.5.6 NFR Chapter 8 – Securing Your Machines 8.1 Controlling who can access what services with tcpwrappers 8.2 Physical security 8.3 Password expiration and maintenance 8.4 Smart use of users and groups 8.5 Logs, Logs, Logs 8.5.1 The default logging program: syslogd 8.5.2 Alternative logging programs 8.5.3 Reading the Common Log Format 8.5.4 Log Rotation, or don't let your logs eat your hard drive space 8.5.5 Recognizing and evaluating attempted attacks 8.6 Log monitors 8.7 Watching your programs for tampering 8.8 Testing your system for flaws 8.7.1 nmap 8.7.2 nessus 8.9 KEEP YOUR SOFTWARE UP TO DATE 8.10 Locking down a system for maintenance 8.10.1 Preventing user logins 8.10.2 Notifying all users of a pending shutdown or reboot 8.11 Locking down CGI and scripting problems 8.12 Stopping spambots Chapter 9 – Dealing with Attacks 9.1 Basics 9.2 Denial of Service 9.2.1 Minimizing the damage 9.2.2 Tracking the perps 9.3 The system break-in 9.3.1 Locking down a compromised system 9.3.2 Checking RPM integrity 9.3.3 Making a pristine system checking kit 9.3.4 Common issues to look for 9.3.5 The only sure solution Part IV: Conversion Chapter 10 – Converting Your Legacy Database Contents 10.1 Converting Your MS Access Data to MySQL 10.2 Converting Your MS Access Data to PostgreSQL 10.3 Converting Your SQL Server Data to MySQL 10.4 Converting Your SQL Server Data to PostgreSQL 10.5 Converting Your Xbase data to MySQL 10.6 Converting Your Xbase data to PostgreSQL 10.7 Converting your Adabase data to MySQL 10.8 Converting your Adabase data to PostgreSQL Chapter 11 – Converting Code 11.1 Quick and Dirty VB ASP to PHP Conversion Guide 11.2 Quick and Dirty Converting Your VB ASP to Apache Modules 11.3 Integrating Those Old .idc Files 11.4 Converting Your Windows ACLs to Linux Permissions 11.5 Converting Your IIS Virtual Directories to Apache How to make them into aliases and scriptaliases. 11.6 Quick and Dirty Converting Your C Code 11.7 Quick and Dirty Tweaking Your JAVA Code 11.8 Converting your Windows Cold Fusion data to Linux Cold Fusion data Chapter 12 - Converting Your Legacy Logs 12.1 Converting your Microsoft IIS Log File Format logs to CLF 12.2 Converting your IIS NCSA Common Log File Format logs to CLF 12.3 Converting your IIS ODBC Logging format logs to CLF 12.4 Converting your IIS W3C Extended Log File Format logs to CLF Chapter 13 – Miscellaneous Conversions 13.1 Removing spaces and special characters from your filenames 13.2 Removing case inconsistencies from page references and filenames 13.3 Removing garbage characters from your files 13.4 Converting Windows 2000 Server Certificate Services certificates Part V: Administration Chapter 14 – Data and Data Loss 14.1 Backup software 14.2 Hardware solutions 14.3 Preparing for disaster recovery 14.4 Recovering a compromised system 14.5 Tracking filesystem usage and preventing overflow 14.6 Adding a new hard drive 14.6.1 Planning 14.6.2 Preparing the drive 14.6.3 Moving an existing filesystem 14.6.4 Integrating the old space back into the filesystem 14.6.5 Adjusting your boot files so the changes