Ubuntu 16.04 LTS에서 InspIRCd IRC 서버 설정

IRC (Internet Relay Chat)는 인터넷 초기부터 존재 해 온 것입니다. 이 안내서에서는 추가 IRC 서비스를 위해 Atheme과 함께 InspIRCd를 사용하여 IRC 서버를 설정하는 방법을 보여줍니다. InspIRCd는 처음부터 작성된 소수의 IRC 서버 중 하나이며 고급 모듈 시스템을 사용하여 조정 가능한 수의 기능을 제공하는 소수의 IRC 서버 중 하나입니다.

전제 조건

InspIRCd는 모든 인스턴스 크기에서 작동해야합니다. 최소 시스템 요구 사항은 700MHz CPU 및 300MB RAM입니다.

시스템 업데이트

sudo 사용자로 로그인하면 다음과 같이 시스템을 최신 안정 상태로 업데이트 할 수 있습니다.

apt-get update && apt-get upgrade 

방화벽 구성

먼저 VPS를 조금 강화하십시오. ufw몇 가지 규칙을 활성화 하고 추가합니다. 포트 구성부터 시작하겠습니다.

ufw allow 22/tcp
ufw allow 6667/tcp
ufw enable

방화벽은 대화 상자에 변경 사항을 적용하라는 메시지를 표시합니다. Y예를 누르십시오 .

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

InspIRCd 설치 및 구성

다음으로 Ubuntu 16.04의 경우 InspIRCd를 설치할 수 있습니다.이 패키지는 기본 리포지토리를 통해 제공됩니다.

apt-get install inspircd 

설치가 완료되면 서비스 구성을 시작할 수 있습니다. 기본 구성은 /etc/inspircd/inspircd.conf파일 에서 찾을 수 있으며 XML 파일의 레이아웃을 갖습니다.

nano /etc/inspircd/inspircd.conf

먼저 server태그를 검색하십시오 . 이 태그는 서버 / 네트워크의 세부 정보를 입력하는 위치이며 이러한 설정의 대부분은 사용자에게 표시됩니다.

  • name: 서버의 호스트 이름. 해결할 필요는 없지만 올바른 구문이어야합니다 (예 :) sub.example.net.
  • description: 서버 설명.
  • id:이 서버에 사용할 SID입니다. SID 충돌이 없으면 주석 처리를 제거해서는 안됩니다. 3 자 이상이어야합니다. 첫 번째 문자는 숫자 [0-9] 여야하고 나머지 두 문자는 문자 [AZ] 또는 숫자 일 수 있습니다.
  • network: 클라이언트 연결시 지정된 네트워크 이름. 네트워크의 모든 서버에서 동일해야하며 공백이 없어야합니다.

이 가이드에서는 다음을 사용합니다.

<server name="irc.example.net"
        description="My EXAMPLE.NET server"
        id="5AA"            
        network="ExampleNET">

원래 태그를 위의 태그로 교체하십시오.

그런 다음 admin태그를 검색하십시오 . 이 설정은 서버의 관리 세부 사항입니다. /ADMIN명령 을 입력 할 때 표시됩니다 .

  • name: 실제 이름
  • nick: 닉네임 (네트워크에서 사용하는 것이 좋습니다).
  • email: 이메일 주소. 유효하지 않아도되지만이 주소는 문제가 발생할 경우 사용자가 연락해야 할 주소입니다.

관리자를 사용합시다 Xenial:

<admin name="Xenial Xerius"
   nick="xenial"
   email="[email protected]">

이제로 이동하십시오 bind address. 이 태그는 서비스를 여는 데 사용됩니다. 기본적으로 로컬 호스트 IP ( 127.0.0.1)가 표시됩니다. 이것은 외부 세계가 서비스에 연락 할 수 없음을 의미합니다. 주소를 전혀 사용하지 않고 서비스를 시작합시다. 이로 인해 서비스가 머신이 소유 한 모든 이더넷 인터페이스에 바인딩됩니다.

