Difference between revisions of "Install a new server"
(→Download and install Debian: Broadcom LAN card issue) |
(documenting LAN install) |
||
Line 35: | Line 35: | ||
You will have a functioning server and LAMP environment. | You will have a functioning server and LAMP environment. | ||
+ | |||
+ | == Configuring a server for a LAN == | ||
+ | |||
+ | === Network interfaces === | ||
+ | Typically when running on a LAN we'll have two LAN cards on the server with the following ''/etc/network/interfaces'': | ||
+ | {{code|<pre> | ||
+ | auto eth0 | ||
+ | iface eth0 inet static | ||
+ | address 192.168.0.1 | ||
+ | netmask 255.255.255.0 | ||
+ | network 192.168.0.0 | ||
+ | broadcast 192.168.0.255 | ||
+ | gateway 192.168.0.254 | ||
+ | |||
+ | auto eth1 | ||
+ | iface eth1 inet static | ||
+ | address 192.168.1.1 | ||
+ | netmask 255.255.255.0 | ||
+ | network 192.168.1.0 | ||
+ | broadcast 192.168.1.255 | ||
+ | gateway 192.168.0.254 | ||
+ | ipforwarding active | ||
+ | </pre>}} | ||
+ | |||
+ | === Packet forwarding and NAT === | ||
+ | The 192.168.0 subnet is on ''eth0'' and connects to the Internet router (which should have '''no''' wireless on it), and the 192.168.1 subnet is on ''eth1'' and connects to the internal LAN hub. These network interfaces must then be configured for NAT and packet forwarding: | ||
+ | {{code|<pre> | ||
+ | /etc/init.d/networking stop | ||
+ | echo 1 > /proc/sys/net/ipv4/ip_forward | ||
+ | iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE | ||
+ | /etc/init.d/networking start | ||
+ | </pre>}} | ||
+ | |||
+ | === DHCP Server === | ||
+ | A DHCP server should be installed to be authoritative on the internal (192.168.1) subnet, and should specify the gateway and DNS server as itself. First install it with '''apt-get install dhcp3-server''', then add the following configuration to ''/etc/dhcp/dhcpd.conf'': | ||
+ | {{code|<pre> | ||
+ | ddns-update-style none; | ||
+ | option domain-name-servers 192.168.1.1; | ||
+ | default-lease-time 600; | ||
+ | max-lease-time 7200; | ||
+ | authoritative; | ||
+ | log-facility local7; | ||
+ | |||
+ | # External subnet | ||
+ | subnet 192.168.0.0 netmask 255.255.255.0 { | ||
+ | } | ||
+ | |||
+ | # Internal subnet | ||
+ | subnet 192.168.1.0 netmask 255.255.255.0 { | ||
+ | range 192.168.1.50 192.168.1.200; | ||
+ | option routers 192.168.1.1; | ||
+ | option broadcast-address 192.168.1.255; | ||
+ | option subnet-mask 255.255.255.0; | ||
+ | } | ||
+ | </pre>}} | ||
+ | |||
+ | === DNS === | ||
+ | Requests under the organisations domain name from the Internet must be forwarded to the ISP-assigned external IP address using an A-record. This may require [[Dynamic DNS]] if a static IP address arrangement has not been made with the ISP. | ||
+ | |||
+ | Requests made for the domain from within the LAN require the local server to be authoritative, but to refer all other requests to the ISP-assigned DNS servers. Bind9 can be installed with '''apt-get install bind9''' and the following configuration in ''/etc/bind/named.conf'': | ||
+ | {{code|<pre> | ||
+ | |||
+ | </pre>}} | ||
+ | |||
+ | |||
== Post install checklist == | == Post install checklist == |
Revision as of 08:43, 7 May 2009
![]() |
Install a new server Organic Design procedure |
Contents
- 1 Download and install Debian
- 2 Setting up the software environment
- 3 Configuring a server for a LAN
- 4 Post install checklist
- 5 Setting up the Wikia file structure
- 6 LAMP configuration
- 7 Domain names
- 8 Extracting Databases from a Backup
- 9 Setting up FTP access
- 10 Setting up SSL for Apache
- 11 Install vim (not required)
- 12 Next steps
- 13 See also
Download and install Debian
If the server has no OS then download and install Debian first. Depending on the kind of access you have to the server and the kind of media it can accept, the following links may be of interest.
- Debian Conversion - Change an existing Linux distro into Debian using only SSH access
- Debian installation from memory stick - This is actually one of the most convenient means of installation even when DVD/CD are available
Dell Servers
Dell servers may require the bnx2 non-free firmware for Broadcom LAN cards.
Setting up the software environment
Ensure that you're using the same package repository for your Debian installation as we are:
Bring the system up to date and install the organicdesign-server package:
If you would like math markup support, also install the following, and see Enabling math markup for more details.
You will have a functioning server and LAMP environment.
Configuring a server for a LAN
Network interfaces
Typically when running on a LAN we'll have two LAN cards on the server with the following /etc/network/interfaces:
Packet forwarding and NAT
The 192.168.0 subnet is on eth0 and connects to the Internet router (which should have no wireless on it), and the 192.168.1 subnet is on eth1 and connects to the internal LAN hub. These network interfaces must then be configured for NAT and packet forwarding:
DHCP Server
A DHCP server should be installed to be authoritative on the internal (192.168.1) subnet, and should specify the gateway and DNS server as itself. First install it with apt-get install dhcp3-server, then add the following configuration to /etc/dhcp/dhcpd.conf:
DNS
Requests under the organisations domain name from the Internet must be forwarded to the ISP-assigned external IP address using an A-record. This may require Dynamic DNS if a static IP address arrangement has not been made with the ISP.
Requests made for the domain from within the LAN require the local server to be authoritative, but to refer all other requests to the ISP-assigned DNS servers. Bind9 can be installed with apt-get install bind9 and the following configuration in /etc/bind/named.conf:
Post install checklist
- /etc/hostname, hostname -F /etc/hostname, /etc/hosts
- tzselect, tzconfig
- DB info for wikia, webmail, crm
- /etc/ssh/sshd_config
- /etc/crontab
- /var/www/backup.pl
- /var/www and /home structures (should be automatically maintained by adding new server as a peer)
- Exim4 (this will need to be configured even for sending mail, see Configure mail server)
- Import spamassassin bayesian rules
Setting up the Wikia file structure
Either copy the /var/www directory structure from an existing wikia installation (excluding the specific content from the domains and wikis directories). Alternatively, unpack a recent www-yyyy-mm-dd.tgz backup into /var/www and remove specific wiki content.
You will need to adjust the following items in the structure:
- /var/www/extensions/wikia.php
- /var/www/activity.log
- /var/www/domains
- /var/www/wikis
LAMP configuration
The easiest way to configure this is to copy the vhosts file which originated from the backup file over the default Apache configuration file, and then make the vhosts file a symlink pointing at the default configuration as usual. Then adjust the file to the wikia's specific needs.
Activate the slow query log for mysqld. Make sure this directive is uncommented.
The differences to the default php.ini file in our servers are as follows:
The Apache configuration will already have been configured from within the decompressed FS backup, but if you're not installing from a backup, then here's our typical vhost configuration which maps domains to filesystem structure. We usually just replace the default virtual hosts file with this one which handles all domains and sites.
Domain names
Adjust the names of the symlinks in the /var/www/domains directory to local domain names and ensure that those names are added to the /etc/hosts file.
- Note: If you're installing your wikia structure on a local machine, then you must ensure that your domains such as foo.localhost are set in /etc/hosts as aliases for 127.0.0.1
Extracting Databases from a Backup
Extract the most recent database backup (this may overwrite existing databases of the same names)
Setting up FTP access
Some clients may require standard FTP access which although not very secure, can have some restrictions put on it to make it a little safer such as restricting users to their home directories and using a non standard port. We use the GPL proFTPD server in standalone mode.
Edit the /etc/proftpd/proftpd.conf file and change the port to something other than 22 and add the following directive to restrict users to their home directories.
Setting up SSL for Apache
- Generate a self signed certificate
- Generate a certificate request for a commercial Certificate Authority
Create a file in the same dir called organicdesign.co.nz with this content.
Run this line
Check the apache config before reloading
Check the cert with this command:
The following output indicates the cert is working correctly
If everything is ok reload the server
Check the error log for problems.
If you see a message like this everything is ok.
If you see something like this you have problems: