Friday, June 26, 2009

SheevaPlug is now my main home server

I'm finally at the point where the little SheevaPlug can replace the aging Compaq DeskPro EN that has been our main home server.

Functions:


  • mail hub

  • network print server

  • scan server

  • mp3 file server

  • system monitor

  • proxy server



Here are the detailed steps needed to convert this $99 low power server into something useful:



Connect to the SheevaPlug console

* Connect the mini-USB/USB cable to a handy Linux box
* Load the appropriate kernel module:
sudo modprobe ftdi_sio vendor=0x9e88 product=0x9e8f
* Install gtkterm if you don't already have it:
apt-get install gtkterm
* Configure gtkterm to connect to port /dev/ttyUSB1 (or whatever the SheevaPlug reports as, ls /dev/ttyUSB* to find out)
* Power up and watch the boot

= Start with Martin's file system =

See the excellent description of getting the Debian/Lenny filesystem snapshot that Martin Michlmayr has provided:
http://www.cyrius.com/debian/kirkwood/sheevaplug/unpack.html

In addition to building an MMC card with the initial Debian file system, also upgrade the firmware to the one provided by user kwonsk at the PlugComputer.org forum. You will likely need to install the tftp server somewhere on your network -- apt-get install tftpd and put the u-boot.bin binary in /srv/tftp/

= Initial steps =

