Turn Your OpenWrt to IRC Server with ngIRCd

ngIRCd is a free, portable and lightweight Internet Relay Chat server for small or private networks then can be used for OpenWrt as IRC Server. Internet Relay Chat (IRC) is an application layer protocol that facilitates transfer of messages between users in the form of text.

Requirements

Router minimum size requirement "ngircd-nossl" = (475 KB)  or "ngircd" =  (2.75MB)

Installation and Configuration

Step 1. Connect your router via web interface
  1. Select tabs system - software
  2. Click Update List
  3. In download and install packages type "ngircd-nossl" then click ok
Step 2. Connect your router via ssh
  1. cd /etc
  2. vi ngircd.conf
  3. Edit it * Don't forget to delete(;) or un(;) after change the configuration E.g : after changing ( ;password abc ----> password 921567 ) *please don't un(;) if you don't change the configuration to let it at default settings

The Configuration

The configuration is summarized to important only some configuration is not showed

[General]

# Server name in the IRC network, must contain at least one dot Name = Your.irc.server.name # Info text of the server. This will be shown by WHOIS and Info = Your irc server information.
# Text file with the "message of the day" (MOTD).
MotdPhrase = "Welcome to Your IRC"
# Global password for all users needed to connect to the server.
;Password = abc ( Password for IRC Server )
# Maximum nick name length!
;MaxNickLength = 9 ( I Suggest you to change it to 14 )

[Options]

# Do any DNS lookups when a client connects to the server. ;DNS = yes ( Change it to no if there are a lot error about IRC DNS lookup in logread ) # Do IDENT lookups if ngIRCd has been compiled with support for it. ;Ident = yes ( Change it to no if client can't join your IRC server ) ;[SSL] *Un(;) If you install ngircd instead ngircd-nossl

[Operator]

# ID of the operator (may be different of the nick name) ;Name = operatorname # Password of the IRC operator ;Password = operatorpassword

[Channel]

# Name of the channel Name = #channelname # Topic for this channel Topic = a channel topic for IRC
# maximum users per channel (mode l) MaxUsers = 25 ( If you want change maximum user for joining channel ) [Channel]    # More [Channel] sections, if you like ... # -eof- Step 3 : Start and enable ngIRCd
  1. Connect your router via web interface
  2. Select tabs System - Startup
  3. Find in initscript - ngircd
  4. Click enabled and start

Testing

To test if ngIRCd working properly on client - In Windows
  1. Download IRC Client Ex : Pidgin , mIRC , HexChat and X-Chat
  2. In networks section - select add
  3. In server tab - Edit newserver/6667 to 192.168.x.x/6667 ( IRC IP Address and Port )
  4. Select autojoin channel tab *if you want join irc channel automaticaly ( Optional )
  5. Enter password if your irc server is protected with password
  6. Select close and connect
At instructions above , I'm testing with HexChat IRC Client - In Linux
  1. Download IRC Client Ex : Pidgin , Smuxi IRC , Quasel IRC and XChat
  2. Choose add
  3. In login options - select protocol
  4. Select IRC and type username ( Nickname )
  5. Type server with your IRC Server IP
  6. Type password *If your server is protected with passsword
  7. Type local alias ( Nickname )
  8. Click close
  9. Select Buddies - Join a Chat - Room List
  10. Select your IRC room channel
  11. Then click join
At instructions above , I'm testing with Pidgin IRC Client -In Android
  1. Download IRC Client Ex : AndChat , AndroIRC , Simple Irc and WhatsChat IRC
  2. Select Add - Fill name , address , port ( optional ).
  3. Type your nickname in Nick 1 , Nick 2 , Nick 3 , Username and Real Name
  4. In Other Details - Type Autojoin list ( Optional )
  5. Press save
  6. Then select connect
At instructions above , I'm testing with AndChat IRC Client

How to Be Channel OP (Operator)

  1. Use IRC Client which support OP Mode ex : Hex-Chat , mIRC and X-Chat
  2. Connect to your IRC via IRC Client
  3. In server room , type /oper <opname> <oppassword> *Without <>
  4. After you be OP - type /join #channelroom
  5. Now you are OP on your IRC Server.

Troubleshooting

- If Client can't connect your IRC Server
  • Disable firewall or add IRC Client to Firewall exception
  • Read log from IRC Server to troubleshooting
- If Client get random disconnect from IRC Server
  • In Client Firewall try Allow : Maintain Inactive TCP Services (ESET)
  • In Client Firewall try Disable : TCP Inspection and Verification (ESET)

References

  1. ngIRCd
  2. Wikipedia (IRC)
  3. Image - Source: mapsof.net / CC BY-SA 1.0

Comments