home web server

26
Building a Home Web Server Grant Root [email protected]

Upload: vulkan-abriyanto

Post on 13-Apr-2015

15 views

Category:

Documents


0 download

DESCRIPTION

linux

TRANSCRIPT

Page 1: Home Web Server

Building a Home Web Server

Grant [email protected]

Page 2: Home Web Server

This Presentation● ... is posted on my site, at

http://www.rootcentral.org. ● Look for a “Site News” entry

with a link to the presentation.

Page 3: Home Web Server

Why Host at Home?● $$$ - saving the cost of hosting ● Security – avoiding shared

hosting● Ultimate control over the server● A great learning experience

Page 4: Home Web Server

The Downside● Bandwidth limitations● Significant learning curve● Security issues must be

addressed● Your ISP's terms of service

Page 5: Home Web Server

Is It Right for Your Site?● Consider anticipated traffic

levels● How critical is uptime?● Data security & backups● Time commitment

Page 6: Home Web Server

Requirements● Broadband Internet connection● Domain name● Domain name service ( DNS )● Firewall● Web server

Page 7: Home Web Server

Broadband Connection Types

● xDSL (usually ADSL for home use)

● Cable modem● Wireless● T-1 / Fractional T-1

Page 8: Home Web Server

Speed / Throughput● Measure your current

connection:● http://www.speakeasy.net/speedtest/

● My SBC DSL:● 1220 kbps down, 300 kbps up

● YMMV

Page 9: Home Web Server

Your Own Domain● Who wants a site named “adsl-68-73-138-210.dsl.wotnoh.ameritech.net”?

● Choosing and researching a name● Whois tools● nameboy.com, etc.

Page 10: Home Web Server

Registering a Domain Name

● Choosing a registrar● Price● Reputation● Maintenance tools

Page 11: Home Web Server

Registrars● ICANN accredited registrar list –

http://www.icann.org/registrars/ accredited-list.html

● Network Solutions (Verisign) – http ://www.networksolutions.com

● GANDI - http://www.gandi.net

Page 12: Home Web Server

Domain Name Service (DNS)

● Translating names to numbers● e.g. “www.rootcentral.org” to “68.73.138.210”

● Dynamic vs. static IP addresses● Finding a moving target -

dynamic DNS services & clients

Page 13: Home Web Server

Dynamic DNS Services● Selecting a dynamic DNS provider

● http://www.technopagan.org/dynamic/● Subdomains - their domain vs.

yours● e.g. “rootcentral.dyndns.org”

● Backup mail server● Client software support

Page 14: Home Web Server

Firewall First!● Don't put *anything* online

without a firewall!● Determine scope of protection

● Periphery vs. on-server? Both?● DMZ?

Page 15: Home Web Server

Selecting a Firewall● Base architecture

● Packet filter vs. stateful inspection● Features● Hardware vs. software● Software platform● Ease of use is critical

Page 16: Home Web Server

Hardware vs. Software● Hardware firewalls

● Dedicated appliances● Built into routers

● Software firewalls● iptables / ipchains● Single-purpose Linux distros

Page 17: Home Web Server

Some Free Software Firewalls

● Freesco (runs from floppy)● http://www.freesco.org

● SmoothWall (terrific web interface)● Http://www.smoothwall.org

● IPCop (spun off from SmoothWall)● http://www.ipcop.org

Page 18: Home Web Server

Set Up Firewall● Use NAT (network address

translation) to translate private to public IP addresses and vice-versa.

● Allow access from the Internet to port 80 on web server. Use port forwarding if web server has a private address.

Page 19: Home Web Server

Set Up Web Server● Use that old 386 / 486 / Pentium

● CPU & memory affect compiling, graphic manipulation and encryption

● Choose a Linux distro● I prefer Debian for ease of installations and updates.

Page 20: Home Web Server

To RAID or Not to RAID● Redundant array of independent

disks● Provides data protection from

hardware failures (*not* mistakes)● More drives, performance issues● Hardware or software based● Level – usually 1 (mirroring) or 5

Page 21: Home Web Server

Install and Secure Linux● Install minimal system● Get security updates● Shut down unneeded services

● Check inetd / xinetd config files● Use netstat to check for open ports

● Use external port scanner service

Page 22: Home Web Server

Install Web Server Software

● HTTP daemon – Apache, tux, etc.

● Database engine – MySQL, PostgreSQL

● CGI Scripting language – Perl, PHP, Python, Ruby, Java

● I like Apache / MySQL / PHP!

Page 23: Home Web Server

Configure HTTP Daemon● Apache

● Set domain name, doc root, user/group

● Deny all access to root directory● Specifically allow access to doc root

● Tweak ExecCGI, symlinks, overrides

● Disable indexes

Page 24: Home Web Server

Test Web Serving● Test sample page in browser● Troubleshoot any problems● Common problems:

● Apache config● File ownership / permissions● Firewall settings

Page 25: Home Web Server

Develop the Pages● On the server using text-based

tools – or more likely...● On your [Windows | Linux]

workstation w/ text or GUI tools● Upload using ftp, webdav, scp, etc.

Page 26: Home Web Server

Questions