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 тысяч пользователей.
Конфигурация
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'.
См. также
- Сравнение IRC серверов
- OpenServ
Ссылки
- irc.org — IRC ресурсы (англ.)
- Технические сравнения механизмов защиты от захвата: TS и никнейм задержка (англ.)
- DarkFire IRC Мануал (англ.)
- Undernet K-Line и G-Line FAQ Архивная копия от 1 апреля 2008 на Wayback Machine (англ.)
- EFnet FAQ (англ.)
- Quakenet Общий FAQ G/K-Line
- GLine, KLine, QLine and ELine синтакс
Примечания
- Использование сети IRC-серверов Архивировано 26 февраля 2007 года. (англ.) (Дата обращения: 7 июля 2008)
- IRC Operator Version 1.1.2
- RFC 1459