歡迎您光臨本站 註冊首頁

構建基於Linux下支持ssl的IRC伺服器

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

一、概述
關於技術討論溝通,於是想到使用IRC.IRC是英文“Internet Relay Chat”的縮寫,它是一種即時交談工具,是目前全球最流行的在線聊天方式之一.它的特點是速度快,方便的自建和使用個人聊天室,同時開20多個小窗與人 聊天不影響速度,強大的聊天室管理、文件傳送功能,是全球網友網上交流的最佳選擇.所以我們決定使用開源的ircd-hybrid,最新發布的源代碼

可以在http://sourceforge.net/ 網站獲得.而IRC聊天則需要使用IRC專門的聊天軟體在win下自然推薦mIRC,目前漢化版有6.2對

ssl支持的很不錯.想mIRC支持SSL只需要下載安裝Win32OpenSSL支持庫,下載地址為

http://www.shininglightpro.com/download/Win32OpenSSL_Light-0_9_7m.exe

二、安裝前的準備
,在伺服器上推薦選擇完全安裝方式安裝好Linux系統,推薦使用Redhat Linux 8和9以上的操作系統.
其次,獲得ircd-hybrid軟體包.
以root用戶登陸Linux平台伺服器,並下載最新的源代碼到/home/irc目錄
引用:#adduser ircadmin
#cd /home/ircadmin
#wget http://puzzle.dl.sourceforge.net ... cd-hybrid-7.2.3.tgz


三、安裝配置的具體步驟
要確定系統中是否安裝有以下基礎包:
gcc libc-dev make openssl ssl-dev本文以irc.test.com域IRC伺服器的建立為例,來詳細介紹ircd-hybrid系統在Linux伺服器上的構建.

PS:安裝前要注意一個問題
Red Hat Linux 8.0/9.0 的 krb5-devel 套件把 kerberos 的 include file 放到了 /usr/kerberos/include 這裡

,而不是一般位置的 /usr/include 這個目錄.而 openssl 支援 kerberos,因此在 compile 使用到 openssl 的程序就很容易發



生找不到kerberos 的 include file 的錯誤.
而解決辦法很簡單,要確定krb5-devel 以及 krb5-libs等包必須安裝在系統上,而不是根本沒安裝,接下來建立以下
symbolic links:
引用:ln -s /usr/kerberos/include/com_err.h /usr/include/
ln -s /usr/kerberos/include/profile.h /usr/include/
ln -s /usr/kerberos/include/krb5.h /usr/include/


裝備編譯安裝ircd-hybrid:
引用:#cd /home/ircadmin/
#tar ircd-hybrid-7.2.3.tgz
#cd ircd-hybrid-7.2.3
#./configure --enable-openssl(為了起用支持ssl)
#make
#make install


以上為解壓編譯安裝,約五分鐘后可完成,接下來可根據需要配置ircd.conf文件.我們可以根據源代碼壓縮包提供的配置文件為實

例,在此文件基礎上直接編輯修改,這樣就可以省去很大的配置工作.

引用:cp etc/example.conf /usr/local/ircd/etc/ircd.conf


生成證書和key:
引用:#openssl genrsa -out /usr/local/ircd/etc/rsa.key 2048
Generating RSA private key, 2048 bit long modulus
.............................................................................
openssl rsa -in /usr/local/ircd/etc/rsa.key -pubout -out /usr/local/ircd/etc/rsa.pub
chmod 0600 /usr/local/ircd/etc/rsa.key
chmod 0644 /usr/local/ircd/etc/rsa.pub


生成ssl數字證書
引用:#openssl req -new -days 365 -x509 -key /usr/local/ircd/etc/rsa.key -out /usr/local/ircd/etc/cert.pem
/usr/local/ircd/etc/cert.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank


For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:MIS
Locality Name (eg, city) []:BeJing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:test001
Organizational Unit Name (eg, section) []:irc.test.com
Common Name (eg, YOUR name) []:irc.test.com
Email Address []:test001@test.com

#chown -R ircadmin.ircadmin /usr/local/ircd/


修改配置文件
vi /usr/local/ircd/etc/ircd.conf
我就對配置文件關鍵設置做下簡單說明:
引用:#44行修改如下
serverinfo {
name = "ircd"; #你伺服器名稱
sid = "1ST"; #必須按提示說明設置3個安符,其中第一個必須是數字1-9,后兩個必須是字母組合,否則ircd服務不能正常啟動.
network_name = "MyNet"; #網路信息
network_desc = "This is My Network"; #網路信息描述
max_clients = 512;
};
#177行修改為如下:
listen {
flags = ssl; #設置為ssl加密
port = 7000; #服務埠
};
#282行可修改為如下:
auth {
user = "*@*"; #用戶@主機允許連接

password = "myirc"; #設置了話任何用戶登陸irc伺服器都需要提前輸入此密碼,也可以不設置,可為加密和非加密模式



encrypted = no; #登陸密碼是否起用加密模式

spoof = "I.still.hate.packets"; #用語隱藏用戶真實IP地址可以起用作為偽裝地址
class = "opers"; #默認即可
flags = need_password, spoof_notice, exceed_limit, kline_exempt,
gline_exempt, resv_exempt, no_tilde, can_flood, can_idle;
}; #默認即可


#353行可修改為
operator {

name = "god"; #管理OP(關鍵)

user = "*god@*"; #允許任何連接上來帶god的名稱帳號可切換成管理OP
# user = "*@127.0.0.1"; #只允許本地連接的管理者

password = "woshiadmin"; #管理OP的非加密密碼

encrypted = NO; #管理密碼是否加密

class = "opers"; #以下默認即可
flags = global_kill, remote, kline, unkline, xline,
die, rehash, nick_changes, admin, operwall;
};
#1133行必須修改
/* REMOVE ME. The following line checks you've been reading. */
havent_read_conf = 1; #必須註銷掉此行.否則不讓你運行




以上為簡略常用功能設置,詳細設置可以根據/home/ircadmin/ircd-hybrid-7.2.3/etc/example.conf文檔各項說明具體詳細設置,這裡不一一說明,以上配置可保證IRC伺服器ssl版正常運行.
到這裡,ircd-hybrid系統的IRC伺服器安裝設置已經完成,就可以運行啟動ircd服務了.

引用:su - ircadmin
$/usr/local/ircd/bin/ircd
ircd: version hybrid-ru-7.2.3


ircd: pid 1513
ircd: running in background mode from /usr/local/ircd


其中ircd服務不能以root許可權運行,必須切換非root用戶狀態,以上我們是創建了一個ircadmin的系統用戶.運行正常后,可以通過ps -er|grep ircd 來查看服務進程.
1513 ? 00:00:00 ircd
這樣,伺服器就正常啟動了ircd服務,開放7000加密埠,成功構建起一台IRC加密版伺服器,提供一個交流平台.普通用戶登陸IRC伺服器,加入頻 道后就可以與朋友聊天交流,傳送文件等.頻道管理員可以實施簡單管理功能.同時管理員也可通過mIRC等客戶端軟體登陸所構建的IRC伺服器,獲得更為強 大的管理功能,具體使用方法不在這裡贅述,大家可以參考相關文獻.


本文詳細了Linux平台下ircd-hybrid支持SSL加密通訊,提供了一個較完整與清晰的構建流程.

本文出自 「芥末花生」 博客,謝絕轉載!


[火星人 ] 構建基於Linux下支持ssl的IRC伺服器已經有755次圍觀

http://coctec.com/docs/linux/show-post-48872.html