-
Notifications
You must be signed in to change notification settings - Fork 2
DarkSpiritNET/OPSB
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
OPSB Manual _________________________________________________________________ 1. Prerequisites and Installation. 1.1. Compiling and Installation 2. Basic Configuration 2.1. Exclusion Lists 2.2. TARGET IP and TARGET PORT 2.3. BanTime 3. Detailed Configuration 3.1. CACHETIME Setting 3.2. SCAN Setting 3.3. AKILL Setting 3.4. OPMDOMAIN Setting 3.5. MAXBYTES Setting 3.6. TIMEOUT 3.7. OPENSTRING 3.8. SPLITTIME 3.9. SCANMSG Setting 3.10. PORTS Setting 3.10.1. Listing Ports/Protocols 3.10.2. Adding Ports 3.10.3. Deleting Ports 4. Operational Commands 4.1. LOOKUP Command 4.2. INFO Command 4.3. CHECK Command 4.4. STATUS Command Welcome to the Open Proxy Scanning Bot (OPSB) Manual. This document will aid you in setting up and running OPSB on your IRC network. OPSB is a Proxy Scanning Service that scans connecting clients for Open Proxies. These Open Proxies are often used by malicious users and trojans to connect to your network and attack the network, users, or channels that you host. It bases its scanning engine on the BOPM proxy scanning library available at http://www.blitzed.org, but unlike the BOPM software, it has native support to scan all clients network wide, rather than via individual servers. This means that you only need one OPSB service running on your network to protect your entire IRC network. Additionally, OPSB makes use of Open Proxy lists. These lists often contain IP addresses of verified Open Proxies, and OPSB can ban these users without even scanning. By default, OPSB uses the blitzed open proxy list (More details available at http://opm.blitzed.org) OPSB is flexible in that it has many advanced configuration options available to IRC administrators, including the ability to easily modify the protocols and ports to scan of connecting users, as well as exclude certian users or servers from scanning. This allows you maxium flexibility without the overhead of running multiple copies of proxy scanning software. In addition, it has the ability to Queue up scans, so during periods of peak usage, OPSB will not consume all bandwidth or file descriptors, but still scan users in a timely manor. Proxy Scanning is only one defence against Trojans and Malicious users, and can not detect all types of open Proxies. We therefore recomend that the IRC administrators run other software such as SecureServ, and familiarize themselves with the OperServ functionality found in most traditional IRC services packages. By Default, OPSB scans the following protocols and ports (But this can be easily customized) * HTTP Proxies on Port 80, 3128, 8000, 8080 * HTTP Post Proxies on Port 80, 3128, 8000, 8080 * Wingate Servers on Port 23 * Insecure Cisco Routers on port 23 * SOCKS4 Servers on 1080 * SOCKS5 Servers on 1080 These ports are some of the more common ports, but administrators might find other ports that are often associated with open proxies. In these cases, the administrator can simple add the new port to be scanning without restarting OPSB. Warning When picking a host to run OPSB from, make sure you check with your Shell or ISP provider to ensure that there are no Transparent HTTP proxies enabled on that network. Transparent proxies are often used to speed up HTTP downloads for users without requiring the user to update their browser configuration. If you often get false positive scans on users on port 80, then most likely your hosting provider has implemented a Transparent Proxy. See if they can disable this transparent proxy for you, or alternativly, find a new hosting provider that does not run a transparent proxy. THERE IS NO WAY FOR OPSB TO DETECT IT IS BEHIND A TRANSPARENT PROXY. OPSB is written and maintained by Justin Hammond. It requires the NeoStats software. More information about OPSB, or NeoStats, can be found at http://www.neostats.net/ OPSB is Copyright, 2004 by Justin Hammond. 1. Prerequisites and Installation. OPSB is designed to run on Top of NeoStats. The Following requirements at the time of writting are required for NeoStats: * A Linux or BSD based Server or Shell. * A supported IRCd. Currently, Hybrid7, Unreal, Ultimate2.x, Ultimate3.x, NeoIRCd, Bahumat * Some basic Unix administration Skill * Of Course, a IRC network to connect it all together. Please refer to the NeoStats website for more information on the requirements OPSB itself requires the following: * NeoStats 2.5.8 or Higher correctly installed and Running * The time to read this entire document. Warning OPSB has the potential to Akill/Gline your entire network. Its strongly suggested that you read this entire document before even attempting to compile OPSB, as I'm just going to laugh, if you didn't read, and it AKILL's your entire network. This is Beta Software, there are BUGS. beware. 1.1. Compiling and Installation As long as you have successfully setup NeoStats, and installed it correctly, Compiling OPSB is very simple and straight forward. First you must extract the files from the download package. This is as simple as: bash$ tar -xzf OPSB-<ver>.tar.gz This should then create a directory called OPSB-<version> where <version> is the Version of OPSB. Then Proceed to Change into the OPSB directory, and run Configure as follows: bash$./configure [--enable-debug | --with-neostats=<dir>] --enable-debug is only usefull for diagnostics purposes when used in conjuction with debugging tools. There should be no need to use this option on a day to day basis --with-neostats=<dir> should be used if your neostats directory is not in a standard location (~/NeoStats/). Replace <dir> with the full path to your NeoStats installation directory (NOT SOURCE DIRECTORY) Configuring OPSB will look something like the following screen: [Fish@fish-dt]$ ./configure checking for gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking for a BSD-compatible install... /usr/bin/install -c checking for pcre_compile in -lpcre... yes checking Location of NeoStats...... /home/fish/NeoStats/ checking for /home/fish/NeoStats//include/dl.h... yes checking Version of NeoStats...... Compatible Version checking Whether to Enable Debuging...... no configure: creating ./config.status config.status: creating Makefile (*----------------------------------------------------------*) (| To compile your module, please type 'make' |) (| If make completes without errors, then you |) (| Must 'make install', but please be sure that NeoStats |) (| Is not currently running with a module of the same name |) (| Running, otherwise Make install will not work |) (| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |) (| If you are running a BSD, make install may produce a |) (| Error, if that is the case, then please manually copy |) (| opsb.so to the NeoStats/dl directory |) (| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |) (*----------------------------------------------------------*) (| For Support please visit: |) (| IRC: /server irc.irc-chat.org |) (| #neostats channel |) (| WWW: http://www.neostats.net/boards/ |) (*----------------------------------------------------------*) (|This Module was written by: |) (| fish (fish@dynam.ac) |) (*----------------------------------------------------------*) If the configuration did not produce a error, you may then move onto Compiling OPSB. Compiling is simply just issuing the "make" command (or "gmake" if you are running BSD): [Fish@fish-dt]$ make (cd libopm; make libopm.a) make[1]: Entering directory `/home/fish/opsb/libopm' gcc -c -O2 -Wall -I. -I.. compat.c gcc -c -O2 -Wall -I. -I.. config.c gcc -c -O2 -Wall -I. -I.. inet.c gcc -c -O2 -Wall -I. -I.. libopm.c gcc -c -O2 -Wall -I. -I.. list.c gcc -c -O2 -Wall -I. -I.. malloc.c gcc -c -O2 -Wall -I. -I.. proxy.c ar cru libopm.a compat.o config.o inet.o libopm.o list.o malloc.o proxy.o ranlib libopm.a make[1]: Leaving directory `/home/fish/opsb/libopm' gcc -c -O2 -Wall -I/home/fish/NeoStats//include/ -I. -Ilibopm opsb.c gcc -c -O2 -Wall -I/home/fish/NeoStats//include/ -I. -Ilibopm proxy.c gcc -c -O2 -Wall -I/home/fish/NeoStats//include/ -I. -Ilibopm opsb_help.c ld -shared -o opsb.so opsb.o proxy.o opsb_help.o libopm/libop m.a [1005|/home/fish/opsb] [Fish@fish-dt]$ Again, check for Error messages. As long as there are not error messages, "make install" will install OPSB, this README file, and any auxiluary files needed into your NeoStats directory: [Fish@fish-dt]$ make install (cd libopm; make libopm.a) make[1]: Entering directory `/home/fish/opsb/libopm' make[1]: `libopm.a' is up to date. make[1]: Leaving directory `/home/fish/opsb/libopm' ld -shared -o opsb.so opsb.o proxy.o opsb_help.o libopm/libop m.a /usr/bin/install -c -m 644 opsb.so /home/fish/NeoStats//dl/ /usr/bin/install -c -m 644 README.opsb opsb.S ettings /home/fish/NeoStats//dl/../doc/ [1006|/home/fish/opsb] If you recieve *ANY* errors at all during the this process, please post them on our Support boards, at http//www.neostats.net/boards/ Once Installation is complete, you can either configure NeoStats to load OPSB when it starts, or load OPSB via IRC. To Configure NeoStats to automatically load OPSB when it boots, add the following line to your "neostats.cfg" file in the NeoStats directory: LOAD_MODULE OPSB To load OPSB via IRC, you must make sure you have the appropriate permissions and issue the following command: /msg neostats load OPSB Thats it. OPSB is now loaded and ready for use (in fact, it will already be running now, but read on for futher information. 2. Basic Configuration OPSB is completly configured online via IRC. When you first start up OPSB, it attempts some "Sane" defaults for you to get started with, but you should always review these settings as soon as you install. Additionally, while its in this "Default" state, it will warn you every so often via a global message as well as messages to the services channel that it is still "unconfigured". Some of the settings that you may want to review right away are: * Exclusion Lists - You should setup a Exclude list for your IRC Services server (NickServ etc) * Target IP address and Ports that OPSB tries to get the proxies to connect to. * Default Ban Time when OPSB finds a open Proxy. These are outlined below: 2.1. Exclusion Lists Exclusion lists allow you to specify certian Hostmasks or Servers that should be excluded from monitoring by OPSB. This exclusion list would allow a administrator to say, allow users on that are matched against a open proxy, when the administrator has verified that the trojan does not in fact exist on the users host. Caution Exclusions should be setup for your Services Server, so that OPSB does not try to scan ChanServ, or NickServ, or any of the bots relating to Nickname protection. Adding a Entry To add a entry to the Exclusion list, use the following format: /msg OPSB exclude add <1/0> <type> <reason> Where: <host> = The HostName/Server or Channel name. WildCards ? and * are permitted. <type> = The type of exclusion. 0 is for HostNames, 1 is for Servers <reason> = a short description of the exclusion, for operator reference only. The output is as follows: >OPSB< exclude add services.irc-chat.net 1 Blah is my reason -OPSB- Added services.irc-chat.net (Server) exception to list Listing an Entry To list the Exclusions simple type: /msg OPSB exclude list And all the current exclusions are listed. Additionaly, a Position number is provided for use with the delete command. The output is as follows: >OPSB< exclude list -OPSB- Exception List: -OPSB- 1) *.blah.com (Server) Added by Fish for Blah is my reason -OPSB- 2) is.blah.com (HostName) Added by Fish for can by high -OPSB- End of List. Deleting an Entry To delete a entry, you should first lookup the Position of the entry that you wish to delete. The format of the command is as follows: /msg OPSB exclude del <num> Where: <num> is the position of the entry you wish to delete in the list The output of the command is as follows: >OPSB< exclude del 1 -OPSB- Deleted services.irc-chat.net server out of exception list 2.2. TARGET IP and TARGET PORT By default, OPSB sets up each proxy scan to attempt to connect back to the IP address and port of the server that NeoStats connects to. This may not always be what you wish, as it can help a attacker map our how your network is structured. Ideally, you should pick the IP address of a IRC server you host that is stable and on a fast connection, and enter its IP address and port numbers into OPSB. Changing the TargetIP To add a entry to the Helper list, use the following format: /msg OPSB set targetip <newipaddress> Where: <newipaddress> = The ip address to attempt to get proxies to connect to The output is as follows: -> *opsb* set targetip 203.208.228.144 =opsb= Target IP set to 203.208.228.144 Changing the Target Port To list the helpers simple type: /msg OPSB set targetport <newport> Where: <newport> = the new port to attempt to get proxies to connect to The output is as follows: -> *opsb* set targetport 6667 =opsb= Target PORT set to 6667 2.3. BanTime OPSB by default bans the IP/Hostname of a Open Proxy for 1 day (86400 seconds). Some networks may wish to increase or decrease this time value. Changing the Ban Time To change the akilltime, type: -> *opsb* set akilltime 86400 =opsb= Ban time changed to 86400 3. Detailed Configuration OPSB attempts to be as configurable as possible in order to cater for each individual networks requirements. This in turn though makes the configuration very complex. There are many many settings with OPSB that affect how it operates, how it responds and even, how affects the performance of NeoStats Overall. Out of the box, OPSB provides sensible defaults for these settings, but you may wish to read this section for details on exactly what each option does, and its affect on how OPSB operates. The following list summaries the available Options you can set in OPSB * CACHETIME * SCAN * AKILL * OPMDOMAIN * MAXBYTES * TIMEOUT * OPENSTRING * SPLITTIME * SCANMSG * PORTS To change any of these settings, you use the Set Interface in OPSB. Eg: /msg OPSB set <option> <params> To view the current settings, issue the following command: /msg OPSB set list The following Sections describes the different options, their params, and the effect on OPSB in detail. 3.1. CACHETIME Setting In order to improve performance, OPSB caches the results of scans it has performed so if a user disconnects and reconnects, they are not scanned again, and thus this saves bandwidth and improves the performance of OPSB. By default, OPSB saves previous scans for 1 hour. Smaller IRC networks may wish to increase this value, while larger IRC networks that are concerned about performance or memory usage of OPSB may with to leave this setting as it is. Setting the cache time to 0 disables the use of caching, and forces OPSB to scan every user connecting every time. To Change the setting, issue the following Command: /msg OPSB set CACHETIME <seconds> 3.2. SCAN Setting Sometimes a IRC administrator may wish to only make use of the Open Proxy list lookup, and not actually perform a scan on users. SCAN forces OPSB to only perform a lookup of the IP address in the configured OPMDOMAIN. If you wish to turn off Proxy checks, issue the following command /msg OPSB set SCAN <ON/OFF> 3.3. AKILL Setting Often, when setting up OPSB for the first time, or making changes to the ports that are to be scanning, you may wish to test OPSB without it actually performing a AKILL. Turning AKILL off disables the placement of a AKILL on open Proxy hosts. To Change the setting, issue the following Command: /msg OPSB set AKILL <ON/OFF> 3.4. OPMDOMAIN Setting This setting changes with domain OPSB should consult for a positive match on a particular IP address. By Default, OPSB checks opm.blizted.org. Another list may be substituted instead of the default on. At this time, we have not tested any other open proxy list, although most lists should work with no problems. Please report success/failure to our boards To Change this Setting, issue the following Command: /msg OPSB set OPMDOMAIN <newdomain> 3.5. MAXBYTES Setting Maxbytes controls how much data to read from a open connection before determining that the host in question does not contain a Open Proxy. As we check ports that are common with legitimate applications such as webservers, we don't need to download the entire webpage to determine that it is not a open proxy. By default, we only read 500 bytes which should be sufficient for most networks. To Change this Setting, issue the following Command: /msg OPSB set MAXBYTES <bytelimit> 3.6. TIMEOUT It is very common for users to now use personal firewall software on their PC. This often leads to probes the the users ip address that never actually get rejected or are successfull, but just hang trying to connect. the Timeout value controls how long to wait before assuming that the host is not operating a proxy. By default, we wait 30 seconds To Change this setting, issue the following command: /msg OPSB set TIMEOUT <seconds> 3.7. OPENSTRING This setting controls what strings to look for that indicate a Open Proxy. By default, we look for the standard string "*** Looking up your hostname..." which is one of the first messages sent to connecting IRC clients. There should be no need to change this setting. Internally, OPSB also scans for common Trottle or akill messages. To Change this setting, issue the following command: /msg OPSB set OPENSTRING <newstring> 3.8. SPLITTIME OPSB is very sensitive to timedrifts on the IRC network. In order to not scan users that might be part of a Netjoin (When two IRC servers reconnect after a Netsplit) we only scan users who's signon time is less than this setting. If your IRC network times are not in sync, you might experience issues where users connecting to one "lagged" out server are not scanning. In this case, you should fix the time on the affected server. A last resort is to increase this time value. By default, we only scan users that connected in the last 300 seconds To Change this setting, issue the following command: /msg OPSB set SPLITTIME <seconds> 3.9. SCANMSG Setting This setting changes the default message that is sent to users when they sign on the IRC network. You can customise this message to point to a webpage giving more details, or customize to your local language. To Change the setting, issue the following Command: /msg OPSB set SCANMSG <msg> 3.10. PORTS Setting The ports setting allows you to customize what ports and protocols are scanned when users connect to your IRC network. This can be used to detect proxies that are running on additional ports that OPSB does not scan by default. 3.10.1. Listing Ports/Protocols To list the current protocols and the assocated ports, issue the following command: /msg OPSB ports list And the following is displayed: >opsb< ports list -opsb- Port List: -opsb- 1) HTTP Port: 80 -opsb- 2) HTTP Port: 8080 -opsb- 3) HTTP Port: 8000 -opsb- 4) HTTP Port: 3128 -opsb- 5) SOCKS4 Port: 1080 -opsb- 6) SOCKS5 Port: 1080 -opsb- 7) WINGATE Port: 23 -opsb- 8) ROUTER Port: 23 -opsb- 9) HTTPPOST Port: 80 -opsb- 10) HTTPPOST Port: 8080 -opsb- 11) HTTPPOST Port: 8000 -opsb- 12) HTTPPOST Port: 3128 -opsb- End of List. 3.10.2. Adding Ports To add a additional port to scan with a particular protocol, use the following command: /msg opsb ports add <type> <port> Where: <type> is the type of Protocol to use. Either: HTTP HTTPPOST SOCKS4 SOCKS5 WINGATE ROUTER <port> is any valid port number between 1 and 65535 The change is imediate, and new users will have these ports scanned when they connect. 3.10.3. Deleting Ports If you wish to delete a port to be scanned, issue the following command: /msg opsb ports del <id> Where <id> is the ID number of the port/Protocol you wish to delete. ID can be obtained from a port listing command described above. OPSB requires a restart when deleting a port, so you should either restart NeoStats, or Reload the OPSB module. 4. Operational Commands OPSB has a number of commands that you can issue it in order to perform checks or operations on your IRC network. These commands aid Administrators in keeping their network secure, and keeping OPSB upto date. The following list summerizes these commands: * LOOKUP * INFO * CHECK * STATUS * REMOVE The following Sections Describe these commands in detail 4.1. LOOKUP Command The lookup comand can perform DNS lookups for you. You can specify what information you wish to retrive. This command is open to all users by default. The format of the command is as follows: /msg OPSB lookup <ip|hostname> <flag> Where: <ip|hostname> is the item you wish to lookup. <flag> is optional, and specified what type of data you wish to lookup. Available options include: txt - Lookup Text Records rp - Lookup the Responsible Person for this record ns - Lookup the Name Servers for this record soa - Lookup the SOA for this Record If no flag is given, we attempt to lookup the A record. The output of the command is as follows: -> *opsb* lookup irc.irc-chat.net =opsb= irc.irc-chat.net resolves to 202.181.4.129 =opsb= irc.irc-chat.net resolves to 203.208.228.144 =opsb= irc.irc-chat.net resolves to 216.218.235.254 =opsb= irc.irc-chat.net resolves to 66.227.101.55 4.2. INFO Command This command provides users with information about what functions OPSB performs. Its intended to just provide directions to users for more information The format of the command is as follows: /msg OPSB info 4.3. CHECK Command This command forces OPSB to perform a full scan on the specified nickname, ip adress or hostname. The format of the command is as follows: /msg OPSB check <nick|host> The output is as follows: =opsb= Checking fish for open Proxies <opsb> Starting proxy scan on Fish (XXXX.singnet.com.sg) by Request of Fish =opsb= Negitiation failed for protocol HTTP(80) =opsb= Negitiation failed for protocol HTTP(8000) =opsb= Negitiation failed for protocol HTTP(3128) =opsb= Negitiation failed for protocol SOCKS4(1080) =opsb= Negitiation failed for protocol SOCKS5(1080) =opsb= Negitiation failed for protocol WINGATE(23) =opsb= Negitiation failed for protocol ROUTER(23) =opsb= Negitiation failed for protocol HTTPPOST(80) =opsb= Negitiation failed for protocol HTTPPOST(8000) =opsb= Negitiation failed for protocol HTTPPOST(3128) =opsb= Closed Proxy on Protocol HTTP (8080) =opsb= Closed Proxy on Protocol HTTPPOST (8080) =opsb= scan finished on Fish =opsb= XXXX.singnet.com.sg does not appear in DNS black list 4.4. STATUS Command This command gives the Administrator statistics on the how OPSB is performing, how many checks it has conducted, and other information relating to the performance of OPSB. The format of the command is as follows: -> *opsb* status =opsb= Proxy Results: =opsb= Hosts Scanned: 5831 Hosts found Open: 1 Exceptions 0 =opsb= Cache Entries: 128 =opsb= Cache Hits: 5523 =opsb= Blacklist Hits: 4 =opsb= Currently Scanning 0 Proxies (0 in queue):
About
OPSB module for NeoStats
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published