Skip to content

Commit 2955f78

Browse files
author
bspkrs
committed
add miniircd files
1 parent f1ca8ef commit 2955f78

File tree

9 files changed

+1811
-0
lines changed

9 files changed

+1811
-0
lines changed

miniircd_origin/CHANGES

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
Unreleased
2+
3+
* Added support for the LUSERS command (by Alex Wright).
4+
* Added basic SSL support (by Leandro Lucarella).
5+
* Added support for --chroot and -setuid (by Ron Fritz).
6+
* Added --listen option to set address to bind to (by Martin Maney).
7+
8+
0.4 2012-07-01
9+
10+
* Added support for channel keys.
11+
* 422 message is now sent after registration when no MOTD is available. This
12+
is apparently needed by some clients.
13+
* Added support for WALLOPS command.
14+
* Added option to store persistent state (currently channel topic and key).
15+
* Fixed crash when the write queue for a disconnected client is non-empty.
16+
17+
0.3 2011-08-25
18+
19+
* Added --debug flag.
20+
* Added optional logging of channel messages to file.
21+
* Send a 251 message upon registration to please Pidgin.
22+
* Understand but ignore AWAY messages.
23+
* Various code cleanup.
24+
25+
0.2.0 2003-12-12
26+
27+
* Added switch for specifying a MOTD file.
28+
* Added WHOIS and MOTD commands.
29+
30+
0.1.1 2003-12-09
31+
32+
* Handle bad port specification nicely.
33+
* Minor cleanups.
34+
35+
0.1.0 2003-12-03
36+
37+
* First released version.
38+
39+
0.0.0 autumn, 2003
40+
41+
* [Internal usage.]

miniircd_origin/COPYING

+340
Large diffs are not rendered by default.

miniircd_origin/Makefile

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
VERSION := $(shell sed -ne 's/^VERSION = "\(.*\)"/\1/p' miniircd)
2+
3+
DISTFILES = miniircd COPYING README.md
4+
JAILDIR = /var/jail/miniircd
5+
JAILUSER = nobody
6+
7+
all:
8+
echo "Nothing to do."
9+
10+
dist:
11+
mkdir miniircd-$(VERSION)
12+
cp $(DISTFILES) miniircd-$(VERSION)
13+
tar cvzf miniircd-$(VERSION).tar.gz miniircd-$(VERSION)
14+
rm -rf miniircd-$(VERSION)
15+
16+
clean:
17+
rm -rf miniircd-$(VERSION) *~
18+
19+
jail:
20+
mkdir -p $(JAILDIR)/dev
21+
chmod 755 $(JAILDIR)
22+
mknod $(JAILDIR)/dev/null c 1 3
23+
mknod $(JAILDIR)/dev/urandom c 1 9
24+
chmod 666 $(JAILDIR)/dev/*
25+
chown $(JAILUSER) $(JAILDIR)

miniircd_origin/README.md

+108
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
miniircd -- A (very) simple Internet Relay Chat (IRC) server
2+
============================================================
3+
4+
Description
5+
-----------
6+
7+
miniircd is a small and limited IRC server written in Python. Despite its size,
8+
it is a functional alternative to a full-blown ircd for private or internal
9+
use. Installation is simple; no configuration is required.
10+
11+
Features
12+
--------
13+
14+
* Knows about the basic IRC protocol and commands.
15+
* Easy installation.
16+
* Basic SSL support.
17+
* No configuration.
18+
* No ident lookup (so that people behind firewalls that filter the ident port
19+
without sending NACK can connect without long timeouts).
20+
* Reasonably secure when used with --chroot and --setuid.
21+
22+
Limitations
23+
-----------
24+
25+
* Can't connect to other IRC servers.
26+
* Only knows the most basic IRC commands.
27+
* No IRC operators.
28+
* No channel operators.
29+
* No user or channel modes except channel key.
30+
* No reverse DNS lookup.
31+
* No other mechanism to reject clients than requiring a password.
32+
33+
Requirements
34+
------------
35+
36+
Python 2.5 or newer, Python 2.6 or newer when --ssl-pem-file is used.
37+
Get it at http://www.python.org.
38+
39+
Installation
40+
------------
41+
42+
None. Just run "./miniircd --help" (or "python miniircd --help") to get some
43+
help.
44+
45+
Using --chroot and --setuid
46+
---------------------------
47+
48+
In order to use the --chroot or --setuid options, you must be using an OS that
49+
supports these functions (most \*nixes), and you must start the server as root.
50+
These options limit the daemon process to a small subset of the filesystem,
51+
running with the privileges of the specified user (ideally unprivileged)
52+
instead of the user who launched miniircd.
53+
54+
To create a new chroot jail for miniircd, edit the Makefile and change JAILDIR
55+
and JAILUSER to suit your needs, then run ``make jail`` as root. If you have a
56+
motd file or an SSL pem file, you'll need to put them in the jail as well:
57+
58+
59+
# cp miniircd.pem motd.txt /var/jail/miniircd
60+
61+
Remember to specify the paths for --statedir, --logdir, --motd, and
62+
--ssl-pem-file from within the jail, e.g.:
63+
64+
# sudo miniircd --statedir=/ --logdir=/ --motd=/motd.txt --setuid=nobody \
65+
--ssl-pem-file=/miniircd.pem --chroot=/var/jail/miniircd
66+
67+
Make sure your jail is writable by whatever user/group you are running the
68+
server as. Also, keep your jail clean. Ideally it should only contain the files
69+
mentioned above and the state/log files from miniircd. You should **not** place
70+
the miniircd script itself, or any executables, in the jail. In the end it
71+
should look something like this:
72+
73+
# ls -alR /var/jail/miniircd
74+
.:
75+
total 36
76+
drwxr-xr-x 3 nobody root 4096 Jun 10 16:20 .
77+
drwxr-xr-x 4 root root 4096 Jun 10 18:40 ..
78+
-rw------- 1 nobody nobody 26 Jun 10 16:20 #channel
79+
-rw-r--r-- 1 nobody nobody 1414 Jun 10 16:51 #channel.log
80+
drwxr-xr-x 2 root root 4096 Jun 10 16:19 dev
81+
-rw-r----- 1 rezrov nobody 5187 Jun 9 22:25 ircd.pem
82+
-rw-r--r-- 1 rezrov nobody 17 Jun 9 22:26 motd.txt
83+
84+
./dev:
85+
total 8
86+
drwxr-xr-x 2 root root 4096 Jun 10 16:19 .
87+
drwxr-xr-x 3 nobody root 4096 Jun 10 16:20 ..
88+
crw-rw-rw- 1 root root 1, 3 Jun 10 16:16 null
89+
crw-rw-rw- 1 root root 1, 9 Jun 10 16:19 urandom
90+
91+
License
92+
-------
93+
94+
GNU General Public License version 2 or later.
95+
96+
Primary author
97+
--------------
98+
99+
- Joel Rosdahl <[email protected]>
100+
101+
Contributors
102+
------------
103+
104+
- Alex Wright
105+
- Leandro Lucarella
106+
- Martin Maney
107+
- Matt Behrens
108+
- Ron Fritz

0 commit comments

Comments
 (0)