Проблема с SSL портами в UnrealIRCd

Все вопросы связанные с IRC

Модераторы: Art.i, vasya

Проблема с SSL портами в UnrealIRCd

Сообщение des10 » Ср мар 04, 2009 12:06 am

установил пропатченный Unreal 3.2.7 от Bynets с поддержкой SSL, через обычные порты соединяет, через SSL не вкакую и пишит при поключении "Данные отправлены целевому хосту, ожидаю подтверждение. Соединение установлено. Вошел как Marwin!_ :_ . [ОШИБКА СОКЕТА]: Сервер закрыл соединение. Соединение разорвано." Нужно ли создать файл ssl.conf в котором прописать путь к server.cert.pem и server.key.pem, а в unrealircd.conf в include прописать ssl.conf ?
des10
 
Сообщений: 3
Зарегистрирован: Вт мар 03, 2009 11:00 pm

Сообщение vadim s. sabinich » Ср мар 04, 2009 6:44 am

если нигде в конфигурационном файле не указаны пути расположения ключа и сертификата, то следует указать.
vadim s. sabinich
Support team
 
Сообщений: 1167
Зарегистрирован: Ср фев 06, 2008 3:42 pm
Откуда: FirstVDS

Сообщение des10 » Ср мар 04, 2009 7:02 am

создал файл ssl.conf в нём написал:
set {
ssl {
certificate "/root/Unreal3.2.7/server.cert.pem";
key "/root/Unreal3.2.7/server.key.pem";
};
};

в unrealircd.conf написал: include "ssl.conf";

При подключении к SSL порту пишит тоже самое:
Данные отправлены целевому хосту, ожидаю подтверждение. Соединение установлено. Вошел как Marwin!_ :_ . [ОШИБКА СОКЕТА]: Сервер закрыл соединение. Соединение разорвано.
des10
 
Сообщений: 3
Зарегистрирован: Вт мар 03, 2009 11:00 pm

Сообщение art » Чт мар 05, 2009 5:16 am

В логах Unreal при этом что?
art
Support team
 
Сообщений: 798
Зарегистрирован: Вс июн 11, 2006 2:37 am

Сообщение des10 » Чт мар 05, 2009 6:32 am

ircd.log
[Mon Mar 2 06:14:37 2009] - Connect - Marwin!_@x.x.x.x [VHOST A88BD2D.BCE7FC75.C9B6D7F1.IP]
[Mon Mar 2 07:30:46 2009] - Disconnect - (1:16:14) Marwin!_@x.x.x.x [VHOST A88BD2D.BCE7FC75.C9B6D7F1.IP]
[Tue Mar 3 23:08:52 2009] - TIME SYNCH: timeserver=1236121731, our=1236121732, offset = -1 [old offset: -1]

[Wed Mar 4 00:24:22 2009] - Connect - Marwin!_@x.x.x.x [VHOST A88BD2D.BCE7FC75.C9B6D7F1.IP]
[Wed Mar 4 00:25:55 2009] - Disconnect - (0:1:34) Marwin!_@x.x.x.x [VHOST A88BD2D.BCE7FC75.C9B6D7F1.IP]
[Wed Mar 4 00:26:09 2009] - Connect - Darwin!_@x.x.x.x [VHOST A88BD2D.BCE7FC75.C9B6D7F1.IP]
[Wed Mar 4 00:30:58 2009] - Disconnect - (0:4:50) Darwin!_@x.x.x.x [VHOST A88BD2D.BCE7FC75.C9B6D7F1.IP]

errors.log
[Tue Mar 3 23:08:52 2009] - TIME SYNCH: timeserver=1236121731, our=1236121732, offset = -1 [old offset: -1]

