/[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.1 - (hide annotations) (download)
Mon Sep 13 14:36:18 1999 UTC (21 years, 7 months ago) by segfault
Branch: MAIN
Initial commit based off of .29 cvs

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     The following are some common terms used in this document.
31     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     the "l" botattr flag to prevent other bots from linking to them.
53    
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     Note: With the eggdrop1.3.xx series, active/passive designations are
80     relative, not absolute like the prior versions of eggdrop bots, like 1.1.5.
81     A 1.3.xx bot may be both active and passive at the same time, in relation to
82     other bots it is connected to.
83    
84     example bottree:
85    
86     superbot
87     |
88     \+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     with [sends to] peonbot at the same time.
95    
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     g global share (share all channels)
105     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    
114    
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     prevent-flood stuff. Just take a look at /pub/eggdrop/scripts1.3 on
150     ftp.eggheads.org and you'll find a lot of botnet scripts.
151    
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     With the common terms out of the way we can start with the process of
166     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     to a crash or a server reboot), you have to assign the botattr +h to the
194     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     attempt to connect to an other "alternate-hub", which you can define by
203     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     |+s You can assign the channel for which the bot will acceppt changes to
250     his userfile from a +p set bot.
251    
252     command: ".botattr <botname> |+s #lamest"
253    
254    
255     "p" flag (ACCEPT userfile FROM bots assigned the +p flag)
256     If you assign this flag to another bot, your bot will accept userfiles
257     sent from the aggressive bot (as much as you've allowed with |+s or +g)
258    
259     command: ".botattr <botname> +p"
260    
261    
262     "g" flag (global share)
263     If you set this flag on your +s or +p bot, |s and |+s are getting obsolete.
264     Every ban and every user on every single channel will be transfered/accepted.
265    
266     command: ".botattr <botname> +g"
267    
268    
269    
270    
271     VI MAKE TWO BOTS SHARE USER RECORDS
272    
273     Before you start preparing your bots for sharing, you have to make sure that
274     you've loaded the transfer, share and filesys module into your bot (look
275     through the conf). You also have to ensure that the channel, which user records
276     should be shared, is set +shared.
277    
278     When you are adding bot attribute flags to yourbot for other bots to be
279     linked, so that they will all share a common userfile, you cannot dictate
280     how the other link bots will react by setting botattr flag for them in
281     yourbot. You can only control how you want yourbot to react to those bots
282     when they link.
283    
284     By setting specific botattr flags, you can cause yourbot to be aggressive
285     with some link bots and to be passive with other link bots.
286    
287     But remember, no botattr settings in yourbot have any control over how the
288     other bots will react with yourbot.
289    
290     For sharing to work, the flags must be cordinated with one bot agreeing to
291     be passive and accept and the other link bot agreeing to send or share it's
292     userfile. No setting in yourbot can force another bot to accept files
293     yourbot tries to send nor can any such flag force another bot to send or
294     share it userfile. It has to be by mutual agreement to work. Each bot has
295     total control of it own userfile sending and receiving functions.
296    
297     Two primary botattr flags establish the pecking order, +s and +p, defining
298     which bot, by mutual agreement, is to be the aggressive/active bot that
299     sends the master userfile and which will bots will be passive and accept the
300     shared userfile.
301    
302     Yourbot will send userfiles to any others set to botattr +s.
303     Yourbot will accept userfiles from any bot set to botattr +p.
304    
305     Active/aggressive bots send userfiles to link bots with the +s botattr flag.
306     If those bots have the botattr of such an active bot set to +p, then they
307     will passively accept the aggressive sender's userfile.
308    
309     In yourbot, setting slavebot +s will not make slavebot accept yourbot's
310     userfile. It will only make yourbot attempt to send your userfile to
311     slavebot if they link.
312    
313     In yourbot, setting masterbot +p will not make masterbot send its userfile
314     to yourbot. The +p flag only gives masterbot permission to send yourbot a
315     userfile, if masterbot chooses to send one.
316    
317     If you set slavebot +s, then yourbot will try to send slavebot your
318     userfile, once a minute until a successful tranfer is made. If slavebot has
319     not given you write/send permission by adding the +p for yourbot, then
320     slavebot will refuse to accept yourbot's repeated offer to send. Each and
321     every minute you will see this message repeated on yourbot's console:
322    
323     <yourbot> [04:54] User file rejected by Slavebot: You are not marked for
324     sharing with me.
325    
326     With these setting in yourbot:
327     masterbot +p [yourbot will be passive with masterbot]
328     slavebot +s [yourbot will be aggressive with slavebot]
329    
330     On connection to slavebot, slavebot does not ask yourbot to send it
331     userfile. Yourbot is aggressive in relation to slavebot and on linking,
332     yourbot automatically attempts to send its userfile to slavebot without any
333     request and will try to do so every 60 seconds until slavebot accepts the
334     userfile and a successful transfer is completed.
335    
336     On connection to masterbot, yourbot does not ask master to send. If
337     masterbot decides to send, yourbot gives permission and will accept any
338     userfile masterbot might send.
339    
340     If the flags in both bots do not make a +s+p pair, the bots will link but
341     will not share. If the +s+p pair is set properly, but the userfile transfer
342     fails for some reason, the bots will unlink. If with has a +h or +a hub
343     flag set for the other, that bot will seek to relink and upon connection,
344     another attempt to share will be made. If sucessful, the bots will then
345     stay linked and all will be well with the world. :)
346    
347    
348    
349     Note that by sharing user records, you also share automatically bans and
350     ignores (globally or channel specific) with the other bot. Botflags are
351     *not* shared.
352    
353    
354    
355     Hope that this document helped you in some way...
356    
357     Johoho@IrcNET (johoho@venus.lagerfeuer.de)
358     thanks to Dover for his sharing part!

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23