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

Contents of /eggdrop1.9/doc/BOTNET

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


Revision 1.7 - (show annotations) (download)
Sat Feb 15 05:04:57 2003 UTC (16 years, 2 months ago) by wcc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.6: +0 -0 lines
FILE REMOVED
* Removed share.mod (will be part of the new botnet module).
* More transfer removal.
* More botnet removal.
* Regenerated gettext stuff.
* More doc stuff.
* Removed eggdrop.conf (replaced by config.tcl for now).

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 eggdrop1.3.x and up, active/passive designations are relative, not
80 absolute like the prior versions of eggdrop bots, like 1.1.5. A 1.3+ bot may
81 be both active and passive at the same time, in relation to other bots it is
82 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 (this works correctly in 1.4.xx))
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 the script directories on
150 ftp://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 "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 command: ".botattr <botname> +g"
261
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 you've loaded the transfer, share and filesys module into your bot (look
269 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 yourbot tries to send nor can any such flag force another bot to send or
288 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 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 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 not given you write/send permission by adding the +p for yourbot, then
314 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
324 On connection to slavebot, slavebot does not ask yourbot to send it
325 userfile. Yourbot is aggressive in relation to slavebot and on linking,
326 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 masterbot decides to send, yourbot gives permission and will accept any
332 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
343 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
352 The Dev-Team..

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23