Как стать автором
Обновить

Поднимаем свой IRC-bouncer

Время на прочтение12 мин
Количество просмотров3.9K
Привет, Хабр!

В этом посте я попытаюсь подробно (даже картинки будут) показать и рассказать как поднимать свой баунсер.

Ба́унсер (англ. bouncer, bnc) — программа, позволяющая скрыть реальный адрес в IRC. Пользователь подключается к находящемуся на другом компьютере баунсеру, который в свою очередь подключается к IRC-сети под видом IRC-клиента. В результате в IRC-сети виден не реальный адрес пользователя, а адрес того сервера, на котором установлен баунсер. Фактически баунсер используется как прокси-сервер, в том числе для «обмана» тех сетей, в которых запрещены прокси. Но это не самое главное их преимущество.

Т.е. фактически главное предназначение баунсера — скрыть реальный IP-адрес пользователя, и хранить логи с канала, когда юзер не подключен до IRC-сервера.
image
Самыми популярными баунсерами являются psyBNC, ezbounce и ZNC.
В этом посте я подробно остановлюсь на psyBNC.



PsyBNC, этот IRC-прокси умеет:
  • Скрывает IP-адрес
  • Сохраняет каналы, на которых находился пользователь до выхода из IRC
  • Сохраняет приватные сообщения, а также, которые оставлены во время его отсутствия.
  • Поддерживает доп. модули (скрипты)
  • Поддерживает SSL
  • Работает под Linux, FreeBSD, SunOs, Solaris и Windows
  • IPv6, DCC, и много чего другого
Ставить bouncer будем на сервак (с выделенным IP), который работает под ОС Windows, а так же затронем основы того, как поставить на *nix.
Я выбрал версию 2.3, т.к. она единственная мне подошла…

Для Windows скачивать его надо отсюда:
www.psybnc.at/download/windows/psybnc2.3.v6.exe
download psybnc

Теперь приступаем к установке psybnc:
image

После успешной установки, переходим в папку psybnc:
image

Для *nix необходимо выполнить последовательность команд:
 wget www.psybnc.at/download/beta/psyBNC-2.3.2-6.tar.gz
 tar -zxvf psyBNC-2.3.2-6.tar.gz
 rm psyBNC-2.3.2-6.tar.gz
 cd psybnc
 make menuconfig
 make
 make clean
 make menuconfig

image

Для начала нам нужно настроить конфиг. Он лежит в файле psybnc.conf.
Вот содержание этого файла с подробным описанием каждого елемента:

// порт, на котором будет виcеть баунсер
PSYBNC.SYSTEM.PORT1=3184
// имя нашего баунсера
PSYBNC.SYSTEM.ME=uasc
// IP, на котором будет висеть баунсер
PSYBNC.SYSTEM.HOST1=*
// список разрешенный ИП для подключения, через ","
PSYBNC.HOSTALLOWS.ENTRY0=*;*

