Linux System Documentation

This documentation is about using Free and Open Source (FOSS) in the small business enterprise. Edoceo specializes in introducing companies to Open Source and supporting those that are already using these technologies. The articles are written with skilled computer professionals (>=8yrs) and moderately skilled Linux users in mind (~3-5yrs).

All of this documentation is based on experiences with the Gentoo or Debian/Ubuntu GNU/Linux distributions. These alternative to expensive distributions, like RedHat or Novell, will truly deliver the lower TCO promises made by Open Source. The information can be applied to any Linux distribution with slight changes to paths and such. For one the apt-get or emerge commands may not available so some other package manager must be used or manual installs must be performed. Those topics are not covered here.

Readers are encouraged to leave feedback and suggest corrections by using the contact page.

Installation & Configuration

Modern Linux is simple enough to install. For Gentoo, simply extract the proper system image tarball (aka: Stage3 or Stage4) to the mounted root target, a few settings and done. For Debian and derivatives there is a very friendly installation process.

System installation base, extlinux bootloader, The Bash Shell - Issuing commands in the default shell fstab, kernel modules, date & timezone, and other system information, upgrading.

Core System Packages

clamav, collectd, crossdev, fcron, iptables, logrotate, nut OpenSSH, OpenSSL, net-snmp, ssmtp, syslog-ng.

System Maintenance

Instructions for maintaining the base system, package managers, network & system configurations.

Server Configuration

Infrastruture Services

This list covers basic network infrastructure systems including communications and file-sharing.

CUPS Server (AirPrint), DHCP, DNS, GlusterFS, KVM, (windows p2v), LDAP, NTP, Samba (with Windows7), Samba4 (server roles), git-server, Subversion.

Inter-Networking Services

Apache, Apache Authentication, Apache Authentication via SSL, Lighttpd, nginx (SSL), AWStats, Piwik, Postfix (w/Cyrus SASL, Relay Host, Anti-Spam, multiple-instances, null-mail client), OpenDKIM, Dovecot, FreeSWITCH (FreeSWITCH Performance) , Hylafax (troubleshooting), OpenVPN, Pure-FTP, Varnish Cache (redirects, SSL).

Application Servers

chiliproject, CiviCRM, drupal (performance), eJabberd/XMPP, Evergreen ILS (and OpenSRF), Ruby on Rails, Redmine (plugins), Trac, NgIRCd, Unreal IRC, ZoneMinder.

Database Services

couchdb (compaction), mongodb, PostgreSQL ( performance, autovacuum stats-io, replication), MySQL.

Specialty Applications

Some packages just don't fit in :)

Arachni, OpenVAS, Piwik

Desktop Applications and Configurations

xfce, chromium-os.

Appendix

Use Gentoo Live CD/USB or Ubuntu Live CD/USB , Binhost, Catalyst, etc

Legacy Notes

  1. GNU/Linux Basics
    1. Using Logical Volume Manager (LVM) - Simplifiy storage volume management
    2. Gentoo Specifics
      1. Gentoo Live USB - Boot Gentoo from a USB drive
      2. Gentoo Portage Fundamentals - Gentoo's package management tools
      3. Portage Mirror with Custom Ebuilds - How to create a mirror that contains custom ebuilds too
      4. Portage Binhost - Create a BINHOST to reduce install times on other nodes in the domain
    3. Debian/Kubuntu/Xubuntu Specifics
      1. APT - The package manager tools
      2. Base Configuration - Get the base system up and running
      3. Ubuntu Live USB - Boot Ubuntu from a USB drive
  2. Base Systems Configuration
    1. System Hardening - A good start for hardening/securing the machine.
    2. System Firewall - Protect the exposed network interfaces.
    3. RAID1 using mdadm - Using mdadm to create a software level RAID1 for boot and root partitions
      1. KVM with LVM Based Images - Tips and Tricks
    4. VirtualBox Installation and Usage
  3. Base System Services
    1. SSH - Using OpenSSH, examples demonstrate key based automatic authentication.
    2. Monitoring with SNMP - Using net-snmp to monitor equipment
  4. Network Servers

    Basic network services typically found in business environments.

    1. AppleTalk - Communicate with Macintosh OSX systems - and TimeMachine!
    2. OpenLDAP w/TLS - Installation, Configuration and TLS Security
    3. rsync - Setting up rsync servers and protecting with stunnel.
      1. Samba and Quickbooks - Requires some tweaking of Samba
  5. Database Servers

    Dedicated Database servers, ideally this is the servers single role.

    1. Database Server Basics - Some preliminaries.
      1. Custom Functions
  6. Communications Servers
    1. Postfix Email Server Installation and Configuration - Postfix+SASL2,Courier-IMAP and PostgreSQL enabled email server.
    2. Postfix with Cyrus-SASL and OpenLDAP
    3. Spam Filtering - Extends above configuration by hardening Postfix and enabling SpamAssassin.
    4. Web Servers

      HTTP and HTTPS Server options. Ideally this is a servers single role.

      1. Apache with mod_php and SSL
    5. Desktop Environment

      Usage of XFCE and various other desktop basics

      1. Editing XFCE Menus
    6. Hardware Notes
      1. Marvell SATA - Needs to use their custom driver.
      2. EPIA-M 10000 - Linux on a Mini ITX - Story.