config.log
#define HAVE_STRLCPY 1
#define HAVE_STRLCPY 1
#define HAVE_STRTOK 1
#define HAVE_STRTOUL 1
#define HAVE_SYSLOG 1
#define HAVE_SYSLOG 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_UNISTD_H 1
#define HAVE_VPRINTF 1
#define HAVE_VSNPRINTF 1
#define HAVE_VSNPRINTF 1
#define HAVE_VSYSLOG 1
#define HAVE_VSYSLOG 1
#define HUB 1
#define LISTEN_SIZE 5
#define LIST_SHOW_MODES 1
#define LONG_LONG_RLIM_T 1
#define MAXCONNECTIONS 1024
#define MAXSENDQLENGTH 3000000
#define MYOSNAME "FreeBSD xxx.firstvds.ru 6.3-STABLE FreeBSD 6.3-STABLE #0: Wed Nov 19 04:33:10 CET 2008 root@dione.ispsystem.net:/root/src/sys/i386/compile/ISPSYSTEM_PAE i386"
#define NBLOCK_POSIX 1
#define NEED_STRTOKEN 1
#define NICKNAMEHISTORYLENGTH 2000
#define PACKAGE_BUGREPORT ""
#define PACKAGE_NAME ""
#define PACKAGE_STRING ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PARAMH 1
#define POSIX_SIGNALS 1
#define PREFIX_AQ 1
#define PROTOTYPES 1
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
#define SIZEOF_RLIM_T 8
#define SIZEOF_SHORT 2
#define SPATH "/root/Unreal3.2.7/src/ircd"
#define STDC_HEADERS 1
#define STDDEFH 1
#define STDLIBH 1
#define STRINGH 1
#define STRINGSH 1
#define SYSSYSLOGH 1
#define TIME_WITH_SYS_TIME 1
#define UNISTDH 1
#define USE_SSL 1
#define __PROTOTYPES 1

configure: exit 0
des10
 
Сообщений: 3
Зарегистрирован: Вт мар 03, 2009 11:00 pm

Сообщение vadim s. sabinich » Чт мар 05, 2009 6:41 am

vadim s. sabinich
Support team
 
Сообщений: 1167
Зарегистрирован: Ср фев 06, 2008 3:42 pm
Откуда: FirstVDS

Сообщение des10 » Пт мар 06, 2009 1:25 am

по первой ссылке которую вы мне дали. Прописал в unrealircd.conf:
class clients
{
pingfreq 38;
maxclients 1000;
sendq 100000;
recvq 8000;
};
allow {
ip *@*;
hostname *@*;
class clients;
maxperip 100;
};

По второй ссылке. Создал файл stunnel.conf, в нём прописал:
client = yes
[irc]
accept = 127.0.0.1:6667
connect = xxx.firstvds.ru:6697

В unrealircd.conf прописал:
include "stunnel.conf";

После это го запускаю Unreal в SSH, в ответ:
xxxxx# ./unreal start
Starting UnrealIRCd
_ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _` | | | | | / | | / _` |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
v3.2.7
using TRE 0.7.5 (LGPL)
using OpenSSL 0.9.7e-p1 25 Oct 2004
using zlib 1.2.3

* Loading IRCd configuration ..
* stunnel.conf:2: Ignoring extra data
* stunnel.conf:3: Ignoring extra data
* stunnel.conf:3: Ignoring extra data
* stunnel.conf:4: Ignoring extra data
[error] stunnel.conf: Unexpected EOF for variable starting at 1
[error] Could not load config file stunnel.conf
[error] IRCd configuration failed to load
Possible error encountered (IRCd seemingly not started)
=====================================================
Check above for possible errors, and this output of
ircd.log. If you cannot solve the problem, read
Unreal.nfo on where to get support
=====================================================
[Wed Mar 4 00:25:55 2009] - Disconnect - (0:1:34) [K]!_@x.x.x.x [VHOST A88BD2D.BCE7FC75.C9B6D7F1.IP]
[Wed Mar 4 00:26:09 2009] - Connect - Marwin!_@x.x.x.x [VHOST A88BD2D.BCE7FC75.C9B6D7F1.IP]
[Wed Mar 4 00:30:58 2009] - Disconnect - (0:4:50) Marwin!_@x.x.x.x[VHOST A88BD2D.BCE7FC75.C9B6D7F1.IP]
[Thu Mar 5 05:56:15 2009] - TIME SYNCH: timeserver=1236232575, our=1236232575,offset = 0 [old offset: -1]
des10
 
