Протокол SILC обеспечит вам безопасную конференц-связь::Журнал СА 9.2005
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

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

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6236
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6943
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4229
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3014
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3811
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3827
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6323
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3174
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3466
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7283
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10649
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12370
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14004
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9130
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7083
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5392
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4619
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3431
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3160
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3405
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3029
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Протокол SILC обеспечит вам безопасную конференц-связь

Архив номеров / 2005 / Выпуск №9 (34) / Протокол SILC обеспечит вам безопасную конференц-связь

Рубрика: Безопасность /  Сетевая безопасность

Сергей Яремчук СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС

Протокол SILC обеспечит вам безопасную конференц-связь

Передача информации надежно защищена виртуальными частными сетями, почта передается в зашифрованном виде, доступ к закрытым данным на веб-сервере компании организован исключительно при помощи https. Все сделано? Нет, не все.

Современный бизнес невозможно представить без современных технологий. Мобильная связь и электронная почта пришли на смену селекторным совещаниям. Хорошо в эту группу вписались и средства обмена сообщениями, поддерживающие различные протоколы AIM, ICQ, Yahoo, MSN, IRC, Jabber, Zephyr и даже такой малоизвестный, как Gadu-Gadu. Правда, у нас наибольшей популярностью пользуются ICQ, Jabber и IRC.

Но если сервер, реализующий один из этих протоколов, стоит внутри контролируемой администратором сети, еще можно избежать проблем. А вот когда пользователь вынужден общаться с офисом с чужого компьютера, например из интернет-кафе, в этом случае весь разговор можно свободно перехватить. Кроме того, известны и атаки, использующие средства обмена сообщениями [1]. Конечно, некоторые реализации поддерживают шифрование, и в этом случае можно избежать проблем. Например, Jabber может быть настроен с поддержкой SSL для обмена между клиентом и сервером, плюс немало клиентов поддерживают шифрование с помощью GPG внутри протокола. Но при этом очень часто кодируются только данные, передаваемые в сообщении, и только в тех сетях, где используется шифрование, оставляя открытой работу в других сетях. Опускаются аутентификация сообщения и пакета, управление ключами и другие немаловажные вопросы безопасности. Все это вместе создает больше иллюзию безопасности. Но если необходимы многопользовательские конференции, то здесь альтернативы IRC (Internet Relay Chat) практически нет. А вот при настройке серверов IRC разговор о шифровании, как правило, не идет [2] по изложенным выше причинам.

Протокол SILC

Основной идеей протокола SILC (Secure Internet Live Conferencing) является обеспечение безопасностного общения по незащищенным каналам. В общем случае SILC очень похож в использовании на IRC, вплоть до совпадения основных характеристик (имена, каналы, частные сообщения, поиск пользователя, блокировка нежелательных частных и канальных сообщений и прочее). Более того, совпадают даже основные команды (всего SILC поддерживает около 30 команд). Но на этом все сходство в принципе и заканчивается. Основное различие между ними – защита передаваемой информации в SILC. Причем шифрование – это базовая часть протокола, а не опциональная функциональность, которую можно отключать. Так сказать, security by default. Особенно отмечу, что SILC основан не на IRC и они несовместимы между собой.

