Commit graph

21 commits

Author SHA1 Message Date
salo
b5870e3006 Security fix:
- fix insecure file creation in /tmp, patch from silc cvs

the impact of this issue is very low.  it allows an attacker to overwrite
arbitrary files owned by the user running silcd ("silcd", in pkgsrc) IFF
the owner of the process or root send SIGUSR1 signal to the process to dump
stats.  the only file owned by the "silcd" user is typically the log file
which resides in a directory inaccessible by anyone except the user itself
and root so the potential attacker would need to guess its name.

 http://www.zataz.net/adviso/silc-server-toolkit-06152005.txt

please note that the advisory also incorrectly states that silc-toolkit is
vulnerable too.  the code in question is never compiled in the toolkit so
it's not affected.

Bump PKGREVISION.
2005-09-13 22:02:24 +00:00
salo
f8da63e164 Updated to version 1.0
Changes:

1.0:
====
Only minor bugfixes were made to the previous version.

- Fixed channel public key list saving on backup router on JOIN
  command reply.
- New optimized logging.

0.9.21:
=======
A small bugfix release.

- Added default limit how many channels one client can join (50).
- Added missing getopt.[ch].
- Fixed compilation with pkg-config files

0.9.20:
=======
A bugfix release to the SILC Server.  In addition of various bugfixes,
this version now also includes new math library that from now on will be
included in all SILC distributions.

- Added more liberal channel names from the previous more stricter
  identifier string change.
- Added SERVICE command to server, though services aren't supported yet.
- Fixed MOTD command to send empty reply if motd does not exist.
- Fixed LIST command.
- Fixed query to stop if client goes away.
- Added pkg-config check to the configure.
- Several other bugfixes were made.
2005-06-19 01:22:17 +00:00
salo
7d04a887d6 Update to version 0.9.19p1
Changes:
- convert to options.mk

0.9.19p1:
=========
A little update with this 0.9.19p1.  After such a major release problems
were expected and the p1 fixes some crashes.  Upgrade strongly
recommended.

0.9.19:
=======
And after a long break new SILC Server is out.  This version finalizes the
SILC protocol version 1.2 development and introduces UTF-8 nicknames, channel
names, usernames and host names.  It is now possible to create practically any
kind of nicknames and channel names.  Practically all letters, numbers and
punctuation marks are supported.  Special characters, control characters and
various odd symbol characters however are not allowed.  Several minor and
major bugs has been fixed as well. Upgrading is strongly recommended.  Old
clients that does not yet support UTF-8 encoded nicknames and channel names
are still able to connect and function normally as long as they do not need
to handle odd UTF-8 encoded names.

- Added support for UTF-8 encoded identifier strings, such as nicknames
  and channel names.
- Fixed founder mode handling on JOIN on normal/backup on empty
  channels.
- Fixed WATCH command handling on backup router.
- Fixed WATCH command announcing.  The WATCH and SILC Gaim buddy list
  should work better now.
- Simplified INVITE and BAN string handling in server.  Announcing
  INVITE and BAN strings should work more reliably now.
- Fixed several bugs from the backup and resuming protocol.
- Fixed, hopefully, all the wrong server statistics numbers.
- Fixed CLOSE command to handle backup routers correctly.
- Fixed various detaching and resuming bugs.
- Fixed announcing to not announce unregistered (ghost) clients.
- Fixed reconnect_keep_trying and QoS settings in server config files.
- Several other bugfixes were made.
2005-04-08 15:09:43 +00:00
salo
9c85b6d6fa Bring patch from SILC cvs, "extern inline" -> "static inline".
Fixes build on Solaris with SunPro compiler.
2004-07-12 21:40:02 +00:00
salo
1e88075dc3 Add patches from silc cvs repository.
Should fix build on Darwin/Mac OS X.
2004-06-11 10:05:06 +00:00
salo
ac6ed089d3 Updated to version 0.9.14.
This version is a major upgrade release and everyone running older version is
strongly recommended to upgrade to this version.  This version introduces
several bugfixes, security fixes and bunch of new features.  This also
completes the development work for the SILC protocol version 1.2.

Changes:

- removed patch-ac, merged into distribution
- create server keys with strict permissions

0.9.14:
=======
- Several bugfixes and security fixes were made.  A major remote exploit
  was also fixed.

- The SILC Server now ignores SIGXFSZ and SIGXCPU signals which will
  terminate the process if they occur.  They can occur in poorly
  configured environment.

- Fixed SERVER_SIGNOFF notify handling which caused ghosts to remain in
  the network.

- Fixed inviting and banning by public key.  Fixed invite and ban string
  handling.  Implemented SILC 1.2 complying invite and ban data
  distribution between routers and servers.  To also comply with SILC 1.2,
  prohibited using '@' and '!' characters in invite and ban strings.

- Support for channel public keys added.  A new feature in SILC 1.2, that
  allows join authentication using digital signatures.  Use the latest
  SILC Client to take advantage of this feature.

- Support for SILC 1.2 backup protocol.  This version introduces rewritten
  version of the backup router protocol.  The purpose of the backup router
  protocol is to prevent servers from splitting from the rest of the SILC
  network if the primary router becomes unresponsive.  There are no
  changes to the configuration of the backup router support, and old
  configurations will work with this version too.

  This version is now able to detect much better different network failure
  situations and understand how to work with them.  The servers are now
  able to actually detect when the backup router can/must be used.  They
  are also able, in case of error in backup router protocol, to resume
  back to either to the backup router or to the primary router, and always
  recover from desyncs automatically (usually within 60 seconds).

- Support for command reply error arguments was added.  This allows
  clients to better handle error conditions within command execution.

- The founder public key distribution now complies with the SILC 1.2.
2003-10-16 12:37:44 +00:00
salo
da605e0b37 Updated to version 0.9.13.
Changes:

- Fixed EOF handling in SILC Config.

- Do not send full INVITE and BAN lists in INVITE and BAN
  notifys, only the changed information.

- Fixed INVITE notify sending in INVITE command, send it
  only when needed.

- Handle the founder key change properly in CMODE_CHANGE
  notify.  Bug #122.

- Remove the mark for output (mark it only for input) after
  purging outgoing queue.  Prevents the "Error in select()"
  floods.

- Check server private key file permissions before starting
  the server.

- NULL terminate allocated string in silc_buffer_strformat.

- Rewrote the invite/ban list string handling in server to
  use SilcBuffer instead.

- Fixed double free in CMODE command when setting new HMAC
  for channel.

- Added couple of missing memset's to zero sensitive memory.
2003-03-17 20:12:47 +00:00
salo
8eef73cdfa Update to version 0.9.11
IMPORTANT NOTE: This version does not include backwards support
                for the old style SILC private key so if you
                skipped 0.9.10 version you won't be able to run
                this server without generating new key pair.

Changes from 0.9.10 to 0.9.11
=============================

 * Workaround GCC bug which causes memory exhaustion when
   compiling sha1 with optimizations on UltraSPARC.  from openbsd

 * Added some sanity checks in server for correctness of the
   server configuration.
 * More log printing during backup router protocol.

 * Removed backwards support for old private key file format.
 * Removed backwards support for not-so-strict decryption length
   check, it's strict now.

 * Fixed error handling of invalid client entry when calling
   commands in server.  Fixes a crash.
 * Fixed double free in async host lookup code.
 * On backup router handle now the SERVER_SIGNOFF from router
   for local connected servers too, and close the connections.
   Do not process them as normally signing off servers when they
   really signoff by sending EOF fe, but always assume that
   router sends the SERVER_SIGNOFF.
 * Fixed socket unsetting when closing connections.
 * Fixed close command to use the port correctly when closing
   server connections.
 * Check for NULL outbuf in silc_socket_write.  It is possible
   that it is NULL is some odd case.
 * Do not call final protocol callback for backup router
   resuming protocol when closing connection.  It is closed
   by timeout in case of error.
 * Backup reconnect to router if backup resuming protocol failed.
 * Fixed double free in SKE library error hadling when signature
   error occurred.
 * Fixed double free in invite list adding code when adding
   invite strings.
2003-01-08 23:56:44 +00:00
salo
2712980903 An important note to all server users:
The private key file format has changed due to a bug in the
older code.  When you run this server version it automatically
changes your private key file to the correct format.
The future versions of the SILC Server will not do that, so
do not skip this version or you will need to generate new key
pair after 0.9.11 is released.