<bind address="" port="6667" type="clients">

다음 태그는 power태그입니다. 이 태그는 두 개의 비밀번호를 정의합니다.

  • diepass: 운영자가 서버를 종료하려는 경우 사용할 비밀번호입니다.
  • restartpass: 운영자가 서버를 다시 시작해야하는 경우 사용할 비밀번호입니다.

다음 기본 비밀번호를 변경하는 것이 가장 좋습니다.

<power diepass="die123" restartpass="restart123" pause="2">

마지막으로 변경할 oper설정 이 설정입니다. 이것은 운영자 로그인을 정의합니다.

  • name: 작동하는 데 사용되는 운영자 로그인 (예 :) /oper name password.
  • password: 해시되지 않은 일반 텍스트
  • host: 작동 할 수있는 호스트 이름 / IP 여러 옵션은 공백으로 구분할 수 있으며 CIDR이 허용됩니다. 이 섹션 만 *또는 @에 사용할 수 있습니다 .
  • type:이 연산자는 무엇입니까. 블록은 위의 세 가지 클래스가 이미 정의가 있어야합니다 NetAdmin, GlobalOp하고 Helper. 은 NetAdmin우리가 사용하게 될 것입니다.

oper다음 내용을 사용 하여 태그를 변경하십시오 . 이 예 @에서는 호스트에 " "를 사용 합니다. 프로덕션 환경에서는 다음을 사용하지 않는 것이 좋습니다.

<oper name="xenial"
   password="mypassword"
   host="*@*"
   type="NetAdmin">

서비스를 다시 시작하기 전에 motdrules파일을 편집하십시오 .

nano /etc/inspircd/inspircd.motd

예를 들어 자신의 것으로 바꾸십시오.

This is the motd of example.net. Here you can list planned outages or information your users need to know about this IRC server.

마지막으로 규칙 파일을 편집하십시오.

nano /etc/inspircd/inspircd.rules

