]> jfr.im git - irc/gunnarbeutner/shroudbnc.git/blame - README.ssl
Add auto-generated files to .gitignore
[irc/gunnarbeutner/shroudbnc.git] / README.ssl
CommitLineData
a92888a3
GB
1Secure Socket Layer (SSL)
2-------------------------
3
71d93507
GB
4Using the OpenSSL library shroudBNC supports encrypted client connections. Additionally client
5certificates can be used for authenticating users.
a92888a3
GB
6
7Why?
8----
9
71d93507
GB
10IRC is often used over insecure/unencrypted connections. While the problem of monitoring networks
11using packet sniffers might not be so obvious for (wired) LAN/WAN connections it becomes apparent
12when considering wireless connections, e.g. on a campus, where every other WLAN user can tap into
13your data transfers.
a92888a3 14
700470f5
GB
15Compiling shroudBNC with support for SSL
16----------------------------------------
a92888a3 17
71d93507
GB
18The "configure" script detects whether you have the necessary openssl libraries/headers and
19enables SSL support if possible.
a92888a3 20
700470f5
GB
21How to set up shroudBNC for SSL
22-------------------------------
a92888a3 23
700470f5 24shroudBNC supports two kinds of listeners: unencrypted and encrypted ones. During startup two
71d93507
GB
25configuration settings are read to determine whether the user wants unencrypted, encrypted
26listeners or both:
a92888a3
GB
27
28system.port - sets the port for the unencrypted listener
29system.sslport - sets the port for the ssl-enabled listener
30
700470f5
GB
31If neither of those settings are used, shroudBNC falls back to creating an unencrypted listener
32on port 9000.
a92888a3 33
71d93507
GB
34You can remove the "system.port" setting from your configuration file if you just want an
35encrypted listener.
a92888a3
GB
36
37These settings can be set in the bouncer's main configuration file: sbnc.conf
38
700470f5 39Once you've enabled SSL shroudBNC expects to find the following files in your bouncer's directory:
a92888a3 40
a92888a3
GB
41sbnc.crt - the public part of the server's key
42sbnc.key - the private part of the server's key
43
890b6f37
GB
44The "openssl" utility can be used to create certificates. You can also use "make sslcert", which
45will generate an SSL certificate for you and install it in the appropriate directory.
a92888a3 46
700470f5
GB
47Please note that you will need to run shroudBNC in the foreground (i.e. using the --foreground
48parameter) if your private key has a passphrase. It is therefore recommended to remove the passphrase
49(after verifying that the file permissions are sufficiently secure).
50
a92888a3
GB
51Client Certificates
52-------------------
53
71d93507
GB
54Clients like irssi or mIRC which support client certificates can use such certificates for
55authentication.
a92888a3 56
71d93507
GB
57When you want to set the public key you are going to use for your bouncer account you have
58to log in using your client certificate AND your password (obviously because the bouncer
59doesn't know your public key yet).
a92888a3 60
700470f5 61Once you're logged in you can use /sbnc savecert to tell shroudBNC that the client certificate you
71d93507 62are currently using is to be trusted for public key authentication.
5e1e4011 63
71d93507
GB
64Use /sbnc showcert to check that the certificate was saved correctly. You should now be able to
65log in using this client certificate.
40dfab3f 66
71d93507
GB
67(You can also set your public key by putting a x509 certificate into your users/ directory. The
68file's name should be <username>.crt, where <username> is your username. However this requires
700470f5 69a restart as shroudBNC only reads the certificate files during startup.)