BOPM

From NeoWiki

Blitzed Open Proxy Monitor (BOPM) [1] is a piece of software created to scan hosts for open ports and against DNS blocklists (DNSBLs.)

This article will help a server administrator compile and configure BOPM to work with UnrealIRCd. It does not, however, include details on how to activate BOPMs port scanning features.

We urge you to please install BOPM, as soon as possible, since it will marginally disrupt spammers from evading bans via open proxies and Tor. Technically, only one BOPM is necessary for the whole network but we should run one on each server in case of netsplits.

There might be pre-built BOPM packages (binaries) available for your operating system. If your OS has a package, by all means, USE IT. Just scroll to BOPM#Configuration after you have installed the pre-built package for help with configuring BOPM.

This is just a guide. Don't trust it with your life. We don't know anything and we certainly do not take any responsibility for your BOPMs, god(s), the feds, your ISPs, or anyone else's (lack of) actions.

Contents

[edit] Before installing...

This section details what should be done prior to compiling bopm.

create user bopm and its home directory

Before we create the user bopm we'll need to drop into a root shell.

su -
useradd -d /home/bopm bopm
mkdir /home/bopm
chown bopm /home/bopm

At least take one of the below actions to increase the security of your system.

Restrict Access via SSH

Restricting 'bopm's access via SSH[2] is not necessary but might be useful. It will prevent direct remote access to user bopm.

add a password

You might want to must add a user password for bopm. The following assumes you are still the root user.

passwd bopm

[edit] BOPM Installation

In this section we will download, untar, and compile bopm from source.

Switching to user bopm

su bopm
cd

Download bopm

wget http://static.blitzed.org/www.blitzed.org/bopm/files/bopm-current.tar.gz

this is symlinked to the latest listed on the BOPM wiki

untar bopm

tar xvvf bopm-current.tar.gz

move to the bopm directory this depends on what the current version is

cd bopm-3.1.3/

read INSTALL and configure help you may find some interesting information

less INSTALL
./configure --help | less

./configure compile and put it in $HOME/bopm

./configure && make && make install

[edit] Configuration

[edit] bopm.conf

The following details how to install our bopm configuration file.

cd /home/bopm/etc/
mv bopm.conf bopm.conf.old
wget -O - http://ericoc.com/bopm.conf > bopm.conf

You will need to modify this file to change your BOPMs

  • opername and operpass (line 46),
  • nickname (line 25),
  • channel key (line 62),
    • PM someone in #neoturbine but don't expect a response
  • NickServ user/password (line 43),
    • If you haven't registered your bopm's nickname with NickServ comment it out
  • If you've installed bopm from a binary package you will need to change where the bopm.pid is located. (line 8)

We suggest that you use the nano text editor because it is very easy to use.

nano bopm.conf

[edit] unrealircd.conf

This details what to add to your unrealircd.conf. Don't forget to switch to the unrealircd user before you modify this file!

su unreal
cd ~/path/to/unreal
nano unrealircd.conf
oper bopm {
        class clients;
        from {
                userhost bopm@127.0.0.1; # the reason why BOPMs vhost is 127.0.0.1
        };
        password CHANGETHISVALUE;
        flags {
                netadmin;
                can_zline;
                can_gkline;
                get_host;
        };
};

[edit] Starting

starting bopm for the first time

While logged in as user bopm just run the binary. It should automatically run in the background.

/home/bopm/bopm/bin/bopm

Make it start up automatically on boot

To make bopm run automagically, the lazy way, we will modify the rc.local (or similar script.) The location of this file may vary depending on your operating system, so we have listed a few common ones here. If your OS has it in a different location, and you know of it, please update our list.

Gentoo

echo su -c /home/bopm/bopm/bin/bopm bopm >> /etc/conf.d/local.start

Archlinux

echo su -c /home/bopm/bopm/bin/bopm bopm >> /etc/rc.local

Slackware

echo su -c /home/bopm/bopm/bin/bopm bopm >> /etc/rc.d/rc.local

Debian/Ubuntu

# You should use the BOPM package in Debian's Repositories!

Remember: If there is an exit line at the end of your rc.local (or similar) script, make sure you put this command BEFORE it, otherwise the script will end before bopm will get a chance to run.

For example:
exit 0
#blah blah blah
Becomes:
#blah blah blah
exit 0

Alternative method - bopmchk

This method uses cron to check if bopm is running every ten minutes.

As user bopm:

cd /home/bopm/bopm/bin && wget http://static.blitzed.org/www.blitzed.org/bopm/files/release/contrib/crontab/bopmchk

Open an editor and change line 24 to:

cd /home/bopm/bopm

the directory where bopm is located

Then as bopm run "crontab -e" to add the following line:

0,10,20,30,40,50 * * * * /home/bopm/bopm/bin/bopmchk >/dev/null 2>&1

This checks if bopm is running every ten minutes

[edit] More information/ Links

Support

Ask in the channel if you need help but don't expect responses ASAP. If you do not run a server on NeoturbineNET IRC please don't contact us for help.

DNSBL Related Information

Sample Configurations

Please don't blindly use these (or even our) bopm.conf. Make sure you know what each line of the configuration file does before launching it in a "production environment".