자신의 규칙을 추가하십시오 (예 :

The first rule of Fight Club is: You do not talk about Fight Club. The second rule of Fight Club is: You DO NOT TALK ABOUT FIGHT CLUB! 

이제 모든 것이 설정되었으므로 IRC 서비스를 다시 시작하십시오.

service inspircd restart

모든 것이 실행 중인지 확인하려면 netstat도구를 쿼리하십시오 .

netstat -tulpn | grep -i inspircd

inspircd포트에서 수신 대기 하는 프로그램을 나열해야합니다 6666.

tcp6       0      0 :::6667                 :::*                    LISTEN      31313/inspircd
udp        0      0 0.0.0.0:39335           0.0.0.0:*                           31313/inspircd

서버를 테스트하기 위해 터미널 IRC 클라이언트를 설치할 수 있습니다. Windows에서는 mIRC와 같은 프로그램을 사용할 수 있습니다. 이 예에서는 weechat을 사용합니다. 이것은 터미널 세션에서 사용할 수있는 텍스트 기반 IRC 클라이언트입니다.

저장소를 통해 weechat 애플리케이션을 설치하십시오.

apt-get install weechat 

이 애플리케이션이 설치되면 다음 IRC 클라이언트를 실행하십시오.

weechat

weechat이 제공하는 모든 명령을 보려면 help 명령을 요청할 수 있습니다.

/help

weechat을 종료하려면 다음 명령을 입력하십시오.

/quit    

weechat에서 연결에 로컬 서버를 추가하십시오.

/server add local localhost

이제 'local'이라는 연결 프로필에 연결할 수 있습니다.

/connect local

터미널 창에 motd와 rules가 나타납니다.

운영자에게 자신을 알리려면 다음을 입력하십시오.

/oper xenial mypassword

성공에 대한 확인 메시지가 표시됩니다.

22:40:34   local  -- | User mode [+o] by irc.example.net
22:40:34   local  -- | You are now a NetAdmin

그것은 우리의 IRC 서버를위한 것입니다.

IRC 서비스 설치-Atheme

Atheme은 확장 성 요구 사항이 높은 대규모 IRC 네트워크 용으로 설계된 IRC 네트워크 용 서비스 집합입니다. NickServ (닉네임 등록)와 같은 추가 서비스를 IRC 네트워크에 추가합니다.

Atheme은 Ubuntu 저장소에서 찾을 수 있습니다.

apt-get install atheme-services

바이너리가 설치되면 예제 구성 파일을 추출하여 atheme폴더에 복사하십시오 .

gunzip /usr/share/doc/atheme-services/examples/atheme.conf.example.gz
cp /usr/share/doc/atheme-services/examples/atheme.conf.example /etc/atheme/atheme.conf

다음으로이 구성 파일을 편집하십시오.

nano /etc/atheme/atheme.conf

먼저 loadmodule프로토콜 명령을 검색하십시오 . 이것은 다음과 같이 정의되어야합니다.

loadmodule "modules/protocol/charybdis";

charybdis다음 프로토콜로 교체하십시오 inspircd.

loadmodule "modules/protocol/inspircd12";

다음 서비스 검색 name:

name = "services.int";

services.intIRC 서버의 도메인 이름 또는 IP 주소와 일치하도록 변경하십시오 .

name = "services.irc.example.net";

이 작업이 완료되면 숫자를 검색하십시오.

numeric = "00A";

이제 이전에 사용 된 서버 태그에 사용 된 숫자와 다른 값으로 변경하십시오.

numeric = "77C";

이 작업이 완료되면 네트워크 이름을 구성하십시오. 검색 netname:

netname = "misconfigured network";

이 값을 서버 태그에서 네트워크 매개 변수로 변경하십시오.

netname = "ExampleNET";

의 값을 변경하십시오 hidehostsuffix.

hidehostsuffix = "users.misconfigured";

제거 .misconfigured:

hidehostsuffix = "users";

그런 다음 관리자 이름을 이전에 사용한 이름으로 변경하십시오.

adminname = "xenial";

adminemail이전에 사용 된 관련 이메일과 일치

adminemail = "[email protected]";

이 작업이 완료되었으므로 서비스에 대한 업 링크를 만들어야합니다. 두 개의 uplink코드 블록을 찾아서 모두 주석 처리하십시오. 명령 /*uplink{*/닫는 중괄호 끝에 추가하십시오 .

다음과 같이 보일 것입니다 :

/* this is an example for using an IPv6 address as an uplink */
/*
uplink "irc6.example.net" {
        host = "::1";
        password = "linkage";
        port = 6667;
};
*/

다음으로 자체 업 링크를 추가하십시오. 이 업 링크는 로컬 호스트의 IP 및 포트에서만 실행됩니다 7001. 슈퍼 비밀 암호를 지정하십시오 (나중에 사용할 것임).

uplink "services.irc.example.net" {
    host = "127.0.0.1";

    // password
    // If you want to have same send_password and accept_password, you
    // can specify both using 'password' instead of individually.
    password = "SuperSecret123456";

    port = 7001;
 };

마지막으로 서비스 정의를 검색하십시오. nickserv먼저 블록 부터 시작하십시오 .

nickserv 블록에서 host태그를 검색하여 다음으로 변경하십시오 ExampleNet/services/NickServ.

nickserv {

    ...<<truncated>>...

    /* (*)host
     * The hostname we want NickServ to have.
     */
    host = "ExampleNet/services/NickServ";

    /* (*)real
     * The realname (gecos) information we want NickServ to have.
     */
    real = "Nickname Services";

    ...<<truncated>>...

hostname tag다른 모든 서비스에 대해서도를 변경하십시오 .

nickserv:  ExampleNet/services/NickServ
chanserv:  ExampleNet/services/ChanServ
global:    ExampleNet/services/Global
infoserv:  ExampleNet/services/InfoServ
operserv:  ExampleNet/services/OperServ
saslserv:  ExampleNet/services/SaslServ
memoserv:  ExampleNet/services/MemoServ
gameserv:  ExampleNet/services/GameServ
botserv:   ExampleNet/services/BotServ
groupserv: ExampleNet/services/GroupServ
hostserv:  ExampleNet/services/HostServ
helpserv:  ExampleNet/services/HelpServ
alis:      ExampleNet/services/ALIS

이 작업이 완료되면 구성 파일을 저장하고 종료하십시오.

모두 테스트하려면 atheme-services바이너리를 실행하십시오 .

atheme-services

작동하는지 여부를 정확하게 알려줍니다. 아래에 표시된 것과 같은 출력을받지 못하면 돌아가서 구성 파일에 오류가 있는지 확인하십시오.

[19/02/2018 23:06:24] db-open-read: database '/var/lib/atheme/services.db' does not yet exist; a new one will be created.
[19/02/2018 23:06:24] pid 1929
[19/02/2018 23:06:24] running in background mode from /

이제 services 파일을 편집하여 서비스를 활성화하십시오.

nano /etc/default/atheme-services

ENABLED값을 변경하십시오 .

DAEMON_OPTS=""
ENABLED=1

이제 서비스를 시작할 수 있습니다 :

service atheme-services restart

상태 확인 :

service atheme-services status

비슷한 결과가 반환됩니다.

● atheme-services.service - LSB: Atheme-services daemon init.d script
   Loaded: loaded (/etc/init.d/atheme-services; bad; vendor preset: enabled)
   Active: active (running) since Wed 2018-02-19 23:45:05 UTC; 8s ago
     Docs: man:systemd-sysv-generator(8)

Feb 19 23:45:05 vultr.guest atheme-services[2810]: Starting Atheme IRC Services: atheme-service
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] atheme 6.0.11 is start
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] Module operserv/sgline
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] module_load(): module
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] /etc/atheme/atheme.con
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] db-open-read: database
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] pid 2824
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] running in background
Feb 19 23:45:05 vultr.guest atheme-services[2810]: .
Feb 19 23:45:05 vultr.guest systemd[1]: Started LSB: Atheme-services daemon init.d script.