Идея протокола принадлежит Пека Риконену (Pekka Riikonen), начало работ датировано 1996 годом. До выхода первой версии, включавшей клиента и тестовый сервер, поддерживавшие алгоритмы шифрования RSA и 3DES код был переписан заново три раза. Работало это все из рук вон плохо. Генератор случайных чисел, взятый с RNG, используемого в SSH, переписывался два раза. Работа постоянно останавливалась. Но все равно в 1998 году была добавлена поддержка алгоритма ElGamal, а код был переписан на C++. Хотя в следующем году код опять переписывается на С, основные части протокола перерабатываются и спецификация подается в IETF (Internet Engineering Task Force – http://www.ietf.org). И как результат летом 2000 года протокол представлен общественности. С тех пор была проделана большая работа как по усовершенствованию протокола, так и по разработке софта, протокол получил признание. SILC распространяется по лицензии GNU GPL.

Что предлагает SILC?

Учитывая, что SILC появился на десять лет позже IRC, у его разработчиков была возможность поучиться на чужих ошибках и учесть неудачные решения. Поэтому SILC обеспечивает более богатый набор характеристик и является самым удобным протоколом для общения пользователей из используемых в настоящее время. Но на первом месте у нас безопасность, поэтому с нее и начнем. Хотя стоит, наверное, отметить, что разработчики не изобретали велосипед и все решения в общем-то традиционные.

Протокол обеспечивает защищенную передачу и аутентификацию между клиентом и сервером, сервером и сервером, и между клиентами в приватной беседе при помощи шифров AES, twofish, CAST, serpent, rc6 и mars с использованием CBC и CTR. По умолчанию используется длина ключа 256 бит, опционально можно выставить 192 и 128. Протокол SILC имеет собственный открытый ключ SILC, но также поддерживает открытые ключи SSH2, сертификаты OpenPGP, X.509 и SPKI.

В качестве открытого ключа SILC, который, правда, не сертифицирован и спецификация не определяет общественную ключевую инфраструктуру, используются ключи RSA или DSS, включающие информацию об имени узла, имени пользователя, реальном имени и др.

Впрочем, разработчики открыты для общения, и при необходимости могут быть добавлены другие алгоритмы и шифры.

Шифруются все сообщения, посланные другим пользователям и каналам, пароли, команды и уведомления. Передача незащищенных сообщений не предусмотрена. Протокол разрабатывался с четким пониманием механизмов наиболее распространенных атак, поэтому известные пассивные и активные атаки (man-in-the-middle, повторение, подмена IP и пр.) будут неэффективны. Транспортный уровень защищен с гарантией подлинности закодированных пакетов, использованием кода аутентификации сообщения (Message Authentication Codes – МАС), с применением алгоритмов hmac-sha1-96, hmac-md5-96, hmac-sha1, hmac-md5. При этом используется метод Encrypt-Then-MAC, когда сообщение шифруется и затем вычисляется МАС, включающий и номер последовательности. Вектор инициализации (IV), использованный в шифровании, по умолчанию не включен в зашифрованный текст.

Ключи генерируются протоколом SILC Key Exchange (SKE), являющимся частью протокола SILC. SKE использует цифровую подпись и алгоритм обмена ключей Diffie-Hellman (с группами 1024, 1536 и 2048 бит). Заголовки и данные кодируются сеансовыми ключами, а канальные и частные сообщения кодируются специфическими ключами. Каждый канал использует такой ключ (channel specific keys), которым кодируются и подписываются все канальные сообщения. Сеансовые и канальные ключи сервер может периодически регенерировать. Также канал имеет свой способ аутентификации, основанный на имени или ключе.

Частные сообщения по умолчанию обеспечиваются сеансовыми ключами, но они могут также использовать специфические ключи частного сообщения (private message specific keys), которые можно получить, выполнив SKE между двумя пользователями сети SILC. Полученные при этом ключи могут быть использованы для кодирования частных сообщений или при передаче файлов. Эти сообщения смогут прочитать только передатчик и получатель, но так как сервер не знает об используемых при этом ключах, то не сможет их регенерировать, об этом должны заботиться сами пользователи. Можно использовать частные ключи, сгенерированные за пределами конкретной сети SILC. Все сообщения могут быть подписаны. Для уменьшения размера пакета их можно сжимать.

Учитывая, что ключ пользователя играет при аутентификации далеко не последнюю роль, в SILC удалось реализовать то, что просто невозможно представить в IRC – здесь имя пользователя может быть не уникальным. Хотите быть Васей, без проблем. И хотя сервер может знать уже сотню Вась, в регистрации отказано не будет (если имя не превышает 128 байт, на имя канала отводится 256 байт). Централизованные сервисы, регистрирующие имена, в случае с SILC не нужны. Пользователь отличается от других таких же пользователей его реальным именем, именем пользователя в системе, именем узла и наконец fingerprint его публичного ключа. Правда, здесь же выплывает другая проблема. Можно перепутать Васю-менеджера с Васей-директором и рассказать ему все, что думаешь о начальстве. Поэтому лучше перед выходом в приват убедиться при помощи команды WHOIS, с кем действительно имеешь дело. Недавно сервер, а затем и клиенты начали полностью поддерживать UTF-8 не только для текстовых сообщений, но и для ников и имен каналов, поэтому проблем с выбором имени быть не должно.

Протокол SILC поддерживает услугу, называемую detaching (по умолчанию она активирована). Пользователь может отсоединиться от сервера, например, для того чтобы установить связь с другим сервером, но у других создается иллюзия присутствия. Клиентов можно добавлять в свой watch list. При этом будет доступна информация о регистрации, выходе пользователя, смене имени, других регистрационных данных и ключах. Это удобно, так как в дальнейшем не придется разыскивать пользователя, если он вдруг решит сменить ник. Пользователь может запретить кому-либо отслеживать его.

Сетевая топология SILC также отличается от традиционной древовидной, принятой в подобных протоколах. Сеть SILC формирует так называемую гибридную кольцевую сетчатую сеть на уровне маршрутизатора и сеть типа «звезда» на уровне серверов. Такая сетевая топология имеет лучшую масштабируемость и обеспечивает более быструю доставку пакетов. В случае же компрометации отдельного участка его можно просто отключить, пока администраторы не разберутся с проблемами. Маршрутизаторы и серверы также имеют различия. Маршрутизатор владеет глобальной информацией, серверы сохраняют только локальную. Сеть поддерживает также и резервные маршрутизаторы (обычно это сервера, берущие на себя эту обязанность при отсутствии основного маршрутизатора).

Подобный протокол в настоящее время трудно представить без возможности передачи файлов между пользователями, поэтому такая функция изначально заложена и в SILC. Встроенным протоколом, применяемым для передачи файлов, является SFTP (Secure FTP), хотя разработчики при необходимости готовы добавить любой другой. Весь поток при передаче, естественно, шифруется.

Но это еще не все. Спецификации протокола не ограничивают тип передаваемых сообщений. Поэтому кроме текстовых сообщений можно передавать MIME, видео- или аудиоинформацию. Дополнительные сервисы позволяют расширить возможности протокола без потери обратной совместимости. Например, сервис может оставлять сообщения для detaching клиенту, которые будут отданы, когда клиент «вернется» . К сообщениям могут добавляться флаги, указывающие на то, как оно должно быть интерпретировано на стороне получателя.

Утилиты для работы с SILC

На сайте проекта доступно несколько утилит:

  • Сервер SILC – позволяет развертывать свои сети, как общественные, включенные в общую структуру, так и внутренние. Поддерживает все возможности протокола, работает только под UNIX-системами.
  • SILC Map – полезная утилита, показывающая топологию сети SILC, создает карты, позволяющие получить полную информацию о серверах и маршрутизаторах одним щелчком мыши.
  • SILC Client – де-факто клиент сети SILC, поддерживает все нововведения, легкий, работает в консоли, имеются версии для нескольких систем.
  • SILC Gaim – графический клиент SILC.
  • SILC Toolkit и SILC Autodist – две утилиты, предназначенные для разработчиков. Первая ориентирована на программных и прикладных разработчиков, желающих внедрить поддержку SILC в свои продукты. Вторая представляет собой систему управления и ориентирована на большие проекты.

Кроме того, на странице http://silcnet.org/community/links можно получить информацию о продуктах сторонних разработчиков.

Еще пару слов о клиентах. Предлагаемый проектом SILC Client на самом деле включает две утилиты, предназначеные для общения в сети SILC. Сам silc и irssi с плагином (http://irssi.org, плагин – http://penguin-breeder.org/silc). Но они могут заинтересовать только администратора, рядовой пользовать без GUI жить не сможет. В более удобный графический клиент Gaim поддержка SILC включена, начиная с версии 0.78, но в дистрибутивах он может быть собран без нее. В этом случае придется заняться его сборкой самостоятельно. Кроме них можно посмотреть на Silky (http://silky.sourceforge.net). Это довольно удобный клиент с GTK2-интерфейсом, распространяющийся в исходных кодах и работающий кроме UNIX-подобных систем и на Windows NT4/2000/XP (Windows 3.11/95/98/ME и CE он не поддерживает). На пользователей MacOS X ориентирован Colloquy (http://colloquy.info), поддерживающий и IRC. Список доступных серверов и маршрутизаторов SILC можно получить на странице http://silcnet.org/network. При выборе адреса silc.silcnet.org вы будете подключены к ближайшему серверу. По умолчанию сервер ожидает подключение клиентов на 706 порту.

Установка сервера

Наконец мы приблизились к главной цели статьи – установке сервера SILC. При написании статьи использовался ALTLinux 2.4 Master, но я провел тест и на OpenBSD. Стоит упомянуть, что для FreeBSD доступны порты silc-client silc-server silky. В принципе сервер настолько прост в установке и настройке, что с этим процессом без труда справится начинающий администратор, установивший пару-другую систем.

Скачиваем архив, распаковываем и конфигурируем.

# tar xvjf silc-server-1.0.tar.bz2

# cd silc-server-1.0

В большинстве случаев можно обойтись без каких-либо опций конфигурирования, но я люблю, когда все настройки хранятся в /etc.

# ./configure --sysconfdir=/etc/silc

В конце скрипт выдаст итоговую информацию.

silc-server Configuration Summary:

---------------------------

 Target host ...................: i686-pc-linux-gnu

 Compiler ......................: gcc

 CFLAGS ........................:  -g -O2 -Wall -finline-functions -D_REENTRANT

 LDFLAGS .......................:

 LIBS ..........................:  -ldl -lpthread

 

 Installation prefix ...........: /usr/local/silc

 bin directory .................: /usr/local/silc/bin

 sbin directory ................: /usr/local/silc/sbin

 etc directory .................: /etc/silc

 man directory .................: /usr/local/silc/man

 doc directory .................: /usr/local/silc/doc

 SIM directory .................: /usr/local/silc/modules

 include directory .............: /usr/local/silc/include

 

 Compile SILC Server ...........: yes

 SIM support ...................: yes

 IPv6 support ..................: yes

 Iconv support .................: yes

 Assembler optimizations .......: yes

 Multi-threads support .........: yes

 Debugging enabled .............: no

 

Compile the sources with "make" or "gmake" command.

$gmake

#make install

.................

Generating RSA Public and Private keys, might take a while...

Finding p: .................................

Finding q: ...

Keys generated successfully.

Public key has been saved into `/etc/silc/silcd.pub".

Private key has been saved into `/etc/silc/silcd.prv".

.................

Сервер генерирует пару ключей и записывает их в каталог с конфигурационными файлами. В документации на сайте, датированной 2003 годом, указано, что для запуска сервера необходимо создать отдельного пользователя и группу, от имени которогоон  и будет работать. Сейчас по умолчанию он запускается от имени пользователя nobody, как и большинство других серверов, работающих на компьютере, поэтому достаточно просто убедиться, что такой пользователь в системе существует.

При загрузке сервер считывает конфигурационный файл silcd.conf, находящийся в нашем случае в /etc/silc. Некоторые опции обязательны, другие дополнительные, и их можно не трогать.

# silcd.conf

# Этой строкой подключается файл, в котором описаны алгоритмы шифрования и прочее, что связано с закрытием

# информации. Система настроена на максимальную безопасность, поэтому в сам файл лучше не лезть

Include "/etc/silc/silcalgs.conf";

# General configuration options

# Поведение сервера по умолчанию, некоторые параметры могут быть переопределены в ConnectionParams

General {

    module_path = "/usr/local/silc/modules";

    # Если используется аутентификация по паролю или по открытому ключу, преимущество имеет аутентификация

    # по открытому ключу. При снятии комментария преимущество будет иметь пароль

    # prefer_passphrase_auth = true;

    # Включает проверку  (FQDN) для входящих соединений

    # require_reverse_lookup = true;

    # Максимальное количество соединений, принимаемых сервером, и с одного узла можно переопределить

    # ConnectionParams.

    connections_max = 1000;

    #connections_max_per_host = 10;

    # Интервал смены ключей соединения и канала

    #key_exchange_rekey = 3600;

    #channel_rekey_secs = 3600;

    # Включение смены ключей по более медленному, но безопасному протоколу Perfect Forward Secrecy (PFS)

    #key_exchange_pfs = true;

    # Время, по истечении которого закрывается соединение при неудаче смены ключей

    #key_exchange_timeout = 60;

    # Ограничение количества каналов, к которым может присоединиться клиент (по умолчанию 50).   

    #channel_join_limit = 100

};

# Server information

ServerInfo {

    # Имя сервера (FQDN)

    hostname = "silctest.com";

    # Первичный адрес и порт, на котором сервер будет принимать соединения. 

    Primary {

           ip = "192.168.0.1";

           port = 706;

    };

    # Другие интерфейсы прописываются отдельно.

    #Secondary { ip = "10.2.1.60"; port = 706; };

    #Secondary { ip = "10.2.1.160"; port = 706; };

    # Описание сервера

    ServerType = "Test Server";

    Location = "Rovno, Ukraine";

    # Имя администратора, e-mail администратора

    Admin = "Sergej A. Jaremchuk";

    AdminEmail = "admin@silctest.com";

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

    User = "nobody";

    Group = "nobody";

    # Местонахождение открытого и закрытого ключей

    PublicKey = "/etc/silc/silcd.pub";

    PrivateKey = "/etc/silc/silcd.prv";

    # Файл, в который записывается сообщение,  получаемое клиентом при соединении

    MotdFile = "/etc/silc/motd.txt";

    # Pid file

    PidFile = "/usr/local/silc/var/silcd.pid";

};

# Log files

Logging {

    Timestamp = true;

    # Сюда заносятся информационные сообщения, если не снять комментарий с секций Warnings, Errors

    # и Fatals, то в эту секцию будут заноситься все сообщения сервера

    Info {

           File = "/usr/local/silc/logs/silcd.log";

           Size = "100k";

    };

    # Warning messages

    #Warnings {

    #  File = "/usr/local/silc/logs/silcd_warnings.log";

    #  Size = "50k";

    #};

    # Error messages

    #Errors {

    #  File = "/usr/local/silc/logs/silcd_errors.log";

    #  Size = "50k";

    #};

    # Fatal messages

    #Fatals {

    #  File = "/usr/local/silc/logs/silcd_fatals.log";

    #  Size = "50k";

    #};

};

# Connection Parameters

# Эта секция определяет специфические параметры связи, если какой-то параметр не использован, его значение

# будет взято из General. Можно описать несколько секций, которые будут отличаться по уникальному имени, для того

# чтобы указать индивидуальные параметры

ConnectionParams {

    # Обязательное уникальное имя

    name = "normal";

    connections_max = 200;

    };

# Configured client connections

# Эта секция определяет параметры соединения клиентов.

# Параметр «Host» позволяет указать IP-адрес или имя узла, с которого могут соединяться клиенты. Если он

# отсутствует, с сервером могут соединяться все клиенты

#

# Опции Passphrase, PublicKey и PublicKeyDir указывают на используемую аутентификацию и местонахождение

# необходимых файлов

#

# Секция ниже разрешает подсоединяться всем клиентам без аутентификации с параметрами связи, определенными

# в ConnectionParams с именем normal

Client {

    #Host = "10.1.*";

    #Passphrase = "secret";

    #PublicKey = "/path/to/the/user_my.pub";

    #PublicKeyDir = "/path/to/keys/dir/";

    Params = "normal";

};

# Configured server administrator connections

# Секция описывает параметры соединения администратора

Admin {

    Host = "192.168.0.20";

    User = "grinder";

    Nick = "grinder";

    # Passphrase = "verysecret";

    PublicKey = "/usr/local/silc/admin.pub";

};

# Configured server connections

# Секция необходима, если ваш сервер является маршрутизатором, для обычных серверов она не нужна

#ServerConnection {

#   Host = "10.2.1.7";

#   Passphrase = "verysecret";

#   PublicKey = "/path/to/the/public.pub"»;

#   Params = "normal";

#   Backup = false;

#};

# Configured router connections

# Маршрутизатор, на который будет завязан сервер, для внутрикорпоративного можно не активировать

#RouterConnection {

#   Host = "10.2.1.100";

#   Port = 706;

#   Passphrase = "verysecret";

#   #PublicKey = "/path/to/the/public.pub";

#   Params = "normal";

#   Initiator = true;

#   BackupHost = "10.2.1.6";

#   BackupPort = 706;

#   BackupLocal = true;

#};

# Denied connections

# Здесь описываются соединения, которые будут отброшены

#

#Deny {

#   Host = "10.2.1.99";

#   Reason = "Go away spammer";

#};

#Deny {

#   Host = "10.3.*";

#   Reason = "You are not welcome.";

#};

Все, сервер можно запускать. Но не спешите. Дело в том, что в ключах сервера (по умолчанию используются ключи SILC) заложена также информация о том, кто их сгенерировал. И при несовпадении с реальной клиенты не смогут присоединиться к серверу без каких-либо объяснений. Поэтому вначале ключ необходимо регенерировать. Для этого запускаем сервер с опцией -С. Самое интересное, что он не хочет брать параметры из конфигурационного файла, а поэтому придется их вбивать вручную. То есть если человек набрал их вручную, то он понимает, что делает и отвечает за это.

Формат такой:

silcd -C /etc/silcd --identifier="UN=, HN=, RN=, E=, O=, C="

Параметры UN и HN обязательные. Эта информация будет выводиться пользователю при первом подключении (рис. 1).

Рисунок 1. Информация о публичном ключе сервера

Рисунок 1. Информация о публичном ключе сервера

Генерируем ключ:

# /usr/local/silc/sbin/silcd  -C /etc/silcd --identifier="UN=grinder, HN=silctest.com, RN=Sergej Jaremchuk, E=admin@silctest.com"

И запускаем:

# /usr/local/silc/sbin/silcd

В лог-файле должна появиться информация об успешном старте сервера, без ошибок.  

Проверяем:

# ps -aux | grep silcd

nobody   29704  0.0  0.5  2636 1212 ?        S    13:47   0:00 /usr/local/silc/sbin/silcd

# netstat –a | grep 706   Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State

tcp        0      0 silctest.com:706          *:*                  LISTEN

Можно подсоединяться клиентом. Запускаем Gaim и заводим новую учетную запись (рис. 2). Выбираем протокол SILC и заполняем поля «Имя пользователя», пароль, псевдоним. Кнопка «Показать больше параметров» позволит изменить номер порта, указать на месторасположение файлов публичного и закрытого (личного) ключей, а также настроить некоторые параметры аутентификации и при необходимости адрес прокси. Если у вас нет ключа, то он будет автоматически сгененерирован при первом соединении с сервером.

Рисунок 2. Параметры новой учетной записи для присоединения к серверу SILC

Рисунок 2. Параметры новой учетной записи для присоединения к серверу SILC

Нажимаем вход и соединяемся с сервером, подтверждаем получение публичного ключа сервера (рис. 3). На севере сейчас делать нечего, выбираем пункт «Присоединиться к чату» и канал проверка без пароля (рис. 4). Так как такого канала на сервере нет, то он будет автоматически создан и вы являетесь его основателем (рис. 5). Все, теперь у вас есть свой рабочий сервер SILC, можно оповещать пользователей о появлении нового сервиса.

Рисунок 3. Пользователь может проверить полученный публичный ключ сервера

Рисунок 3. Пользователь может проверить полученный публичный ключ сервера

Рисунок 4. Присоединяемся к каналу

Рисунок 4. Присоединяемся к каналу

Рисунок 5. Если канала с введенным именем на сервере нет, то будет создан новый канал и вы будете его основателем

Рисунок 5. Если канала с введенным именем на сервере нет, то будет создан новый канал и вы будете его основателем

Безопасность, лучшая масштабируемость SILC-серверов привели к тому, что многие организации, беспокоящиеся о сохранении в тайне передаваемой информации, заменили свои IRC-серверы на SILC. Кто следующий?

Литература и ссылки:

  1. IN-2002-03: Social Engineering Attacks via IRC and Instant Messaging (http://www.cert.org/incident_notes/IN-2002-03.html)
  2. Слободской А. IRC-сервер. – Журнал «Системный Администратор» №7, июль 2003 г. – 28-30 с (http://www.samag.ru/cgi-bin/go.pl?q=articles;n=07.2003;a=13).
  3. Сайт проекта SILC – http://silcnet.org.

Комментарии
 
  30.12.2008 - 06:37 |  tb0hdan

Украинская SILC Сеть, http://silc.org.ua

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru