]> jfr.im git - irc/ircd-hybrid/bopm.git/blob - README
Fixed missing ; in config-parser.y
[irc/ircd-hybrid/bopm.git] / README
1 Introduction
2 ------------
3
4 BOPM (Blitzed Open Proxy Monitor) is an open proxy monitoring bot designed for
5 Bahamut and Hybrid based ircds. The bot is designed to monitor an individual
6 server (all servers on the network have to run their own bot) with a local o:
7 line and monitor connections. When a client connects to the server, BOPM will
8 scan the connection for insecure proxies. Insecure proxies are determined by
9 attempting to connect the proxy back to another host (usually the IRC server in
10 question).
11
12 BOPM is written ground-up in C language, concept derived from wgmon. It
13 improves on wgmon with HTTP support, faster scanning (it can scan clients
14 simultaneously), better layout (scalability), and dnsbl support.
15
16
17 Requirements
18 ------------
19
20 o An IRCd which presents connection notices in a format which BOPM
21 recognises (see below).
22
23 o A host with full connectivity for all the ports you wish to scan. i.e. is
24 NOT transparently proxied -- many domestic internet connections have port 80
25 transparently proxied and this produces completely unpredictable results,
26 sometimes as severe as 100% of clients being K:lined!
27
28 o A unix OS with GNU Make, an ANSI C compiler, etc.. BOPM probably does
29 compile and work on win32 under cygwin, but we won't support it.
30
31 o Permission from your users to portscan them for open proxies.
32
33
34 Compatibility
35 -------------
36
37 Bahamut (tested with 1.4.28 -> 1.4.34)
38 Hybrid (tested with 2.8/hybrid-5.3p8, ircd-hybrid-6.3 and ircd-hybrid-7beta9)
39 Unreal (tested with 3.1.2 and 3.2)
40 Xnet (tested with 6.1.3)
41 Dancer (tested with 1.0.31)
42 TR-IRCD
43 IRCu
44 Ultimate IRCD (tested with UltimateIRCd(Tsunami)-3.0(00).a22) - please
45 note, earlier versions of Ultimate IRCD are *not* supported
46
47
48
49 BOPM is designed for the Bahamut and Hybrid IRCds. It is easily
50 suitable for any other ircd with little modification (connregex in bopm.conf).
51 However, if an ircd does not send IP's in a connection notice (bahamut sends
52 [IP]), BOPM will not be effective because the time it takes to resolve a
53 hostname would be a significant factor to BOPM's efficiency.
54
55 If you want to use BOPM but you don't think your ircd supports it then please
56 contact us. As long as source is available for your ircd then we can almost
57 certainly make BOPM work with it. We have already done this for Unreal,
58 TR-IRCD and Xnet ircds.
59
60 Any questions regarding compatibility should be sent to the developers. If
61 feasible we might be able to add compatibility to multiple ircd types to the
62 project in the future.
63
64 Command Line Options
65 --------------------
66
67 -c <name> Config name. By default BOPM reads bopm.conf, "-c foo"
68 will cause BOPM to read foo.conf. The primary use for
69 this is to run multiple BOPMs from one directory.
70
71 -d Debug mode. BOPM will not fork, and will write logs to stderr.
72 Multiple -d increase debug level.
73
74
75 Operator Channel Commands
76 -------------------------
77
78 botnick <check> <host> [scanner] -- Manually scan host for insecure proxies and output all errors.
79 botnick stats -- Output scan stats, uptime and client connection count.
80
81
82 Rehashing the Configuration File
83 --------------------------------
84
85 As of bopm 3.0, the config file cannot be rehashed. You must restart bopm if you change
86 the configuration.
87
88
89 Support
90 -------
91
92 BOPM has a mailing list for general discussion and announcements. CVS
93 commit emails are also sent there and that is also the place to mail your
94 patches (unless they are massive, in which case just post a URL). You can
95 subscribe to this list from:
96
97 http://lists.blitzed.org/listinfo/bopm
98
99 If you need help in closer to realtime, you can find us in #blitzed on
100 irc.blitzed.org.
101
102
103 Compatibility Notes
104 -------------------
105
106 o Unreal Ircd
107
108 For *older* versions of Unreal to work, patches to fix the HCN connect
109 notices (found at http://www.blitzed.org/files/) must be applied.
110
111 Unreal 3.1.3 seems to require opers to be global if they are to see
112 connection notices.
113 -- prince@avalon.zirc.org
114
115 Later versions of Unreal require different user modes to be set on BOPM for
116 it to see connection notices. You will need to use
117
118 mode = "+sc";
119
120 in your bopm.conf. Also later versions of Unreal no longer require patching
121 as described above.
122 -- prince@avalon.zirc.org
123
124 o IRCu
125
126 IRCu does not present a banner to clients when they connect, so
127 target_string, target_ip and target_port must use some other service besides
128 ircd. For those with root access to their servers, the following inetd.conf
129 example is an easy fix for this:
130
131 # BOPM proxy check string
132 16667 stream tcp nowait nobody /bin/echo echo Open Proxy Check
133
134 target_string can then be set to "Open Proxy Check", and target_ip/target_port
135 set to your IP and port 16667.
136
137 If you don't want to do the above, you could use any other service on
138 your machine that presents a banner. We would recommend against using
139 port 25 because it is common for providers to transparently proxy port
140 25.
141
142 Also, to see connect notices, your bopm should set itself umode "+s +16384".
143 There is a config file item for setting umodes.
144
145
146 Credits
147 -------
148
149 BOPM 3.0:
150
151 Erik Fears <strtok@blitzed.org>
152 - Main layout/functionality
153 - libopm library, and bopm interface
154 - IRC parsing
155 - config file parsing
156
157 Andy Smith <grifferz@blitzed.org>
158 - Operator command interface
159 - dnsbl_report
160 - Handles all the DNSBL fun!
161 - Automake/Autoconf madness
162
163 David Leadbeater <dg@blitzed.org>
164 - Asynchronous DNS (firedns)
165 - HTTP POST!
166
167 The Hybrid Team
168 - IRC match code
169 - Whitespace/String parsing in config-parser.y
170
171
172
173 BOPM 1.x - 2.x:
174
175 Erik Fears <strtok@blitzed.org>
176 - Main Developer.
177
178 Andy Smith <grifferz@blitzed.org>
179 - Oper commands interface
180 - Interface to DNSbl
181 - Makefile trickery
182 - Debugging
183 - Evil bopchecker hack
184 - Autoconfiscation (kekeke) & Automake
185 - Solaris port (with thanks to Nathan Nieblas for resources)
186 - Poking people with sticks until they did things
187
188 David Leadbeater <dg@blitzed.org>
189 - Developed perl script (see proxy-tools in Blitzed CVS repository) to
190 test BOPM's support for scanning many clients at once
191
192 Sotiris Tsimbonis <stsimb@irc.gr>
193 - Added -c command line argument
194 - Idea to make bopm set umode -h on oper
195 - Mutliple DNSBL_TO idea
196
197 Rob Levin <levin@openprojects.net>
198 - PASSWORD config option
199 - TYPE_LIST initial implementation
200 - EXCLUDE config option
201
202 Ben AKA locksmith <mmcgarve@insight.rr.com> (irc.lockchat.net)
203 - Debugging assistance
204
205 John Payne <jpayne@blitzed.org>
206 - Ideas for more robust HTTP handling
207
208 Jakub Jankowski <shasta@blitzed.org>
209 - Some code tidying patches
210
211 The Hybrid Team
212 - String matching (match.[ch])
213
214 Emre ERTUGAY <collide@tr.net>
215 - TR-IRCD testing help
216
217 Alex Wu <wu@wunix.org>
218 - IRCu testing
219
220 Harald Skoglund <harald@hekta.stud.iet.hist.no>
221 - Option to configure directory for logfile, config, etc.
222
223 Yusuf Iskenderoglu <uhc0@stud.uni-karlsruhe.de>
224 - IPv6 support.
225 - Many other great ideas.