1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
4 <TITLE>DX Spider Installation</TITLE>
5 <meta name="Keywords" content="DX Cluster, DXSpider, Spider, Packet Cluster, DXCluster, Pavillion Software, AK1A, AX25, AX.25, WWV, Packet Radio, Amateur Radio, Propagation, DX, DXing, G1TLH, GB7TLH, Dirk Koopman, Mailing list, Linux, RedHat, PERL">
6 <meta name="Description" content="Software and systems for realtime digital communications between amateur radio stations for the provision of information on propagation conditions and stations operating">
7 <meta name="Author" content="Dirk Koopman G1TLH">
10 <body TEXT="#000000" LINK="#0000ff" VLINK="#800080" BGCOLOR="#FFFFFF">
11 <FONT COLOR="#606060" face="Verdana,Helvetica,Swiss,Arial">
13 <h2>Installing DX Spider (on Redhat 5.1)</h2>
17 <address><A HREF="mailto:ip@g8sjp.demon.co.uk">Iain Phillips G0RDI</A></address>
18 <!-- Created: Wed Dec 2 16:40:25 GMT 1998 -->
20 Last modified: Sun Dec 20 17:55:19 GMT 1998
22 <P>This HOWTO describes the installation for DX Spider v1.11 on a "vanilla"
23 <A href="http://www.redhat.com">RedHat</A> 5.1 platform,
24 and assumes that you have started with a clean disk, with nothing other than the standard
25 Red Hat 5.1 distribution. I always select 'everything', and that seems to ensure that
26 nothing is missed out :-) [ more normal people may like to try with less <em>Ed</em> ].
28 <p>The crucial ingredient for all of this is <a href="http://www.perl.org">Perl 5.004</a>. Now I know
29 Perl 5.005 is out and this will almost certainly work with it, but
30 <A Href="http://www.redhat.com">RedHat</A> 5.1 comes with 5.004.
31 <em>Be Warned</em> earlier versions of <A Href="http://www.redhat.com">RedHat</A>
32 <b>do not</b> come with 5.004 as standard, you need to
33 <a href="ftp://upgrade.redhat.com">upgrade</a>
35 <P>In addition to the standard Red Hat distribution you will require the following <A HREF="http://www.cpan.org/CPAN.html">CPAN</A> modules: -
39 Data-Dumper-2.10.tar.gz <BR>
40 FreezeThaw-0.3.tar.gz <BR>
42 TimeDate-1.8.tar.gz <BR>
44 Net-Telnet-3.01.tar.gz<BR>
48 <p><em>Do</em> get the latest versions of these packages if any of the above list
51 <P>You'll also need the AX25 utility package. There is much debate about what is "best", what is "better". What works for 5.1 is this: -
54 ax25-utils-2.1.42a-1.i386.rpm
57 <P>This can be found at (among other places) <A HREF="ftp://contrib.redhat.com/libc6">ftp://contrib.redhat.com</A>. Note that no attempt is made within this document to describe the steps necessary to install and commission the AX25 kernel package. It remains the responsibility of the reader to have sufficient knowledge and expertise to make this part of the system operation (and to be satisfied that it <B><I>is </B></I>operational) before attempting to install DX Spider. Read the AX25-HOWTO and ask around if you
58 still have trouble after that.
60 <P>The last "must have" is the DX Spider distribution itself, and this is available via: -
64 <A HREF="../download/index.html">The DX Spider Software</A>
71 <p><LI>Copy the CPAN modules listed above to a convenient place on your computer. For no good reason, I put mine in /usr/local/packages, and the instructions which follow will assume that that's where yours are, too.
72 <P>Log in as 'root', and make sure you're at '/root' before you continue. Here are exactly the commands you must issue next: -
74 # tar xvfz /usr/local/packages/MD5-1.7.tar.gz
81 # tar xvfz /usr/local/packages/Data-Dumper-2.10.tar.gz
88 # tar xvfz /usr/local/packages/FreezeThaw-0.3.tar.gz
95 # tar xvfz /usr/local/packages/MLDBM-2.00.tar.gz
102 # tar xvfz /usr/local/packages/TimeDate-1.08.tar.gz
109 # tar xvfz /usr/local/packages/IO-1.20.tar.gz
113 # make install UNINST=1
116 # tar xvfz /usr/local/packages/Net-Telnet-3.01.tar.gz
117 # cd Net-Telnet-3.01.tar.gz
124 <P>Do not fall into the trap of thinking they're all the same, just because they nearly are! Pay particular attention to the instructions of IO, above.
126 <p><LI>Create a user to run the cluster under. <B><I><U>UNDER NO CIRCUMSTANCES USE ROOT
127 </B></I></U><P>Again: <B><I><U>DO NOT USE</B></I></U> root.
128 <P>In the instructions which follow, it is assumed that this user is called 'sysop'. You may call it anything you wish. Depending upon your security requirements, you may choose to use an existing user. This will be your choice, not ours!
129 <P># adduser -m sysop
130 <P>Now set a password for the user:-
135 # Retype new UNIX password:
136 passwd: all authentication tokens updated successfully
138 <P># Do not fall into the trap of thinking they're all the same, just because they nearly are! Pay particular attention to the instructions of IO, above.
140 <p><LI>Now unpack the DX Spider distribution, set symbolic links and group permissions like this (assumes that the version we're interested in is 1.9. The distribution tar file may be named slightly differently in your case: -
143 # tar xvfz spider-1.9.tar.gz
144 # ln -s ~sysop/spider /spider
145 # groupadd -g 251 spider (or another number)
146 # vi /etc/group (or your favorite editor)
148 <P>add 'sysop', your own callsign (in my case 'g0rdi' - which will be used as an alias) and 'root' to the group spider. The result should look something like:-
150 spider:x:251:sysop,g0rdi,root
153 <p><LI>Next step is to set permissions on the 'spider' directory tree and files:-
155 # chown -R sysop.spider spider
156 # find . -type d -exec chmod 2775 {} \;
157 # find . -type f -exec chmod 775 {} \;
159 <P>This last step allows various users of group spider to have write access to all the directories. Not really needed for now but will be useful when web interfaces start to appear.
161 <p><LI><a name="connect"></a>If you want to be able to allow people or clusters
162 to login via IP then you will need to set up logins for them.
168 Retype new UNIX password:
169 passwd: all authentication tokens updated successfully
172 <p>You can then either alter the default .bashrc so that it
173 contains just one line (assuming you use the default bash
177 exec /spider/perl/client.pl <callsign> telnet
180 <p>Alternatively you can alter the <tt>/etc/passwd</tt> thus:-
183 fbb:x:505:505::/home/fbb:/bin/bash
184 gb7djk:x:506:506::/home/gb7djk:/usr/bin/perl /spider/perl/client.pl gb7djk telnet
187 Don't forget to give them a real password. The <tt>telnet</tt> argument
188 does two things, it sets the EOL convention to \n rather than
189 AX25's \r and it automatically reduces the privilege of the
190 <callsign> to a 'safe[r]' level.). If the user or other cluster
191 program requires AX25 conventions to operate then you can use
192 <tt>ax25</tt> instead.
194 <p>Another thing you can do is to get <tt>inetd</tt> to listen
195 on a specific port and then start the client up directly. To
196 do this, create an entry in <tt>/etc/services</tt> with a
197 port number > 1000 that isn't used elsewhere eg:-
204 Then create some lines in <tt>/etc/inetd.conf</tt> that look
208 gb7djk stream tcp nowait sysop /usr/sbin/tcpd /usr/bin/perl /spider/perl/client.pl gb7djk telnet
209 gb7tlh stream tcp nowait sysop /usr/sbin/tcpd /usr/bin/perl /spider/perl/client.pl gb7tlh telnet
212 Please <b>DON'T</b> run the client as <tt>root</tt> you will only
213 come to regret it later when the next person finds a security hole
214 in DX Spider (there are bound to be some although I have tried to
215 avoid the obvious ones I could think of).
217 <p>The only reason I would use this mechanism is for Internet connections
218 to other or from other clusters. Don't use this for normal users.
220 <p>In the example I have used <tt>tcpd</tt> as the access control
221 mechanism to the port. Don't (I can't be bothered to emphasize
222 it any more) run a system like this without one, you are asking
223 for trouble. In fact I use the <a href="http://www.tis.com">TIS
224 Firewall Toolkit</a> myself, you may find this more intuitive
225 to use. The point is that <tt>gb7djk</tt> would only be coming
226 from one IP address, if it coming from another, it is an imposter!
228 <p><b>You are responsible for arranging and looking after your
229 security - not me.</b>
231 <p><LI>As mentioned earlier, for AX25 connections <B><I>you</B></I> are expected to have the AX25 utilities installed, setup, tested and working. See the AX25-HOWTO for more info on this - it really is beyond the scope of this document DX Spider uses ax25d for incoming connections. You need to have entries like this:-
235 default * * * * * * - sysop /spider/perl/client.pl client.pl %u ax25
238 default * * * * * * - sysop /spider/perl/client.pl client.pl %u ax25
240 <P>where 'ether' and 'bbs' are appropriate <B><I>KNOWN WORKING</B></I> axport and nrport names respectively. Obviously you can use different names, callsigns or whatever for your purposes, but it is up to you to get it to work. Note I use BPQ over ethernet which why I have the port names I have.
242 <p><LI>Find your <TT>netrom_call</TT> and <TT>ax25_call</TT> programs (which on my system live in <TT>/usr/sbin)</TT> and chmod them so that they are SUID <TT>root</TT>
244 # chown root ax25_call netrom_call
245 # chmod 4775 ax25_call netrom_call
247 <P>This has to be done to allow you to specify the correct callsigns on outgoing connects
249 <p><LI>Login to your computer as sysop, and create the initial DX Spider parameters necessary to start the cluster for the first time.
251 $ startx			(much easier to use X)
255 $ cp perl/DXVars.pm local
257 $ vi DXVars.pm			(or 'joe DXVars.pm' if you're a WordStar fan ;-)
259 <P>Using the distributed DXVars.pm as a a template, set your cluster callsign, sysop callsign and other user info to suit your own environment. Note that this a perl file which will be parsed and executed as part of the cluster. If you get it wrong then perl will complain when you start the cluster process.
260 <P><b>PLEASE USE CAPITAL LETTERS FOR CALLSIGNS</B>
261 <P>DON'T alter the DXVars.pm (or any other file) in /spider/perl, they are overwritten with every release. Any files or commands you place in /spider/local or /spider/local_cmd will automagically be used in preference to the ones in /spider/perl EVEN whilst the cluster is running!
267 <P>Next, run the following script, which will create the basic user file with you as the sysop.
271 <P>Now attempt to startup the cluster program and see whether all the various rivets are flying in approximate formation...
274 DXSpider DX Cluster Version 1.9
275 Copyright (c) 1998 Dirk Koopman G1TLH
277 loading band data ...
278 loading user file system ...
279 starting listener ...
280 reading existing message headers
282 orft we jolly well go ...
285 <p><LI>now log in again (as 'sysop') or start another rxvt or xterm
290 <P>at the cluster prompt (which will look something like):-
292 G1JIM de GB7JIM 12-Dec-98 1718Z >
298 <p>(where 'GB7XXX' is a DX cluster which you expect to connect to or from).
299 <P>Now shut the cluster down by simply typing 'shutdown' at the prompt.
300 <P>The cluster and the client should both go back to prompts
301 <p>The callsigns should be the sysop callsign and the cluster callsign
302 as per your modified DXVars.pm. You can check that the cluster
303 connections will work by:-
305 $ client.pl gb7xxx (doesn't have to be uppercase).
306 PC38^GB7JIM^~ <- the cluster thinks this is a cluster
311 <p>You should now have a basic working system. Best of luck! Can I now draw your attention to
312 the <a href="http://www.dxcluster.org/spider">Bug Reporting</a> System.
314 <p>Can I commend to you the Announcements mailing list to which you may
315 <a href="mailto:majordomo@dxcluster.org?subject=Subscribe&body=subscribe%20dxspider-announce%0D%0A--%0D%0A">subscribe</a>.
316 This is a low volume mailing list which will send you announcements of new patches and
317 such like things as they arise.
319 <p>If you like what you see and want to be a part of the ongoing development then
320 <a href="mailto:majordomo@dxcluster.org?subject=Subscribe&body=subscribe%20dxspider-support%0D%0A--%0D%0A">subscribe</a>
321 to the support mailing list which will be the focus of any discussion/bug fixing etc.
323 <!-- Standard Footer!! -->
326 <FONT COLOR="#606060"><hr></font>
327 <font color="#FF0000" size=-2>
328 Copyright © 1998 by Dirk Koopman G1TLH and Iain Phillips G0RDI. All Rights Reserved<br>
330 <font color="#000000" size=-2>$Id$</font>