summaryrefslogtreecommitdiff
path: root/nickserv.html
blob: 553f5d0a62fdd0fa527797de2949516d66c95948 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<!DOCTYPE html>
<html>
<head>
<title>rx</title>
<link rel="stylesheet" href="style.css" />

<style>
a.link {color: #0000A0;}
a.visited {color: #A000A0;}
a.active {color: #00A000;}
pre, code {font-size: 11pt; background: #ddd;}
</style>
</head>
<body>
<h1>rx - how to register a nickname</h1>

<p>Registering a nickname on IRC means it is reserved for you to use, and no one else.  It keeps others from using your nick, thus making you able to use it at all times.  If you don't register your nick, others may end up using it.  As such, some channels may require that you have registered it before chatting.</p>

<h2>Preparation</h2>
<p>Before you register a nick, you'll need to choose one.  Some people use their first name as nick, or just pick something else.  However, there are some requirements for your nick:</p>
<ul>
	<li>It must only include ASCII letters, digits, and the following other characters: <code>^|\-_[]{}</code></li>
	<li>It must not impersonate somebody else</li>
	<li>It must not be already registered</li>
</ul>
<p>Be creative!  Once you choose your nickname, you can switch to it with:</p>
<pre><code>/nick MyAwesomeNewNickName</code></pre>
<p>And configure your client to use that nickname afterwards.<br/>Registering a nickname currently (might change in the future) requires a TLS client certificate and that you connect to the network securely.  The following will generate a certificate for you:</p>

<pre><code>$ openssl req -x509 -new -newkey ed25519 -sha256 -nodes -out rx.pem -keyout rx.pem</code></pre>

<p>You can then refer to the following <a href="https://libera.chat/guides/certfp#connecting-to-liberachat-with-your-certificate">Libera.Chat guide section</a> to setup your IRC client to use the certificate.</p>

<h2>Registering your nickname</h2>
<p>To register your nickname, you will interact with a network service named "NickServ".  NickServ enables you to manage your account on the network, and behaves like a user (so you can send private messages to it).  After configuring your client, connect to the network, then send the following message to NickServ:</p>
<pre><code>/msg NickServ REGISTER</code></pre>
<p>This will register your current nickname.</p>

<h2>Tips and tricks</h2>
<p>Here are some tips and tricks for managing your account on the IRC network.</p>

<h3>Using multiple nicknames</h3>
<p>You may want to own multiple nicknames on the network.  You can group those nicknames together behind one NickServ account fairly easily.  First, check that you are properly authenticated to your account with:</p>
<pre><code>/whois YourCurrentNickname</code></pre>
<p>Example output:</p>
<pre><code>-!- f_ (Unk@oper/netadmin): Ferass El Hafidi
-!- f_ has joined channels: &amp;@#support
-!- f_ is connected through irc.andrewyu.org (rx root)
-!- f_ is logged in as f_
-!- f_ is using a secure connection
-!- f_ has TLS (SSL) client certificate fingerprint GET ME OUT GET ME OUT OF THE CAROUSEL
-!- f_ was idle for 140h13m29s; signup on September 1 at 11:50
</code></pre>
<p>If you see a line similar to:</p>
<pre><code>-!- MySelf is logged in as MySelf
Or
-!- MySelf is authenticated</code></pre>
<p>Then you are authenticated.  If you do not see lines similar to this, double check that you are using the correct certificate, and that your nickname is registered.</p>
<p>To group nicknames, change your nick to a nickname you'd like that is not already registered with:</p>
<pre><code>/nick MyNewNickName-Alt</code></pre>
<p>And ask NickServ to group that nickname to your current account:</p>
<pre><code>/msg NickServ GROUP</code></pre>
<p>You may then change your nick back to your previous nick, or keep using the new nickname.  With this you can group as many nicknames as you want.  To check which nicknames you currently have grouped, you can:</p>
<pre><code>/msg NickServ LIST</code></pre>

<h3>Using your account from multiple IRC clients</h3>
<p>At this time you cannot use one single IRC presence from multiple IRC clients without needing an IRC bouncer.  However, you can use one nick per connection, those nicks being grouped.  We'll assume that you already grouped those nicknames (see above).  
What can be done is use one client certificate per IRC client you'd like to use.  You can generate a new certificate with:</p>

<pre><code>$ openssl req -x509 -new -newkey ed25519 -sha256 -nodes -out rx.pem -keyout rx.pem</code></pre>

<p>You can then refer to the following <a href="https://libera.chat/guides/certfp#connecting-to-liberachat-with-your-certificate">Libera.Chat guide section</a> to setup your other IRC client to use the certificate.  Then, connect it to the network and <code>/whois</code> yourself from that client:</p>
<pre><code>/whois f_|AltClient
...
-!- f_|AltClient has TLS (SSL) client certificate fingerprint 
    0e516ef0e516ef0e516ef0e516ef0e516ef0e516ef0e516ef0e516ef
...
</code></pre>
<p><strong>Note:</strong> Your nick might have been forcibly changed by NickServ to e.g. <code>100AAAFGH</code>.  This is normal.</p>
<p>Take note of the line above - this is your certificate fingerprint.  In the main client you already have connected to the network and authenticated, issue the following command:</p>
<pre><code>/msg NickServ ADDCERT [Your cert fingerprint]</code></pre>
<p>e.g.</pre>
<pre><code>/msg NickServ ADDCERT 0e516ef0e516ef0e516ef0e516ef0e516ef0e516ef0e516ef0e516ef</code></pre>
<p>Then, on your alternate client you can login:</p>
<pre><code>/msg NickServ LOGIN</code></pre>
<p>And, if your nickname was changed, change it back to the nickname you wanted to use:</p>
<pre><code>/nick f_|AltClient</code></pre>
<p>You should now be properly identified!</p>
<p>To check which client certificates you currently have grouped, you can:</p>
<pre><code>/msg NickServ LIST</code></pre>

<h3>Deleting/dropping your account</h3>
<p>If you no longer want to use your account, you can "drop" it, so it will be deleted entirely from rx's NickServ database.  <b>This action is not reversible and your ENTIRE account will be PERMANENTLY LOST.</b></p>
<p>To do this, issue the following command:</p>
<pre><code>/msg NickServ DROP ACCOUNT [your account name]</code></pre>

<h2>Command listing</h2>
<p>Entire command listing of what NickServ currently supports.  Note that development of NickServ is still ongoing and as such this section may be outdated.</p>
<p><b><code>HELP</code></b></p>
<ul>
	<li><b>Description</b>: Lists commands</li>
	<li><b>Usage</b>: <code>HELP</code></li>
</ul>
<p><b><code>REGISTER</code></b></p>
<ul>
	<li><b>Description</b>: Registers your current nickname to your current TLS client certificate</li>
	<li><b>Usage</b>: <code>REGISTER</code></li>
</ul>
<p><b><code>GROUP</code></b></p>
<ul>
	<li><b>Description</b>: Groups your current nickname to your current account</li>
	<li><b>Usage</b>: <code>GROUP</code></li>
</ul>
<p><b><code>UNGROUP</code></b></p>
<ul>
	<li><b>Description</b>: Ungroups your current nickname to your current account</li>
	<li><b>Usage</b>: <code>UNGROUP</code></li>
</ul>
<p><b><code>ADDCERT</code></b></p>
<ul>
	<li><b>Description</b>: Adds a new TLS client certificate to your current account</li>
	<li><b>Usage</b>: <code>ADDCERT &lt;TLS client certificate&gt;</code></li>
</ul>
<p><b><code>DELCERT</code></b></p>
<ul>
	<li><b>Description</b>: Deletes an existing TLS client certificate from your current account</li>
	<li><b>Usage</b>: <code>DELCERT &lt;TLS client certificate&gt;</code></li>
</ul>
<p><b><code>LIST</code></b></p>
<ul>
	<li><b>Description</b>: Returns various information about your current account</li>
	<li><b>Usage</b>: <code>LIST</code></li>
</ul>
<p><b><code>LOGIN</code></b></p>
<ul>
	<li><b>Description</b>: Triggers automatic login behaviour</li>
	<li><b>Usage</b>: <code>LOGIN</code></li>
</ul>
<p><b><code>DROP ACCOUNT</code></b></p>
<ul>
	<li><b>Description</b>: Deletes your account <b>PERMANENTLY</b></li>
	<li><b>Usage</b>: <code>DROP ACCOUNT &lt;Account name&gt;</code></li>
</ul>

<h2>Need help?</h2>
<p>We're available in the <code>#support</code> channel for any questions that may arise.</p>
</body>
</html>