* Login as root via the console change the root password: passwd
* Note the ip address (
/sbin/ifconfig eth0ntpdate pool.ntp.org
* Change the ssh keys:

rm /etc/ssh/ssh_host*
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
b0:25:d2:d8:5c:89:9c:07:bc:94:cf:be:26:d5:ee:66 root@debian
The key's randomart image is:
+--[ DSA 1024]----+
| o.=.. |
| =B.o |
| o.*=. |
| ..=o |
| ..S. |
| o . |
| . o |
| . o E |
| o +. |
+-----------------+
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
Generating public/private rsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
4f:e4:64:bc:bc:20:5b:3c:7d:8a:5f:b9:70:9c:e2:b5 root@debian
The key's randomart image is:
+--[ RSA 2048]----+
| |
| . |
| = |
| . B . |
| . S * . |
| + * = o |
| . . * B |
| o * o |
| o E |
+-----------------+


* Unless you live in the same region as Martin, change /etc/apt/sources.list to use a closer Debian repository:
perl -pi~ -e 's/ftp.at/ftp.us/' /etc/apt/sources.list

* Same with timezone and locale: dpkg-reconfigure tzdata && dpkg-reconfigure locales

* Pick a hostname, I'm using lordshiva

perl -pi~ -e 's/debian/lordshiva/' /etc/hostname
hostname -F /etc/hostname


* Update/Upgrade
apt-get update && apt-get upgrade

* Add users adduser marc, etc

= Initial tools =

Add openntpd to keep the time in sync

apt-get install openntpd
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
openntpd
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/45.7kB of archives.
After this operation, 188kB of additional disk space will be used.
Selecting previously deselected package openntpd.
(Reading database ... 16890 files and directories currently installed.)
Unpacking openntpd (from .../openntpd_3.9p1-7_armel.deb) ...
Processing triggers for man-db ...
Setting up openntpd (3.9p1-7) ...
Starting openntpd: ntpd.


So you don't get tempted to use root all the time, get sudo and add appropriate user accounts:

apt-get install sudo
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
sudo
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 180kB of archives.
After this operation, 438kB of additional disk space will be used.
Get:1 http://ftp.us.debian.org lenny/main sudo 1.6.9p17-2 [180kB]
Fetched 180kB in 1s (140kB/s)
Selecting previously deselected package sudo.
(Reading database ... 16906 files and directories currently installed.)
Unpacking sudo (from .../sudo_1.6.9p17-2_armel.deb) ...
Processing triggers for man-db ...
Setting up sudo (1.6.9p17-2) ...
No /etc/sudoers found... creating one for you.
lordshiva# visudo
add a line line this:
marc ALL=(ALL) ALL


Log out as root and reconnect as your new username to continue.

= Handy tools =

Install a number of handy tools: emacs (without X), usbutils, telnet, rsync, screen, htop


marc@lordshiva:~$ sudo apt-get install emacs22-nox rsync screen htop sudo: unable to resolve host lordshiva

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for marc:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
emacs22-bin-common emacs22-common emacsen-common libasound2
Suggested packages:
emacs22-el emacs22-common-non-dfsg libasound2-plugins
The following NEW packages will be installed:
emacs22-bin-common emacs22-common emacs22-nox emacsen-common htop libasound2 rsync screen
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 18.5MB of archives.
After this operation, 63.9MB of additional disk space will be used.
Do you want to continue [Y/n]?


= The avahi daemon =

Avahi is handy on small home networks because it lets you refer to systems with DHCP provided address by name without having to update everyone's /etc/hosts file. eg: ssh lordshiva.local

sudo apt-get install avahi-daemon
marc@lordshiva:~$ sudo apt-get install avahi-daemon
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
dbus dbus-x11 libavahi-common-data libavahi-common3 libavahi-core5 libdaemon0 libdbus-1-3 libexpat1 libnss-mdns libx11-6 libx11-data libxau6 libxcb-xlib0 libxcb1
libxdmcp6
Suggested packages:
avahi-autoipd
The following NEW packages will be installed:
avahi-daemon dbus dbus-x11 libavahi-common-data libavahi-common3 libavahi-core5 libdaemon0 libdbus-1-3 libexpat1 libnss-mdns libx11-6 libx11-data libxau6
libxcb-xlib0 libxcb1 libxdmcp6
0 upgraded, 16 newly installed, 0 to remove and 0 not upgraded.
Need to get 1721kB of archives.
After this operation, 7250kB of additional disk space will be used.
Do you want to continue [Y/n]?


= Making the SheevaPlug a printserver =

I have an hp PSC 1510 All-in-One printer/scanner that I want to share to the other workstations at home.

Install cups which pulls in a ton of other packages as well as the open source print management tools from Hewlett-Packard, hplip

marc@lordshiva:~$ sudo apt-get install cups hplip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
avahi-utils cpp cpp-4.3 cups-client cups-common cupsddk cupsddk-drivers
defoma fontconfig fontconfig-config foomatic-db foomatic-db-engine
foomatic-filters gconf2 gconf2-common ghostscript ghostscript-x gksu
gnome-keyring gs-common gs-esp gsfonts hicolor-icon-theme hpijs hplip-data
hplip-gui libatk1.0-0 libatk1.0-data libaudio2 libavahi-client3
libavahi-compat-libdnssd1 libcairo2 libcups2 libcupsimage2 libdatrie0
libdbus-glib-1-2 libdirectfb-1.0-0 libdrm2 libexif12 libffi5 libfontconfig1
libfontenc1 libfreetype6 libgconf2-4 libgksu2-0 libgl1-mesa-glx libglade2-0
libglib2.0-0 libglib2.0-data libglu1-mesa libgmp3c2 libgnome-keyring0
libgphoto2-2 libgphoto2-port0 libgs8 libgtk2.0-0 libgtk2.0-bin
libgtk2.0-common libgtop2-7 libgtop2-common libhal-storage1 libhal1 libice6
libidl0 libieee1284-3 libjpeg62 liblcms1 libltdl3 libmng1 libmpfr1ldbl
libmysqlclient15off liborbit2 libpam-gnome-keyring libpango1.0-0
libpango1.0-common libpaper-utils libpaper1 libperl5.10 libpixman-1-0
libpng12-0 libpoppler3 libqt3-mt libqt4-assistant libqt4-dbus
libqt4-designer libqt4-help libqt4-network libqt4-qt3support libqt4-script
libqt4-sql libqt4-sql-mysql libqt4-svg libqt4-test libqt4-webkit libqt4-xml
libqt4-xmlpatterns libqtcore4 libqtgui4 libsane libsane-extras libsensors3
libslp1 libsm6 libsnmp-base libsnmp15 libstartup-notification0 libsysfs2
libtalloc1 libthai-data libthai0 libtiff4 libts-0.0-0 libwbclient0
libxcb-render-util0 libxcb-render0 libxcomposite1 libxcursor1 libxdamage1
libxext6 libxfixes3 libxfont1 libxft2 libxi6 libxinerama1 libxmu6 libxmuu1
libxrandr2 libxrender1 libxt6 libxxf86vm1 mysql-common openssl
openssl-blacklist poppler-utils psfontmgr psmisc python-dbus
python-elementtree python-gobject python-imaging python-qt3 python-qt4
python-qt4-common python-reportlab python-sip4 python-support qt4-qtconfig
samba-common sane-utils smbclient ssl-cert ttf-bitstream-vera ttf-dejavu
ttf-dejavu-core ttf-dejavu-extra ttf-dustin x-ttcidfont-conf x11-common
xauth xfonts-encodings xfonts-utils
Suggested packages:
cpp-doc gcc-4.3-locales cups-bsd cups-driver-gutenprint xpdf-korean
xpdf-japanese xpdf-chinese-traditional xpdf-chinese-simplified cups-pdf
kdeprint gtklp cups-pt xpp defoma-doc dfontmgr foomatic-db-hpijs
foomatic-db-gutenprint foo2zjs cupsys foomatic-gui hpijs-ppds hplip-doc
openprinting-ppds nas libfreetype6-dev gphoto2 gtkam librsvg2-common
liblcms-utils ttf-kochi-gothic ttf-kochi-mincho ttf-thryomanes ttf-baekmuk
ttf-arphic-gbsn00lp ttf-arphic-bsmi00lp ttf-arphic-gkai00mp
ttf-arphic-bkai00mp libqt3-mt-mysql libqt3-mt-odbc libqt3-mt-psql libqt4-dev
hpoj lm-sensors slpd openslp-doc ca-certificates python-dbus-dbg
python-dbus-doc python-elementtree-doc python-gobject-dbg python-imaging-doc
python-imaging-dbg python-qt3-doc python-qt3-gl python-qt4-dbg pdf-viewer
python-egenix-mxtexttools python-reportlab-doc unpaper smbfs
Recommended packages:
libft-perl cupsys-client lpr lprng pdq rlpr python-renderpm
The following NEW packages will be installed:
avahi-utils cpp cpp-4.3 cups cups-client cups-common cupsddk cupsddk-drivers
defoma fontconfig fontconfig-config foomatic-db foomatic-db-engine
foomatic-filters gconf2 gconf2-common ghostscript ghostscript-x gksu
gnome-keyring gs-common gs-esp gsfonts hicolor-icon-theme hpijs hplip
hplip-data hplip-gui libatk1.0-0 libatk1.0-data libaudio2 libavahi-client3
libavahi-compat-libdnssd1 libcairo2 libcups2 libcupsimage2 libdatrie0
libdbus-glib-1-2 libdirectfb-1.0-0 libdrm2 libexif12 libffi5 libfontconfig1
libfontenc1 libfreetype6 libgconf2-4 libgksu2-0 libgl1-mesa-glx libglade2-0
libglib2.0-0 libglib2.0-data libglu1-mesa libgmp3c2 libgnome-keyring0
libgphoto2-2 libgphoto2-port0 libgs8 libgtk2.0-0 libgtk2.0-bin
libgtk2.0-common libgtop2-7 libgtop2-common libhal-storage1 libhal1 libice6
libidl0 libieee1284-3 libjpeg62 liblcms1 libltdl3 libmng1 libmpfr1ldbl
libmysqlclient15off liborbit2 libpam-gnome-keyring libpango1.0-0
libpango1.0-common libpaper-utils libpaper1 libperl5.10 libpixman-1-0
libpng12-0 libpoppler3 libqt3-mt libqt4-assistant libqt4-dbus
libqt4-designer libqt4-help libqt4-network libqt4-qt3support libqt4-script
libqt4-sql libqt4-sql-mysql libqt4-svg libqt4-test libqt4-webkit libqt4-xml
libqt4-xmlpatterns libqtcore4 libqtgui4 libsane libsane-extras libsensors3
libslp1 libsm6 libsnmp-base libsnmp15 libstartup-notification0 libsysfs2
libtalloc1 libthai-data libthai0 libtiff4 libts-0.0-0 libwbclient0
libxcb-render-util0 libxcb-render0 libxcomposite1 libxcursor1 libxdamage1
libxext6 libxfixes3 libxfont1 libxft2 libxi6 libxinerama1 libxmu6 libxmuu1
libxrandr2 libxrender1 libxt6 libxxf86vm1 mysql-common openssl
openssl-blacklist poppler-utils psfontmgr psmisc python-dbus
python-elementtree python-gobject python-imaging python-qt3 python-qt4
python-qt4-common python-reportlab python-sip4 python-support qt4-qtconfig
samba-common sane-utils smbclient ssl-cert ttf-bitstream-vera ttf-dejavu
ttf-dejavu-core ttf-dejavu-extra ttf-dustin x-ttcidfont-conf x11-common
xauth xfonts-encodings xfonts-utils
0 upgraded, 163 newly installed, 0 to remove and 0 not upgraded.
Need to get 123MB of archives.
After this operation, 332MB of additional disk space will be used.
Do you want to continue [Y/n]?


Setup the printer:


marc@lordshiva:~$ sudo hp-setup -i -a

HP Linux Imaging and Printing System (ver. 2.8.6b)
Printer/Fax Setup Utility ver. 7.2

Copyright (c) 2001-8 Hewlett-Packard Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.


--------------------------
| CHOOSE CONNECTION TYPE |
--------------------------

Num. Connection Connection Type Description
Type
---------- ---------- ----------------------------------------
0* usb Universal Serial Bus (USB)
1 net Network/Ethernet/Wireless (direct
connection or JetDirect)
2 par Parallel Port (LPT:)

Enter number 0...2 for connection type (q=quit, enter=usb*) ?

Using connection type: usb

--------------------
| DEVICE DISCOVERY |
--------------------

Using device: hp:/usb/PSC_1500_series?serial=MY5CFD14F40498

Setting up device: hp:/usb/PSC_1500_series?serial=MY5CFD14F40498



---------------------
| PRINT QUEUE SETUP |
---------------------

Using queue name: PSC_1500

Found a possible PPD file: drv:///hpijs.drv/hp-psc_1500_series-hpijs.ppd
Desc: HP PSC 1500 series Foomatic/hpijs

Adding print queue to CUPS:
Device URI: hp:/usb/PSC_1500_series?serial=MY5CFD14F40498
Queue name: PSC_1500
PPD file: drv:///hpijs.drv/hp-psc_1500_series-hpijs.ppd
Location:
Information: Automatically setup by HPLIP


---------------------
| PRINTER TEST PAGE |
---------------------


HP Linux Imaging and Printing System (ver. 2.8.6b)
Testpage Print Utility ver. 5.1

Copyright (c) 2001-8 Hewlett-Packard Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

warning: hp-testpage should not be run as root.

Printing test page to printer PSC_1500...
request id is PSC_1500-1 (1 file(s))
Test page has been sent to printer.

note: If an error occured, or the test page failed to print, refer to the HPLIP website
note: at: http://hplip.sourceforge.net for troubleshooting and support.


Done.

Done.
marc@lordshiva:~$


Now you want to be able to manage the print server remotely via the web interface, so you'll have to edit /etc/cups/cupsd.conf.

sudo $EDITOR /etc/cups/cupsd.conf
...find the three places that look like this:
Location /
Location /admin
Location /admin/conf

and add the following after the "Order allow,deny" lines:

Allow @LOCAL

Also change the line from:
Listen localhost:631
to
Port 631

Then restart the cups daemon: sudo /etc/init.d/cups restart

How you will be able to use a web browser to manage your system here: http://lordshiva.local:631/ using your root credentials. In the "Manager Server" section, enable "Share published printers connected to this system"

= scan server =

The tools xsane and gimp can take advantage of a network sane scanner. To enable this, edit /etc/sane.d/scand.conf and add either the hostnames you'll be scanning from our a netblock.

Then tell inetd to start listening on the sane-port (6566)

marc@lordshiva:/etc/sane.d$ sudo update-inetd --enable sane-port

Now all you need to do on the system you are going to scan from, edit /etc/sane.d/net.conf and add lordshiva.local (or whatever you named yours ;-)


= Sharing MP3 =

gnump3d is a nice tool to share mp3 files on the home network.

Downloaded gnump3d-3.0.tar.gz from http://www.gnu.org/software/gnump3d/index.html

which needs make...


sudo apt-get install make
sudo apt-get install make
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
make-doc
The following NEW packages will be installed:
make
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/385kB of archives.
After this operation, 1233kB of additional disk space will be used.


Back to gnump3...


cd /usr/src/
sudo tar zxvf ~/gnump3d-3.0.tar.gz
cd gnump3d-3.0
sudo make install
install -d //etc/gnump3d
install -d //usr/bin
install -d //usr/share/gnump3d
install -d //usr/local/man/man1
install -d /`perl bin/getlibdir`/gnump3d/plugins
install -d /`perl bin/getlibdir`/gnump3d/lang
install -d //var/log/gnump3d
install -d //var/cache/gnump3d
chmod 777 //var/cache/gnump3d
install -d //var/cache/gnump3d/serving
chmod 777 //var/cache/gnump3d/serving
chmod a+rx /`perl bin/getlibdir`/gnump3d/
chmod a+rx /`perl bin/getlibdir`/gnump3d/plugins
chmod a+rx /`perl bin/getlibdir`/gnump3d/lang
cp lib/gnump3d/*.pm /`perl bin/getlibdir`/gnump3d
cp lib/gnump3d/plugins/*.pm /`perl bin/getlibdir`/gnump3d/plugins
rm /`perl bin/getlibdir`/gnump3d/plugins/bug.pm
rm: cannot remove `//usr/share/perl5/gnump3d/plugins/bug.pm': No such file or directory
make: [install] Error 1 (ignored)
cp lib/gnump3d/lang/*.pm /`perl bin/getlibdir`/gnump3d/lang
cp bin/gnump3d2 //usr/bin
chmod 755 //usr/bin/gnump3d2
ln -sf //usr/bin/gnump3d2 //usr/bin/gnump3d
cp bin/gnump3d-top //usr/bin
chmod 755 //usr/bin/gnump3d-top
cp bin/gnump3d-index //usr/bin
chmod 755 //usr/bin/gnump3d-index
cp man/gnump3d-top.1 //usr/local/man/man1
cp man/gnump3d-index.1 //usr/local/man/man1
cp man/gnump3d.1 //usr/local/man/man1
cp man/gnump3d.conf.1 //usr/local/man/man1
cp -R templates/* //usr/share/gnump3d
chmod -R a+r //usr/share/gnump3d
chmod +rx //usr/share/gnump3d/*/
if [ -e //etc/gnump3d/gnump3d.conf ]; then cp //etc/gnump3d/gnump3d.conf //etc/gnump3d/gnump3d.conf-orig ; fi
sed "s#PLUGINDIR#`perl bin/getlibdir`#g" etc/gnump3d.conf > //etc/gnump3d/gnump3d.conf
cp etc/mime.types //etc/gnump3d
cp etc/file.types //etc/gnump3d
rm -f /`perl bin/getlibdir`/gnump3d/FreezeThaw.pm
rm -f /`perl bin/getlibdir`/gnump3d/playlist.pm
marc@lordshiva:/usr/src/gnump3d-3.0$



Now to configure gnump3 is pretty simple, edit /etc/gnump3d/gnump3d.conf and set root = /media/mp3 or wherever the music is.

To start it up:

sudo gnump3d &

Then point a browser to http://lordshiva.local:8888/ and listen or download music. This comes in very handy for the kids when they need to load up their mp3 players.

= monitoring system =

I like to use munin to keep an eye on how the home systems are doing.



sudo apt-get install munin munin-node munin-plugins-extra apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
apache2-mpm-worker apache2-utils apache2.2-common gawk libapr1 libaprutil1
libdate-manip-perl libhtml-template-perl libio-multiplex-perl
libnet-cidr-perl libnet-server-perl libnet-snmp-perl libpq5 librrd4
librrds-perl rrdtool
Suggested packages:
apache2-doc apache2-suexec apache2-suexec-custom libipc-sharedcache-perl
libio-socket-ssl-perl libcrypt-des-perl libdigest-hmac-perl
libdigest-sha1-perl libio-socket-inet6-perl httpd libwww-perl
liblwp-useragent-determined-perl libnet-irc-perl mysql-client smartmontools
acpi lm-sensors ethtool libdbd-pg-perl logtail libnet-netmask-perl
The following NEW packages will be installed:
apache2 apache2-mpm-worker apache2-utils apache2.2-common gawk libapr1
libaprutil1 libdate-manip-perl libhtml-template-perl libio-multiplex-perl
libnet-cidr-perl libnet-server-perl libnet-snmp-perl libpq5 librrd4
librrds-perl munin munin-node munin-plugins-extra rrdtool
0 upgraded, 20 newly installed, 0 to remove and 0 not upgraded.
Need to get 2144kB/5263kB of archives.
After this operation, 14.4MB of additional disk space will be used.
Do you want to continue [Y/n]?


Now setup munin-node to know what to monitor locally. I like to run munin-node-configure with the --shell option to see what my choices are and then cut-n-paste the ones I'm interested in.




marc@lordshiva:~$ sudo munin-node-configure --shell --families=auto && sudo munin-node-configure --shell --families=contrib && sudo munin-node-configure --shell --families=manual


And then just pick: (jump into a root shell first, sudo -i)

ln -s /usr/share/munin/plugins/apt /etc/munin/plugins/apt
ln -s /usr/share/munin/plugins/apt_all /etc/munin/plugins/apt_all
ln -s /usr/share/munin/plugins/df_abs /etc/munin/plugins/df_abs
ln -s /usr/share/munin/plugins/fw_packets /etc/munin/plugins/fw_packets
ln -s /usr/share/munin/plugins/multips /etc/munin/plugins/multips
ln -s /usr/share/munin/plugins/munin_graph /etc/munin/plugins/munin_graph
ln -s /usr/share/munin/plugins/munin_update /etc/munin/plugins/munin_update
ln -s /usr/share/munin/plugins/port_ /etc/munin/plugins/port_8888
ln -s /usr/share/munin/plugins/port_ /etc/munin/plugins/port_ipp
ln -s /usr/share/munin/plugins/port_ /etc/munin/plugins/port_munin
ln -s /usr/share/munin/plugins/port_ /etc/munin/plugins/port_sane-port
ln -s /usr/share/munin/plugins/port_ /etc/munin/plugins/port_smtp
ln -s /usr/share/munin/plugins/port_ /etc/munin/plugins/port_ssh
ln -s /usr/share/munin/plugins/port_ /etc/munin/plugins/port_sunrpc
ln -s /usr/share/munin/plugins/port_ /etc/munin/plugins/port_www
ln -s /usr/share/munin/plugins/uptime /etc/munin/plugins/uptime


And restart munin-node

sudo /etc/init.d/munin-node restart
Stopping Munin-Node: done.
Starting Munin-Node: done.


Come back later and look at http://lordshiva.local/munin/

= fetchmail =

I pull email from my web hoster, drop a copy of the email and forward a copy to gmail use procmail.

sudo apt-get install fetchmail procmail
marc@lordshiva:~$ sudo apt-get install fetchmail procmail
[sudo] password for marc:
Reading package lists... Done
Building dependency tree
Reading state information... Done
procmail is already the newest version.
The following extra packages will be installed:
ca-certificates
Suggested packages:
fetchmailconf resolvconf
The following NEW packages will be installed:
ca-certificates fetchmail
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 813kB of archives.
After this operation, 2597kB of additional disk space will be used.
Do you want to continue [Y/n]?


My fetchmail configuration looks like this:


cat ~/.fetchmailrc
set logfile /home/marc/fetchmail.log

poll pop.nozell.com
with proto POP3 timeout 600
user 'XXX@XXXX.XXX' there with password 'XXX' is 'marc' here options fetchall


And here is my .procmailrc


cat .procmailrc
LOGFILE=/home/marc/procmail.log
MAILDIR=ImapFolders

:0
{
:0 c
! nozell@gmail.com
}

:0
Unsorted.Inbox.`date +%Y-%m`


= reconfigure the local mail server =

sudo dpkg-reconfigure exim4-conf

And pick the smarthost option and point it to the appropriate upstream mail server.

= squid =


sudo apt-get install squid
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
squid-common
Suggested packages:
squidclient squid-cgi logcheck-database resolvconf winbind
The following NEW packages will be installed:
squid squid-common
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 497kB/1224kB of archives.
After this operation, 6816kB of additional disk space will be used.
Do you want to continue [Y/n]?