##
<bountysource-plugin>
---
There is a **[$20 open bounty](https://www.bountysource.com/issues/1374674-identserver-cpp-any-reason-it-hasn-t-been-adopted-here?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github)** on this issue. Add to the bounty at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github).
</bountysource-plugin>
<!-- github-sync-id:25358723 -->
Happy to place a bounty on it, if that would get it officially supported :)
http://wiki.znc.in/Using_ident_spoofs_with_identserver_and_iptables
Happy to place a bounty on it, if that would get it officially supported :)
<!-- github-comment-id:32819532 -->
Identserver has the nasty side effect of binding on IDENT port, so if you plan to use ident for anything other than one ZNC, identserver does not work.
I spoke with @DarthGandalf about the ideal solution some time ago on irc.
Ideally someone would make an ident server which would work like the following.
lookup by normal means, ~/.identfile etc
find the running process using the socket
query the running process for the final ident info if not found via normal means
on linux this could mean domain sockets in a special directory which each running process listens on specifically for the ident information.
It could also be done via a new file format for ~/.identfile
12345: user1
12346: user2
12347: user3
Identserver has the nasty side effect of binding on IDENT port, so if you plan to use ident for anything other than one ZNC, identserver does not work.
I spoke with @DarthGandalf about the ideal solution some time ago on irc.
Ideally someone would make an ident server which would work like the following.
1. lookup by normal means, `~/.identfile` etc
2. find the running process using the socket
3. query the running process for the final ident info if not found via normal means
on linux this could mean domain sockets in a special directory which each running process listens on specifically for the ident information.
It could also be done via a new file format for ~/.identfile
```
12345: user1
12346: user2
12347: user3
```
<!-- github-comment-id:33012837 -->
@apmorton What exactly would that new ~/.identfile format add that is not already possible with ~/.oidentd.conf?
oident already supports something like "to foo lport 1234 from bar fport 5678 { reply "foo" }". However, znc cannot use this, because by the time that it knows its local port number, the connection is already being established, so there would be a race condition. And just filtering by the remote port doesn't help, because most IRCds run on 6667 anyway.
@apmorton What exactly would that new ~/.identfile format add that is not already possible with ~/.oidentd.conf?
oident already supports something like "to foo lport 1234 from bar fport 5678 { reply "foo" }". However, znc cannot use this, because by the time that it knows its local port number, the connection is already being established, so there would be a race condition. And just filtering by the remote port doesn't help, because most IRCds run on 6667 anyway.
<!-- github-comment-id:33033458 -->
Which was the same conclusion we came to in IRC, it has been a while since this conversation took place so forgive my memory loss.
Really the best option would be an ident server which could query the information from the process which opens the socket.
Which was the same conclusion we came to in IRC, it has been a while since this conversation took place so forgive my memory loss.
Really the best option would be an ident server which could query the information from the process which opens the socket.
<!-- github-comment-id:33035638 -->
http://bre.klaki.net/programs/udb/ may be the solution.
oidentd supports this when run with `--udb`, but I didn't investigate
further.
22.01.2014 15:51, apmorton пишет:
> Which was the same conclusion we came to in IRC, it has been a while
> since this conversation took place so forgive my memory loss.
>
> Really the best option would be an ident server which could query the
> information from the process which opens the socket.
>
> —
> Reply to this email directly or view it on GitHub
> https://github.com/znc/znc/issues/460#issuecomment-33035638.
<!-- github-comment-id:33068681 -->
Maybe someone with wiki access can update the link for the 1.2 compatible version @ https://raw.github.com/KiNgMaR/znc/msvc/win32/extra_modules/identserver.cpp - and kill the line about removing `stdafx.hpp`.
<!-- github-comment-id:34383533 -->
Added some extra bounty. Would love to see this or a better identfile module in core. Once again the whole stall reconnect queue thing is annoying.
Added some extra bounty. Would love to see this or a better identfile module in core. Once again the whole stall reconnect queue thing is annoying.
<!-- github-comment-id:70356893 -->
Oidentd supports masquerading, could it forward ident requests to identserver running in different port?
If this were added as a supported module, I'd just use iptables to forward it. Pretty sure no one cares about identd for stuff other than IRC
> Oidentd supports masquerading, could it forward ident requests to identserver running in different port?
If this were added as a supported module, I'd just use iptables to forward it. Pretty sure no one cares about identd for stuff other than IRC
<!-- github-comment-id:70390063 -->
But if same host was running ZNC for those who wish it and also gave shell access for IRC, identserver wouldn't work in that case.
But if same host was running ZNC for those who wish it and also gave shell access for IRC, identserver wouldn't work in that case.
<!-- github-comment-id:70398631 -->
But if same host was running ZNC for those who wish it and also gave shell access for IRC, identserver wouldn't work in that case.
Invalid point though, a shell host wouldn't allow masquerading anyway.
> But if same host was running ZNC for those who wish it and also gave shell access for IRC, identserver wouldn't work in that case.
Invalid point though, a shell host wouldn't allow masquerading anyway.
<!-- github-comment-id:70400501 -->
Invalid point though, a shell host wouldn't allow masquerading anyway.
I am thinking of shell host running ZNC for users who want it and also providing shell access for users who don't.
I am not sure if any of these exist though.
> Invalid point though, a shell host wouldn't allow masquerading anyway.
I am thinking of shell host running ZNC for users who want it and also providing shell access for users who don't.
I am not sure if any of these exist though.
<!-- github-comment-id:70400529 -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
http://wiki.znc.in/Using_ident_spoofs_with_identserver_and_iptables
Happy to place a bounty on it, if that would get it officially supported :)
What's the reason not to use oidentd?
Because it stalls the reconnect queue, leading to massive wait times for large ZNCs
Identserver has the nasty side effect of binding on IDENT port, so if you plan to use ident for anything other than one ZNC, identserver does not work.
I spoke with @DarthGandalf about the ideal solution some time ago on irc.
Ideally someone would make an ident server which would work like the following.
~/.identfileetcon linux this could mean domain sockets in a special directory which each running process listens on specifically for the ident information.
It could also be done via a new file format for ~/.identfile
@apmorton What exactly would that new ~/.identfile format add that is not already possible with ~/.oidentd.conf?
oident already supports something like "to foo lport 1234 from bar fport 5678 { reply "foo" }". However, znc cannot use this, because by the time that it knows its local port number, the connection is already being established, so there would be a race condition. And just filtering by the remote port doesn't help, because most IRCds run on 6667 anyway.
Which was the same conclusion we came to in IRC, it has been a while since this conversation took place so forgive my memory loss.
Really the best option would be an ident server which could query the information from the process which opens the socket.
http://bre.klaki.net/programs/udb/ may be the solution.
oidentd supports this when run with
--udb, but I didn't investigatefurther.
22.01.2014 15:51, apmorton пишет:
Maybe someone with wiki access can update the link for the 1.2 compatible version @ https://raw.github.com/KiNgMaR/znc/msvc/win32/extra_modules/identserver.cpp - and kill the line about removing
stdafx.hpp.@KiNgMaR Done.
Added some extra bounty. Would love to see this or a better identfile module in core. Once again the whole stall reconnect queue thing is annoying.
Oidentd supports masquerading, could it forward ident requests to identserver running in different port?
If this were added as a supported module, I'd just use iptables to forward it. Pretty sure no one cares about identd for stuff other than IRC
But if same host was running ZNC for those who wish it and also gave shell access for IRC, identserver wouldn't work in that case.
Invalid point though, a shell host wouldn't allow masquerading anyway.
I am thinking of shell host running ZNC for users who want it and also providing shell access for users who don't.
I am not sure if any of these exist though.
Yep, such shell/ZNC providers exist. Or at least, existed before.