summaryrefslogtreecommitdiff
path: root/doc/serverhide.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/serverhide.txt')
-rw-r--r--doc/serverhide.txt120
1 files changed, 120 insertions, 0 deletions
diff --git a/doc/serverhide.txt b/doc/serverhide.txt
new file mode 100644
index 0000000..83fd850
--- /dev/null
+++ b/doc/serverhide.txt
@@ -0,0 +1,120 @@
+ Server Hide Reference
+
+ $Id$
+
+ Copyright (c) 2001-2012 by ircd-hybrid team
+
+ ----------------------------------------------------------------------
+
+ Due to pressures from abusers, the Hybrid developers have created a set of
+ options to limit what users can and cannot do on the server. Each option
+ can be enabled or disabled at runtime.
+
+ This document describes the ircd-hybrid implementation of the server hiding
+ ideas originated by (and credited to) numerous people.
+
+ * LINKS as a file: This option is always enabled. It will generate a
+ file at a certain interval, defined by the links_delay in ircd.conf,
+ that contains the current LINKS data. This data is sent to users
+ whenever a LINKS is requested. Opers will always see the current
+ server structure.
+
+ The file that the LINKS data is stored in is by default etc/links.txt.
+
+ The benefits of this are that transient splits will not be seen by
+ users issuing LINKS commands, and if a server is split, users can
+ still see what other servers are normally available.
+
+ * Flattened LINKS: This option forces every server to look as if it is
+ connected to the local server. Users will see a flat LINKS tree.
+
+ The benefit to using LINKS flattening is that users cannot get
+ information on how servers are routed.
+
+ The flatten_links in the serverhide {} block in the ircd.conf controls
+ this feature.
+
+ As a side effect, all netsplit quit messages will appear to originate
+ from the local server.
+
+ +--------------------------------------------------------------------+
+ | Flattened LINKS is needed for any network that uses the hidden hub |
+ | option. See below for more details. |
+ +--------------------------------------------------------------------+
+
+
+
+ * Hidden server option: This option will hide the server from a
+ flattened LINKS list on other servers. Opers will of course see the
+ true routing of the network.
+
+ This is controlled by the hidden option in ircd.conf.
+
+ +--------------------------------------------------------------------+
+ | Technically, this code is a hack. With this option enabled, the |
+ | server will prepend '(H) ' to the server info field when |
+ | connecting to other servers. Other servers must understand that |
+ | the (H) means hidden. |
+ +--------------------------------------------------------------------+
+
+ * The allow_hidden option is needed to allow servers to use the hidden
+ server option described above.
+
+ * The hide_servers option forces the server to not be shown when a user
+ issues WHOIS and other commands which may show what server a user is
+ on.
+
+ Local user counts, as normally displayed in LUSERS, USERS, and the 255
+ numeric, will be shown with the same values as the global counts.
+ Displaying it this way will help protect servers and avoid breaking
+ scripts that depend on the 265 and 266 numerics on connect.
+
+ To be effective, this option must be used network wide.
+
+ * The disable_remote_commands option takes care of most of the remaining
+ issues. These include, for example, ADMIN some.hub.server, VERSION
+ someuser, and similar commands. A server with this option enabled will
+ only prevent local users from issuing remote commands. Remote users
+ will not be affected.
+
+ Remote WHOIS is not blocked. It is, however, restricted to only
+ querying WHOIS nick nick. The ircd will disregard the server parameter
+ and always use queried nick.
+
+ * All server modes appear to originate from the server you are using.
+ This feature is not tunable; and opers also do not see the real server
+ setting the mode.
+
+ Each item is briefly described in the serverhide {} block in ircd.conf.
+
+ ----------------------------------------------------------------------
+
+Using Non-QS Compliant Hubs
+
+ The flattened LINKS option will, as a side effect, display all user QUITs
+ due to network splits in the following format:
+
+ :user QUIT :*.net *.split
+
+ This works extremely well as long as all servers on your network are
+ compliant with the QS capability, which sends a single SQUIT to the
+ network when a server (or tree of servers) splits. All quit messages are
+ generated on the local server. Certain older servers do not have this
+ ability, and as such will generate their own quit messages for users who
+ left because of the split. This can cause leaks in the hub server names
+ and the structure of the network.
+
+ A quick example is the following network structure:
+
+ servA(Hyb7) --- hubA(nonQS) --- servB(not-important)
+
+ When servB splits from hubA, hubA will generate a QUIT command for every
+ user on servB (and anything behind servB). Since the QUIT message was not
+ created on your server, with server hiding enabled, the QUIT message will
+ contain the real server names.
+
+ The only way to prevent this leak on a network is to only use hubs
+ supporting the QS capability. Hybrid 6, Hybrid 7, and csircd all are
+ currently running daemons that support QS. Hybrid 5 and 2.8.21+CSr servers
+ do not support QS, and will leak server names (and therefore routing
+ information) on splits.