The Bastion Versions Save

Authentication, authorization, traceability and auditability for SSH accesses.

v3.11.00

1 year ago

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

Main changes from the previous version are:

  • SFTP passthrough is now supported, all the commands manipulating accesses have been modified accordingly, to add the --sftp option. More information can be found in the documentation.
  • The groupInfo and accountInfo commands have been augmented with a new --all option, reserved for bastion auditors, to dump detailed data about all the groups or accounts, respectively. The amount of information to be dumped can be controlled with a series of --with-* and --without-* options, more information can be found in each command's own documentation (groupInfo and accountInfo. Prefer the use of accountInfo --all instead of accountList --audit, as the latter will be deprecated soon.

Another change that should be noted is the removal of the implicit --port-any and --user-any to the self(Add|Del)PersonalAccess and account(Add|Del)PersonalAccess commands, when either --user or --port are omitted, to be consistent with group(Add|Del)Server which never had this behaviour. This always emitted a deprecation warning since the first publicly released version, encouraging the explicit use of --user-any and/or --port-any when this was desired. Now, omitting these options will simply return an error, as this has always been the case with group(Add|Del)Server.

A more complete list of changes can be found below, for an exhaustive (and boring) list, please refer to the commit log.

:pushpin: Changes

  • feat: add sftp support
  • feat: add the possibility to auditors of listing all groups with groupInfo and all accounts with accountInfo, using --all, along with filtering additional data with --with-* and without-* new options
  • enh: setup-encryption.sh: don't require install to be called before us
  • enh: remove implicit --(user|port)-any if omitted when using (self|account)(Add|Del)PersonalAccess commands
  • fix: race condition when two parallel account creations used the --uid-auto option
  • doc: add restore from backup howto
  • doc: add PuTTY connection setup howto

:fast_forward: Upgrading

v3.10.00

1 year ago

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

Main changes from the previous version are:

  • Two new restricted commands: accountFreeze and accountUnfreeze, to temporarily disable an account, in a reversible way.
  • New options to the accountInfo commands: --no-password-info and --no-output, to get a speed boost when those informations are not needed by the caller

A more complete list of changes can be found below, for an exhaustive (and boring) list, please refer to the commit log.

:pushpin: Changes

  • feat: add accountFreeze/accountUnfreeze commands
  • enh: accountInfo: add --no-password-info and --no-output options
  • enh: more precise matching of ssh client error messages
  • enh: osh.pl: add the account name on each error message
  • fix: invalid suffixed account creation (#357)

:fast_forward: Upgrading

v3.09.02

1 year ago

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

Previous version (v3.09.01) was tagged but not released, main change since last released version is a speedup of the internal execute() function, speeding up several portions of the code.

A more complete list of changes can be found below, for an exhaustive (and boring) list, please refer to the commit log.

:pushpin: Changes

  • fix: basic mitigation for scp's CVE-2020-15778 (upstream doesn't consider it a bug)
  • fix: batch: don't attempt to read if STDIN is closed
  • enh: make execute() way WAY faster

:fast_forward: Upgrading

v3.09.00

1 year ago

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

This version has quite a lot of commits. This includes a standardization of satellite scripts configuration format and standard parameters, hence some configuration review might need to be done after upgrading (detailed in the specific upgrades instructions below).

The 3 main changes of this version are:

  • The osh-encrypt-rsync.pl script functionalities have been extended to not only cover the encryption/rotation/exporting of ttyrec files, but now also each user's local access logs and sql logs, where applicable. Previously, these logs where handled by the compress-old-logs.sh script, which was just compressing these files in-place. The latter script has now been removed in favor of the new features of osh-encrypt-rsync.pl, which not only handles compression/encryption, but also export of these files to the same remote escrow filer than you may have configured for your ttyrec files.

  • The NRPE probes we use to monitor our bastion clusters have been added to the contrib/ folder, if you're using Nagios, Icinga or any other NRPE-compatible monitoring system, you might want to have a look to said folder.

  • Ubuntu 22.04 LTS is now supported and part of the automated tests. CentOS 8 has been removed, as this distribution has been EOL for some time. The software might still work for the meantime, but any potential future incompatibility might go undetected, and is not guaranteed to be fixed. Note that however, RockyLinux 8 is supported and tested.

As a side note, an overhaul of the left menu of the documentation has been done, in an effort to enhance documentation navigation as the documentation book thickens.

A more complete list of changes can be found below, for an exhaustive (and boring) list, please refer to the commit log.

:pushpin: Changes

  • feat: osh-encrypt-rsync.pl: handle sqlite and user logs along with ttyrec files
  • remove: compress-old-logs.sh script, as osh-encrypt-rsync.pl does the job now
  • remove: delete CentOS 8 from tests (EOL)
  • feat: add osh-cleanup-guest-key-access.pl script
  • feat: add NRPE probes in contrib/
  • enh: standardize snake_case for all system scripts json config files
  • enh: cron scripts: factorize common code and standardize logging & config
  • enh: osh-lingering-sessions-reaper.pl: make it configurable
  • enh: osh-piv-grace-reaper.pl: run only on master, standardize config reading
  • enh: add more info in syslog warnings for accountDelete
  • enh: tests: faster perl-check script
  • fix: accountInfo wasn't showing TTL account expiration #329
  • fix: ping: force a deadline, and restore default sighandlers
  • fix: accountInfo: missing creation date on non-json output
  • fix: osh-remove-empty-folders.pl: fix folders counting (logging only)
  • fix: osh-encrypt-rsync.pl: delete +a source files properly
  • fix: osh-encrypt-rsync.pl: ensure $verbose is always set & make it configurable
  • fix: install: ensure that the healthcheck user can always connect from 127.0.0.1
  • fix: install: avoid cases of sigpipe on tr
  • fix: don't emit a membership log when nothing changed
  • fix: {group,account}Delete: move() would sometimes fail, replace by mv
  • fix: workaround for undocumented caching in getpw/getgr funcs
  • doc: better menu organization and more complete config files reference

:fast_forward: Upgrading

v3.09.00-rc3

1 year ago

:warning: This is a release candidate

Note that release candidates, due to the higher-than-usual amount of changes they contain, are statistically more likely to have a few quirks or bugs. Please refrain to use this version in critical production systems, unless it contains either a feature you really need, or a bugfix you've been waiting for, which may outweigh the potential drawbacks of using a release candidate.

This version will go stable in a few days if no regression is found.

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

Please refer to the rc1 changelog.

:pushpin: Changes

since rc2:

  • enh: install: better error detection
  • fix: performance issues introduced by rc1

:warning: This is a release candidate

Note that release candidates, due to the higher-than-usual amount of changes they contain, are statistically more likely to have a few quirks or bugs. Please refrain to use this version in critical production systems, unless it contains either a feature you really need, or a bugfix you've been waiting for, which may outweigh the potential drawbacks of using a release candidate.

This version will go stable in a few days if no regression is found.

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

Please refer to the rc2 changelog.

:pushpin: Changes

since rc2:

  • enh: install: better error detection
  • fix: performance issues introduced in rc1

:fast_forward: Upgrading

:fast_forward: Upgrading

v3.09.00-rc2

1 year ago

:warning: This is a release candidate

Note that release candidates, due to the higher-than-usual amount of changes they contain, are statistically more likely to have a few quirks or bugs. Please refrain to use this version in critical production systems, unless it contains either a feature you really need, or a bugfix you've been waiting for, which may outweigh the potential drawbacks of using a release candidate.

This version will go stable in a few days if no regression is found.

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

Please refer to the rc1 changelog.

:pushpin: Changes

since rc1:

  • enh: MFA: specify account name in message
  • enh: print_public_key: better formatter
  • enh: move some code from get_hashes_list() to a new get_password_file()
  • doc: osh-encrypt-rsync.conf: add verbose

:fast_forward: Upgrading

v3.09.00-rc1

1 year ago

:warning: This is a release candidate

Note that release candidates, due to the higher-than-usual amount of changes they contain, are statistically more likely to have a few quirks or bugs. Please refrain to use this version in critical production systems, unless it contains either a feature you really need, or a bugfix you've been waiting for, which may outweigh the potential drawbacks of using a release candidate.

This version will go stable in a few days if no regression is found.

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

This version has quite a lot of commits. This includes a standardization of satellite scripts configuration format and standard parameters, hence some configuration review might need to be done after upgrading (detailed in the specific upgrades instructions below).

The 3 main changes of this version are:

  • The osh-encrypt-rsync.pl script functionalities have been extended to not only cover the encryption/rotation/exporting of ttyrec files, but now also each user's local access logs and sql logs, where applicable. Previously, these logs where handled by the compress-old-logs.sh script, which was just compressing these files in-place. The latter script has now been removed in favor of the new features of osh-encrypt-rsync.pl, which not only handles compression/encryption, but also export of these files to the same remote escrow filer than you may have configured for your ttyrec files.

  • The NRPE probes we use to monitor our bastion clusters have been added to the contrib/ folder, if you're using Nagios, Icinga or any other NRPE-compatible monitoring system, you might want to have a look to said folder.

  • Ubuntu 22.04 LTS is now supported and part of the automated tests. CentOS 8 has been removed, as this distribution has been EOL for some time. The software might still work for the meantime, but any potential future incompatibility might go undetected, and is not guaranteed to be fixed. Note that however, RockyLinux 8 is supported and tested.

As a side note, an overhaul of the left menu of the documentation has been done, in an effort to enhance documentation navigation as the documentation book thickens.

A more complete list of changes can be found below, for an exhaustive (and boring) list, please refer to the commit log.

:pushpin: Changes

  • feat: osh-encrypt-rsync.pl: handle sqlite and user logs along with ttyrec files
  • remove: compress-old-logs.sh script, as osh-encrypt-rsync.pl does the job now
  • remove: delete CentOS 8 from tests (EOL)
  • feat: add osh-cleanup-guest-key-access.pl script
  • feat: add NRPE probes in contrib/
  • enh: standardize snake_case for all system scripts json config files
  • enh: cron scripts: factorize common code and standardize logging & config
  • enh: osh-lingering-sessions-reaper.pl: make it configurable
  • enh: osh-piv-grace-reaper.pl: run only on master, standardize config reading
  • enh: add more info in syslog warnings for accountDelete
  • fix: ping: force a deadline, and restore default sighandlers
  • fix: accountInfo: missing creation date on non-json output
  • fix: osh-remove-empty-folders.pl: fix folders counting (logging only)
  • fix: osh-encrypt-rsync.pl: delete +a source files properly
  • fix: osh-encrypt-rsync.pl: ensure $verbose is always set & make it configurable
  • fix: install: ensure that the healthcheck user can always connect from 127.0.0.1
  • fix: install: avoid cases of sigpipe on tr
  • fix: don't emit a membership log when nothing changed
  • fix: {group,account}Delete: move() would sometimes fail, replace by mv
  • fix: workaround for undocumented caching in getpw/getgr funcs
  • doc: better menu organization and more complete config files reference

:fast_forward: Upgrading

v3.08.01

2 years ago

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

The main change of this version is:

  • A new system script, osh-remove-empty-folders.sh, called by cron and responsible for cleaning up the ttyrec/ directory of users homes, which may contain a high amount of empty folders for busy users tonnecting to a lot of different servers, as we create one folder per destination IP.

An exhaustive list of changes can be found below.

:pushpin: Changes

  • feat: add osh-remove-empty-folders.sh script
  • enh: better errror detection and logging in accountDelete & groupDelete

:fast_forward: Upgrading

v3.08.00

2 years ago

:zap: Security

  • No security fixes since previous release
  • Oldest release with no known security issues: v3.00.00 (first public version)

:bulb: Highlights

The 2 main changes of this version are:

  • System scripts are now using GnuPG 2.x instead of GnuPG 1.x. All supported OSes do support GnuPG 2.x. The 2.x series of GnuPG support more key algorithms (such as ECDSA and Ed25519), for both higher security and speed. Please refer to the specific upgrade instructions for more information.

  • New restricted plugin accountUnlock, to unlock accounts locked by either pam_tally, pam_tally2 or pam_faillock

Additionally, the supported list of operating systems has changed:

  • Removed official support for OpenSUSE Leap 15.2 (EOL), older minor releases of CentOS 7.x and 8.x (EOL). No code has been removed that would break compatibility, but we removed these OSes from the automated tests suite, so the code may stop working in the future on these OSes for a root cause that we wouldn't be able to detect automatically.
  • Added official support for Debian "Bullseye" 11, RockyLinux 8.x

Also note that since v3.03.99-rc2, the FreeBSD integration tests were not running properly, this has been fixed and the few non-passing tests since this version have also been resolved.

A more complete list of changes can be found below, for an exhaustive (and boring) list, please refer to the commit log.

:pushpin: Changes

  • feat: move scripts to GnuPG 2.x, add tests & doc
  • feat: add new OSes (Debian "Bullseye" 11, RockyLinux 8.x) and deprecate old ones (OpenSUSE Leap 15.2, older minor releases of CentOS 7.x and 8.x)
  • feat: add the accountUnlock restricted plugin
  • enh: detect silent password change failures
  • enh: batch: detect when asked to start a plugin requiring MFA
  • enh: rewrite packages-check.sh, perl-tidy.sh and shell-check.sh with more features and deprecated code removed
  • feat: add the code-info syslog type in addition to code-warn
  • enh: tests: --module can now be specified multiple times
  • fix: FreeBSD tests & portions of code, regression since v3.03.99-rc2
  • chore: install: remove obsolete upgrading sections for pre-v3.x versions

:fast_forward: Upgrading

v3.07.00

2 years ago

:bulb: Highlights

The two main features of this version are:

  • The support of the Duo PAM auth as MFA (see #249 for more information)
  • A new access setup option, --force-password, which is similar to --force-key, but to be used when a specific egress password is required instead of a specific SSH key for a given host. Note that this doesn't work for guest group accesses yet, which will be implemented in a future version. More information can be found in #256.

A more complete list of changes can be found below, for an exhaustive (and boring) list, please refer to the commit log.

:pushpin: Changes

  • feat: add support for Duo PAM auth as MFA (#249)
  • feat: new access option: --force-password <HASH>, to only try one specific egress password (#256, thanks @madchrist)
  • fix: add helpers handling of SIGPIPE/SIGHUP
  • fix: avoid double-close log messages on SIGHUP
  • fix: --self-password was missing as a -P synonym (#257, thanks @madchrist)
  • fix: tests under OpenSUSE (fping raw sockets)
  • chore: ensure proper Getopt::Long options are set everywhere
  • chore: move HEXIT() to helper module, use HEXIT only in helpers
  • chore: factorize helpers header

:fast_forward: Upgrading