File: ident.html

package info (click to toggle)
eggdrop 1.10.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,596 kB
  • sloc: ansic: 65,863; javascript: 8,908; sh: 5,337; tcl: 3,801; makefile: 1,771; python: 121
file content (238 lines) | stat: -rw-r--r-- 14,286 bytes parent folder | download
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
<!DOCTYPE html>

<html lang="en" data-content_root="../../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>Ident Module &#8212; Eggdrop 1.10.1rc2 documentation</title>
    <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=03e43079" />
    <link rel="stylesheet" type="text/css" href="../../_static/eggdrop.css?v=ab48a1b6" />
    <script src="../../_static/documentation_options.js?v=290de6c6"></script>
    <script src="../../_static/doctools.js?v=9bcbadda"></script>
    <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
    <link rel="search" title="Search" href="../../search.html" />
    <link rel="next" title="IRC Module" href="irc.html" />
    <link rel="prev" title="Filesys Module" href="filesys.html" /> 
  </head><body>
    <div class="header-wrapper" role="banner">
      <div class="header">
        <div class="headertitle"><a
          href="../../index.html">Eggdrop 1.10.1rc2 documentation</a></div>
        <div class="rel" role="navigation" aria-label="related navigation">
          <a href="filesys.html" title="Filesys Module"
             accesskey="P">previous</a> |
          <a href="irc.html" title="IRC Module"
             accesskey="N">next</a>
        </div>
       </div>
    </div>

    <div class="content-wrapper">
      <div class="content">
        <div class="sidebar">
          
          <h3>Table of Contents</h3>
          <p class="caption" role="heading"><span class="caption-text">Installing Eggdrop</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../install/readme.html">README</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../install/install.html">Installing Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../install/upgrading.html">Upgrading Eggdrop</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Using Eggdrop</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../using/features.html">Eggdrop Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/core.html">Eggdrop Core Settings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/partyline.html">The Party Line</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/autoscripts.html">Eggdrop Autoscripts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/users.html">Users and Flags</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/bans.html">Bans, Invites, and Exempts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/botnet.html">Botnet Sharing and Linking</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/ipv6.html">IPv6 support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/tls.html">TLS support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/ircv3.html">IRCv3 support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/accounts.html">Account tracking in Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/pbkdf2info.html">Encryption/Hashing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/python.html">Using the Python Module</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/twitchinfo.html">Twitch</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/tricks.html">Advanced Tips</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/text-sub.html">Textfile Substitutions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/tcl-commands.html">Eggdrop Tcl Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/twitch-tcl-commands.html">Eggdrop Twitch Tcl Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/patch.html">Patching Eggdrop</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Tutorials</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/setup.html">Setting Up Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/firststeps.html">Common First Steps</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/tlssetup.html">Enabling TLS Security on Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/userfilesharing.html">Sharing Userfiles</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/firstscript.html">Writing an Eggdrop Tcl Script</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/module.html">Writing a Basic Eggdrop Module</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Eggdrop Modules</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Eggdrop Module Information</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../included.html">Modules included with Eggdrop</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="assoc.html">Assoc Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="blowfish.html">Blowfish Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="channels.html">Channels Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="compress.html">Compress Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="console.html">Console Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="ctcp.html">CTCP Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="dns.html">DNS Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="filesys.html">Filesys Module</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Ident Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="irc.html">IRC Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="notes.html">Notes Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pbkdf2.html">PBKDF2 Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="python.html">Python Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="seen.html">Seen Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="server.html">Server Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="share.html">Share Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="transfer.html">Transfer Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="twitch.html">Twitch Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="woobie.html">Woobie Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="uptime.html">Uptime Module</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../writing.html">How to Write an Eggdrop Module</a></li>