Also backup router bugs was fixed which caused several
interesting decryption problems, so upgrading regardless
if you are runinng normal server, backup router or primary
router is strongly recommended.

Changes from 0.9.9.1 to 0.9.10
==============================

* Added the config directive PublicKeyDir for the client
  block.
* Extended the SILC_SERVER_LOG_ERROR macro to all available
  logging channels.
* Load only files with .pub suffix in PublicKeyDir.

* Fixed a typo in resuming code that fixed detach/resume
  code in server.
* Fixed CMODE setting in server when founder mode was set.
* Fixed wrong invite and ban list handling in server command
  reply.
* Fixed CUMODE founder authentication in server to not check
  for client's public key since it's not supposed to do that.
* Fixed backup router bugs: When backup resumes router and
  receives a CHANNEL_MESSAGE packet the backup must not act
  as router since the packet header decryption would be
  different.  Also, when relaying packets to channel, do not
  re-encrypt packets on backup that came from the primary
  since the connection isn't really router-router connection.
2002-12-06 19:52:37 +00:00
salo
35e3ae25a5 Update to version 0.9.9.1.
Changes from 0.9.8 to 0.9.9.1
=============================

* Updated protocol version to 1.2.

  Clients and servers with support for 1.1 are not compatible with
  the new protocol!

* Print notify for server opers when backup router comes online.
* Resolve the client's public key in JOIN command if the founder auth
  data is being requested but we don't know the client's public key.
* Added idle and signon fields to the ATTRIBUTE_SERVICE attribute to
  indicate the user's current idle and signon timeof a service.
* Added MAC field to the Private Message Payload to protect against
  chosen ciphertext attacks.
* Defined the SILC_MESSAGE_FLAG_SIGNED.
* Added ERR_UNSUPPORTED_PUBLIC_KEY and ERR_OPERATION_ALLOWED status
  types.
* Added support for normal client to kill its own entries from
  the network.
* Compute maximum padding for authentication packets to make
  passphrase approximation attacks impossible (padding must be at
  least 8 bytes now).
* Added support for rekey before 2^32 sequence number wraps.
* Added Encrypt-Then-MAC order to SILC packet MAC generation.
  Deprecated the old Encrypt-And-MAC order.
* Added Encrypt-Then-MAC order to Channel Message Payload MAC
  generation.
* Added support for setting FOUNDER mode on channel with specific
  public key which can be set with CMODE command.
* Don't wait for EOF after socket error has occurred, but close the
  connection.
* Assure the RESUME_CLIENT packet is not sent to twice to backup
  router if the detached client was originated from the backup.
* Added support for removing client from invite list when kicked
  from channel, as SILC 1.2 dictates.
* Added support for the SILC 1.2 BAN and INVITEcommands and new
  ban and invite lists to server.
* Remove client from invite list in KILLED notify and in KILL
  command.
* Do not send invite list back unless asked (when sending no
  arguments) or when list was modified.
* MARS is now gone.
* Added manual pages for silcd(8) and silcd.conf(5).

* Fixed WATCH command reply handling on normal server which was
  missing altogether.
* Fixed double free in WHOIS query on normal server when forwarding
  query to router.
* Fixed MOTD command reply sending.
* Fixed the INVITE command to send the invite list in command reply.
* Fixed PING command sending in client library and handling in
  server.  The server ID must be ID Payload, not raw ID data.
* Fixed NICK command to not crash if nickname was not sent.
* Fixed channel's global_user boolean checking after detaching.
  Check it after changing the owner of the client not before.
* Fixed channel key distribution after resuming detached client.
* Fixed memory leaks with SIMs in server.
* Fixed bugs in invite list handling in INVITE command.
2002-12-04 17:31:55 +00:00
salo
7fa14c31b7 update to version 0.9.8
Changes from 0.9.5 to 0.9.8
===========================

* Added support for aborting automatically pending commands
  that never receives the reply (to avoid memory leaks).
* Added support for removing explicitly added client connections
  in rehash and closing the client connections if they were
  unconfigured in the rehash.
* Rewrote WHOIS, WHOWAS and IDENTIFY commands in the server.
* If packet processing fails (like integrity check fails)
  the connection is closed now.
* Normal server now reconnects to backup router automatically
  if connection is lost to it.
* Added support for replying on behalf of the user to the
  Requested Attributes in WHOIS command in the server.
* Failed OPER and SILCOPER authentications are now logged.
* Added sort-of "Quality of Service" (QoS) support. Data
  reception can be controlled with rate limit per second
  and/or read data length limit.
* Added support for encrypted private key files. Now passphrase
  must be provided when new key pair is created , and prompted
  when loading the private key.

* Resumed client packet handling from server put the resumed
  client on wrong list on router and caused the client not be
  present on the network anymore.
* Various cleanup in error message output in config parsing code
  and in server init code.  Fixed error log files containing too
  many newlines in some situations.
* Assure that channel key is set before sending it.  May crash
  server otherwise.
* Don't swtich to become primary router if we are backup if
  decryption error has occurred.
* Fixed a bug in backup router IP address comparison
* Fixed a crashbug in incoming server accepting.
* Fixed packet decryption problem when backup router encrypted
  channel message with wrong key during backup resuming protocol.
* Fixed memory leaks in server.
* Fixed channel key packet processing bug on backup router
  during backup resuming protocol.
2002-11-21 15:42:45 +00:00
hubertf
1e9b2fb879 Maintainer update of chat/silc-server to version 0.9.5. Changes:
buildlink->buildlink2

Main changes from 0.9.2 to 0.9.5
=================================

 * Use the primary router as the origin of the locally connected server when
   it is disconnecting from the backup router since that's where it really
   is coming from.  Now the clients from the disconnecting server are removed
   correctly and "shadow" clients are not left to the backup router.

 * If normal server is standalone and found existing but disabled channel, do
   not re-create the channel since it creates duplicate same channels.

 * Added anonymous client connections support to server.  New "anonymous"
   configuration option to ConnectionParams section added.  If set to true,
   the username and hostname information of the client will be scrambled and
   anonymous user mode is set automatically to the user.

 * In JOIN notify handling, mark that the cache entry of the client cannot be
   expired.  Can cause crashes on normal server (asserts client->channels).

 * Added silcd configuration option Timestamp in the Logging section.

 * Fixed fingerprint checking to check for entirely empty fingerprint instead
   of two first bytes when determining if it is set.

 * Remove server/router operator privileges in DETACH command, since it's
   possible to resume to server where these privileges would not be allowed.

 * Do not re-create channel keys and send them when removing clients in server
   shutdown.

 * Completed backup router support for standalone routers.  Supports also
   servers in the cell that do not use the backup at all.  Server/router
   operator now receives notify when network switches to backup router and
   when it resumes the use of primary router.

 * Added -D option to server.  It can be used to give debug level.  The levels
   are from 0 - 99, and are predefined for smooth server debugging.

Patch submitted by Lubomir Sedlacik <salo@Xtrmntr.org> in PR 18278.
2002-09-14 02:59:25 +00:00
jschauma
a7fd9ee6fa Add patch that escaped the last commit. Part of the update to 0.9.2 2002-06-21 16:00:14 +00:00
rh
3b745d42a9 Update silc-server to 0.8.1. Update provided by the package maintainer,
Lubomir Sedlacik <salo@silcnet.org> in PR pkg/16099, thanks!

Changes from 0.8 to 0.8.1
=========================

* IPv6 fixes. IPv6 should work without problems now.

* Fixed a minor bug in looking up correct client entry in KICKED notify
  in server.

* Don't change the topic if olod topic is same as new one.

* Packet relaying is now done by router without any extra memory
  allocations.

* Fixed the INVITE notify handling.  It took wrong arguments as invite
  list and invite delete.

* Added check for INVITE, TOPIC_SET, KICKED, CMODE_CHANGE notify types
  that particular action is allowed by the client.

* Fixed a packet sending bug on very high load, where outgoing
  packet queue wasn't handled correctly and packets got corrupted.

* Added checks for maximum length of channel message payload and private
  message payload also.

* Added checks for maximum packet length in server and in client library.

* Added new configuration params: version_protocol, version_software
  and version_software_vendor to specify what version the remote host
  must at least be to be able to connect to server.  The vendor string
  can be regex matched too.

* Added new function silc_server_connection_allowed to check maximum number
  of allowed connections, and allowed versions for incoming connections.

* Added logging of DISCONNECT packet message in the server.

* Check for valid socket connection in client entries before sending any
  messages.  Fixes a crash, but doesn't fix some other underlaying bug that
  is lurking there.

* Added support for specifying multiple public keys for Client connection
  section in server configuration file.  This makes it possible to accept
  multiple public keys from same host, or to make a section that accepts
  any incoming host, and have the accepted public keys listed in the section.

* Added more error printing to logs in server code.
2002-03-29 11:34:51 +00:00
hubertf
a26b957174 Update silc-server to 0.8.
Patches contributed by Lubomir Sedlacik <salo@Xtrmntr.org> in PR 15779

Changes from 0.7.9 to 0.8:
==========================

* Removed 0.6.x backwards support.
* Added `prefer_ipv6' argument to the functions
  silc_net_gethostbyname[_async].  If it is TRUE it will return
  IPv6 address over IPv4.  If FALSE IPv4 address is returned
  even if IPv6 address was found.
* Added support silc_net_create_connection[_async] to fallback
  to IPv4 address if IPv6 address could not be used (like if
  it doesn't work on a specific system).  Affected file in
* Added `user_count' to the SilcChannelEntry which now tells the
  number of users on the channel.  The user count is now saved
  in normal server of global channels as well.
* Added following new config file settings:
  channel_rekey_secs, key_exchange_rekey, key_exchange_pfs,
  key_exchange_timeout, conn_auth_timeout, connections_max,
  links_max.
  Implemented all the new config settings handling in the server.
  Optimized the use of SKE Mutual flag usage.  Use it only
  if connection authentication protocol is not based in public
  key authentication.
* Added new configuration options and blocks:
  keepalive_secs, reconnect_count, reconnect_interval,
  reconnect_interval_max, reconnect_keep_trying and
  require_reverser_lookup.  Added ConnectionParam block, and
  implemented the connection parameters when connecting as
  initiator and when accepting connections as responder.
* Splitted the doc/example_silcd.conf.in.  Separated the crypto
  algorithm parts and created new file silcalgs.conf, that
  is now included from the example_silcd.conf.in.
* Optimized the silc_server_connect_to_router_second to take
  the connection configuration object from the SilcServerConnection
  object instead of finding it during the connecting phase.
  Added the configuration object to SilcServerConnection struct.
* Fixed the public key authentication to allocate always the
  destination signature buffer instead of using static buffer.