Documentation Index

ack
ack and ackrc command line examples
apache
Apache Installation & Configuration
apache-authentication
Apache Authentication via HTTP Basic or Digest
apache-authentication-ssl
Apache Authentication with SSL/TLS Certificates
apache-performance
Tuning Apache Performance
apache-security
Apache Security Configuration
apache-ssl
Configuration of Apache with SSL
apt
Using apt, aptitude and dpkg
arachni
Installing & Configuring Arachni on Gentoo Linux
atom
Installing Atom Editor from Scratch
awk
Using awk Examples
awstats
Installing and Using AWStats
bash
BASH Shell Basics
bfgminer
bfgminer
bigbluebutton
How To: Installing and Configuring BigBlueButton
bigbluebutton-freeswitch
BigBlueButton & FreeSWITCH Configuration
bitcoin-butterfly
Bitcoin Mining with ButterflyLabs Devices on Gentoo
bitcoind
Installing and Running bitcoind
catalyst
Gentoo Catalyst - Build Stage1,Stage3,Stage4 How To
cgminer
How To: cgminer
chiliproject
ChiliProject w/Apache mod_rails (Passenger) Praxis/Gentoo Linux
chromium-os-build
Building Chromium OS on Praxis Linux
civicrm
Installing and Configuring CiviCRM with Drush
clamav
ClamAV on Gentoo
collectd
How To: Installing and Configuring Collectd
comodo-ssl
COMODO Wildcard SSL and Apache
config-etc-git
System Configuration Managment with git
convert
Using ImageMagick convert Command Line Examples
couchdb
Installing and Configuring CouchDB
couchdb-compaction
How To: CouchDB Compaction
couchdb-views
CouchDB Views
courier-imap-ssl
Configuring Courier IMAP for SSL
crossdev
How To: Crossdev, MinGW & NSIS on Gentoo
cups
Installation and Configuration of CUPS Server
cups-airprint
CUPS & AirPrint from iPhone or iPad
cups-usage
CUPS: Administration and Usage
curl
curl Command Line Examples
date-timezone
Setting System Date, Time and Timezone
db-server
Open Source Database Server Hardware
debian-ubuntu-mods
How To: Debian/Ubuntu to Praxis
distelli
Distelli
dnsmasq
Configuring DHCP/DNS with dnsmasq
dnsmasq-voip
How To: dnsmasq with VOIP Devices
dovecot
How To: Installing and Configuring dovecot
drupal
Installing Drupal 7 (D7); Apache + mod_php
drupal-performance
Drupal Performance Tips
ec2-lbssl
EC2 Load Balancer SSL
ejabberd
Installing & Configuring ejabberd
elastic-stack
Installing and Configuring ElasticSearch, Logstash and Kibana
emerge
Using emerge - Command Line Examples
equery
Using equery - Command Line Examples
evergreen-action-trigger
Evergreen Action / Trigger
evergreen-ils
Installing Evergreen ILS
extlinux
EXTLINUX/SYSLINUX Installation and Configuration
fcron
Installing & Configuring fcron
ffmpeg
ffmpeg command line examples
fio
How To: Using fio flexible I/O tester from the command line
flash-debugging
How To: Flash Debugger on Linux/Chrome
freeswitch
How To: FreeSwitch Installation and Configuration on Linux
freeswitch-performance
FreeSWITCH Performance Tuning
freeswitch-voicemail
FreeSwitch Voicemail Configuration
fstab
fstab configuration
gentoo-live-usb
Gentoo Live USB
gentoo-portage-binhost
How To: Gentoo Binary Host (PORTAGE_BINHOST)
gentoo-portage-custom-mirror
Gentoo Portage Custom Mirror
gentoo-portage-overlay
How To: Custom Gentoo Overlay on Github
geodns
How To: Install and Configure GeoDNS
git
Using git by Example
git-server
Creating a git Server
glusterfs
How To: GlusterFS Installation and Configuration
glusterfs-cifs
How To: GlusterFS and CIFS / Samba
glusterfs-geo
GlusterFS Geo-Replication
glusterfs-heal
How To: GlusterFS Split-Brain Recovery/Healing
glusterfs-tricks
How To: GlusterFS Tricks
gpg
gpg command line examples
guacamole
How To: Installing Guacamole Client and Server
hostname
Configuring the Hostname - Praxis Linux
htaccess
htaccess examples
hylafax
Installing and Configuring Hylafax
hylafax-samba
Hylafax Delivery to Samba Share
hylafax-troubleshooting
Hylafax Troubleshooting Tips
icecast
Installation & Configuration of Icecast on Praxis Linux
iptables
iptables Firewall
iptables-advanced
Advanced iptables Configurations
irssi
irssi command line examples
jenkins
How To: Installing & Configuring Jenkins
joomla
How To: Joomla with Lighttpd
kernel-modules
Linux Kernel Modules - Load, Unload, Configure
kvm
Installing and Running Linux KVM/QEMU on Gentoo
kvm-clone-live
Cloning Live Linux System into KVM
kvm-lvm
Using LVM Volumes with Linux KVM
kvm-overview
Installing and Running Linux KVM on Element|Gentoo GNU/Linux
lighttpd
Installation & Configuration of Lighttpd on Linux
logitech-t650
Logitech T650 Touchpad Linux
lvm
Using LVM
marvell-sata
Supermicro & Marvell SATA with Linux
mdadm
mdadm command line examples
mdadm-raid1
How To: Configuring Bootable RAID1 with mdadm
mdadm-raid6
How To: Configuring RAID6 with mdadm
memcached
How To: Memcached Installation & Configuration
mongodb
Installing and Configuring MongoDB on Praxis/Gentoo Linux
mount
Mounting Filesystems
mysql
MySQL Server Installation and Configuration
mysql-performance
How To: MySQL Performance Tuning Tips and Tricks
nano
Using the nano Editor
ncat
ncat examples - is better than netcat/nc
ncftp
ncftp command line examples
nginx
Installing and Configuring Nginx
nginx-api-proxy
Nginx REST API Proxy
nginx-fence
How To: Protecting Sites and APIs using Nginx Reverse Proxy w/Filter
nginx-lua
How To: Securing Web Services with Nginx + Lua
nginx-php
How To: Nginx + PHP
nginx-proxy
How To: Nginx HTTP & Websocket Proxy
nginx-varnish-ssl
Nginx SSL and Varnish
ngircd
Installing and Configuring NgIRCd
nmap
nmap examples
nodejs
How To: Installing and Configuring Node.JS on Gentoo/Praxis Linux
nut
UPS Monitoring with NUT - Installation and Configuration
opendkim
How To: Installing and Configuring OpenDKIM for multiple domains with Postfix on Linux
openldap
Installation and Configuration of OpenLDAP
openldap-create-directory
Installation & Configuration of OpenLDAP w/TLS
openntpd
How To: Installing and Configuring OpenNTPd
opensrf
Installing OpenSRF
openssh
Configuring OpenSSH
openssl
OpenSSL Command Line Examples
openvas
Installing & Configuring OpenVAS + Greenbone Security
openvpn
OpenVPN Server Installation and Configuration
openvpn-auth-user-pass-verify
OpenVPN Server Auth User Pass Verify
packages
How To: Package Mangement on Linux (Debian, Ubunut, CentOS, Gentoo)
performance-io
Monitoring & Troubleshooting Performance: I/O
performance-monitoring
Performance Monitoring Praxis/Gentoo GNU/Linux
pg_dump
Command Line Examples: pg_dump
phabricator
How To: Installing Phabricator on Gentoo Linux
phantomjs
PhantomJS - Install, Execute on Praxis/Gentoo Linux
phonegap
How To: Phonegap/Cordova on Gentoo Linux
piwik
Installing and Configuring Piwik under Apache or Lighttpd on Linux
piwik-performance
Piwik Performance under Lighttpd on Linux
postconf
Using postconf with Examples
postfix
How To: Postfix Installation & Configuration Virtual Mailbox
postfix-cyrus-sasl
Postfix + Cyrus SASL - Installation & Configuration
postfix-gateway
Configuring Postfix as an Inbound Gateway for Exchange or other back-end
postfix-multiple-instances
Postfix Multiple Instances
postfix-nullmailer
Postfix Null Mailer Configuration
postfix-relay
Postfix on Local Network as Relay Host
postfix-sasl-ldap
Postfix with SASL & OpenLDAP Authentication
postfix-security
Postfix Mailhub Security & SPAM Filtering
postgresql
How To: PostgreSQL Install, Configure and Upgrade
postgresql-benchmark
PostgreSQL Benchmarking
postgresql-load
How To: PostgreSQL Load/Performance Diagnosis
postgresql-performance
Performance Tuning Postgresql 9.5
postgresql-replication
PostgreSQL Replication and High Availability
postgresql-stats-collector
postgres: stats collector process - High I/O
postgresql-tricks
PostgreSQL Tricks
praxis-upgrade
Praxis Upgrade
psql
Using psql Command Line Examples
pulseaudio
How To: Pulse Audio on Linux
pure-ftpd
Installation and Configuration of Pure-FTPd
qemu
qemu-kvm, qemu-img & qemu-nbd command line examples
qwebchat
How To: qwebchat Installation and Configuration
rails
Enabling Ruby on Rails (Rails3) on Praxis/Gentoo Linux
redis
How To: Installing and Configuring Redis
redmine
Redmine on Apache with Passenger(mod_rails) or FastCGI
redmine-plugins
Redmine Plugins
roundcube
How To: Installing and Configuring RoundCube
rsync
rsync command line examples
samba-ldap-migration
Samba - TDBSAM to LDAP Migration
samba-move-server
Moving Samba to a new Server
samba3-windows7
How To: Samba 3 Domain & Windows 7
samba4
How To: Samba4 AD PDC + Windows XP, Vista and 7
samba4-server-role
Samba4 - Server Roles
screen
Using Screen for Linux Console Magic
sdelete
sdelete, sfree command line examples
sed
Examples: sed command line
selenium
Headless Selenium WebDriver for Chrome and Firefox
snmp
Installing & Configuring net-snmp / snmpd
snmpwalk
Using snmpwalk - Examples and How To
sox
Using sox from the Command Line
ssh
ssh command line examples with openssh
ssh-config
How To: SSH Config Files ~/.ssh/config
ssh-keygen
ssh-keygen Examples
ssh-windows
How To: SSH from Windows to Linux
ssmtp
Installation and Configuration of SSMTP
stanford-nlp
How To: Stanford Core NLP
stellard
Building Stellard on Gentoo
subversion
Subversion Server - Installation & Configuration
subversion-crash-course
Subversion Crash Course, Daily Usage & Examples
syslinux-uefi
SYSLINUX Installation & Configuration on UEFI
syslinux-vesa
SYSLINUX/EXTLINUX Pretty Menus with Vesamenu.c32
syslinux-vesamenu
SYSLINUX + vesamenu.c32 + Themes
syslog-ng
How To: syslog-ng Server
system-base
Praxis System Base Install
system-information
Checking Linux System Information
tcpdump
tcpdump examples
tftpd
How To: Installing and Configuring tftpd
tor
How To: Using Tor
trac
Installing and Configuring Trac on Gentoo Linux
ubuntu
How To: Preparing Ubuntu for Web-Application Deployments
ubuntu-kvm-host
How To: Ubuntu as a KVM Host
ubuntu-live-usb
Create a Bootable Ubuntu Live USB
ubuntu-upgrade
Ubuntu Updates from X to Y
unrealircd
UnrealIRCd Installation and Configuration on Praxis Linux
varnish
Installing and Configuring Varnish Cache
varnish-performance
How To: Varnish Cache Performance Tuning
varnish-redirects
Varnish Cache Redirector
virtualbox
VirtualBox on Gentoo Linux
vncviewer
Using vncviewer - Examples and How To
wget
wget command line examples
wordpress
Instalilng and Configuring Wordpress
wpa_supplicant
wpa_supplicant Examples
xboxdrv
How To: xboxdrv - XBox 360 Controller on Linux
xfce
Installing and Configuring Xfce on Praxis Linux
xfce-autostart-apps
Autostart Applications in XFCE
xfce-custom-uri-handler
Creating Custom URI/URL Handlers in Xfce/FreeDesktop/XDG
xfce-menus
Editing XFCE Menus
xpra
How To: XPRA, XDummy for Headless X Window Applications
zenoss
Installing Zenoss on Gentoo Linux
zfs
How To: ZFS on Linux
zoneminder
Installing and Configuring ZoneMinder on Praxis/Gentoo Linux