완료하기 전에 Atheme 서비스를 InspIRCd에 추가해야합니다.

nano /etc/inspircd/inspircd.conf

파일 끝에 다음 줄을 추가하십시오.

<bind address="127.0.0.1" port="7001" type="servers">

<uline server="services.irc.example.net">

<link name="services.irc.example.net"
  ipaddr="127.0.0.1"
  port="7001"
  allowmask="127.0.0.1"
  sendpass="SuperSecret123456"
  recvpass="SuperSecret123456">

<chanprotect noservices="no"
         qprefix="~"
         aprefix="&">

# Modules needed for services to function
<module name="m_chanprotect.so">
<module name="m_halfop.so">
<module name="m_services_account.so">
<module name="m_deaf.so">
<module name="m_spanningtree.so">
<module name="m_globops.so">
<module name="m_cban.so">
<module name="m_svshold.so">
<module name="m_hidechans.so">
<module name="m_servprotect.so">
<module name="m_chghost.so">
<module name="m_namesx.so">
<module name="m_uhnames.so">    

이제 InspIRCd 서비스를 다시 시작하십시오 :

service inspircd restart

모든 것이 잘 돌아가고 있는지 확인하십시오 :

service inspircd status

이제 weechat 클라이언트를 다시 시작하십시오.

weechat

로컬 서버에 연결하십시오.

/connect local

Atheme 서비스 중 하나 인 NickServ가 즉시 나타납니다. 자신에 대한 정보를 제공합니다.

23:12:48   local  -- | NickServ (NickServ@ExampleNet/services/NickServ): Welcome to ExampleNet,
                 | root! Here on ExampleNet, we provide services to enable the registration of
                 | nicknames and channels! For details, type /msg NickServ help and /msg
                 | ChanServ help.

다음을 사용하여 NickServ를 쿼리하고 사용 가능한 명령을 찾을 수 있습니다.

/msg NickServ help


Leave a Comment

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.