Commit graph

91 commits

Author SHA1 Message Date
Stéphane Lesimple
edb1b77dfc feat: auto-add hostname as comment in groupAddServer / selfAddPersonalAccesss
Implements a side suggestion of #60
2021-02-22 11:56:19 +01:00
Stéphane Lesimple
383f2a011c enh: guests: groupAddGuestAccess now supports setting a comment
If no comment is set, the comment is inherited from the group ACL,
as seen in groupListServers.

selfAddPersonalAccess now also return details
about the added server in the returned JSON.

Closes #18
Closes #17
2021-02-22 11:56:19 +01:00
Stéphane Lesimple
9216e2db1b enh: groupAddServer: augment the returned JSON with the added server details 2021-02-22 11:56:19 +01:00
Stéphane Lesimple
ed77c1ef3e feat: transmit PIV enforcement status to remote realms
Closes #33
2021-02-18 16:05:02 +01:00
Stéphane Lesimple
5eb5135d26 doc: update 2021-02-17 10:03:40 +01:00
Stéphane Lesimple
e760cf6142 feat: add groupGenerateEgressKey and groupDelEgressKey 2021-02-17 10:03:40 +01:00
Stéphane Lesimple
e235199715 fix: groupModify: deny early if user is not an owner of the group
This way, the error message is clearer
2021-02-17 10:03:40 +01:00
Stéphane Lesimple
7eeccb7c5d enh: groupInfo: nicer message when no egress key exists 2021-02-17 10:03:40 +01:00
Stéphane Lesimple
70feff2c2d enh: install: use in-place overwrite for sudoers files
This fixes a race condition in sudo where it would log a log of
error messages to syslog if used while we're running the install
script: files around sudoers.d/ are then moved around, and it'll
yell for each file it previously listed if the file no longer
exists when it tries to stat() it. It also deprecates the --no-wait
flag of the install script, as now the sudoers.d/ directory will
always have integrity at all times.

Signed-off-by: Stéphane Lesimple <stephane.lesimple+bastion@ovhcloud.com>
2021-02-14 22:25:50 +01:00
Stéphane Lesimple
efe3710e4c feat: groupList/accountList: add --include --exclude 2021-01-21 15:56:59 +01:00
Stéphane Lesimple
148d5206e5 enh: rootListIngressKeys: look for all well-known authkeys files 2021-01-21 15:06:27 +01:00
Stéphane Lesimple
69778815bb enh: groupList: use cache to speedup calls
On bastions with thousands of group, the speedup is ~x10
2021-01-20 14:01:55 +01:00
Stéphane Lesimple
141791db92 fix: scripts: (( )) returns 1 if evaluated to zero 2021-01-15 16:13:30 +01:00
Stéphane Lesimple
d04b15a19e fix: tocttou in ttyrec rotation script 2021-01-14 17:19:48 +01:00
Stéphane Lesimple
361c6a37a2 fix: osh-lingering-sessions-reaper.sh: tocttou on kill could terminate the script early 2021-01-14 17:16:31 +01:00
Pierre Kuhner
e7e045a40d fix: confusing error messages in groupDelServer 2021-01-14 09:40:55 +01:00
Stéphane Lesimple
1129850771 fix: global-log: directly set proper perms on file creation 2021-01-12 12:05:20 +01:00
Stéphane Lesimple
1676979913 feat: add PIV keys support and policy enforcement
A new global option 'ingressRequirePIV' was added, to enable or disable a
bastion-wide policy forcing everybody to use only PIV keys.
2021-01-12 12:05:06 +01:00
Stéphane Lesimple
62d6393d56 feat: add yubico-piv-checker install script 2021-01-12 12:05:06 +01:00
Stéphane Lesimple
41121f7723
fix: proper sqlite log location for invalid realm accounts 2021-01-07 17:20:54 +00:00
Stéphane Lesimple
e8d60810f1
Merge pull request #111 from ovh/perluseall
chore: perl-use-all: dynamically find required modules
2021-01-05 18:51:25 +01:00
Stéphane Lesimple
b4f32d5afe
Merge pull request #110 from ovh/aclbackup
enh: satellite scripts: better error handling
2021-01-05 18:51:09 +01:00
Stéphane Lesimple
16323667e2
Merge pull request #106 from ovh/logs
feat: revamp logs
2021-01-05 18:50:25 +01:00
Stéphane Lesimple
8e7fc9b949
chore: perl-use-all: dynamically find required modules 2020-12-31 13:00:00 +00:00
Stéphane Lesimple
9a10ddebd9
enh: satellite scripts: better error handling 2020-12-31 12:13:20 +00:00
Stéphane Lesimple
a479810d83
feat: revamp logs
All connections and plugin executions emit two logs, an 'open' and
a 'close' log. We now add all the details of the connection to
the 'close' logs, those that were previously only available in the
corresponding 'open' log. This way, it is no longer required to
correlate both logs with their uniqid to have all the data:
the 'close' log should suffice. The 'open' log is still there if
for some reason the 'close' log can't be emitted (kill -9, system
crash, etc.), or if the 'open' and the 'close' log are several
hours, days or months appart.