// логин юзера
USER1.USER.LOGIN=test
// пароль (сейчас он закодирован)
USER1.USER.PASS=='c1`'h0p1A'2'R`L0s
// права: 1=админ, 0=простой юзер
USER1.USER.RIGHTS=1
// 1="тихий" режим соединения
USER1.USER.QUITTED=0
// DCC: 1=вкл, 0=выкл
USER1.USER.DCCENABLED=1
// auto-idle
USER1.USER.AIDLE=0
// когда отсоединяешся юзер от ирки, баунс остается на канале
USER1.USER.LEAVEQUIT=0
// авто соединение после кика
USER1.USER.AUTOREJOIN=1
// принимать системные сообщения
USER1.USER.SYSMSG=1
// сообщение, когда юзер покидает канал
USER1.USER.LEAVEMSG=buy buy
// реальное имя пользователя (показывается в whois)
USER1.USER.USER=test
// ник, когда юзер афк
USER1.USER.AWAYNICK=y
// vhost
USER1.USER.VHOST=test.google.com
// ник
USER1.USER.NICK=test
// сервер, на который подсоединятся баунсеру
USER1.SERVERS.SERVER1=irc.server.com
// порт сервера
USER1.SERVERS.PORT2=6667
Меняем эти настройки под себя.

Один маленький ньюанс при установке своего пароля (USER1.USER.PASS).
Допустим, вы хотите поставить пароль: testme
Для этого нужно прописать в конфиге:
USER1.USER.PASS=testme

После запуска баунсера, пароль будет закодирован и в закодированном виде изменен в конфиге.

А теперь попробуем запустить наш баунсер на Windows…
Лучше это сделать через консоль (пуск > выполнить > cmd), чтобы в случае чего увидеть причину закрытия баунсера.
Запускаем…
image

И на никсах командой:
./psybnc
image

В консоле Вы увидете PID процесса, под который работает баунсер и порт на котором «висит» баунсер.

Убить процесс можно двумя способами:
  • Через taskmng
    image
  • taskkill /PID 123 < де 123 — PID вашего процесса
Если нету никаких ошибок, значит баунсер запущен!

Проверить это можно, даже не заходя в ирц-клиент, просто перейдите по http на адресс вашего сервера:
image
Видем, что все действительно работает!

Баунсер мы запустили, теперь подсоеденимся к нему.
Я покажу на примере mIRC.

Для начала добавим сервер:
File > Select Server (Ctrl+E) > Add >
image

Теперь прописиваем свой ник и identd:
/nick usernick
/identd on usernick
image

Подсоиденимся:
/server 111.222.333.444:5555 password
  где:
    111.222.333.444 — IP на котором висит баунсер
    5555- порт на котором висит баунсер
    password — USER1.USER.PASS

При успешном подсоединении должны увидеть:
image

Сервер может попросить ввести пароль:
image

Если Вы все правильно сделали, после ввода команды /quote pass баунсер подсоединится к вашему серверу (USER1.SERVERS.SERVER1):
image

Для добавления своего сервера, выполняем команду:
/addserver irc.site.com:12345
image
После добавления сервера, в psybnc.conf будет добавлен ваш сервер:
image

Вот и все собственно…
Ещо расскажу про самые нужные команды в psybnc:

/brehash перезапуск баунсера со сменой содержимого hash-файла
image

/madmin nick добавляет юзера с ником nick в админы
image

/adduser nick добавляет юзера с ником nick. пароль генерирует рандомно сам.
image

/deluser nick удаляем юзера с ником nick
image

/nameboucer name изменяет имя вашего баунсера
image

/sockstat статистика соединений к баунсера в реальном режыме
image

/bwho показывает, кто сейчас сидит на нашем баунс-сервере
image

И ещо пару команд (без скриншотов):
/PASSWORD     - Сменить пароль от вашего BNC аккауна.
/BWHO         - Вывести всех пользователей данного BNC сервера.
/BVHOST       - Устанавливает виртуальный хост на вашем BNC аккаунте (Если на сервере ои имеются).
/PROXY        - Установить прокси для соединения с IRC. Поддерживаемые типы прокси: SOCKS4, WinGate и Webproxys.
              Пример: /PROXY proxy.mydomain.com:8080
/SETUSERNAME - Меняет ваше "Реальное имя"
/SETAWAY     - Установить away причину, которая будет автоматически применяться при отключении от BNC.
               Например: /SETAWAY eating И при /whois вы увидите: yournick is away: eating
/SETLEAVEMSG - Установить сообщение, которое будет отправлено на все каналы при отключении от BNC.
               Например: /SETLEAVEMSG sleeping и на канале вы увидите: yournick is away (sleeping)
/LEAVEQUIT   - Если установить 1, ты BNC автоматически покинет все каналы при отключении от нее.
/SETAWAYNICK - При отключении от BNC вы измените свой ник на установленный.
/JUMP        - Пробует подключиться к следующему серверу из списка.
/BQUIT       - Отсоединиться от текущего IRC сервера.
/BCONNECT    - Соединяется с IRC сервером, если сделан /BQUIT
/AIDLE       - anti-idle при вашем отключении от BNC. Пример /AIDLE 1 для включения.
/AUTOREJOIN  - Включает или выключает автоматический перезаход на каналы после kick'a. Например: /AUTOREJOIN 1
/ADDSERVER   - Добавить IRC сервер в ваш список. Пример: /ADDSERVER irc.xhackers.ru :6667
/DELSERVER   - Удалить IRC сервер из списка серверов (/LISTSERVERS) Например: /DELSERVER 1 где 1 номер сервера в списке.
/LISTSERVERS - Вывести список ваших IRC серверов для соединения.
/ADDNETWORK  - Добавить IRC сеть на ваш аккаунт.
/DELNETWORK  - Удалить IRC сеть с вашего аккаунта.
/SWITCHNET   - Установить в качестве главной IRC сети другую.
/ADDOP       - Добавить пользователя в свой список Опов.
             Пример: /ADDOP #chan newpass:*!*@this.is.elite.host.com.
             Если параметр #chan не указан, то пользователь сможет получить статус оператора на любом канале,
             на котором присутствует ваша BNC.
/DELOP       - Удалить пользователя из своего списка Опов.
/LISTOPS     - Вывести список пользователей, которые могут получить Оп от вашего BNC.
/ADDAUTOOP   - Добавить пользователя, которому будет автоматически выдан статус Оператора при заходе на канал.
             Пример: /ADDAUTOOP #leet :*!*blah@*.lame.com - Выдаст Оп всем входящим на канал #leet с маской *!*blah@*.lame.com
/DELAUTOOP   - Удалить пользователя из своего списка автоопов.
/LISTAUTOOPS - Вывести список пользователей, которые полачают Оп при заходе на канал от вашего BNC.
/ADDBAN      - Вы можете банить людей на канале, даже если вы не присутствуете на своем BNC.
             Пример: /ADDBAN Get Lost Lamer ! :*!niky@lamers.land.com
/DELBAN      - Удаляет BAN из вашего списка банов. Например /DELBAN 2
/LISTBANS    - Выводит список ваших банов.
/ADDASK      - BNC может "просить" у добавленного вами бота оп, если вы не подключены к BNC.
             Например: /ADDASK lamepass :*!LameBot@Lame.Host.Com
/DELASK      - Удаляет запрос Опа у бота. Например: /DELASK 12
/LISTASK     - Выводит список всех добавленных ботов для запроса опа.
/ADDIGNORE   - Добавляет хост в игнор лист.
             Например: /ADDIGNORE * :*!*@*.lao.com добавит в игнор всех пользователей с маской *!*@*.lao.com на любые слова.
             Также: /ADDIGNORE sex :*!*@* добавит в игнор всех, кто будет упоминать слово sex, т.е. это слово будет игнорироваться.
/DELIGNORE   - Удаляет хост из вашего игнор-листа. Например: /DELIGNORE 2
/LISTIGNORES - Выводит ваш игнор-лист.
/ADDDCC      - Добавить DCC-соеденение с ботом. Пример: /ADDDCC MyBot newbie MyPass :the.elite.newbie.com:7333
/LISTDCC     - Список всех добавленных DCC соединений.
/DELDCC      - Удалить DCC из вашего списка. ПРимер /DELDCC 4
/DCCCHAT     - Запрос DCC-chat'a у пользователя, и ожидание его подтверждения пользователем.
/DCCANSWER   - Разрешить DCC Chat от ника, если он послал запрос на Chat.
/DCCENABLE   - Включить или выключить DCC-Chat и Send-Handling на вашем BNC аккаунте.
/DCCSEND     - Послать файл указанному нику.
/DCCGET      - Принять файл от пользователя. Файл сохранится в downloads/USERnn
/DCCSENDME   - Послать пользователю BNC файл. Если он подтвердит, то файл будет отправлен.
/AUTOGETDCC  - Включить или выключить автоприем посылаемых вам файлов через DCC. По умолчанию выключено. Пример: /AUTOGETDCC 1
/DCCCANCEL   - Отменяет DCC Chat или Приём файла от пользователя.
/PLAYPRIVATELOG - Вывести лог с сообщениями. Когда вы отсутствуете на BNC все приваты и нотисы записываются в лог.
/ERASEPRIVATELOG - Очистить лог приватных сообщений и нотисов.
/ADDLOG      - Добавить источник лога/фильтр. Пример: /ADDLOG #leet :0day - будет вести лог на канале #leet с встречаюзимся словом 0day
/DELLOG      - Удалить источник лога из вашего списка (/LISTLOGS).
/LISTLOGS    - Вывести список всех ваших источников логов/фильтров.
/PLAYTRAFFICLOG - Показывает траффик-лог.
/ERASETRAFFICLOG - Удаляет траффик-лог.
/ENCRYPT     - Расшифровывает разговор указанному каналу/пользователю.
/DELENCRYPT  - Удаляет расшифровку по номеру.
/LISTENCRYPT - Список всех расшифровок.
/TRANSLATE   - Добавляет переводчик в/из канала/пользователя.
/DELTRANSLATE - Удаляет переводчик по номеру.
/LISTTRANSLATE - Показывает список переводчиков.


Админские команды:
/BREHASH     - Перезагружает прокси и сбрасывает все соеденения.
/MADMIN      - Дает пользователю права администратора BNC.
/UNADMIN     - Снимает с пользователя права администратора BNC.
/BKILL       - Закрывает соединение пользователя с прокси.
/SOCKSTAT    - Показывает/записывает текущие соеденения.
/ADDUSER     - Создать нового пользователя.
/DELUSER     - Удалить пользователя.
/NAMEBOUNCER - Дает имя вашему BNC серверу. (Необходимо для линковки)
/LINKTO      - Добавляет линк с BNC на указанные хост/порт.
/LINKFROM    - Добавляет линк с BNC от вашего сервера.
/RELAYLINK   - Принимает или запрещает линки к вашему или от вашего BNC.
             Например /RELAYLINK name :1 Где name имя BNC. Цифра 0 отключает, а 1 включает линк с BNC.
/DELLINK     - Удаляет линк с BNC.
/LISTLINKS   - Показывает весь LINK-List вашего BNC.
/RELINK      - Сброс линка с BNC. Например /RELINK 1
/PLAYMAINLOG - Выводит лог соеденения.
/ERASEMAINLOG - Удаляет лог соеденения.
/ADDALLOW    - Добавляет хост в список возможных соеденений.
/DELALLOW    - Удаляет хост из списка возможных соеденений.
/LISTALLOW   - Показывает список возможных соеденений.
/SRELOAD     - Перезагружает скрипты.
/LISTTASKS   - Показывает текущие запущенные задачи.
/SETLANG     - Ставит язык (глобальный).
/BHELP       - Выводит список всех доступных команд BNC. Или более подробная информация по указанной команде.


Буду рад ответить на Ваши вопросы, и помочь Вам =)

itspoma © 2010
Теги:
Хабы:
Всего голосов 20: ↑11 и ↓9+2
Комментарии13

Публикации

Истории

Ближайшие события

2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань