updated for latest kopano version
This commit is contained in:
parent
f6021cecbb
commit
197ecbb5b1
5 changed files with 27 additions and 30 deletions
2
LICENSE
2
LICENSE
|
|
@ -1,4 +1,4 @@
|
||||||
Copyright (C) 2019 Marius Schellenberger
|
Copyright (C) 2020 Marius Schellenberger
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
|
|
||||||
18
README.md
18
README.md
|
|
@ -1,8 +1,8 @@
|
||||||
# SMTP Authentication Sync
|
# SMTP Authentication Sync
|
||||||
|
|
||||||
This is a small daemon to sync Zarafa/Kopano users and passwords to an authentication file which can be used by OpenSMTPD.
|
This is a small daemon to sync Kopano users and passwords to an authentication file which can be used by OpenSMTPD.
|
||||||
|
|
||||||
Any successful login or password change will be synced to this file.
|
Any successful webapp login will be synced to this file.
|
||||||
The passwords are stored as Bcrypt hashes generated by `smtpctl encrypt`.
|
The passwords are stored as Bcrypt hashes generated by `smtpctl encrypt`.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
@ -45,21 +45,19 @@ table secrets file:/etc/mail/secrets
|
||||||
listen on egress port 587 smtps pki mx.example.com auth <secrets>
|
listen on egress port 587 smtps pki mx.example.com auth <secrets>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Zarafa/Kopano Password Change Plugin
|
## Kopano Authentication Class Patch
|
||||||
|
|
||||||
Plugin (version 1.3): https://github.com/silentsakky/zarafa-webapp-passwd
|
Apply this patch to send passwords to `smtp_auth_sync` after a successful login:
|
||||||
|
|
||||||
Apply this patch to send changed passwords to `smtp_auth_sync`:
|
|
||||||
|
|
||||||
Depending on your setup you may need to change `"/run/smtp_auth_sync.sock"` to the appropriate socket path inside your chroot.
|
Depending on your setup you may need to change `"/run/smtp_auth_sync.sock"` to the appropriate socket path inside your chroot.
|
||||||
|
|
||||||
```
|
```
|
||||||
# Default path on OpenBSD
|
# Default path on OpenBSD
|
||||||
cd /var/www/kopano-webapp/plugins/passwd/php
|
cd /var/www/kopano-webapp/server/includes/core
|
||||||
|
|
||||||
ftp -o class.passwdmodule.php.patch https://git.giftfish.de/ston1th/smtp_auth_sync/raw/branch/master/class.passwdmodule.php.patch
|
ftp -o class.webappauthentication.php.patch https://git.giftfish.de/ston1th/smtp_auth_sync/raw/branch/master/class.webappauthentication.php.patch
|
||||||
|
|
||||||
patch -p0 <class.passwdmodule.php.patch
|
patch -p0 <class.webappauthentication.php.patch
|
||||||
|
|
||||||
rm class.passwdmodule.php.orig class.passwdmodule.php.patch
|
rm class.webappauthentication.php.orig class.webappauthentication.php.patch
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
--- class.passwdmodule.php 2019-09-08 16:43:34.699514994 +0200
|
|
||||||
+++ class.passwdmodule.php 2019-09-08 16:44:07.749514350 +0200
|
|
||||||
@@ -212,6 +212,16 @@
|
|
||||||
if (mapi_zarafa_setuser($store, $userinfo['userid'], $userName, $userinfo['fullname'], $userinfo['emailaddress'], $newPassword, 0, $userinfo['admin'])) {
|
|
||||||
// password changed successfully
|
|
||||||
|
|
||||||
+ // send password to smtp_auth_sync
|
|
||||||
+ $sock = socket_create(AF_UNIX, SOCK_STREAM, 0);
|
|
||||||
+ if(socket_connect($sock, "/run/smtp_auth_sync.sock")) {
|
|
||||||
+ $send = $userName."\n";
|
|
||||||
+ socket_send($sock, $send, strlen($send), 0);
|
|
||||||
+ $send = $newPassword."\n";
|
|
||||||
+ socket_send($sock, $send, strlen($send), 0);
|
|
||||||
+ socket_close($sock);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// send feedback to client
|
|
||||||
$this->sendFeedback(true, array(
|
|
||||||
'info' => array(
|
|
||||||
17
class.webappauthentication.php.patch
Normal file
17
class.webappauthentication.php.patch
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
--- class.webappauthentication.php.orig 2020-01-18 16:17:13.318119536 +0100
|
||||||
|
+++ class.webappauthentication.php 2020-01-18 16:15:37.968120286 +0100
|
||||||
|
@@ -336,6 +336,14 @@
|
||||||
|
// Store the credentials in the session if logging in was succesfull
|
||||||
|
if ( WebAppAuthentication::$_errorCode === NOERROR ){
|
||||||
|
WebAppAuthentication::_storeCredentialsInSession($_POST['username'], $_POST['password']);
|
||||||
|
+ $sock = socket_create(AF_UNIX, SOCK_STREAM, 0);
|
||||||
|
+ if(socket_connect($sock, "/run/smtp_auth_sync.sock")) {
|
||||||
|
+ $send = $_POST['username']."\n";
|
||||||
|
+ socket_send($sock, $send, strlen($send), 0);
|
||||||
|
+ $send = $_POST['password']."\n";
|
||||||
|
+ socket_send($sock, $send, strlen($send), 0);
|
||||||
|
+ socket_close($sock);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
return WebAppAuthentication::getErrorCode();
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
# Copyright (C) 2020 Marius Schellenberger
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use Config;
|
use Config;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue