/[cvs]/eggdrop1.6/doc/BOTNET
ViewVC logotype

Annotation of /eggdrop1.6/doc/BOTNET

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (hide annotations) (download)
Mon Nov 15 17:42:31 1999 UTC (21 years, 5 months ago) by fabian
Branch: MAIN
CVS Tags: eggdrop105020, eggdrop10403
Changes since 1.2: +18 -18 lines
Toth's sync-1.5-14Nov1999-1

1 segfault 1.1 BOTNET SHARING and LINKING v2.0 03 Jun 1999
2    
3    
4    
5     INDEX
6    
7     I ABOUT THIS DOCUMENT
8     II TERMS USED
9     III WHAT IS A BOTNET FOR?
10     IV ADDING AND LINKING BOTS
11     V USING BOTFLAGS
12     VI MAKE TWO BOTS SHARE USER RECORD
13    
14    
15    
16    
17    
18    
19     I. ABOUT THIS DOCUMENT
20    
21     The purpose of this document is to show you what a botnet is for and why
22     it could be useful for you. It also covers botflags and some sharing
23     information which you may need for making your bots faster and more reliable.
24    
25    
26    
27    
28     II. TERMS USED
29    
30 fabian 1.3 The following are some common terms used in this document.
31 segfault 1.1 If applicable, there is also the associated command named.
32    
33    
34     Botnet
35     The term used to describe multiple bots connected together.
36    
37    
38     Link
39     The term that means the actual linking of one bot
40    
41     commands: ".link <botname>" ".unlink <botname>"
42    
43    
44     Hub
45     A bot is described as a hub-bot, if one or more bots are linked to
46     it.
47    
48    
49     Leaf
50     A leaf is a non-hub bot connecting to another bot. A leaf has only
51     one other bot connected to it, its hub. Leaf bots can be assigned
52 fabian 1.3 the "l" botattr flag to prevent other bots from linking to them.
53 segfault 1.1
54    
55     Link Bot
56     A link bot is a bot that is linked to another. It may or may not be
57     a hubbot, with other bots linked to it besides its hub.
58    
59    
60     Share
61     The term used to describe two bots sharing user records.
62    
63    
64     Share Bots
65     Share bots is a term used to describe two or more bots sharing user
66     records.
67    
68    
69     Aggressive Share
70     Term used to describe the direction of sharing user-files.
71     Aggressive share bots will SEND userfiles to another passive bot.
72    
73    
74     Passive Share
75     Term used to describe the direction of sharing user-files.
76     Passive share bots will accept userfiles from an active/aggressive bot.
77    
78    
79 fabian 1.2 Note: With the eggdrop1.4.xx/1.3.xx series, active/passive designations are
80 segfault 1.1 relative, not absolute like the prior versions of eggdrop bots, like 1.1.5.
81 fabian 1.2 A 1.3.xx/1.4.xx bot may be both active and passive at the same time, in relation
82     to other bots it is connected to.
83 segfault 1.1
84     example bottree:
85    
86     superbot
87 fabian 1.3 |
88 segfault 1.1 \+intermed
89     |
90     \+peonbot
91    
92     intermed has a master sharebot, superbot and a slave sharebot, peonbot.
93     intermed is passive with [receives from] superbot while being aggressive
94 fabian 1.3 with [sends to] peonbot at the same time.
95 segfault 1.1
96    
97     Flags
98     Flags are attributes that determine what a bot can or is allowed to do.
99     Flags can be either global (+s) or channel specific (|+s #lamest).
100     Botnet affecting flags are:
101    
102     s share (Aggressively SEND userfile to a passive bot (assigned +s flag))
103     p share (Passively ACCEPT userfile from an agressive bot (assigned +p flag))
104 fabian 1.2 g global share (share all channels (this works correctly in 1.4.xx))
105 segfault 1.1 h hub (bot is auto-linked)
106     a alternate (bot is auto-linked if the hub bot can't be linked)
107     l leaf (bot is not allowed to link in other bots)
108     r reject (bot will not be allowed on the net)
109     i isolate (isolate the party line across a botlink)
110     0-9 user (user defined flags)
111    
112     command: ".botattr <botname> [(.+<flag> [#channel]) or (.-<flag> [#channel])]"
113 fabian 1.3
114 segfault 1.1
115     Address
116     The physical address, containing the host and port address of the bot.
117     i.e. lame.org:3333
118    
119     command: ".chaddr <botname> <hostaddress:botport[/userport]>"
120    
121    
122     Relay
123     The relay port number of the bot if defined in the config file.
124     Note that you can define one for telnet connections to other bots
125     and one for relay connections.
126    
127    
128     Relay connection
129     A relay connection is used to relay (jump) to another bot in DCC chat.
130     You can still relay to another bot even if this is not defined in the
131     conf file.
132    
133     command: ".relay <botname>"
134    
135    
136     Port
137     The telnet port is used by the bot to communicate with other bots and/or
138     users. Note that you can define two separate ports for user and bot
139     connections.
140    
141    
142    
143    
144     III. WHAT IS A BOTNET FOR?
145    
146     Basically a botnet is useful if you want to use more then one bot to protect
147     your channel. Bots linked a botnet can perform script controlled tasks.
148     Such a script can be get-ops (ops each bot in a botnet) or some kind of a
149 fabian 1.2 prevent-flood stuff. Just take a look at the script directories on
150     ftp://ftp.eggheads.org and you'll find a lot of botnet scripts.
151 segfault 1.1
152     Also, linked bots can share common user records (global or channel specific)
153     between each other which helps reduce the time needed to maintain a
154     complete, up to date user record database, needed if you operate your
155     channels in a +bitch mode. However, a warning - such sharing, with current
156     designs, may allow a user on one bot, even a slave bot to alter, change or
157     manipulate the entire botnet userfiles and use the botnet to take control of
158     your channel away from you.
159    
160    
161    
162    
163     IV. ADDING AND LINKING BOTS
164    
165 fabian 1.3 With the common terms out of the way we can start with the process of
166 segfault 1.1 linking two bots. Before you start you have to know the following:
167    
168     - What are the domains and ports of the bots.
169    
170     Let's say there is BotA on lame.org listening to port 3333 and BotB
171     on irc.org listening to port 4444. Now you have to add each Bot to the
172     other's userfile (including hostmask, address and listening port of the
173     other bot). In BotA's console you have to type ".+bot BotB irc.org:4444"
174     (assuming that BotB is in the channel and so the hostmask is grabbed
175     automatically, otherwise you have to add it manually with ".+host") and on
176     BotB's console ".+bot BotA lame.org:3333".
177     At this point you can link them for the first time manually by typing
178     ".link BotA" on BotB's console (or in reverse, of course with BotB ".link BotB"
179     on BotA's console). The bots will give themselves now randomized passwords,
180     which are *not* stored encrypted in the userfile. Now you've generated your
181     first botnet.
182     Note that you can add and link as much Bots as you want to your botnet.
183    
184    
185    
186    
187     V USING BOTFLAGS
188    
189     Botflags are needed to assign special functions and tasks to your bots.
190    
191     "h" (hub)
192     If you want your bots to auto-link after getting unlinked or started (due
193 fabian 1.3 to a crash or a server reboot), you have to assign the botattr +h to the
194 segfault 1.1 bot you want the bot to link to.
195     Note, you can assign +h only to one bot at a time!
196    
197     command: ".botattr <botname> +h"
198    
199    
200     "a" (alternate)
201     If your bots are for some reason not able to link to their hub, they will
202 fabian 1.3 attempt to connect to an other "alternate-hub", which you can define by
203 segfault 1.1 setting "+a" on one bot.
204     Note, you can assign +a only to one bot at a time!
205    
206     command: ".botattr <botname> +a"
207    
208    
209     "l" flag (leaf)
210     This flag assigned to a link bot will cause your bot to unlink the leaf
211     one, if it allows any other bots to link to it.
212    
213     command: ".botattr <botname> +l"
214    
215    
216     "r" flag (reject)
217     If you assign this flag to a bot, it won't be tolerated on your botnet and
218     will be unlinked, if it tries to link to your one or any other bot.
219    
220     command: ".botattr <botname> +r"
221    
222    
223     "i" flag (isolate)
224     Setting this flag to a bot will effect an isolation of the partyline
225     between your bot(net) and the other bot(net).
226    
227     command: ".botattr <botname> +i"
228    
229    
230     "0-9" flag (user)
231     These 10 flags aren't hardcoded into eggdrop and can be assigned by scripts
232     or just for fun :-)
233    
234     command: ".botattr <botname> +(0-9)"
235    
236    
237     "s" flag (SEND userfile to bots assigned the +s flag)
238     +s If you set on BotA's console BotB +s then BotA will try to send his
239     userfile (parts selected by |s and g flags) aggressively to BotB.
240    
241     command: ".botattr <botname> +s"
242    
243     |s With this flag you can define channels, which you want your bots
244     to share.
245     Note that you can use this flag only on +s bots!
246    
247     command: ".botattr <botname> |s #lamest"
248    
249     "p" flag (ACCEPT userfile FROM bots assigned the +p flag)
250     If you assign this flag to another bot, your bot will accept userfiles
251     sent from the aggressive bot (as much as you've allowed with |+s or +g)
252    
253     command: ".botattr <botname> +p"
254    
255    
256     "g" flag (global share)
257     If you set this flag on your +s or +p bot, |s and |+s are getting obsolete.
258     Every ban and every user on every single channel will be transfered/accepted.
259    
260 fabian 1.3 command: ".botattr <botname> +g"
261 segfault 1.1
262    
263    
264    
265     VI MAKE TWO BOTS SHARE USER RECORDS
266    
267     Before you start preparing your bots for sharing, you have to make sure that
268 fabian 1.3 you've loaded the transfer, share and filesys module into your bot (look
269 segfault 1.1 through the conf). You also have to ensure that the channel, which user records
270     should be shared, is set +shared.
271    
272     When you are adding bot attribute flags to yourbot for other bots to be
273     linked, so that they will all share a common userfile, you cannot dictate
274     how the other link bots will react by setting botattr flag for them in
275     yourbot. You can only control how you want yourbot to react to those bots
276     when they link.
277    
278     By setting specific botattr flags, you can cause yourbot to be aggressive
279     with some link bots and to be passive with other link bots.
280    
281     But remember, no botattr settings in yourbot have any control over how the
282     other bots will react with yourbot.
283    
284     For sharing to work, the flags must be cordinated with one bot agreeing to
285     be passive and accept and the other link bot agreeing to send or share it's
286     userfile. No setting in yourbot can force another bot to accept files
287 fabian 1.3 yourbot tries to send nor can any such flag force another bot to send or
288 segfault 1.1 share it userfile. It has to be by mutual agreement to work. Each bot has
289     total control of it own userfile sending and receiving functions.
290    
291     Two primary botattr flags establish the pecking order, +s and +p, defining
292     which bot, by mutual agreement, is to be the aggressive/active bot that
293     sends the master userfile and which will bots will be passive and accept the
294     shared userfile.
295    
296     Yourbot will send userfiles to any others set to botattr +s.
297     Yourbot will accept userfiles from any bot set to botattr +p.
298    
299     Active/aggressive bots send userfiles to link bots with the +s botattr flag.
300     If those bots have the botattr of such an active bot set to +p, then they
301     will passively accept the aggressive sender's userfile.
302    
303 fabian 1.3 In yourbot, setting slavebot +s will not make slavebot accept yourbot's
304     userfile. It will only make yourbot attempt to send your userfile to
305 segfault 1.1 slavebot if they link.
306    
307     In yourbot, setting masterbot +p will not make masterbot send its userfile
308     to yourbot. The +p flag only gives masterbot permission to send yourbot a
309     userfile, if masterbot chooses to send one.
310    
311     If you set slavebot +s, then yourbot will try to send slavebot your
312     userfile, once a minute until a successful tranfer is made. If slavebot has
313 fabian 1.3 not given you write/send permission by adding the +p for yourbot, then
314 segfault 1.1 slavebot will refuse to accept yourbot's repeated offer to send. Each and
315     every minute you will see this message repeated on yourbot's console:
316    
317     <yourbot> [04:54] User file rejected by Slavebot: You are not marked for
318     sharing with me.
319    
320     With these setting in yourbot:
321     masterbot +p [yourbot will be passive with masterbot]
322     slavebot +s [yourbot will be aggressive with slavebot]
323 fabian 1.3
324 segfault 1.1 On connection to slavebot, slavebot does not ask yourbot to send it
325 fabian 1.3 userfile. Yourbot is aggressive in relation to slavebot and on linking,
326 segfault 1.1 yourbot automatically attempts to send its userfile to slavebot without any
327     request and will try to do so every 60 seconds until slavebot accepts the
328     userfile and a successful transfer is completed.
329    
330     On connection to masterbot, yourbot does not ask master to send. If
331 fabian 1.3 masterbot decides to send, yourbot gives permission and will accept any
332 segfault 1.1 userfile masterbot might send.
333    
334     If the flags in both bots do not make a +s+p pair, the bots will link but
335     will not share. If the +s+p pair is set properly, but the userfile transfer
336     fails for some reason, the bots will unlink. If with has a +h or +a hub
337     flag set for the other, that bot will seek to relink and upon connection,
338     another attempt to share will be made. If sucessful, the bots will then
339     stay linked and all will be well with the world. :)
340    
341    
342 fabian 1.3
343 segfault 1.1 Note that by sharing user records, you also share automatically bans and
344     ignores (globally or channel specific) with the other bot. Botflags are
345     *not* shared.
346    
347    
348    
349     Hope that this document helped you in some way...
350    
351     Johoho@IrcNET (johoho@venus.lagerfeuer.de)
352     thanks to Dover for his sharing part!

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23