this post was submitted on 28 Oct 2023
1 points (100.0% liked)

Self-Hosted Main

502 readers
1 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

For Example

We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers.

Useful Lists

founded 1 year ago
MODERATORS
 

Hi,

I´m looking to set up a local IRC server on the latest Debian for me and some friends. I´d like to somehow restrict access to this server to only local *nix accounts.

I don´t want to make the server only accessible to users who are logged in over SSH. I also want to be able to use clients on our phones etc. I also don´t trust my friends completely, I don´t want them to be able to impersonate each other.

So, what I´m looking for is some basic auth on my IRC server, preferably something that hooks into the standard *nix accounts (via PAM?). I´ve searched around a bit, and the only things I came up with:

  • Make the server localhost only => then I won´t be able to use phone apps anymore.

  • Server password => this doesn´t solve the auth issue, my friends will still be able to impersonate each other.

  • Make the server localhost only and then let users connect via ZNC, which hooks into Cyrus SASL => this was a huge pain in the ass to set up, and still doesn´t work.

  • Do this via services somehow?

What would be the "correct" way to implement this?

top 7 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 10 months ago

Ergo, formerly oragono, supports LDAP and possibly SAML. This is not something I have set up, but I have hosted a public ergo server before.

Good luck.

cc /u/badass6  —  no need to wait a day.

[–] [email protected] 1 points 10 months ago

I was playing around with prosody which is xmpp not IRC but does allow group chat, I have it behind authelia though I haven't gotten single sign on to work properly (I think it's due to it being an xmpp server). Ive got the conversejs plugin installed for a web chat service (if I choose to continue with it I'll want to clean up an auto redirect).

I have it hooked into an LDAP user store as opposed to p. It looks like there is a pam module/extension available. Still need to check out if I'd prefer an web IRC application instead, or try the matrix line which looks heavier.

At the moment I haven't exposed anything Ive been playing with outside my home network so I also want to start playing with mtls sometime in the future.

[–] [email protected] 1 points 10 months ago

Some of these issues are ones that were experienced and solved by the big IRC networks. They used different methods - nick registration and authentication via a bot, for instance.

The source for many of those is available. Why not see how others solved the problems? A brief look at the Charybdis IRCd source (at least the Freenode version) shows capabilities for limiting channel creation to authenticated users and what looks like built-in ChanServ and NickServ.

In any event, you may be worrying over nothing. I ran a friends-only IRC server back in the day and didn't have issues with impersonation. I rarely saw any unknown users and it was easy to detect them because they weren't part of my circle of friends. We had a couple bots that logged the channel and provided various services - it wouldn't be hard to have one enforce security.

[–] [email protected] 1 points 10 months ago

Classic irc does have a totally different design philosophy. Try some other text based chat servers with user authentication.

[–] [email protected] 1 points 10 months ago
[–] [email protected] 1 points 10 months ago

ngircd has the concept of a global password. Distribute this password and you’ve got a simple psk based acl mechanism

[–] [email protected] 1 points 10 months ago

Ahh, good old IRC. Look into something like InspIRCd. It should already allow you to restrict channel creation to registered accounts. Then combine that with something like Atheme or Anope IRC Services. I couldn't find any PAM modules, but Atheme should at least support an external database (back in the day we used a mysql backend).