* Added new Passphrase and Publickey authentication methods to
  config file, allowing both public key and passphrase based
  authentication to be set at the same time.
  Added `prefer_passphrase_auth' setting in config file which
  can be used to set to prefer passwd auth if both passwd and
  public key is set.  If not set, public key is preferred.
  This has effect only when being initiator (responder will try
  both anyway).
  Added support for authentication with passphrase and public key
  at the same time.  The passphrase is tried first always since
  it is faster to check.
* Merged the new SILC Config library, with the server parsing
  support.  Read the header file silcconfig.h or the toolkit
  documentation for the news.
2002-03-03 23:49:49 +00:00
hubertf
4efb009db4 Update silc-server from 0.7.6 to 0.7.8. Changes:
this release includes many patches which fix various problems ending in
crashing the server. upgrade is strongly recommended.

0.7.7: This server attempts to fix various crash bugs, for example one crash
       relating to BAN command is fixed.

0.7.8: Another quick bugfix to fix the descync problems of normal SILC server
       when it connects to SILC router.  The descyning could happen if there
       were a lot of channels, like we had on Sunday and Monday after being
       slashdotted.  Upgrading is strongly recommended if you are running
       a server that is connected to a router.  Took me only 6 hours to find
       the problem...

Patch submitted by Lubomir Sedlacik <salo@silcnet.org> in PR 15416
2002-02-02 10:31:22 +00:00
hubertf
347bab6e43 Update silc-server to 0.7.6:
changes in the package since 0.7.3 to 0.7.6:

 - rewrite of package's Makefile. big parts of INSTALL and DEINSTALL scripts
   were moved into Makefile itself
 - silc-server now creates user silcd:silcd who run silcd by default
 - INSTALL and DEINSTALL files are smaller and contains only neccessary
   actions which cannot be executed from Makefile
 - partial rewrite of rc script, added rcvar support, it is neccessary to have
   silcd=YES in rc.conf now to start silc server (unless force is used)
 - changed motd.txt to contain BSD daemon ;)
 - updated patch-aa and patch-ab files

changes in the silc-server software since 0.7.3 to 0.7.6:

 0.7.4: This version fixes a crash that can occur mainly on normal server.
        Upgrading is recommended to avoid instability later.  This version
        also fixes the BAN and INVITE commands that were pretty much broken.
        This version also disallows a situation where the nickname that server
        sets initially for the client could be a bad nickname (like nick
        including whitespaces).  It used to be possible but now server checks
        for this.  Johnny also introduces a new logging system to this version
        with log files being open all the time and not opened every time
        something is logged, and log rotation support.

 0.7.5: Hopefully fixed the most nasty bugs.  I found bunch of weird bugs
        that causes server syncing problems.  Upgrading is strongly
        recommended as soon as possible.

 0.7.6: Only a minor bugfix release to fix the CUMODE command that allowed
        non-founder channel users to remove modes of the founder, and to fix
        GETKEY always return server's public key if it is requested, and to
        fix the TOPIC_CHANGE notify to not route it twice to router.

Patch submitted by Lubomir Sedlacik <salo@Xtrmntr.org> in PR 15373
2002-01-26 14:43:16 +00:00
hubertf
8009f7aff2 Update silc-server to 0.7.3.
Patches sent by Lubomir Sedlacik <salo@silcnet.org> in PR 15079.

Changes in the silc-server package:

 - update to the silc-server package version 0.7.3
 - patch-ab is no longer needed--it has been integratedinto distribution,
   patch-ac moved into its place
 - complete release notes can be found at:

    http://silcnet.org/txt/release-server.txt

 - complete changelog can be found at:

    http://silcnet.org/txt/changes-server.txt
2001-12-28 21:29:16 +00:00
hubertf
9bbac6d451 This file is no longer needed after the latest update.
Pointed out by Lubomir Sedlacik <salo@silcnet.org> in private mail.
2001-12-21 08:58:33 +00:00
hubertf
72f6aad26d update the silc-server package to version 0.7.1.
Submitted by Lubomir Sedlacik <salo@silcnet.org> in PR 14887

Changes in the NetBSD's package from version 0.6.4 -> 0.7.1:

   - upgrade to silc-server-0.7.1 (the main changes below)
     the biggest change is the ipv6 support (new configuration file format is
     needed, though)
   - removed patch-ac because it was integrated into distribution
     (patch-ad was moved in its place)
   - completely rewritten rc.d script to use rc.subr instead and fixed the
     problem with removing pidfile so now status) works fine.
   - added default motd file
   - INSTALL and DEINSTALL scripts are cleaner and more useful, check for logs
     directory before creating it, added motd.txt installing/removing.
   - better and more helpful default configuration file (added Example:
     sections for each variable)
   - added examples/ directory containing sample configurations of various
     scenarios into $DOCDIR

changes in the silc-server itself:
        o Fixed WHOIS and IDENTIFY commands to return correct replies,
          and correct error replies.  This fixes various weird bugs
          related to these commands.
        o Send NO_SUCH_CLIENT_ID error notify if received private
          message to invalid Client ID.  It is guaranteed that if
          private message is sent to unknown client, the sender will
          receive a notification for it.
        o Send the kicker's information in KICK command to the kicked
          client.
        o Fixed LIST command to return correct amount of channels.
          This fixes the weird bug that LIST would show like 50 channels
          and some channels multiple times.
        o Channel topics, and users SILC modes are announced now during
          server->router connecting.
        o Implemented the founder authentication during JOIN command.
        o Support for IPv6 based Server ID added.
        o Memory leak fixes.
2001-12-17 00:43:10 +00:00
hubertf
3813fa37f8 Add silc-server 0.6.4:
SILC (Secure Internet Live Conferencing) is a protocol which provides
secure conferencing services in the Internet over insecure channel.

Contributed by Lubomir Sedlacik <salo@xtrmntr.org> in PR 14562
2001-11-30 23:33:34 +00:00