<li class="toctree-l1"><a class="reference internal" href="../internals.html">Eggdrop Bind Internals</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">About Eggdrop</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../about/about.html">About Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../about/legal.html">Boring legal stuff</a></li>
</ul>

          <div role="search">
            <h3 style="margin-top: 1.5em;">Search</h3>
            <form class="search" action="../../search.html" method="get">
                <input type="text" name="q" />
                <input type="submit" value="Go" />
            </form>
          </div>

        </div>
        <div class="document">
            
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <p>Last revised: June 27, 2019</p>
<section id="ident">
<span id="ident-module"></span><h1>Ident Module<a class="headerlink" href="#ident" title="Link to this heading">¶</a></h1>
<p>This module adds Eggdrop support for the externally-provided oident
service, or alternatively the ability for Eggdrop to act as its own ident
daemon.</p>
<p>Traditionally, an IRC server queries port 113 on an irc client’s host to
determine the ident for the client. The client’s host normally replies with
the username of the account. If the host machine is running oident as its
ident service, Eggdrop can now interact with oident to instead reply with
a custom ident specified by Eggdrop (oidentd is an external service not
specific to Eggdrop nor maintained by Eggheads developers, thus no support
for it can be given).</p>
<p>Alternatively, this module can also allow Eggdrop to act as its own ident
daemon, answering queries from the IRC server directly. While this option
may be of use to a very specific group of people, it requires additional
external configuration via root access. Because most modern OSs do not allow
user-level programs to bind to port 113, required by this option, a user must
either:</p>
<ul>
<li><p>Allow Eggdrop to bind to ports &lt;1024 via the command:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">setcap</span> <span class="s2">&quot;cap_net_bind_service=+ep&quot;</span> <span class="o">/</span><span class="n">path</span><span class="o">/</span><span class="n">to</span><span class="o">/</span><span class="n">eggdrop</span>
</pre></div>
</div>
<p>Warning: this will allow Eggdrop to <em>any</em> port below 1024, potentially
allowing a user to impersonate a standard system service with Eggdrop</p>
</li>
<li><p>Use iptables to re-route ident queries destined for port 113 to a
&gt;1024 port that Eggdrop can bind to, for example by running:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">iptables</span> <span class="o">-</span><span class="n">t</span> <span class="n">nat</span> <span class="o">-</span><span class="n">A</span> <span class="n">PREROUTING</span> <span class="o">-</span><span class="n">i</span> <span class="n">eth0</span> <span class="o">-</span><span class="n">p</span> <span class="n">tcp</span> <span class="o">--</span><span class="n">dport</span> \
<span class="mi">113</span> <span class="o">-</span><span class="n">j</span> <span class="n">REDIRECT</span> <span class="o">--</span><span class="n">to</span><span class="o">-</span><span class="n">port</span> <span class="o">&lt;</span><span class="n">ident</span> <span class="n">port</span> <span class="ow">in</span> <span class="n">config</span><span class="o">&gt;</span><span class="s1">&#39;</span>
</pre></div>
</div>
</li>
</ul>
<p>Additionally, using Eggdrop as a built-in ident daemon can cause issues
when running multiple bots from the same account. The ident server is only
activated and bound to the configured ident port while Eggdrop is connecting
to an IRC server, but only one Eggdrop can bind to port 113 at a time. If
multiple bots were to start at the same time, such as after a netsplit or host
reboot, only one bot can bind to port 113 at a time, creating ident conflicts.
Thus, this option is best suited for single-bot environments.</p>
<dl class="simple">
<dt>This module requires:</dt><dd><ul class="simple">
<li><p>oident to be running on your shell host, configured to allow user
spoofing, for the oidentd method.</p></li>
</ul>
</dd>
</dl>
<p>Put this line into your Eggdrop configuration file to load the ident
module:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">loadmodule</span> <span class="n">ident</span>
</pre></div>
</div>
<p>There are also some variables you can set in your config file:</p>
<blockquote>
<div><dl class="simple">
<dt>set ident-method 0</dt><dd><dl class="simple">
<dt>This sets which ident method you wish to use:</dt><dd><dl class="simple">
<dt>0 = oidentd / Your bot will overwrite $HOME/.oidentd.conf right before</dt><dd><p>opening the socket to the IRC server with the global reply.</p>
</dd>
<dt>1 = Builtin / Your bot will automatically turn its builtin identd on and</dt><dd><p>off when needed so it shouldn’t conflict with other identds that do the
same. Ident port 113 is normally restricted to privileged processes on
UNIX systems.</p>
</dd>
</dl>
</dd>
</dl>
</dd>
<dt>set ident-port 113</dt><dd><p>This sets the port which port Eggdrop will attempt to bind to for option 1
of ident-method. Most OSs do not allow non-privileged programs such as
Eggdrop to bind to ports &lt;1024; please read the beginning of this document
for potential ways to implement this setting.</p>
</dd>
</dl>
</div></blockquote>
<p>Copyright (C) 2019 - 2025 Eggheads Development Team</p>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
        </div>
        <div class="clearer"></div>
      </div>
    </div>

    <div class="footer-wrapper">
      <div class="footer">
        <div class="left">
          <div role="navigation" aria-label="related navigaton">
            <a href="filesys.html" title="Filesys Module"
              >previous</a> |
            <a href="irc.html" title="IRC Module"
              >next</a>
          </div>
          <div role="note" aria-label="source link">
          </div>
        </div>

        <div class="right">
          
    <div class="footer" role="contentinfo">
    &#169; Copyright 2025, Eggheads.
      Last updated on Aug 15, 2025.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
    </div>
        </div>
        <div class="clearer"></div>
      </div>
    </div>

  </body>
</html>