An additional field "duration" has been added to the 'close' logs,
this represents the number of seconds (with millisecond precision)
the connection lasted.

Two new fields "globalsql" and "accountsql" have been added to the
'open'-type logs. These will contain either "ok" if we successfully
logged to the corresponding log database, "no" if it is disabled,
or "error $aDetailedMessage" if we got an error trying to insert
the row. The 'close'-type log also has the new "accountsql_close"
field, but misses the "globalsql_close" field as we never update
the global database on this event. On the 'close' log, we can also
have the value "missing", indicating that we couldn't update the
access log row in the database, as the corresponding 'open' log
couldn't insert it.

The "ttyrecsize" log field for the 'close'-type logs has been removed,
as it was never completely implemented, and contains bogus data if
ttyrec log rotation occurs. It has also been removed from the sqlite
log databases.

The 'open' and 'close' events are now pushed to our own log files,
in addition to syslog, if logging to those files is enabled (see
``enableGlobalAccesssLog`` and ``enableAccountAccessLog``), previously
the 'close' events were only pushed to syslog.

The /home/osh.log is no longer used for ``enableGlobalAccessLog``, the
global log is instead written to /home/logkeeper/global-log-YYYYMM.log.

The global sql file, enabled with ``enableGlobalSqlLog``, is now
split by year-month instead of by year, to
/home/logkeeper/global-log-YYYYMM.sqlite.
2020-12-29 16:14:50 +00:00
Stéphane Lesimple
2cfde997f3 fix: realmDelete: bad sudoers configuration 2020-12-25 17:02:54 +01:00
Stéphane Lesimple
81db4b10bb feat: realms: use remote bastion MFA validation information for local policy enforcement 2020-12-25 17:02:54 +01:00
Stéphane Lesimple
16f42221ca
feat: add LC_BASTION_DETAILS envvar 2020-12-21 11:13:46 +00:00
Stéphane Lesimple
a204313af9
feat: accountModify: add --osh-only (closes #97) 2020-12-18 11:04:33 +00:00
Stéphane Lesimple
03ad1da046
chore: perlcritic: including forgotten .inc files 2020-12-15 17:18:37 +00:00
Stéphane Lesimple
a676692fe6
chore: fix an error message 2020-12-15 13:57:58 +00:00
Stéphane Lesimple
fdb786d62c
Merge pull request #89 from ovh/dev/aleblanc/bin-helper-osh-account-delete
fix: osh-accountDelete: fix typo
2020-12-15 12:14:19 +01:00
Stéphane Lesimple
790802e6da
fix: osh.pl: plugin_config 'disabled' key is a boolean 2020-12-15 10:16:35 +00:00
Antoine Leblanc
82f2c96ea6
fix: osh-accountDelete: fix typo
Signed-off-by: Antoine Leblanc <antoine.leblanc@ovhcloud.com>
2020-12-14 21:49:32 +01:00
Stéphane Lesimple
e2186978da
fix: sudogen: don't check for account/groups validity too much when deleting them
Fixes #86
2020-12-14 09:19:03 +00:00
Stéphane Lesimple
c68b696702
chore: shellcheck & perltidy 2020-12-08 14:42:31 +00:00
Stéphane Lesimple
7707b1c351
fix: osh-groupCreate: fix for centos 8.3 2020-12-08 14:42:27 +00:00
Stéphane Lesimple
457a8fae82
chore: packages-check: remove unused packages 2020-12-08 14:27:38 +00:00
Stéphane Lesimple
dca45a44c5
chore: fix latest centos 8 release, add tests for last 3 minors 2020-12-08 14:27:13 +00:00
Stéphane Lesimple
c4d2cea3b0
fix: packages-check: centos8: handle new repo names 2020-12-08 10:54:57 +00:00
Stéphane Lesimple
8276f3878d
Merge pull request #76 from ovh/fixsudoers
fix: sudogen: handle '.' and OS-specific templates correctly
2020-12-04 14:38:02 +01:00
thibault.dewailly
1e32cfde7d osh-encrypt-rsync: Remove logfile as mandatory parameter 2020-12-04 10:03:18 +00:00
Stéphane Lesimple
50c016be10
fix: sudogen: properly handle accounts & groups containing '.' 2020-12-03 13:20:53 +00:00
Stéphane Lesimple
526a5d0389
fix: sudogen: proper detection of OS-specific templates 2020-12-03 13:20:53 +00:00
Thomas Soëte
9647ae9cdb
fix: Fix 'selfAddPersonalAccess' helptext 2020-12-01 15:53:57 +01:00
Stéphane Lesimple
4cb09a9570
nh: remove hardcoded .ssh/authorized_keys2 everywhere 2020-11-26 18:08:03 +00:00
Stéphane Lesimple
71cd9a46df
Merge branch 'master' into autocompletion 2020-11-23 14:26:46 +01:00
Stéphane Lesimple
9fb6b8d444
enh: accountCreate: handle --uid-auto in autocompletion rules 2020-11-23 11:29:52 +00:00
Thomas SOËTE
ef531308d5 enh: doc: add from parameter as it is mandatory 2020-11-23 11:28:15 +00:00