options {
/*
* Full path and filename for storing the process ID of the running
* BOPM.
*/
pidfile = "/home/panic/bopm/etc/bopm.pid";
/*
* How many seconds to store the IP address of hosts which are
* confirmed (by previous scans) to be secure. New users from these
* IP addresses will not be scanned again until this amount of time
* has passed. IT IS STRONGLY RECOMMENDED THAT YOU DO NOT USE THIS
* DIRECTIVE, but it is provided due to demand.
*
* The main reason for not using this feature is that anyone capable
* of running a proxy can get abusers onto your network - all they
* need do is shut the proxy down, connect themselves, restart the
* proxy, and tell their friends to come flood.
*
* Keep this directive commented out to disable negative caching.
*/
# negcache = 3600;
/*
* Amount of file descriptors to allocate to asynchronous DNS. 64
* should be plenty for almost anyone - previous versions of BOPM only
* did one at a time!
*/
dns_fdlimit = 64;
/*
* Put the full path and filename of a logfile here if you wish to log
* every scan done. Normally BOPM only logs successfully detected
* proxies in the bopm.log, but you may get abuse reports to your ISP
* about portscanning. Being able to show that it was BOPM that did
* the scan in question can be useful. Leave commented for no
* logging.
*/
# scanlog = "/some/path/scan.log";
};
IRC {
/*
* IP to bind to for the IRC connection. You only need to use this if
* you wish BOPM to use a particular interface (virtual host, IP
* alias, ...) when connecting to the IRC server. There is another
* "vhost" setting in the scan {} block below for the actual
* portscans. Note that this directive expects an IP address, not a
* hostname. Please leave this commented out if you do not
* understand what it does, as most people don't need it.
*/
vhost = "208.100.26.130";
/*
* Nickname for BOPM to use.
*/
nick = "BOPM";
/*
* Text to appear in the "realname" field of BOPM's /whois output.
*/
realname = "Blitzed Open Proxy Monitor";
/*
* If you don't have an identd running, what username to use.
*/
username = "bopm";
/*
* Hostname (or IP) of the IRC server which BOPM will monitor
* connections on.
*/
server = "208.100.26.143";
/*
* Password used to connect to the IRC server (PASS)
*/
# password = "secret";
/*
* Port of the above server to connect to. This is what BOPM uses to
* get onto IRC itself, it is nothing to do with what ports/protocols
* are scanned, nor do you need to list every port your ircd listens
* on.
*/
port = 6667;
/*
* Command to execute to identify to NickServ (if your network uses
* it). This is the raw IRC command text, and the below example
* corresponds to "/msg nickserv identify password" in a client. If
* you don't understand, just edit "password" in the line below to be
* your BOPM's nick password. Leave commented out if you don't need
* to identify to NickServ.
*/
nickserv = "privmsg nickserv :identify uglyslut9";
/*
* The username and password needed for BOPM to oper up.
*/
oper = "bopm boperpass5";
/*
* Mode string that BOPM needs to set on itself as soon as it opers
* up. This needs to include the mode for seeing connection notices,
* otherwise BOPM won't scan anyone (that's usually umode +c). It's
* often also a good idea to remove any helper modes so that users
* don't try to talk to the BOPM.
*
* REMEMBER THAT IRCU AND LATER VERSIONS OF UNREAL DO NOT USE A SIMPLE
* +c !!
*/
mode = "+sc-h";
/* Example for Bahamut; +F gives BOPM relaxed flood limits */
# mode = "+Fc-h";
/*
* If this is set then BOPM will use it as an /away message as soon as
* it connects.
*/
away = "I'm a bot. Your messages will be ignored.";
/*
* Info about channels you wish BOPM to join in order to accept
* commands. BOPM will also print messages in these channels every
* time it detects a proxy. Only IRC operators can command BOPM to do
* anything, but some of the things BOPM reports to these channels
* could be soncidered sensitive, so it's best not to put BOPM into
* public channels.
*/
channel {
/*
* Channel name. Local ("&") channels are supported if your ircd
* supports them.
*/
name = "#services";
/*
* If BOPM will need to use a key to enter this channel, this is
* where you specify it.
*/
key = "fitta";
/*
* If you use ChanServ then maybe you want to set the channel
* invite-only and have each BOPM do "/msg ChanServ invite" to get
* itself in. Leave commented if you don't, or if this makes no
* sense to you.
*/
# invite = "privmsg chanserv :invite #bopm";
};
/*
* You can define a bunch of channels if you want:
*
* channel { name = "#other"; }; channel { name="#channel"; }
*/
/*
* connregex is a POSIX regular expression used to parse connection
* (+c) notices from the ircd. The complexity of the expression should
* be kept to a minimum.
*
* Items in order MUST be: nick user host IP
*
* BOPM will not work with ircds which do not send an IP in the
* connection notice.
*
* This is fairly complicated stuff, and the consequences of getting
* it wrong are the BOPM does not scan anyone. Unless you know
* absolutely what you are doing, please just uncomment the example
* below that best matches the type of ircd you use.
*
* !!! NOTE !!! If a connregex for your ircd does not appear here and the
* hybrid connregex does not appear to work, check the BOPM FAQ at
* http://wiki.blitzed.org/BOPM before contacting our lists for help.
*
*/
/* Hybrid / Bahamut / Unreal (in HCN mode) */
connregex = "\\*\\*\\* Notice -- Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9\\.]+)\\].*";
/*
* Ultimate ircd - note the control-B characters around Connect/Exit,
* that is because that text appears in bold in the actual connect
* notice. Be very careful when editing this, do it as you would put
* bold characters into IRC MOTDs.
*/
# connregex = "\\*\\*\\* Connect/Exit -- from [^:]+: Client connecting on port [0-9]+: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9\\.]+)\\].*";
/*
* SorIRCd 1.3.4+ / StarIRCd 5.26+.
*/
# connregex = "\\*\\*\\* Notice -- Client connecting on port [0-9]+: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9\\.]+)\\].*";
/*
* "kline" controls the command used when an open proxy is confirmed.
* We suggest applying a temporary (no more than a few hours) KLINE on the host.
*
* <WARNING>
* Make sure if you need to change this string you also change the
* kline command for every DNSBL you enable below.
*
* Also note that some servers do not allow you to include ':' characters
* inside the KLINE message (e.g. for a http:// address).
*
* Users rewriting this message into something that isn't even a valid
* IRC command is the single most common cause of support requests and
* therefore WE WILL NOT SUPPORT YOU UNLESS YOU USE ONE OF THE EXAMPLE
* KLINE COMMANDS BELOW.
* </WARNING>
*
* That said, should you wish to customise this text, several
* printf-like placeholders are available:
*
* %n User's nick
* %u User's username
* %h User's irc hostname
* %i User's IP address
*
*/
kline = "KLINE *@%i :Open Proxy found on your host. Please visit www.blitzed.org/proxy?ip=%i for more information.";
/* A GLINE example for IRCu: */
# kline = "GLINE +*@%i 1800 :Open proxy found on your host. Please visit www.blitzed.org/proxy?ip=%i for more information.";
/* An AKILL example for services with OperServ
* Your BOPM must have permission to AKILL for this to work! */
# kline = "PRIVMSG OpenServ :AKILL +3h *@%h Open proxy found on your host. Please visit www.blitzed.org/proxy?ip=%i for more information.";
/*
* Text to send on connection, these can be stacked and will be sent in this order
*
* !!! UNREAL USERS PLEASE NOTE !!!
* Unreal users will need PROTOCTL HCN to force hybrid connect
* notices.
*
* Yes Unreal users! That means you! That means you need the line
* below! See that thing at the start of the line? That's what we
* call a comment! Remove it to UNcomment the line.
*/
perform = "PROTOCTL HCN";
};
/*
* OPM Block defines blacklists and information required to report new proxies
* to a dns blacklist. DNS-based blacklists store IP addresses in a DNS zone
* file. There are several blacklist that list IP addresses known to be open
* proxies or other forms of IRC abuse. By checking against these blacklists,
* BOPMs are able to ban known sources of abuse without completely scanning them.
*/
OPM {
blacklist {
name = "dnsbl.dronebl.org";
type = "A record reply";
reply {
2 = "Sample";
3 = "IRC Drone";
4 = "Tor";
5 = "Bottler";
6 = "Unknown spambot or drone";
7 = "DDOS Drone";
8 = "SOCKS Proxy";
9 = "HTTP Proxy";
10 = "ProxyChain";
11 = "Machines and netblocks compromised or owned by MediaDefender";
255 = "Unknown";
};
ban_unknown = no;
kline = "PRIVMSG OperServ :akill add +3h *@%i You have a host listed in the DroneBL. For more information, visit http://dronebl.org/lookup_branded.do?ip=%i;network=Network";
};
blacklist {
name = "ircbl.ahbl.org";
type = "A record reply";
ban_unknown = no;
reply {
2 = "Open proxy";
};
kline = "KLINE *@%h 1440 :DNSBL listed. Check ircnet.com/cgi-bin/bl.cgi?ip=%i for removal.";
};
blacklist {
name = "cbl.abuseat.org";
type = "A record reply";
reply {
2 = "Open proxy";
};
ban_unknown = no;
kline = "KLINE *@%h 1440 :DNSBL listed. Check ircnet.com/cgi-bin/bl.cgi?ip=%i for removal.";
};
blacklist {
name = "rbl.efnet.org";
type = "A record reply";
reply {
1 = "Open proxy";
2 = "Trojan spreader";
3 = "Trojan infected client";
4 = "TOR exit server";
5 = "Drones / Flooding";
};
ban_unknown = no;
kline = "KLINE *@%h 1440 :DNSBL listed. Check ircnet.com/cgi-bin/bl.cgi?ip=%i for removal.";
};
blacklist {
name = "dnsbl.njabl.org";
type = "A record reply";
reply {
9 = "Open proxy";
};
ban_unknown = no;
kline = "KLINE *@%h :Open proxy found on your host, please visit www.njabl.org/cgi-bin/lookup.cgi?query=%i";
};
blacklist {
name ="sbl.spamhaus.org";
type ="A record reply";
reply {
9 = "open proxy";
};
ban_unknown = no;
kline = "kline *@%h : Open proxy zzz k lined";
};
blacklist {
name = "tor.efnet.org";
type = "A record reply";
reply {
2 = "Tor exit server";
};
ban_unknown = no;
kline = "KLINE *@%h 1440 :Tor exit server detected.";
};
blacklist {
name = "dnsbl.anoxs.net";
type = "A record reply";
reply {
1 = "IRC Drone";
2 = "Open Proxy";
3 = "Other";
};
ban_unknown = no;
kline = "PRIVMSG OperServ :akill add +3h *@%h Your host was found in the Anoxs DNSBL. For further information visit http://dnsbl.anoxs.net/index.php?page=remove&ip=%i";
};
blacklist {
name = "xbl.spamhaus.org";
type = "A record reply";
reply {
1 = "CBL";
2 = "BOPM";
};
ban_unknown = no;
kline = "PRIVMSG OperServ :akill add +3h *@%h Your host has an open proxy or virus, please contact a network administrator to resolve this";
};
/*
* You can report the insecure proxies you find to a DNSBL also!
* The remaining directives in this section are only needed if you
* intend to do this. Reports are sent by email, one email per IP
* address. The format does support multiple addresses in one email,
* but we don't know of any servers that are detecting enough insecure
* proxies for this to be really necessary.
*/
/*
* Email address to send reports FROM. If you intend to send reports,
* please pick an email address that we can actually send mail to
* should we ever need to contact you.
*/
dnsbl_from = "sk_a17@hotmail.com";
/*
* Email address to send reports TO.
* For example DroneBL:
*/
# dnsbl_to = "bopm-report@dronebl.org";
/*
* Full path to your sendmail binary. Even if your system does not
* use sendmail, it probably does have a binary called "sendmail"
* present in /usr/sbin or /usr/lib. If you don't set this, no
* proxies will be reported.
*/
# sendmail = "/usr/sbin/sendmail";
};
/*
* The short explanation:
*
* This is where you define what ports/protocols to check for. You can have
* multiple scanner blocks and then choose which users will get scanned by
* which scanners further down.
*
* The long explanation:
*
* Scanner defines a virtual scanner. For each user being scanned, a scanner
* will use a file descriptor (and subsequent connection) for each protocol.
* Once connecting it will negotiate the proxy to connect to
* target_ip:target_port (target_ip MUST be an IP).
*
* Once connected, any data passed through the proxy will be checked to see if
* target_string is contained within that data. If it is the proxy is
* considered open. If the connection is closed at any point before
* target_string is matched, or if at least max_read bytes are read from the
* connection, the negotiation is considered failed.
*/
scanner {
/*
* Unique name of this scanner. This is used further down in the
* user {} blocks to decide which users get affected by which
* scanners.
*/
name="default";
/*
* HTTP CONNECT - very common proxy protocol supported by widely known
* software such as Squid and Apache. The most common sort of
* insecure proxy and found on a multitude of weird ports too. Offers
* transparent two way TCP connections.
*/
protocol = HTTP:80;
protocol = HTTP:8080;
protocol = HTTP:3128;
protocol = HTTP:6588;
/*
* SOCKS4/5 - well known proxy protocols, probably the second most
* common for insecure proxies, also offers transparent two way TCP
* connections. Fortunately largely confined to port 1080.
*/
protocol = SOCKS4:1080;
protocol = SOCKS5:1080;
/*
* Cisco routers with a default password (yes, it really does happen).
* Also pretty much anything else that will let you telnet to anywhere
* else on the internet. Fortunately these are always on port 23.
*/
protocol = ROUTER:23;
/*
* WinGate is commercial windows proxy software which is now not so
* common, but still to be found, and helpfully presents an interface
* that can be used to telnet out, on port 23.
*/
protocol = WINGATE:23;
/*
* The HTTP POST protocol, often dismissed when writing the access
* controls for proxies, but sadly can still be used to abused.
* Offers only the opportunity to send a single block of data, but
* enough of them at once can still make for a devastating flood.
* Found on the same ports that HTTP CONNECT proxies inhabit.
*
* Note that if your ircd has "ping cookies" then clients from HTTP
* POST proxies cannot actually ever get onto your network anyway. If
* you leave the checks in then you'll still find some (because some
* people IRC from boxes that run them), but if you use BOPM purely as
* a protective measure and you have ping cookies, you need not scan
* for HTTP POST.
*/
protocol = HTTPPOST:80;
/*
* IP this scanner will bind to. Use this if you need your scans to
* come FROM a particular interface on the machine you run BOPM from.
* If you don't understand what this means, please leave this
* commented out, as this is a major source of support queries!
*/
# vhost = "127.0.0.1";
/* Maximum file descriptors this scanner can use. Remember that there
* will be one FD for each protocol listed above. As this example
* scanner has 8 protocols, it requires 8 FDs per user. With a 512 FD
* limit, this scanner can be used on 64 users _at the same time_.
* That should be adequate for most servers.
*/
fd = 1024;
/*
* Maximum data read from a proxy before considering it closed. Don't
* set this too high, some people have fun setting up lots of ports
* that send endless data to tie up your scanner. 4KB is plenty for
* any known proxy.
*/
max_read = 4096;
/*
* Amount of time (in seconds) before a test is considered timed out.
* Again, all but the poorest slowest proxies will be detected within
* 30 seconds, and this helps keep resource usage low.
*/
timeout = 12;
/*
* Target IP to tell the proxy to connect to
*
* !!! THIS MUST BE CHANGED !!!
*
* You cannot instruct the proxy to connect to itself! The easiest
* thing to do would be to set this to the IP of your ircd and then
* keep the default target_strings.
*
* Please use an IP that is publically reachable from anywhere on the
* Internet, because you have no way of knowing where the insecure
* proxies will be located. Just because you and your BOPM can
* connect to your ircd on some private IP like 192.168.0.1, does not
* mean that the insecure proxies out there on the Internet will be
* able to. And if they never connect, you will never detect them.
*
* Remember to change this setting for every scanner you configure.
*
*/
target_ip = "208.100.26.143";
/*
* Target port to tell the proxy to connect to. This is usually
* something like 6667. Basically any client-usable port.
*/
target_port = 6667;
/*
* Target string we check for in the data read back by the scanner.
* This should be some string out of the data that your ircd usually
* sends on connect. The example below will work on most
* hybrid/bahamut ircds. Multiple target strings are allowed.
*
* NOTE: Try to keep the number of target strings to a minimum. Two
* should be fine. One for normal connections and one for throttled
* connections. Comment out any others for efficiency.
*/
/* Usually first line sent to client on connection to ircd.
* If your ircd supports a more specific line (see below),
* using it will reduce false positives.
*/
target_string = "*** Looking up your hostname...";
/* Some ircds give a source for the NOTICE AUTH (bahamut for example).
* It is recommended you use the following instead of the generic
* "*** Looking up your hostname..." if your ircd supports it.
* This will reduce the chances of false positives.
*/
# target_string = ":server.yournetwork.org NOTICE AUTH :*** Looking up your hostname...";
/* If you try to connect too fast, you'll be throttled by your own
* ircd. Here's what a hybrid throttle message looks like:
*/
target_string = "ERROR :Trying to reconnect too fast.";
/* And the same for bahamut (comment this out if you're not using bahamut): */
target_string = "ERROR :Your host is trying to (re)connect too fast -- throttled.";
};
scanner {
name = "default";
protocol = HTTP:81;
protocol = HTTP:8000;
protocol = HTTP:8001;
protocol = HTTP:8081;
protocol = HTTPPOST:81;
protocol = HTTPPOST:6588;
protocol = HTTPPOST:4480;
protocol = HTTPPOST:8000;
protocol = HTTPPOST:8001;
protocol = HTTPPOST:8080;
protocol = HTTPPOST:8081;
/*
* IRCnet have seen many socks5 on these ports, more than on the
* standard ports even.
*/
protocol = SOCKS5:23215;
protocol = SOCKS5:17313;
protocol = SOCKS5:46081;
protocol = SOCKS5:20670;
protocol = SOCKS5:21570;
protocol = SOCKS5:27109;
protocol = SOCKS5:7138;
protocol = SOCKS5:39276;
protocol = SOCKS5:58275;
protocol = SOCKS5:48243;
protocol = SOCKS5:22533;
protocol = SOCKS5:57165;
protocol = SOCKS5:1080;
protocol = SOCKS5:53927;
protocol = SOCKS5:3471;
protocol = SOCKS5:1080;
protocol = SOCKS5:18678;
protocol = SOCKS5:38792;
protocol = SOCKS5:8251;
protocol = SOCKS5:47439;
protocol = SOCKS5:31537;
protocol = SOCKS5:47089;
protocol = SOCKS5:43329;
protocol = SOCKS5:14946;
protocol = SOCKS5:80;
protocol = ROUTER:23;
protocol = SOCKS4:559;
protocol = HTTPPOST:3128;
protocol = SOCKS4:1080;
protocol = HTTP:8080;
protocol = SOCKS5:1182;
protocol = HTTP:3128;
protocol = HTTPPOST:8080;
protocol = SOCKS4:9999;
protocol = HTTPPOST:80;
protocol = SOCKS5:1080;
protocol = HTTP:63000;
protocol = HTTP:8000;
protocol = HTTPPOST:808;
protocol = HTTP:80;
protocol = HTTPPOST:6588;
protocol = HTTP:6588;
protocol = SOCKS5:3128;
protocol = SOCKS5:10080;
protocol = HTTPPOST:4480;
protocol = SOCKS4:6664;
protocol = SOCKS4:63808;
protocol = HTTP:6667;
protocol = SOCKS4:19991;
protocol = SOCKS4:1098;
protocol = SOCKS4:10000;
protocol = SOCKS4:4471;
protocol = HTTP:65506;
protocol = HTTP:63809;
protocol = SOCKS5:9090;
protocol = HTTP:9090;
protocol = HTTP:6668;
protocol = SOCKS4:58;
protocol = SOCKS5:58;
protocol = SOCKS4:6969;
protocol = WINGATE:23;
protocol = SOCKS5:3380;
protocol = SOCKS4:40;
protocol = SOCKS5:443;
protocol = SOCKS4:8888;
protocol = HTTPPOST:9090;
protocol = HTTP:5490;
protocol = SOCKS4:8080;
protocol = SOCKS5:6969;
protocol = SOCKS4:1026;
protocol = SOCKS4:1025;
protocol = HTTP:8888;
protocol = HTTP:6669;
protocol = HTTP:8090;
protocol = HTTP:808;
protocol = SOCKS5:1029;
protocol = SOCKS4:41080;
protocol = SOCKS5:8020;
protocol = SOCKS5:6000;
protocol = HTTPPOST:8081;
protocol = HTTP:4480;
protocol = SOCKS5:1027;
protocol = SOCKS4:1028;
protocol = HTTP:3332;
protocol = SOCKS5:8888;
protocol = SOCKS5:1028;
protocol = SOCKS4:3330;
protocol = SOCKS4:29992;
protocol = SOCKS4:1234;
protocol = SOCKS4:1029;
protocol = HTTP:5000;
protocol = HTTP:443;
protocol = SOCKS5:1813;
protocol = SOCKS5:1081;
protocol = SOCKS5:1026;
protocol = SOCKS4:1337;
protocol = SOCKS4:1050;
protocol = HTTP:1080;
protocol = SOCKS5:9999;
protocol = SOCKS5:9100;
protocol = SOCKS5:19991;
protocol = SOCKS5:1098;
protocol = SOCKS4:9100;
protocol = SOCKS4:7080;
protocol = SOCKS4:1033;
protocol = HTTP:9000;
protocol = HTTP:5800;
protocol = HTTP:5634;
protocol = HTTP:4471;
protocol = HTTP:3382;
protocol = SOCKS5:1200;
protocol = SOCKS5:1039;
protocol = SOCKS5:1025;
protocol = SOCKS4:8002;
protocol = SOCKS4:6748;
protocol = SOCKS4:44548;
protocol = SOCKS4:3380;
protocol = SOCKS4:32167;
protocol = SOCKS4:2000;
protocol = SOCKS4:1979;
protocol = SOCKS4:12654;
protocol = SOCKS4:11225;
protocol = SOCKS4:1066;
protocol = SOCKS4:1030;
protocol = SOCKS4:1027;
protocol = SOCKS4:10099;
protocol = SOCKS4:5858;
protocol = SOCKS4:29585;
protocol = SOCKS4:23215;
protocol = SOCKS4:6449;
protocol = SOCKS4:42285;
protocol = SOCKS4:1080;
protocol = SOCKS4:17313;
protocol = SOCKS4:16249;
protocol = SOCKS4:46081;
protocol = SOCKS4:24647;
protocol = SOCKS4:61167;
protocol = SOCKS4:20670;
protocol = SOCKS4:21570;
protocol = SOCKS4:4500;
protocol = SOCKS4:57625;
protocol = SOCKS4:27109;
protocol = SOCKS4:7138;
protocol = SOCKS4:59586;
protocol = SOCKS4:17365;
protocol = SOCKS4:54909;
protocol = SOCKS4:52719;
protocol = SOCKS4:7263;
protocol = SOCKS4:58275;
protocol = SOCKS4:6099;
protocol = SOCKS4:48243;
protocol = SOCKS4:16638;
protocol = SOCKS4:22533;
protocol = SOCKS4:33927;
protocol = SOCKS4:46017;
protocol = SOCKS4:57165;
protocol = SOCKS4:14848;
protocol = SOCKS4:53927;
protocol = SOCKS4:14441;
protocol = SOCKS4:40517;
protocol = SOCKS4:4425;
protocol = SOCKS4:4517;
protocol = SOCKS4:3471;
protocol = SOCKS4:10099;
protocol = SOCKS4:38792;
protocol = SOCKS4:8251;
protocol = SOCKS4:4905;
protocol = SOCKS4:7881;
protocol = SOCKS4:2959;
protocol = SOCKS4:51433;
protocol = SOCKS4:6729;
protocol = SOCKS4:47439;
protocol = SOCKS4:10130;
protocol = SOCKS4:42919;
protocol = SOCKS4:44003;
protocol = SOCKS4:31537;
protocol = SOCKS4:47089;
protocol = SOCKS4:24565;
protocol = SOCKS4:30569;
protocol = SOCKS4:3963;
protocol = SOCKS4:9333;
protocol = SOCKS4:43329;
protocol = SOCKS4:36937;
protocol = SOCKS4:5817;
protocol = SOCKS4:14946;
protocol = SOCKS4:34463;
protocol = SOCKS4:9469;
protocol = HTTP:81;
protocol = HTTP:6665;
protocol = HTTP:6664;
protocol = HTTP:6663;
protocol = SOCKS5:8278;
protocol = SOCKS5:6748;
protocol = SOCKS5:4914;
protocol = SOCKS5:4471;
protocol = SOCKS5:29992;
protocol = SOCKS5:17235;
protocol = SOCKS5:1234;
protocol = SOCKS5:1202;
protocol = SOCKS5:1180;
protocol = SOCKS5:1075;
protocol = SOCKS5:1033;
protocol = SOCKS5:10000;
protocol = SOCKS4:8020;
protocol = SOCKS4:4044;
protocol = SOCKS4:3128;
protocol = SOCKS4:3127;
protocol = SOCKS4:28882;
protocol = SOCKS4:24973;
protocol = SOCKS4:21421;
protocol = SOCKS4:1182;
protocol = SOCKS4:1032;
protocol = SOCKS4:10242;
protocol = HTTPPOST:8089;
protocol = HTTP:8082;
protocol = HTTP:6661;
protocol = HTTP:35233;
protocol = HTTP:19991;
protocol = HTTP:1098;
protocol = HTTP:1050;
protocol = SOCKS5:9988;
protocol = SOCKS5:8080;
protocol = SOCKS5:8009;
protocol = SOCKS5:6561;
protocol = SOCKS5:24971;
protocol = SOCKS5:18844;
protocol = SOCKS5:44003;
protocol = SOCKS5:1122;
protocol = SOCKS5:10777;
protocol = SOCKS5:1030;
protocol = SOCKS5:10130;
protocol = SOCKS5:10099;
protocol = SOCKS5:11171;
protocol = SOCKS5:5858;
protocol = SOCKS5:29585;
protocol = SOCKS5:23215;
protocol = SOCKS5:6449;
protocol = SOCKS5:42285;
protocol = SOCKS5:1080;
protocol = SOCKS5:17313;
protocol = SOCKS5:16249;
protocol = SOCKS5:46081;
protocol = SOCKS5:24647;
protocol = SOCKS5:61167;
protocol = SOCKS5:20670;
protocol = SOCKS5:21570;
protocol = SOCKS5:4500;
protocol = SOCKS5:27109;
protocol = SOCKS5:59586;
protocol = SOCKS5:1080;
protocol = SOCKS5:17365;
protocol = SOCKS5:54909;
protocol = SOCKS5:52719;
protocol = SOCKS5:7263;
protocol = SOCKS5:58275;
protocol = SOCKS5:6099;
protocol = SOCKS5:48243;
protocol = SOCKS5:16638;
protocol = SOCKS5:22533;
protocol = SOCKS5:33927;
protocol = SOCKS5:46017;
protocol = SOCKS5:57165;
protocol = SOCKS5:1080;
protocol = SOCKS5:14848;
protocol = SOCKS5:53927;
protocol = SOCKS5:14441;
protocol = SOCKS5:40517;
protocol = SOCKS5:4425;
protocol = SOCKS5:1080;
protocol = SOCKS5:4517;
protocol = SOCKS5:3471;
protocol = SOCKS5:1080;
protocol = SOCKS5:10099;
protocol = SOCKS5:38792;
protocol = SOCKS5:1080;
protocol = SOCKS5:8251;
protocol = SOCKS5:4905;
protocol = SOCKS5:7881;
protocol = SOCKS5:2959;
protocol = SOCKS5:51433;
protocol = SOCKS5:6729;
protocol = SOCKS5:47439;
protocol = SOCKS5:10130;
protocol = SOCKS5:42919;
protocol = SOCKS5:44003;
protocol = SOCKS5:31537;
protocol = SOCKS5:47089;
protocol = SOCKS5:24565;
protocol = SOCKS5:30569;
protocol = SOCKS5:3963;
protocol = SOCKS5:9333;
protocol = SOCKS5:43329;
protocol = SOCKS5:36937;
protocol = SOCKS5:5817;
protocol = SOCKS5:14946;
protocol = SOCKS5:34463;
protocol = SOCKS5:9469;
protocol = SOCKS5:23215;
protocol = SOCKS5:17313;
protocol = SOCKS5:46081;
protocol = SOCKS5:20670;
protocol = SOCKS5:21570;
protocol = SOCKS5:27109;
protocol = SOCKS5:7138;
protocol = SOCKS5:39276;
protocol = SOCKS5:58275;
protocol = SOCKS5:48243;
protocol = SOCKS5:22533;
protocol = SOCKS5:57165;
protocol = SOCKS5:1080;
protocol = SOCKS5:53927;
protocol = SOCKS5:3471;
protocol = SOCKS5:1080;
protocol = SOCKS5:18678;
protocol = SOCKS5:38792;
protocol = SOCKS5:8251;
protocol = SOCKS5:47439;
protocol = SOCKS5:31537;
protocol = SOCKS5:47089;
protocol = SOCKS5:14946;
protocol = SOCKS5:5858;
protocol = SOCKS5:29585;
protocol = SOCKS5:23215;
protocol = SOCKS5:6449;
protocol = SOCKS5:42285;
protocol = SOCKS5:1080;
protocol = SOCKS5:17313;
protocol = SOCKS5:16249;
protocol = SOCKS5:46081;
protocol = SOCKS5:24647;
protocol = SOCKS5:61167;
protocol = SOCKS5:20670;
protocol = SOCKS5:21570;
protocol = SOCKS5:4500;
protocol = SOCKS5:57625;
protocol = SOCKS5:27109;
protocol = SOCKS5:7138;
protocol = SOCKS5:59586;
protocol = SOCKS5:1080;
protocol = SOCKS5:17365;
protocol = SOCKS5:54909;
protocol = SOCKS5:52719;
protocol = SOCKS5:7263;
protocol = SOCKS5:58275;
protocol = SOCKS5:6099;
protocol = SOCKS5:48243;
protocol = SOCKS5:16638;
protocol = SOCKS5:22533;
protocol = SOCKS5:33927;
protocol = SOCKS5:46017;
protocol = SOCKS5:57165;
protocol = SOCKS5:1080;
protocol = SOCKS5:14848;
protocol = SOCKS5:53927;
protocol = SOCKS5:14441;
protocol = SOCKS5:40517;
protocol = SOCKS5:4425;
protocol = SOCKS5:1080;
protocol = SOCKS5:4517;
protocol = SOCKS5:3471;
protocol = SOCKS5:1080;
protocol = SOCKS5:10099;
protocol = SOCKS5:38792;
protocol = SOCKS5:1080;
protocol = SOCKS5:8251;
protocol = SOCKS5:4905;
protocol = SOCKS5:7881;
protocol = SOCKS5:2959;
protocol = SOCKS5:51433;
protocol = SOCKS5:6729;
protocol = SOCKS5:47439;
protocol = SOCKS5:10130;
protocol = SOCKS5:42919;
protocol = SOCKS5:44003;
protocol = SOCKS5:31537;
protocol = SOCKS5:47089;
protocol = SOCKS5:24565;
protocol = SOCKS5:30569;
protocol = SOCKS5:3963;
protocol = SOCKS5:9333;
protocol = SOCKS5:43329;
protocol = SOCKS5:36937;
protocol = SOCKS5:5817;
protocol = SOCKS5:1080;
protocol = SOCKS5:14946;
protocol = SOCKS5:34463;
protocol = SOCKS5:9469;
protocol = SOCKS5:23215;
protocol = SOCKS5:17313;
protocol = SOCKS5:46081;
protocol = SOCKS5:20670;
protocol = SOCKS5:21570;
protocol = SOCKS5:27109;
protocol = SOCKS5:7138;
protocol = SOCKS5:39276;
protocol = SOCKS5:58275;
protocol = SOCKS5:48243;
protocol = SOCKS5:22533;
protocol = SOCKS5:1080;
protocol = SOCKS5:18678;
protocol = SOCKS5:38792;
protocol = SOCKS5:8251;
protocol = SOCKS5:47439;
protocol = SOCKS5:31537;
protocol = SOCKS5:47089;
protocol = SOCKS5:43329;
protocol = SOCKS5:14946;
protocol = SOCKS4:8751;
protocol = SOCKS4:11171;
protocol = SOCKS5:22568;
protocol = SOCKS4:8278;
protocol = SOCKS4:8111;
protocol = SOCKS4:7007;
protocol = SOCKS4:6551;
protocol = SOCKS4:5353;
protocol = SOCKS4:443;
protocol = SOCKS4:43341;
protocol = SOCKS4:3801;
protocol = SOCKS4:2280;
protocol = SOCKS4:1978;
protocol = SOCKS4:1212;
protocol = SOCKS4:1039;
protocol = SOCKS4:1031;
protocol = HTTPPOST:81;
protocol = HTTP:9988;
protocol = HTTP:7868;
protocol = HTTP:7070;
protocol = HTTP:444;
protocol = HTTP:1200;
protocol = HTTP:1039;
/*
* These came courtsey of Keith Dunnett from a bunch of public open
* proxy lists.
*/
protocol = SOCKS4:29992;
protocol = SOCKS4:38884;
protocol = SOCKS4:18844;
protocol = SOCKS4:17771;
protocol = SOCKS4:31121;
fd = 10000;
/* If required you can add settings such as target_ip here
* they will override the defaults set in the first scanner
* for this and subsequent scanners defined in the config file
* This affects the following options:
* fd, vhost, target_ip, target_port, target_string, timeout and
* max_read.
*/
};
/*
* User blocks define what scanners will be used to scan which hostmasks. When
* a user connects they will be scanned on every scanner {} (above) that
* matches their host.
*/
user {
/*
* Users matching this host mask will be scanned with all the
* protocols in the scanner named.
*/
mask = "*!*@*";
scanner = "default";
};
user {
/* Connections without ident will match on a vast number of connections
* very few proxies run ident though */
# mask = "*!~*@*";
mask = "*!squid@*";
mask = "*!nobody@*";
mask = "*!www-data@*";
mask = "*!cache@*";
mask = "*!CacheFlowS@*";
mask = "*!*@*www*";
mask = "*!*@*proxy*";
mask = "*!*@*cache*";
scanner = "extended";
};
/*
* Exempt hosts matching certain strings from any form of scanning or dnsbl.
* BOPM will check each string against both the hostname and the IP address of
* the user.
*
* There are very few valid reasons to actually use "exempt". BOPM should
* never get false positives, and we would like to know very much if it does.
* One possible scenario is that the machine BOPM runs from is specifically
* authorized to use certain hosts as proxies, and users from those hosts use
* your network. In this case, without exempt, BOPM will scan these hosts,
* find itself able to use them as proxies, and ban them.
*/
exempt {
mask = "*!*@127.0.0.1";
};
exempt {
mask = "*!*@92.10.211.189";
};
exempt {
mask = "*!*@86.133.243.41";
};
exempt {
mask = "*!*@121.72.23.228";
};
exempt {
mask = "*!*@92.11.39.113";
};
exempt {
mask = "*!*@4.240.213.78";
};
exempt {
mask = "*!*@62.30.182.*";
};
exempt {
mask = "*!*@4.240.213.*";
};
exempt {
mask = "*!*@200.116.197.*";
};
exempt {
mask = "*!*@78.144.128.*";
};
exempt {
mask = "*!*@78.151.155.*";
};
exempt {
mask = "*!*@83.100.225.*";
};
exempt {
mask = "*!*@83.100.225.167";
};
exempt {
mask = "*!*@adsl-83-100-225-167.karoo.KCOM.COM";
};