IRCd

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

IRCd (демон Internet Relay Chat) — сервер, который обслуживает протокол Интернет-чата (IRC), позволяя людям общаться друг с другом по Интернету (что предусматривает обмен текстовыми сообщениями в реальном времени).

Сервер принимает соединения от IRC-клиента с определённого порта. Когда сервер является частью IRC-сети, он также поддерживает соединения с другими серверами/демонами.

Термин ircd изначально относился к одной единственной разновидности программ, но в конечном счёте стал относиться к любой реализации IRC-демона. Однако, оригинальная версия до сих пор распространяется под тем же именем.

История[править | править вики-текст]

Автором термина является Ярко Ойкаринен (WiZ в IRC) с 1989 г.

В первых версиях протокола IRC не поддерживал многие сегодняшние свои функции, такие как именованные каналы и их операторы. Каналы нумеровались, а нулевой канал означал отсутствие соединения.

Уже в версии 2.5 каналы получили имена, а в 2.7 полностью заменили номера и появилась возможность банов (режим +b). Версия 2.7 ознаменовалась разногласиями, повлёкшими возникновение EFNet-а. В irc2.8 добавлены «&channels» (каналы, которые есть только на данном сервере, а не во всей сети) и «!channels» (которые теоретически безопасны от захвата), эта версия является базисом, из которого и образовались все текущие реализации.

Особенности[править | править вики-текст]

Порт[править | править вики-текст]

Официально для IRC был назначен порт 194 («irc»), 529 («irc-serv») и 994 («ircs»). Однако, эти порты находятся в привилегированном диапазоне (0-1024), который на Unix-подобных системах означает, что демон будет должен иметь привилегии администратора (superuser), чтобы открыть порты. В целях безопасности это бывает непозволительно.

Обычно порты для IRCd процесса от 6665 до 6669, а по умолчанию 6667. Они могут быть открыты программами любого пользователя и поэтому широко используются.

Несколько соединений[править | править вики-текст]

Запуск IRC сервера, который обычно обслуживает несколько тысяч пользователей одновременно, требует поддержания большого количества TCP соединений, открытых долгий период, поэтому некоторые ircds многопоточны.

В результате лучшими платформами для ircd являются те, которые предлагают эффективные механизмы обработки большого количества соединений на одном потоке. Linux предлагают такую возможность в виде epollа, в ядре позднее 2.4.x. FreeBSD (с 4.1) предлагает kqueue. У Solaris /dev/poll с версии 7. Различия между этими новыми интерфейсами могут быть критическими. Кодеры IRCU упоминали увеличение практической вместительности сервера с 10 до 20 тысяч пользователей.

SSL[править | править вики-текст]

Некоторые IRCd поддерживают SSL, для остальных до сих пор возможно использование универсального туннеля Stunnel. Не официально, но наиболее часто используемый порт для SSL IRCd соединений 6697.

IP[править | править вики-текст]

IRC демоны поддерживают IPv4, а некоторые также IPv6.

Конфигурация[править | править вики-текст]

Jupe[править | править вики-текст]

IRC jup-ингом обычно называется блокировка названного канала или ника на сервере или сети или сервера сети.

Jup-ингом ника или сервера обычно полезна когда определённые индефикаторы уникальны; используя индефикатор, можно обзавестить эксклюзивным правом на имя, что никто из пользователей не сможет извлечь из него выгоды.

На практике операторы IRC используют юпы чтобы делать каналы или ники недоступными [1] Юпом канала называется бан канала, то есть к нему нельзя будет присоединиться при соединении с сервером, но другие серверы могут позволить пользователю это сделать. Так можно заблокировать проблематичные каналы.

O-line[править | править вики-текст]

O-line, сокращение от линия оператора (Operator Line), это строчка кода в конфигурации демона, которая устанавливает какие пользователи могут стать операторами и какие привилегии они тогда получат. O-line устанавливает ник, пароль, флаги оператора и маску хоста определённого оператора. У сервера может быть много O-line в зависимости от нужд сервера и сети[2].

Флаги оператора описывают его привилегии. Некоторые операторы могут быть назначены на сетевой роутинг, другие следят за порядком.[3] Доступные флаги различаются в зависимости от демона, которым вы пользуетесь. Чем больше возможностей в демоне, тем больше флагов, а у традиционных серверов их меньше.

Можно также установить ограничение хоста по маске или IP-адреса. В таком случае у оператора должен быть статический IP, но это будет более безопасно.

K-Line[править | править вики-текст]

k-line или kill line (также k:line) это термин, применённый к определённому пользователю. Занесение пользователя в k-line означает бан на этом сервере, либо на определённое время, либо на совсем. Таким пользователям запрещается соединяться с сервером. Такие строки начинаются с буквы К в файле конфигурации.

Другие параметры[править | править вики-текст]

G-Line/AKill[править | править вики-текст]

Gline или AKill это глобальный сетевой бан.

Z-line[править | править вики-текст]

В некоторых IRCds, таких как UnrealIRCd, Zline похож на g-line, но применяется к IP диапазону клиента и считается крайней мерой. Так как Zline не имеет проверки имён пользователей (identd) или резолва хоста, его можно применить к пользователю до того, как он пошлёт какую-либо информацию при соединении. К тому же Zline более эффективна и использует меньше ресурсов, чем Gline и Kline при бане большого количества пользователей. Так как не все IRCd однинаковы, а такие как Charybdis, используют 'Dline' вместо Z.

Q-line[править | править вики-текст]

На некоторых IRCd, например UnrealIRCd, Qline запрещает ник или их группу по маске. Это наиболее часто используется для запрета сервисных ников (таких как 'X', или NickServ) или запрета использования ников операторов не операторами. Некоторые демоны разрывают соединение, когда пользователь использует ник из Qline, а другие требуют изменения ника, или ничего не делают, пока пользователь не соединится ещё раз. В Charybdis для этого используется 'Xline'.

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]

Примечания[править | править вики-текст]