среда, ноября 08, 2006

Краткая история "Проектов"


Чат является неотъемлемой частью любой домашней сети, наравне с Counter Strike, фильмами и дешёвым интернетом. В нашей сети, так уж вышло, прижился Intranet Chat с выделенным сервером. Судьба у этого чата, прямо скажем, непростая. Простой, дружелюбный интерфейс и отсутствие необходимости сложной настройки обеспечили этому чату в своё время большую популярность. Популярность эта, однако, пошла на спад с появлением так называемых "убийц" ичата. "Убийца" в среднем представлял собой нехитрое приложение, либо создающее огромное количество соединений с сервером и отправляющее кучу флуда, либо же использующее недочёты механизмов безопасности чата (а точнее их полное отсутствие) и позволяющее таким образом изменять имена других пользователей (чаще всего на обидные, а как же иначе?), отправлять сообщения от имени другого пользователя и совершать прочие бесчинства. Пресечь, или хотя бы даже отловить такие нарушения средствами стандартного сервера невозможно. Честь и хвала нашему администратору, он не пошёл по бесхитростному пути сноса сервера с последующей его заменой на какой-либо аналог. Он модифицировал исходники сервера таким образом, что атаки прекратились. Как выяснилось позже, изменения эти не гарантировали полной безопасности, но большинство scriptkiddies, как известно, отличаются полным отсутствием мозга, поэтому разобраться в причине неудачи и перенастроить или (о боже!) пере-собрать киллер им просто не хватило фантазии. Атаки прекратились.

Тем временем в нашей сети разворачивалась другая драма. Параллельно с Intranet Chat у нас также существовал и собственный IRC сервер, слинкованный с сетью IRC.BY. В тот момент в сети что-то не ладилось, и один из наших админов решает переводить пользователей из IRC.BY в "другую" сеть :-) Естественно, нашлись люди, которых это не устроило. В результате в сети появилось два сервера, слинкованные с различными сетями. Отношения между сетями тоже не были гладкими, не являются они гладкими и по сей день. Между сторонниками сетей завязалась конфронтация. Одним из аргументов в пользу "другой" сети было наличие двух сервисных ботов: бота, сообщающего о последних новостях с форума и бота, являющегося гейтом из IRC в Intranet Chat.

Первоначально автор не включался в активное противостояние. Ну есть выход в ещё одну сеть - ну и ладно. То, что пользователей в неё буквально тащили, возмущало конечно, но до определённого предела. Со временем наличие двух серверов стало данностью и автором была предпринята попытка эти сети "подружить". В рамках эксперимента по туннелированию был создан бот, ретранслировавший сообщения новостного бота из одной сети в другую. Можно себе представить, отзывы какого плана были получены. Красный от негодования, автор удалился для создания "патентно чистого" образца. Через пару дней был готов Spoiler, а еще через несколько - первый прототип iRCha, а также добрая часть IChatAPI и IChatBot. Причиной того, что боты были реализованы на Java была в первую очередь профессиональная специализация, и не в последнюю очередь нелюбовь к скриптовым языкам, наподобие TCL.

Но мало создать гейт - его нужно было сделать "лучше". Так гейт, получивший название iRCha, стал обрастать дополнительными функциями, и всё чаще звучали вопросы пользователей о том, почему же в списках пользователей канала не виден список пользователей ичата. Автор задумался над идеей создания полностью "прозрачного" гейта. Подумав, он пришел к выводу, что ничего принципиально невозможного здесь нет, необходимо лишь создание контролируемых ичат и ирк серверов и прослойки между ними.

Таким образом начал оформляться проект Scepsis. С развитием Scepsis выделились в отдельную ветку проекты IChatAPI и IChatBot. Проект стал жить и развиваться. Выяснилось, что большинство уязвимостей Intranet Chat легко устраняются. Те же проблемы, устранить которые не удаётся, присущи в большей или меньшей степени всем серверным приложениям. Появилась версия, поддерживающая фильтры, спецификации и действия. Реализован мат-фильтр (одно из наиболее спорных и обсуждаемых нововведений в сети). На данный момент сервер очередной раз близок к завершению, реализуется request пользователей о линковке серверов. После чего можно, наконец, приступать к созданию IRC сервера на Java. Потому что существующие автора не устраивают :-)

2 комментария:

Анонимный комментирует...

Нда уж. Никогда не забуду все эти "запусти", "перезапусти", "вышли лог", "поправь конфиг" ... :) Хе-хе, но зато могу похвастаться малиньким участием в этом неплохом деле :) Вобщем жду-недождусь когда же появится сервер с возможностью линковки.

/**
 * @author anklav
 */

Complete комментирует...

Когда проект оставляет в чьей-то жизни незабываемые моменты - это неплохо, я думаю :-) Вообще приятно, когда твоя работа на жизнь как-то влияет. С рабочими проектами влияние это какое-то очень уж опосредованное. А тут что-то напишешь, запустишь - и жизнь закипела. Какая движуха была с введением мат-фильтра!.. А какой эффект был у announcer'а!.. :-)