Сообщений: 3
Зарегистрирован: Вт мар 03, 2009 11:00 pm

Сообщение tont » Пт мар 06, 2009 9:21 pm

Документацию к UnrealIRCD пробовали читать?
Вот выдержка оттуда:

3.8 - SSL

SSL является аббревиатурой от Secure Socket Layer. Используя SSL, вы можете создавать защищённые соединения. Его можно использовать для шифрования трафика от сервера к серверу, но шифрование данных от клиента к серверу так же может быть организовано. Обычно SSL используют для защиты от перехвата трафика и для безопасной аутентификации.

Чтобы использовать SSL, вам необходимо скомпилировать сервер с поддержкой этого протокола. Чтобы указать используемые для SSL-соединений порты, необходимо в конфигурационном файле задать опцию listen::options::ssl.

Подключится на SSL-порт обычным способом невозможно (так что не стоит включать SSL на порту 6667), для этого необходим клиент или туннель, который понимает SSL протокол.

Клиенты, поддерживающие SSL: XChat, irssi, mIRC (версии 6.14 и выше, но нужно предпринять некоторые дополнительные шаги).

Для клиентов, которые не поддерживают SSL, вы можете использовать туннелирование, используя, к примеру, stunnel. Вот пример конфигурационного файла stunnel.conf (для stunnel версии 4.x):
Код: выделить все
client = yes
[irc]
accept = 127.0.0.1:6667
connect = irc.myserv.com:6697

Т.е. если вы соединяетесь на 127.0.0.1 порт 6667, ваш трафик будет зашифрован и перенаправлен на irc.myserv.com порт 6697 (это порт SSL).


При соединении с сервером вы должны проверить подлинность сертификата, а не просто принять его (как в примере с stunnel), иначе есть вероятность, что вы будете уязвимы для атак типа "активного сниффинга" (переадресация ssl), однако не будем вдаваться в подробности (самостоятельно ознакомьтесь с SSL более подробно, не спрашивайте у нас). [mIRC и xchat вызывают всплывающие окна с запросом о принятии/отказе сертификата, и это правильно].
............................................................
4.37 - Set блок НЕОБХОДИМ (Ранее известен как unrealircd.conf/networks)
..........................................................
set::ssl::egd <имя-файла>;
Определяет поддержку EGD (Entropy Gathering Daemon). Если используется OpenSSL 0.9.7 или выше, тогда будет произведен поиск в /var/run/egd-pool, /dev/egd-pool, /etc/egd-pool, и /etc/entropy, поэтому имя-файла можно опустить, для этого просто определите set::ssl::egd без указания имени файла. Если используется OpenSSL версии ниже, чем 0.9.7, или вы хотите использовать EGD сокет, находящийся в другом месте, надо указать имя файла UNIX Domain Socket, на котором прослушивается EGD.

set::ssl::certificate <имя-файла>;
Определяет имя файла, в котором указан SSL сертификат сервера.

set::ssl::key <имя-файла>;
Определяет имя файла, в котором находится приватный ключ SSL.

set::ssl::trusted-ca-file <имя-файла>;
Определяет имя файла, где указаны сертификаты доверенных CA.

set::ssl::options::fail-if-no-clientcert;
Запрещает пользователей без сертификата.

set::ssl::options::no-self-signed;
Блокирует подключения пользователей с самоподписанными сертификатами.

set::ssl::options::verify-certificate;
Позволяет серверу определять правильность SSL сертификата прежде, чем разрешить соединение.
..........................................................
4.6 - Listen блок НЕОБХОДИМ (Ранее известен как P:Line)
...........................................................
options блок (необязательно)
Если вы желаете, можно определить специальные опции для указанного порта, такие как:clientsonly порт только для клиентов
serversonly порт только для серверов
java CR поддержка чата на java
ssl порт для зашифрованного соединения (SSL)
Примеры:
Код: выделить все
listen *:6601 {
    options {
        ssl;
        clientsonly;
    };
};
tont
 
Сообщений: 325
Зарегистрирован: Сб фев 24, 2007 8:07 pm
Откуда: г. Хизаши Мухосранской области


Вернуться в IRC

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3