Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #78, ИЮНЬ 2005 г.

IRC-плацдарм для ботов

Докучаев Дмитрий aka Forb

Хакер, номер #078, стр. 078-076-2


После распаковки архива можешь смело запускать ./Config. Сценарий задаст тебе несколько вопросов, и здесь тебе не надо особо задумываться над ответами. Скажу лишь, что необходимо собрать ircd в режиме хаба (главный сервер, к которому будут прилинкованы остальные) либо в режиме лифа (ведомый сервер, впоследствии залинкованный к хабу). Также следует определить пути к каталогу, где будет находиться IRCD, и выбрать имя самого демона. К этому вопросу нужно отнестись творчески. Допустим, у тебя нет рут-прав, и администратор каждый день бдит в консоли. Тогда разумнее задать путь в виде /tmp/.mc-root либо указать другой каталог, сливающийся с соседними.

Следующим шагом надо бы запустить команду make. Однако не будем торопиться со сборкой демона. Прежде чем заняться компиляцией, переопределим некоторые дефолтные пути. К примеру, для маскировки определимся, что бинарник ircd будет находиться в каталоге /tmp/.mc-root и называться inetd или другим невзрачным именем. Необходимо помнить, что по умолчанию конфиг-файл для ирки назван unrealircd.conf, но нам это название не подходит, лучше переименуем конф в /tmp/php-11223344 (или другой номер, подобный тому, что находится в /tmp). Откроем файл include/config.h и найдем переменную CPATH. Затем изменим ее значение на указанное выше, а также поменяем все пути, которые могут понадобиться (путь к motd и т.п.). Теперь стоит рассказать еще об одном неприятном моменте: для маскировки ip-адресов (а мы, ясное дело, их будем скрывать) используются модули cloak.o и commands.o. Путь к ним объявляется в конфе и может быть любым. Но вся беда в том, что перед загрузкой модули помещаются в папку tmp и называются произвольным именем. Нам такого палева не надо, поэтому открываем файл src/modules.c и изменяем все встречающиеся слова «tmp/» на «/tmp/.mc-root/». Теперь будь уверен, что модули перед загрузкой скопируются в этот каталог. Только не забудь создать эту директорию перед запуском демона :).

И еще один предкомпиляционный штрих. Найди переменную SHOW_INVISIBLE_LUSERS в хидере config.h и андефни ее. Это поможет скрыть пребывание твоих ботов на ircd, если кто-нибудь решит выполнить команду /lusers.

Все! Теперь можно смело собирать демон командами make и make install. После этого в каталоге /tmp/.mc-root появится ряд файлов и каталогов. Удаляй все, кроме бинарника inetd. Затем перенеси модули cloak.o и commands.o в оговоренную ранее папку, а также возьми example.conf из дистрибутива UnrealIRCD (каталог doc). Пожалуй, теперь все готово для редактирования конфига.

[параноидальная настройка конфига]

Конфиг от UnrealIRCD состоит из нескольких независимых блоков. В каждый могут быть внесены подблоки, а также переменные и их значения. Самое первое, что необходимо сделать, это прописать инклуды на модули. Раскомментируй соответствующие строки и радуйся жизни :). Затем заполняется блок me {}. В нем находится информация о IRC-сервере. Думаю, понятно, что домашний адрес и телефон ботмастера мы давать не будем. Ограничимся лишь заданием трех переменных: name со значением «irc.sweetly.net» (или любым другим дружелюбным именем, необязательно существующим в сети), info, имеющую значение «Sweetly IRC Server», а также numeric — уникальный номер сервера. Надо заметить, что у всех серверов, находящихся в одной IRC-сети, не должно быть совпадающих номеров. Иначе они попросту не залинкуются.

Назад на стр. 078-076-1  Содержание  Вперед на стр. 078-076-3