Chapter 3. ez-ipupdate configuration

Revision History
Revision 0.12001-05-20JN
Initial document
Revision 0.22004-02-11kp
Update for Bering-uClibc
Revision 0.32005-02-06kp
Add necessary changes for shorewall

Table of Contents

About ez-ipupdate
Declare the ezipupd.lrp package
Configuring ez-ipupdate
Using ez-ipupdate

About ez-ipupdate

What is ez-ipupdate?

Ez-ipupdate is a small utility for updating your host name IP for any of the dynamic DNS service offered at:

This package has been developed & is supported by Angus Mackay.

The key features are: support for multiple service types and updating your IP address if it changes.

Feedback

Comment on the LEAF package can be sent to the authors.

Declare the ezipupd.lrp package

Download the ezipupd.lrp package and copy the package to your Bering-uClibc diskette.

Boot a Bering-uClibc floppy image. Once the LEAF menu appears get access to the linux shell by (q)uitting the menu. Edit the lrpkg.cfg (pre Bering-uClibc-2.2.0) or leaf.cfg (Bering-uClibc-2.2.0 onwards) file and add ezipupd.lrp in the list of packages to be loaded at boot. Check the Bering-uClibc Installation Guide to learn how to do that.

Configuring ez-ipupdate

You can edit the ez-ipupdate configuration file through the package configuration menu:


                        ez-ipupd configuration files

        1) configuration file
        2) startup script

  q) quit
  ----------------------------------------------------------------------------
        Selection:

The parameters allowed in the configuration file are the followings:

  address		usage: address=[ip address]
  cache-file		usage: cache-file=[cache file]
  cloak-title		usage: cloak-title=[title]
  daemon		usage: daemon=[command]
  execute		usage: execute=[shell command]
  debug			usage: debug
  foreground		usage: foreground
  pid-file		usage: pid-file=[file]
  host			usage: host=[host]
  interface		usage: interface=[interface]
  mx			usage: mx=[mail exchanger]
  max-interval		usage: max-interval=[number of seconds between updates]
  notify-email		usage: notify-email=[address to email if bad things happen]
  offline		usage: offline
  retrys		usage: retrys=[number of trys]
  server 		usage: server=[server name]
  service-type		usage: service-type=[service type]
  timeout		usage: timeout=[sec.millisec]
  resolv-period		usage: resolv-period=[time between failed resolve attempts]
  period		usage: period=[time between update attempts]
  url			usage: url=[url]
  user			usage: user=[user name][:password]
  run-as-user		usage: run-as-user=[user]
  run-as-euser		usage: run-as-euser=[user] (this is not secure)
  wildcard		usage: wildcard
  quiet			usage: quiet
  connection-type 	usage: connection-type=[connection type]
  request        	usage: request=[request uri]
  partner        	usage: partner=[easydns partner]

Here is how it could look like:

service-type=zoneedit
user=myname:mypassword
interface=eth0
host=mydomain.com
#[email protected]
# other options:
#address=<ip address>
#cache-file=/tmp/ez-ipup
#daemon
#debug
#foreground
#host=<host>
#interface=<interface>
#mx=<mail exchanger>
#retrys=<number of trys>
#run-as-user=<user>
#run-as-euser=<user>
#server=<server name>
#timeout=<sec.millisec>
#max-interval=<time in seconds>
#notify-email=<email address>
#period=<time between update attempts>
#url=<url>

The four most important entries for a typical LEAF Bering-uClibc installation will be explained below:

  • service-type - make shure to add the according service-type. See above the list of available services.

  • user - here you have to provide your username and password for the choosen service seperated by a colon.

  • interface - this defines your interface to the internet - the one which is changing from time to time and whose ip should be changed at your dynamic DNS service (usually eth0 or ppp0)

  • host - the host(s) you like to have been updated. It is possible to update more than one host for a service-type. To allow that, add all your hosts separated by a comma.

Please note: The options cache-file and daemon aren't needed. notify-email doesn't work today.

You can also run ez-ipupdate in interractive mode. The commands are:


 null ezip pgpow dhs dyndns dyndns-static dyndns-custom ods
  tzo easydns easydns-partner gnudip justlinux dyns hn zoneedit
  heipv6tb
                    usage: ez-ipupdate [options]

 Options are:
  -a, --address <ip address>    string to send as your ip address
  -b, --cache-file <file>       file to use for caching the ipaddress
  -c, --config-file <file>      configuration file, almost all arguments can be
                                given with: <name>[=<value>]
                                to see a list of possible config commands
                                try "echo help | ez-ipupdate -c -"
  -d, --daemon                  run as a daemon periodicly updating if
                                necessary
  -e, --execute <command>       shell command to execute after a successful
                                update
  -f, --foreground              when running as a daemon run in the foreground
  -F, --pidfile <file>          use <file> as a pid file
  -g, --request-uri <uri>       URI to send updates to
  -h, --host <host>             string to send as host parameter
  -i, --interface <iface>       which interface to use
  -L, --cloak_title <host>      some stupid thing for DHS only
  -m, --mx <mail exchange>      string to send as your mail exchange
  -M, --max-interval <# of sec> max time in between updates
  -N, --notify-email <email>    address to send mail to if bad things happen
  -o, --offline                 set to off line mode
  -p, --resolv-period <sec>     period to check IP if it can't be resolved
  -P, --period <# of sec>       period to check IP in daemon
                                mode (default: 1800 seconds)
  -q, --quiet                   be quiet
  -r, --retrys <num>            number of trys (default: 1)
  -R, --run-as-user <user>      change to <user> for running, be ware
                                that this can cause problems with handeling
                                SIGHUP properly if that user can't read the
                                config file. also it can't write it's pid file
                                to a root directory
  -Q, --run-as-euser <user>     change to effective <user> for running,
                                this is NOT secure but it does solve the
                                problems with run-as-user and config files and
                                pid files.
  -s, --server <server[:port]>  the server to connect to
  -S, --service-type <server>   the type of service that you are using
                                try one of: null ezip pgpow dhs
                                dyndns dyndns-static dyndns-custom
                                ods tzo easydns easydns-partner
                                gnudip justlinux dyns hn zoneedit
                                heipv6tb
  -t, --timeout <sec.millisec>  the amount of time to wait on I/O
  -T, --connection-type <num>   number sent to TZO as your connection
                                type (default: 1)
  -U, --url <url>               string to send as the url parameter
  -u, --user <user[:passwd]>    user ID and password, if either is left blank
                                they will be prompted for
  -w, --wildcard                set your domain to have a wildcard alias
  -z, --partner <partner>       specify easyDNS partner (for easydns-partner
                                services)
      --help                    display this help and exit
      --version                 output version information and exit
      --credits                 print the credits and exit
      --signalhelp              print help about signals

Using ez-ipupdate

Through dhclient exit-hook script

reload_all() {
  /sbin/shorewall restart
echo "Starting ez-ipupd from dhclient ..."
  /etc/init.d/ez-ipupd start

}

Through ppp /etc/ppp/ip-up script

All you need is to add the command /etc/init.d/ez-ipupd -start to /etc/ppp/ip-up.

# Main Script starts here
#
/etc/init.d/ez-ipupd start

run-parts /etc/ppp/ip-up.d
[ -x /bin/beep ] && /bin/beep -f 600 -n -f 900 -n -f1200 -n -f1800
# last line

Configure shorewall

You need to add a rule to allow accessing port 80 from your firewall on the net zone. To make ez-ipupdate work. There for add to /etc/shorewall/rules

ACCEPT         fw       net           tcp      80